Kafka架构原理图
2020-07-02 10:01:22 1 举报
kafka基本架构,以及相关一些知识点
作者其他创作
大纲/内容
分区0
Consumer0
pull,消费消息
topic
Broker1
ISR
log cleaner线程
分区2
follower副本
Broker0
分区1
Producer0
Producer Group
消费者组重平衡- 消费者组内消费者数量发生变化(最常见,重点避免)- 消费者组订阅topic数量发生变化(运维操作,无法避免)- topic内的分区数量发生变化(运维操作,无法避免)
判断follower副本是否跟leader副本同步replica.lag.time.max.ms默认值10秒表示:follower副本能够落后leader副本的最长时间间隔
消费者组成员数量发生变化引发重平衡的情况:1. 添加消费者实例(无可避免)2. 消费者实例被coordinater错误地认为宕机了,将其提出消费者组(这种最骚,尽量避免) - 不能及时发送心跳请求 - 消息消费的时间太长 - 消费者频繁full gc
topic只是一个逻辑概念,承接消息的物理主体是分区
sender线程
Consumer2
OSR
无消息丢失配置
Producer2
消费者组是一种提高kafka消费者吞吐量的一种重要手段消费者组内的消费者实例数量不要多余主题的分区数量,否则会出现有消费者没有订阅到分区的情况消费者组的消费位移数据根据版本的不同,存放的位置不同:- 旧版的消费者组的消费位移数据存放在zk,缺点显而易见,高频写操作会影响zk性能- 新版消费者组的消费位移数据存放在broker端的内置主题“_consumer_offsets”
Broker2
副本同步,拉取数据
Consumer1
分区策略决定生产者将消息发送到那个分区- 轮询策略- 随机策略- key-ordering策略:根据每条消息的key进行分配,确保key相同的消息存放在同一个分区kafka默认策略为key-ordering + 轮询如果指定了key,则使用key-ordering否则使用轮询
Producer1
kafka内部主题_consumer_offsets消息格式- key:comsumer group id + topic + partition- value:offset默认参数配置- partition = 50- replicas = 3
生产消息
Consumer Group
Leader副本
生产者- acks参数配置为all- 消息写入失败重试/告警Broker- 关闭unclear leader选举- 副本数量>=3- ISR集合数量 >=2消费者:- 关闭offset自动提交
0 条评论
下一页