Kafka基础架构

1. Kafka拓扑结构图

2. 角色说明

  A. producer

    消息生产者,发布消息到kafka 集群的终端或服务

  B. broker

    节点,kafka 集群中包含的服务器

  C. topic

    主题,每条发布到kafka 集群的消息属于的类别。生产者向Kafka中生产消息或消费者从消费者中消费消息都是以Kafka的topic为单位的。即Kafka是面向topic的。

  D. partition

    分区,parition是物理上的概念,每个topic包含一个或多个partition。Kafka分配的原则是partition。partition数只能增加,不能减少。

  E. consumer

    消息消费者,从Kafka集群中消费消息的终端或服务

  F. consumer group

    消费者组,每一个consumer都属于一个consumer group。每条消息可以被多个consumer group消费,但是每条消息只能被consumer group中的一个consumer消费。数据是组内竞争,组间共享

  G. replication

    副本,为了保证数据的高可用,每一个partition可以有多个replication。replication有leader和follower两种角色。

  H.  leader

    replication的角色,每一个partition可以有多个replication,但是只有一个leader。producer和consumer只与角色为leader的replication交互。

  I. follower

    replication的角色,负责从leader中同步数据。当leader挂掉后,选出新的leader,继续工作。

  J. controller

    整个Kafka集群的管理者,Kafka集群中的其中一台服务器,用来进行leader选举以及各种失败恢复。

              1》负责管理集群的broker的上下线

    2》所有topic的分区副本分配

    3》leader选举

  K. zookeeper

    Kafka通过zookeeper来存储集群的元数据信息。

3. 设计理念

  A. 为了方便扩展并提高吞吐量,一个topic分为多个分区。

  B. 配合分区的概念提出了消费者组的概念,组内的每个消费者并行消费。消费者组内的每个消费者负责消费不同分区的数据,一个分区只能被一个消费者消费。

  C. 为了提高高可用,每一个分区增加了若干个副本。类似与HDFS的namenode的HA

posted @ 2021-01-16 17:23  shangzq  阅读(149)  评论(0编辑  收藏  举报