我让我的动物园管理员和3名卡夫卡经纪人在当地运营。 我开了一个生产者和一个消费者。我可以看到消费者正在消费消息。
然后我启动了三个具有相同使用者组名称的消费者(自弹簧启动项目以来不同的端口)。但我发现所有消费者现在正在消费(接收)消息。但我希望消息能够进行负载平衡,因为只有消息不会在消费者中重复。我不知道问题是什么。
这是我的属性文件
spring.cloud.stream.bindings.input.destination=timerTopicLocal
spring.cloud.stream.kafka.binder.zkNodes=localhost
spring.cloud.stream.kafka.binder.brokers=localhost
spring.cloud.stream.bindings.input.group=timerGroup
这里的组是timerGroup。
消费者代码:https://github.com/codecentric/edmp-sample-stream-sink
生产者代码:https://github.com/codecentric/edmp-sample-stream-source
答案 0 :(得分:0)
是否可以将依赖项更新为Camden.RELEASE
(并开始使用Kafka 0.9+)?在Brixton.RELEASE
中,Kafka使用者基于0.8,并且需要将instanceIndex / instanceCount作为属性传递,以便正确分发分区。
在Camden.RELEASE
我们正在使用Kafka 0.9+消费者客户端,它以您期望的方式进行负载平衡(我们也支持通过instanceIndex / instanceCount进行静态分区分配,但我怀疑这不是你的意思想)。我可以详细了解如何使用Brixton配置它,但我想升级应该是一个更容易的路径。