深入Kafka设计原理(一)
2021-11-12 18:44:34 2 举报
深入Kafka设计原理(一)
作者其他创作
大纲/内容
ISR:2,0
topic1-partition1
深入Kafka设计原理(一)
broker3
follower
Partition选举机制
Consumer消费消息
2.其他Broker监听到Controller节点消失
broker2
Partition:代表是该topic下的第几个分区,标号从0开始
leader
ISR:1,0,2
consumer1
Zookeeper
2.Controller感知到之后,会将Replicas的第一个broker节点,作为新的Leader
1.在broker启动时,会向Zookeeper发送创建controller节点命令,成为总控制器Controller
ISR:2,1,0
topic2-partition1
consumer3
consumer2
Replicas:2,1,0
Producer发布消息
Controller
Leader:当前Leader在哪个Broker节点上
Leader:2
Partition:0
Partition初始化
Consumer
Leader:0
create /controller
my-topic
核心控制器Controller选举机制
kafka拓扑结构
topic2-partition2
Broker1发生宕机后进行Leader的重新选举
broker1
1.当Broker1发生宕机后,我们partition0的leader也随之失效了
Zookeeper注册
Replicas:1,0,2
3.其他Broker进行选举,谁先向Zookeeper发送命令成功,谁就是新的Controller
2.Controller负责管理整个集群中所有分区和副本的状态
Partition:1
ISR:0,2
Replicas:当前partition预计在哪几个broker上存留副本,无论broker是否存活
3.谁先向zookeeper创建controller节点成功,谁就是总控制器Controller
Broker层
producer2
Consumer Group1
Broker核心控制器Controller
ISR:当前partition实际在哪几个broker上存在副本,并且broker是存活状态
Broker
producer1
4.随后新的Broker节点成为新的Leader,ISR只会显示存活的节点,所以broker1节点不在ISR上
producer3
Producer
3.但是这个Broker节点必须也在ISR上,确保该节点真实存活
Consumer Group2
Leader:1
Controller选举机制
通过 cmd bin/kafka‐topics.sh ‐‐describe ‐‐zookeeper 192.168.0.60:9092 ‐‐topic my‐topic可以看到topic的分区信息但是这里我完全用图形化的形式来阐述,希望能得到更好的理解这里假设my‐topic有2个partition(分区)和3个在broker上的副本,我们看一下在内存中大概是什么样的
Partition分区管理
0 条评论
回复 删除
下一页