内容简介:一个典型的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架构介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法JavaScript描述
[美] Michael McMillan / 王群锋、杜 欢 / 人民邮电出版社 / 2014-8 / 49.00元
通过本书的学习,读者将能自如地选择最合适的数据结构与算法,并在JavaScript开发中懂得权衡使用。此外,本书也概述了与数据结构与算法相关的JavaScript特性。 本书主要内容如下。 数组和列表:最常用的数据结构。 栈和队列:与列表类似但更复杂的数据结构。 链表:如何通过它们克服数组的不足。 字典:将数据以键-值对的形式存储。 散列:适用于快速查找和检索。......一起来看看 《数据结构与算法JavaScript描述》 这本书的介绍吧!