gad*_*s00 4 spring-cloud-stream
我一直在玩 spring-cloud-stream (1.0.0.BUILD-SNAPSHOT with kafka binder) 并注意到消费者离线时,发送的任何消息都会丢失。当我启动消费者时,它不会处理发送到 kafka 的积压请求。这是故意的吗?
我们肯定需要改进我们的文档,但同时这里有一些提示。
如果您希望消费者处理在它们停止时产生的消息,您需要指定一个消费者组名称,例如spring.cloud.stream.bindings.<bindingName>.group=foo. 当指定消费者组时,应用程序从 a) 最新的未消费消息开始,如果具有相同消费者组的客户端已经运行(即我们记录了该消费者的消费偏移量)或 b) 指定的值spring.cloud.stream.binder.kafka.start-offset(可以be ,代表主题的开始或结束)。所以重新启动保留消费者组的消费者会从他们离开的地方消费,新的消费者会根据启动选项开始。如果未指定组,则消费者将被视为“匿名”,并且只对它启动后产生的消息感兴趣,因此它总是从分区集的末尾开始。earliest或latest
如果你想绕过已经保存的值,那么你可以使用spring.cloud.stream.binder.kafka.reset-offets=true,这将导致客户端重置保存的偏移量并从 指示的值开始spring.cloud.stream.binder.kafka.start-offset。
这反映了 0.8.2 预期(并支持)的行为。一旦我们升级到 0.9,我们将相应地更新内容。
| 归档时间: |
|
| 查看次数: |
1893 次 |
| 最近记录: |