这个问题和下面的问题差不多:发送给具有相同使用者组名称的所有使用者的消息。公认的答案是使用卡夫卡0.8.1或更高版本,我这样做了。
卡夫卡文件说
如果所有的使用者实例都有相同的使用者组,那么这就像传统的队列平衡负载在使用者身上一样。
但我无法用Kafka 0.8.2.1和卡卡观察到这种行为。
我的设置:
首先,在运行Kafka容器时,我创建了一个主题:
$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 2 --topic beta两个消费者订阅了相同的主题:
kafkacat -C -b $(boot2docker ip):9092 -t beta -X group.id=mygroup然后我使用kafkacat生成一条消息:
date | kafkacat -P -b $(boot2docker ip):9092 -t beta我希望只有一个消费者收到消息,但实际上他们都收到了。我做错了什么?
编辑:当我尝试使用kafka-console-consumer.sh运行相同的消费者时,一切都很好:
echo "group.id=mygroupid" > /consumer.beta.properties
$KAFKA_HOME/bin/kafka-console-consumer.sh \
--zookeeper localhost:2181 \
--topic beta \
--consumer.config /consumer.beta.properties所有这些都如预期的那样工作:消息只被消耗一次。我想问题在卡帕卡特身上。
https://stackoverflow.com/questions/32781142
复制相似问题