专业术语
- 主题:每一条消息均有一个主题,就像每条邮件的主题一样
- 分区:每一条消息有序的存在在此(类似于磁盘分区)
- 副本:相同的信息需要做备份,需要将分区下某个主题的信息推送到不同的broker中(including leader 副本和 follower 副本)
- Broker:集群的每一个节点
- zookeeper:维护kafka集群,存储Broker的元信息 (NOT ACK)
图解
联系
- 分区和主题:不同的分区可能有相同的主题
- 消息,消费组:同一条消息只能被一个消费组中的一个消费者消费
- 生产者,主题,分区,leader副本:生产者推送的消息中的key可以用来确定
leader分区<主要用来读写消息>
,而消息也伴有主题<规定kafka集群需要创建的分区数量和副本数量>
,主题和分区确定了该消息在kafka集群中的位置 - 消费者根据3种分配策略来订阅分区
-
- RRA:订阅主题的分区和消费者进行排序
-
- RA:消费者按字典顺序排列,同一主题下的分区均匀分配给某一消费者NOTACK
-
- Sticky:to be continue
- 消费偏移量和follow副本偏移量的区别:前者用来拉取下一条消息,后者用来查看哪些分区还没有分配副本
- Broker 之间的关系:主要是leader副本和follower副本存放在不同的Broker中
- Kafka集群如何将分区副本分配给集群Broker
- 读写都在改节点,如果里头有不同分区的节点,如何distinguish from other nodes?
- why 双端队列?在头部fetch 消息,在尾部insert 消息