Kafka系列 - Kafka架构介绍

栏目: 后端 · 发布时间: 5年前

内容简介:一个典型的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系列 - Kafka架构介绍

一个典型的Kafka应用包含:Producer、Kafka集群、Consumer;Kafka集群中又包含Zookeeper集群和若干Broker。Zookeeper主要用于配置管理、leader选举、Consumer发生变化时进行rebalance。

逻辑架构如下:

Kafka系列 - Kafka架构介绍

上图中的一个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架构介绍》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

一目了然

一目了然

Robert Hoekman, Jr. / 段江玲 / 机械工业出版社华章公司 / 2012-3-19 / 59.00元

可用性或易用性是软件或Web设计师的重要设计目标之一。本书深入阐述了如何设计出简单易用的基于Web的软件,以帮助读者理解、掌握显性设计的精髓。作者从软件开发初期谈起,一直到软件设计后期,分析诸多案例并论证了自己的见解或设计原则。本书在第1版的基础上进行了重大改进,尤其是在设计思想上,作者在本书中谈到“以用户为中心的设计”、“以任务为中心的设计”以及“以情景为中心的设计”的理念。这种设计理念也将更直......一起来看看 《一目了然》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具