Kafka架构简介

一、kafka的架构

1、Broker

    kafka集群包含一个或者多个服务器,这种服务器就叫做Broker

2、Topic

    每条发布到kafka集群的消息都有一个类别,这个类别就叫做Topic(逻辑上的概念,物理上不同的Topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或者多个broker上但是用户只需指定消息的Topic,即可生产或者消费数据而不必关心数据存储在何处)

3、Partition

    Partition是物理上的概念,每个Topic对应一个或者多个Partition

4、Producer

    负责将消息发送到kafka的broker服务器上

5、Consumer

    消息消费者,向kafka broker读取消息的客户端

6、Consumer Group

    high-level  consumer-API中,每个consumer都属于一个consumer group,每个consumer group会有多个consumer,但每个消息只能被consumer group的一个consumer消费,但可以被多个group 消费(可为每个Consumer指定consumer name,如果不指定则属于默认的group)

7、replica

   partition 的副本,保障 partition 的高可用

8、leader

   replica 中的一个角色, producer 和 consumer 只跟 leader 交互

9、follower

    replica 中的一个角色,从 leader 中复制数据

10、controller

    kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover

11、zookeeper

    kafka 通过 zookeeper 来存储集群的 meta 信息

二、kafka的拓扑结构

一个典型的Kafka集群包含若干个producer(可以是web端产生的page view,或者是服务器日志,系统cpu,memery等),若干个broker(kafka支持水平发生扩展,一般broker数量越多,集群吞吐率越高),若干Consumer group,以及一个zookeeper集群,kafka通过zookeeper管理集群配置,选举leader,以及在consumer group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息
原文地址:https://www.cnblogs.com/cherish010/p/9013372.html