spring-cloud-stream-kafka 配置:instanceCount & instanceIndex

spring-cloud-stream-kafka configuration: instanceCount & instanceIndex

运行 spring-boot 1.5.7.RELEASE 程序使用 spring-cloud Dalston.SR4。 自己通过 cloud-stream documentation 工作,尤其是关于 kafka-binder 的使用,但在某些配置方面仍然不清楚:

  1. 当我们从 kafka 代理 消费 时,我们真的需要设置 spring.cloud.stream.{instanceCount,instanceIndex} 吗?鉴于 spring.cloud.stream.bindings.<channel>.group 已设置,我不明白为什么需要这样做。或者可以肯定地说这两个属性仅在设置 cloud.stream.kafka.bindings.<channel>.autoRebalanceEnabled 时才需要 false?

  2. 设置cloud.stream.default.consumer.partitioned: true对kafka消费者有什么好处吗?

  3. 奖金:spring.cloud.stream.kafka.binder.configuration.auto.offset.resetspring.cloud.stream.kafka.bindings.<channelName>.consumer.startOffset 有什么区别?只是在后面配置每个通道的偏移重置吗?无论如何,这两个都没有被拾取,并且 auto.offset.reset 值在启动期间仍然报告为 earliest.

  1. 正确;只有在使用手动分区分配时才需要它。

  2. 不是真的在消费者方面;但在生产者方面,例如,如果您需要严格排序 - 例如,如果您希望客户 "foo" 的所有 "orders" 进入同一分区;您还需要适当的分区配置。在消费者方面(对于 Kafka),它只会确保有一个 group provisioned.

  3. startOffset是覆盖全局设置。这些属性的应用顺序有一些错误修复 example here。您使用的是什么版本?修复在 1.3.0 版本中;它也在 1.2.x 分支但尚未发布;我们需要 1.2.2.RELEASE 才能使用;如果你不能移动到 1.3,请为此打开一个 github 问题。