点一下关注吧!!!非常感谢!!持续更新!!!
目前已经更新到了:
- Hadoop(已更完)
- HDFS(已更完)
- MapReduce(已更完)
- Hive(已更完)
- Flume(已更完)
- Sqoop(已更完)
- Zookeeper(已更完)
- HBase(已更完)
- Redis (已更完)
- Kafka(正在更新…)
章节内容
上节我们完成了如下的内容:
- Kafka拦截器
- Kafka自定义拦截器
- Kafka原理剖析
编号解释
- P 表示 Partition 分区
- C 表示 Consumer 消费者
- (4-1)C,表示原来是4个C,离线了1个C。
消费组
消费者从订阅的主题消费消息,消费消息的偏移量保存在Kafka的名字是:
__consumer_offsets
消费者可以将自己的偏移量存储到ZooKeeper,需要设置:
(推荐使用Kafka自己存储消费者的偏移量,因为ZooKeeper并不适合高并发场景)
offset.storage=zookeeper
多个消费者可以加入到一个消费组中,共享 group_id, group_id 一般设置为应用的逻辑名称。
configs.put("group_id", "xxx");
消费组01 4P1C
消费组均衡地给消费者分配分区,每个分区只有消费组中的一个消费者消费:
消费组02 4P,2C
一个拥有四个分区的主题,包含一个消费者的消费组。如果消费组有2个,则每个消费者分别从两个分区中接收消息。
消费组03 4P,4C
如果消费组有四个消费者,则每个消费者可以分配到一个分区。
消费组04 4P,C5
如果消费组中有过多的消费者,超过主题分区的数量,那么一部分消费者就会闲置,不会接受任何消息。
消费组05 4P,C4G1,C2G2
如果是两个消费组一起消费,会如图所示:
心跳机制
4P4C
假设正在消费稳定消费,会形成如下的样子:
4P,(4-1)C
消费过程中,如果消费者宕机,退出了消费组,触发了再平衡,重新给消费组中的消费者分配分区。
配置参数
Kafka的心跳是KafkaConsumer和Broker之间的健康检查,只有当Broker Coordinator 正常时,Consumer才会发起心跳。
其他的相关参数如下:
版权归原作者 武子康 所有, 如有侵权,请联系我们删除。