单播消息
在一个kafka的topic中,在同一个消费组中启动多个消费者,那么同一消费组中只有一个消费者可以收到订阅的topic中的消息,也就是说同一个消费组中只能有一个消费者能消费该topic的消息。
$ bin/kafka-console-consumer.sh --bootstrap-server 10.20.30.40:9092 --consumer-property group.id=group1 --topic hello
多播消息
不同的消费组订阅同一个topic,那么每个消费组都能消费消息(但同一消费组还是仅有一个消费者可以消费消息),如下启动在不同消费组中启动的两个消费客户端都可以收到消息。
$ bin/kafka-console-consumer.sh --bootstrap-server 10.20.30.40:9092 --consumer-property group.id=group1 --topic hello $ bin/kafka-console-consumer.sh --bootstrap-server 10.20.30.40:9092 --consumer-property group.id=group2 --topic hello
下图就是描述单播和多播的区别:
1.一个partition只能被同一消费组中的一个消费者消费,是为了保证消息的顺序性
2.partition数量决定了消费组中消费者的数量,建议设置消费组中的消费者数量不要超过partition的数量
查看消费组详细信息
查看当前Topic下有哪些消费组
$ bin/kafka-consumer-groups.sh --bootstrap-server 10.20.30.40:9092 --list group2 group1
描述组的详细信息
$ bin/kafka-consumer-groups.sh --bootstrap-server 10.20.30.40:9092 --describe --group group1 Consumer group 'group1' has no active members. GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID group1 hello 0 13 13 0 - - - # 描述信息 PARTITION 分区 CURRENT-OFFSET 最后被消费的消息偏移量 CURRENT-OFFSET 最后一条消息的偏移量 LAG 还有多少条消息没有被消费
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)