内容简介:一个典型的Kafka应用包含:Producer、Kafka集群、Consumer;Kafka集群中又包含Zookeeper集群和若干Broker。Zookeeper主要用于配置管理、leader选举、Consumer发生变化时进行rebalance。
-
Topic : 每条发布到Kafka集群中的消息都有一个类别,这个类别被称为Topic,topic是用于区分消息的 逻辑 概念。
-
Partition:partition是 物理 概念,是Kafka水平扩展和并行化的基础,每个topic包含一个或者多个p artition。
-
Broker :Kafka集群中包含一个或多个服务器,这种服务器就被称为broker。
-
Producer :负责发送消息到 Broker,采用的是 push 模式。producer不会和Zookeeper保持连接,它的元数据是从Broker中获取的,有点类似于Tair中的元数据获取。
-
Consumer :负责从Broker中拉取消息,采用的是 pull 模式。consumer会和Zookeeper保持连接,主要作用有跟踪消费者的偏移量和负责均衡处理。
-
Consumer Group :每个Consumer都属于一个特定的Consumer Group。
Kafka的物理架构如下:
一个典型的Kafka应用包含:Producer、Kafka集群、Consumer;Kafka集群中又包含Zookeeper集群和若干Broker。Zookeeper主要用于配置管理、leader选举、Consumer发生变化时进行rebalance。
逻辑架构如下:
上图中的一个topic有两个 Paritition ,3个生产者,2个消费组,消费组1含有3个consumer,消费组2中含有1个consumer。
对于kafka来说, 消费组和消费组之前并没有任何关联, Paritition 只能由Consumer Group的某个Consumer消费。这就会导致当Consumer的数目大于partition数目时,部分Consumer抢占不到partition。
对于producer在发送消息时,会有一个 Paritition 选择机制来选取 Paritition ,将消息发送到相应 Paritition 。Paritition机制可以通过指定Producer的paritition. class这一参数来指定,该class必须实现kafka.producer.Partitioner接口。这样就可以保证同一个key永远被发送到了同一个partition内。
以上所述就是小编给大家介绍的《Kafka系列 - Kafka架构介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
XML 在线格式化
在线 XML 格式化压缩工具
RGB CMYK 转换工具
RGB CMYK 互转工具