首页 > 其他 > 详细

二、集群和中央控制器

时间:2020-05-18 21:34:07      阅读:58      评论:0      收藏:0      [点我收藏+]

集群和中央控制器

一个独立的Kafka服务器被称为broker。broker用来接收来自生产者的消息,为消息设置偏移量,并把消息保存到磁盘。换句话说,多个kafka实例组成kafka集群,每个实例(server)被称为broker。

技术分享图片

 

broker中央控制器:Kafka集群中多个broker,在Kafka启动时所有的broker会在zk里面注册,只有一个会被选举为broker中央控制器(controller也就是broker的 leader)。

中央控制器产生:

技术分享图片

 

 

中央控制的主要工作为:

  • 管理整个集群中的分区

  • 监控副本的状态

这些工作如:

  • leader副本故障,由中央控制器负责为该partition重新选举新的leader 副本

  • 当检测到同步列表发生变化,有中央控制器通知集群中所有broker更新其元数据缓存信息

  • 当增加某个topic分区的时候也会由中央控制器管理分区的重新分配工作 

broker中央控制器的选举过程:

 技术分享图片

 

当broker启动的时候,都会创建KafkaController对象,但是集群中只能有一个leader对外提供服务,这些每个节点上的KafkaController会在指定的zookeeper路径下创建临时节点,只有第一个成功创建的节点的KafkaController才可以成为leader,其余的都是follower。当leader故障后,所有的follower会收到通知,再次竞争在该路径下创建节点从而选举新的leader。

主题

主题就是数据主题,是数据记录发布的地方,可以用来区分业务系统。Kafka中的Topics总是多订阅者模式,一个topic可以拥有一个或者多个消费者来订阅它的数据。

技术分享图片

 

 

分区

对于每一个topic,Kafka集群都会有一个或者多个分区。分区角色有分为Leader分区和Follower分区。每个分区都是有序且顺序不可变的记录集,并且不断地追加到log文件中。

为什么设计分区?

  • 为了并发读写,加快读写速度;通过这种优化,可以极大的提高并发响应

  • 运用多分区的存储,利于数据的均衡;

  • 加快数据的康复速率。如:一旦某台机器挂了,全部集群只需要康复一部分数据,可加快故障康复的时间。

 

二、集群和中央控制器

原文:https://www.cnblogs.com/w-ting/p/12912753.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!