kafka的相关概念及基础架构
2022-01-09 本文已影响0人
彳亍口巴
1、相关概念
- producer:消息生产者,发布消息到 kafka 集群的终端或服务。
- broker:kafka 集群中包含的服务器。
- topic:每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。
- partition:partition 是物理上的概念,每个 topic 包含一个或多个 partition。kafka 分配的单位是 partition。
- consumer:从 kafka 集群中消费消息的终端或服务。
- Consumer group:high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。
- replica:partition 的副本,保障 partition 的高可用。
- leader:replica 中的一个角色, producer 和 consumer 只跟 leader 交互。
- follower:replica 中的一个角色,从 leader 中复制数据。
- controller:kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover。
- zookeeper:kafka 通过 zookeeper 来存储集群的 meta 信息。
2、架构图
- 一个典型的 kafka 集群包含若干 Producer(可以是应用节点产生的消息,也可以是通过Flume 收集日志产生的事件),若干个 Broker(kafka 支持水平扩展)、若干个 Consumer Group,以及一个 zookeeper 集群。kafka 通过 zookeeper 管理集群配置及服务协同。
- Producer 使用 push 模式将消息发布到 broker,consumer 通过监听使用 pull 模式从 broker 订阅并消费消息。
- 多个 broker 协同工作,producer 和 consumer 部署在各个业务逻辑中。三者通过 zookeeper 管理协调请求和转发。这样就组成了一个高性能的分布式消息发布和订阅系统。
-
和其他 mq 中间件不同的点,producer 发送消息到 broker 的过程是 push,而 consumer 从 broker 消费消息的过程是 pull,主动去拉数据。而不是 broker 把数据主动发送给 consumer。
kafka基础架构