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

时间:2017-10-13 12:23:13

标签: java spring-boot spring-cloud-stream spring-kafka

使用spring-cloud 1.5.7.RELEASE运行spring-boot 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是否有任何好处?

  3. 加分:spring.cloud.stream.kafka.binder.configuration.auto.offset.resetspring.cloud.stream.kafka.bindings.<channelName>.consumer.startOffset之间的区别是什么?它只是后者配置每个通道的偏移重置?在任何情况下,这两个都不会被选中,并且auto.offset.reset值在启动期间仍会报告为earliest

1 个答案:

答案 0 :(得分:2)

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

  2. 不是真的在消费者方面;但在生产者方面,例如,如果您需要严格的订购 - 例如,如果您希望客户“foo”的所有“订单”转到同一分区;您还需要适当的分区配置。在消费者方面(对于Kafka),它只会确保group配置。

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