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:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部