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

查看所有标签

猜你喜欢:

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

数据结构

数据结构

邓俊辉 / 清华大学出版社 / 2013-9 / 39.00元

《清华大学计算机系列教材:数据结构(C++语言版)(第3版)》按照面向对象程序设计的思想,根据作者多年的教学积累,系统地介绍各类数据结构的功能、表示和实现,对比各类数据结构适用的应用环境;结合实际问题展示算法设计的一般性模式与方法、算法实现的主流技巧,以及算法效率的评判依据和分析方法;以高度概括的体例为线索贯穿全书,并通过对比和类比揭示数据结构与算法的内在联系,帮助读者形成整体性认识。一起来看看 《数据结构》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具