Spring Cloud Stream 配置说明
本文对spring cloud stream 的相关配置,进行逐一注释说明,作为工具在需要的时候查看使用。配置中的输入(input)输出(output)通道可以换成自己的,详情如下
spring:
cloud:
stream:
#实例数量,默认1
instance-count: 1
#实例索引,从0到instanceCount-1,用于分区和使用kafka。在Cloud Foundry中自动设置以匹配应用程序的实例索引。
instance-index: 0
#默认binder
default-binder: rabbit
#可以动态绑定的目标列表(如:动态路由),如果设置,则只能绑定列出的目的地
dynamic-destinations:
default:
content-type: application/json
bindings:
error:
destination: myError #错误消息通道
input:
destination: streamdemo
group: streamdemo
content-type: application/json
binder: rabbit
consumer:
#消费者并发 默认1
concurrency: 1
#是否分区接收数据,默认false
partitioned: false
#头信息模式,设置为raw时,禁用输入头文件解析。仅适用于不支持消息头的消息中间件,并且需要头部嵌入。入站数据来自外部Spring Cloud Stream应用程序时很有用。
header-mode: embeddedHeaders
#重试次数(包括第一次),设置为1禁用重试,默认值3
max-attempts: 1
#初始回退间隔时间
back-off-initial-interval: 1000
#最大回退间隔时间
back-off-max-interval: 10000
#回退倍数
back-off-multiplier: 2.0
#大于0时,表示允许自定义该消费者的实例索引,-1时使用spring.cloud.stream.instance-index
instance-index: -1
#大于0时表示自定义消费者实例技术,-1时默认使用spring.cloud.stream.instanceCount
instance-count: -1
producer:
#一个确定如何分配出站数据的SpEL表达式
partition-key-expression:
#一个PartitionKeyExtractorStrategy实现。如果设置,或者如果设置了partitionKeyExpression,则该通道上的出站数据将被分区,并且partitionCount必须设置为大于1的值才能生效。这两个选项是相互排斥的。
partition-key-extractor-class:
#一个PartitionSelectorStrategy实现。与partitionSelectorExpression相互排斥。如果没有设置,则分区将被选为hashCode(key) % partitionCount,其中key通过partitionKeyExpression或partitionKeyExtractorClass计算。
partition-selector-class:
partition-selector-expression:
#如果启用分区,则数据的目标分区数。如果生产者被分区,则必须设置为大于1的值。在Kafka,解释为提示; 而是使用更大的和目标主题的分区计数。
partition-count: 1
#生成者必须确保消息传递的组合的逗号分隔列表,即使它们在创建之后启动(例如,通过在RabbitMQ中预先创建持久队列)。
required-groups:
output:
destination: streamdemo
input1:
destination: streamdemo
#配置多个binder,每个binder配置不同的环境变量
binders:
#binder的名称
rabbit:
#binder类型 rabbit/kafka,或者自定义的类型
type: rabbit
#配置是否会继承应用程序本身的环境,默认true
inheritEnvironment: true
#是否为默认binder,默认true
default-candidate: true
#binder的环境变量,参考消息中间件相关配置
environment:
spring:
rabbitmq:
host: 10.1.1.73
password:
username:
port:
kafka:
binder:
#kafka brokers,默认localhost
brokers: localhost
#kafka 端口号,默认9092
default-broker-port: 9092
#kafka zk节点,默认localhost
zk-nodes: localhost
#zookeeper 端口
default-zk-port: 2181
#配置,map
#configuration:
#自定义标题列表
headers:
#偏移量保存时间(ms)窗口,0:忽略,默认10000(ms)
offset-update-time-window: 10000
#偏移量保存次数,与时间窗口互斥
offset-update-count: 0
#broker 需要的ack数量
required-acks: 1
#只有设置autoCreateTopics或autoAddPartitions才有效
min-partition-count: 1
#自动创建topic时 生成的副本数量
replication-factor: 1
#自动创建主题
auto-create-topics: true
#如果设置为true,则绑定器将根据需要创建新的分区。如果设置为false,则绑定器将依赖于已配置的主题的分区大小。如果目标主题的分区计数小于预期值,则绑定器将无法启动。
auto-add-partitions: false
#socket 缓冲区大小
socket-buffer-size: 2097152
bindings:
input:
consumer:
#主题分区消费者组成员之间自动平衡
auto-rebalance-enabled: true
#自动提交偏移量
auto-commit-offset: true
auto-commit-on-error:
#连接恢复尝试之间的间隔,以毫秒为单位。
recovery-interval: 5000
#是否将消费者偏移量重置为start-offset提供的值
reset-offsets: false
#新组的起始偏移量,或resetOffsets为true时的起始偏移量。允许的值:earliest,latest,默认值:null(相当于earliest)
start-offset: earliest
enable-dlq: false
configuration:
#接收错误消息的DLQ主题的名称。默认值:null(如果未指定,将导致错误的消息将转发到名为error:
dlq-name:
producer:
buffer-size: 16348
#生产者是否是同步的
sync: false
#生产者在发送之前等待多长时间,以便允许更多消息在同一批次中累积。(通常,生产者根本不等待,并且简单地发送在先前发送进行中累积的所有消息。)非零值可能会以延迟为代价增加吞吐量。
batch-timeout: 0
configuration:
rabbit:
binder:
#RabbitMQ管理插件网址的逗号分隔列表。仅在nodes包含多个条目时使用。此列表中的每个条目必须在spring.rabbitmq.addresses中具有相应的条目。默认空
admin-addresses:
#RabbitMQ节点名称的逗号分隔列表。当多个条目用于查找队列所在的服务器地址时。此列表中的每个条目必须在spring: rabbitmq:addresses中具有相应的条目。:
nodes:
#压缩绑定的压缩级别,见java.util. zip.Deflater。:
compression-level: 1
bindings:
input:
consumer:
#确认模式
acknowledge-mode: auto
#是否自动声明DLQ并将其绑定到绑定器DLX。
auto-bind-dlq: false
#将队列绑定到交换机的路由密钥(如果bindQueue为true)。将附加分区目的地-
binding-routing-key: #
#是否将队列绑定到目的地交换机?如果您已经设置了自己的基础设施并且先前已经创建/绑定了队列,请设置为false。
bind-queue: true
#死信队列名,默认值:prefix+destination.dlq
dead-letter-queue-name:
#分配给队列的DLX; 如果autoBindDlq为true,默认值,'prefix + DLX'
dead-letter-exchange:
#死信队列路由key,默认值 destination
dead-letter-routing-key: destination
#是否声明exchange
declare-exchange: true
#是否将交换机声明为delayed message exchange ,需要在rabbit server上安装延迟交换机插件 x-delayed-type 参数设置为 exchangeType
delayed-exchange: false
#死信队列,死信交换,默认空
dlq-dead-letter-exchange:
#死信队列,死信路由key,默认空
dlq-dead-letter-routing-key:
#死信队列超时时间,默认不超时
dlq-expires:
#死信队列最大消息数,默认不限制
dlq-max-length:
#死信队列中的最大字节数,默认不限制
dlq-max-length-bytes:
#死信队列消息最大优先级,默认空
dlq-max-priority:
#声明时应用于死信队列的默认生存时间(ms)
dlq-ttl:
#订阅是否持久,仅当group也被设置时有效
durable-subscription: true
#如果declare-exchange 为true ,则exchange 是否自动删除(删除最后一个队列后删除)
exchange-auto-delete: true
#如果declareExchange 为true 则exchange 是否持久
exchange-durable: true
#exchange type,支持,direct,fanout,topic
exchange-type: topic
# 未使用的队列多久被删除(ms),默认不限制
expires:
#入站信息映射的头文件模式,默认['*']
header-patterns:
#最大消费者数量,默认1
max-concurrency: 1
#队列中最大消息数量,默认不限制
max-length:
#消息最大字节数,默认不限制
max-length-bytes:
#消息最大优先级,默认空
max-priority:
#预取计数
prefetch: 1
#destination 和queuename的前缀
prefix:
#连接恢复尝试之间的间隔,以毫秒为单位。
recovery-interval: 5000
#当禁用重试,或发布到toDlq为false时,是否重新发送失败消息
requeue-rejected: false
#当republishToDlq为true时,指定重新发布的邮件的传递模式。默认值DeliveryMode.PERSISTENT
republish-delivery-mode:
#默认情况下,尝试重试后失败的消息将被拒绝。如果配置了死信队列(DLQ),则RabbitMQ将将失败的消息(未更改)路由到DLQ。如果设置为true,则绑定器将重新发布具有附加头的DLQ的失败消息,包括最终失败的原因的异常消息和堆栈跟踪。
republish-to-dlq: false
#是否使用交易渠道。
transacted:
#声明(ms)时默认适用于队列的时间
ttl:
#ACK之间的传递数量。
tx-size:
producer:
#是否自动声明DLQ并将其绑定到绑定器DLX。
auto-bind-dlq: false
#是否开启生产者批量发送消息
batching-enabled: false
#批量发送消息数量
batch-size: 100
#批量缓冲数量限制
batch-buffer-limit: 10000
#批量发送消息超时时间
batch-time-out: 5000
#routing key 将队列绑定到交换机的路由密钥(如果bindQueue为true)。仅适用于非分区目的地。仅适用于requiredGroups,然后仅提供给这些组。
binding-routing-key: #
#是否将队列绑定到目的地交换机?如果您已经设置了自己的基础架构并且先前已经创建/绑定了队列,请设置为false。仅适用于requiredGroups,然后仅提供给这些组。
bind-queue: true
#是否压缩数据
compress: false
#死信队列名称 默认值:prefix+destination.dlq
dead-letter-queue-name:
#死信队列交换机 默认值:'prefix + DLX'
dead-letter-exchange:
#死信队列路由key,默认:destination
dead-letter-routing-key: destination
#是否生命交换机
declare-exchange: true
#评估应用于消息(x-delay头)的延迟的Spel表达式 - 如果交换不是延迟的消息交换,则不起作用。默认值,No
delay:
#是否将交换声明为Delayed Message Exchange - 需要经纪人上的延迟消息交换插件。x-delayed-type参数设置为exchangeType。
delayed-exchange: false
#消息发送方式 默认值 PERSISTENT
delivery-mode: PERSISTENT
#死信队列,死信交换,默认空
dlq-dead-letter-exchange:
#死信队列,死信路由key,默认空
dlq-dead-letter-routing-key:
#死信队列超时时间,默认不超时
dlq-expires:
#死信队列最大消息数,默认不限制
dlq-max-length:
#死信队列中的最大字节数,默认不限制
dlq-max-length-bytes:
#死信队列消息最大优先级,默认空
dlq-max-priority:
#声明时应用于死信队列的默认生存时间(ms),默认不限制
dlq-ttl:
#是否自动删除exchange,默认 true
exchange-auto-delete:
#exchange是否持久,默认true
exchange-durable:
#exchange 类型,默认topic
exchange-type:
#队列过期时间,默认不过期
expires:
#头信息映射到出站消息的模式,默认值['*'] 所有标题
header-patterns:
#消息最大长度
max-length:
#消息最大字节数,默认不限制
max-length-bytes:
#消息最大优先级,默认空
max-priority:
#交换机前缀,默认空
prefix:
#路由key表达式,默认值destination或者destination-
routing-key-expression:
#是否使用交易通道,默认false
transacted: false
#队列存活时间,默认不限制
ttl:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!