KafkaStreams学习笔记02

第二章 Kafka快速指南

Kafka相关术语

Broker——Kafka集群包含一个或多个服务器,这种服务器被称为broker ;
Topic——每条发布到Kafka集群的消息都有一个类别,这个类别被称为主题。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)  
Partition——分区,是物理上的概念,每个Topic包含一个或多个Partition.  
Producer——负责发布消息到Kafka broker  
Consumer——消息消费者,向Kafka broker读取消息的客户端。
Consumer Group——每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)

Kafka的工作模式是生产者向topic追加写入消息,Topic以日志的形式存数据,在物理结构上日志又分成不同的分区,在集群中不同的broker上。消费者从订阅某一主题,并从主题的日志读取消息。

Kafka使用ZooKeeper管理集群,ZooKeeper用于协调服务器或集群拓扑,ZooKeeper是配置信息的一致性文件系统。

对于kafka集群工作模式的理解

kafka集群由代理服务器,也就是broker,和zookeeper管理组件组成。
当一个主题创建时,它的消息以日志的形式存储数据。而日志会被分成各个分区分布在各个broker上。日志同时会备份在各个broker上,备份机制保持容错性。当备份机制存在时,每个分区在不同broker上有多份存储副本。每个分区都会定义一个leader broker和其他的follower broker。这个分配是由代理控制器完成的,这个控制器我觉得是每个broker都有的,因为它的作用是要为分区指定leader,并当follower broker出现故障的时候重新分配follower,或者leader。ZooKeeper是一个管理集群的组件,它不是broker,它负责监听每一个broker的状态。如果一个broker不可用,ZooKeeper负责将它从集群中移除,并且它会记录每个主题的leader是哪个服务器。同时还进行访问控制。【这里有一处疑问,我的理解是每一个主题的每一个分区都有一个leader broker,但是文中表述是每一个主题一个leader broker?】

发布了9 篇原创文章 · 获赞 0 · 访问量 857

猜你喜欢

转载自blog.csdn.net/weixin_43138930/article/details/105369490