图-1 Kafka基本架构图
主题(Topic)
消息主题,是一个逻辑概念。可以为每个业务、应用甚至是每类消息都创建专属的主题。消息的生产与消费,都是围绕消息主题Topic进行生产、消费以及其他消息管理操作的。
生产者(Producer)
生产者负责将被订阅的消息发送到Kafka对应Topic中。
消费者(Consumer)
消费者负责从对应Topic中获取待消费的消息。
Broker
通常,Kafka集群中包含一台或多台服务器,这种服务器被称为Broker;当Kafka部署在CCE集群时,一个Pod则对应一个Broker。一个Kafka集群由多个Broker组成,一个Broker上可创建多个Topic。Producer望Broker中的Topic中发送消息,Consumer消费订阅的Topic的消息。
分区(Partition)
分区是维护Kafka上的消息数据的最小单位,一个Topic可以包含多个分区。(在消息的产生和消费过程中,不需要关注消息存储在哪个Broker上,只需要指定Topic即可,由Kafka负责将消息和对应的Partition关联上)。通过这种分区的方式,实现了水平扩展与高可用。
副本(Replica)
在Kafka中,每个主题可以有多个分区,每个分区又可以有多个副本。多个副本中,只有一个副本是Leader,而其他的都是Follower副本。仅有Leader副本可以对外提供服务。
在Kafka中,实现副本的目的就是冗余备份。所有的读写请求都是由Leader副本进行处理的。Follower副本仅有一个功能,那就是从Leader副本拉取消息,尽量让自己跟Leader副本的内容一致。
ZooKeeper