1. Kafka拓扑结构图
2. 角色说明
a. producer
消息生产者,发布消息到kafka 集群的终端或服务
b. broker
节点,kafka 集群中包含的服务器
c. topic
主题,每条发布到kafka 集群的消息属于的类别。生产者向Kafka中生产消息或消费者从消费者中消费消息都是以Kafka的topic为单位的。即Kafka是面向topic的。
d. partition
分区,parition是物理上的概念,每个topic包含一个或多个partition。Kafka分配的原则是partition。
c. consumer
消息消费者,从Kafka集群中消费消息的终端或服务
d. consumer group
消费者组,每一个consumer都属于一个consumer group。每条消息可以被多个consumer group消费,但是每条消息只能被consumer group中的一个consumer消费。即数据是组内竞争,组间共享。
e. replication
副本,为了保证数据的高可用,每一个partition可以有多个replication。replication有leader和follower两种角色。
f. leader
replication的角色,每一个partition可以有多个replication,但是只有一个leader。producer和consumer只与角色为leader的replication交互。
g. follower
replication的角色,负责从leader中同步数据。当leader挂掉后,选出新的leader,继续工作。
h. controller
Kafka集群中的其中一台服务器,主要依靠zookeeper完成对集群broker和分区的管理,如管理集群broker信息、选举leader,维护ISR成员等
i. zookeeper
Kafka通过zookeeper来存储集群的元数据信息。