登录 |  注册
首页 >  中间件 · 框架 >  Kafka基础教程·入门学习笔记 >  Kafka集群架构

Kafka集群架构


在上图中,主题配置为三个分区。 分区1具有两个偏移因子0和1.分区2具有四个偏移因子0,1,2和3.分区3具有一个偏移因子0.副本的id与承载它的服务器的id相同。

假设,如果主题的复制因子设置为3,那么Kafka将创建每个分区的3个相同的副本,并将它们放在集群中以使其可用于其所有操作。 为了平衡集群中的负载,每个代理都存储一个或多个这些分区。 多个生产者和消费者可以同时发布和检索消息。

S.No组件和说明
1

Topics(主题)

属于特定类别的消息流称为主题。 数据存储在主题中。

主题被拆分成分区。 对于每个主题,Kafka保存一个分区的数据。 每个这样的分区包含不可变有序序列的消息。 分区被实现为具有相等大小的一组分段文件。

2

Partition(分区)

主题可能有许多分区,因此它可以处理任意数量的数据。

3

Partition offset(分区偏移)

每个分区消息具有称为的唯一序列标识。

4

Replicas of partition(分区备份)

副本只是一个分区的。 副本从不读取或写入数据。 它们用于防止数据丢失。

5

Brokers(经纪人)

  • 代理是负责维护发布数据的简单系统。 每个代理中的每个主题可以具有零个或多个分区。 假设,如果在一个主题和N个代理中有N个分区,每个代理将有一个分区。

  • 假设在一个主题中有N个分区并且多于N个代理(n + m),则第一个N代理将具有一个分区,并且下一个M代理将不具有用于该特定主题的任何分区。

  • 假设在一个主题中有N个分区并且小于N个代理(n-m),每个代理将在它们之间具有一个或多个分区共享。 由于代理之间的负载分布不相等,不推荐使用此方案。

6

Kafka Cluster(Kafka集群)

Kafka有多个代理被称为Kafka集群。 可以扩展Kafka集群,无需停机。 这些集群用于管理消息数据的持久性和复制。

7

Producers(生产者)

生产者是发送给一个或多个Kafka主题的消息的发布者。 生产者向Kafka经纪人发送数据。 每当生产者将消息发布给代理时,代理只需将消息附加到最后一个段文件。 实际上,该消息将被附加到分区。 生产者还可以向他们选择的分区发送消息。

8

Consumers(消费者)

Consumers从经纪人处读取数据。 消费者订阅一个或多个主题,并通过从代理中提取数据来使用已发布的消息。

9

Leader(领导者)

是负责给定分区的所有读取和写入的节点。 每个分区都有一个服务器充当Leader

10

Follower(追随者)

跟随领导者指令的节点被称为Follower。 如果领导失败,一个追随者将自动成为新的领导者。 跟随者作为正常消费者,拉取消息并更新其自己的数据存储。

看看下面的插图。 它显示Kafka的集群图。

下表描述了上图中显示的每个组件。

S.No组件和说明
1

Broker(代理)

Kafka集群通常由多个代理组成以保持负载平衡。 Kafka代理是无状态的,所以他们使用ZooKeeper来维护它们的集群状态。 一个Kafka代理实例可以每秒处理数十万次读取和写入,每个Broker可以处理TB的消息,而没有性能影响。 Kafka经纪人领导选举可以由ZooKeeper完成。

2

ZooKeeper

ZooKeeper用于管理和协调Kafka代理。 ZooKeeper服务主要用于通知生产者和消费者Kafka系统中存在任何新代理或Kafka系统中代理失败。 根据Zookeeper接收到关于代理的存在或失败的通知,然后产品和消费者采取决定并开始与某些其他代理协调他们的任务。

3

Producers(生产者

生产者将数据推送给经纪人。 当新代理启动时,所有生产者搜索它并自动向该新代理发送消息。 Kafka生产者不等待来自代理的确认,并且发送消息的速度与代理可以处理的一样快。

4

Consumers(消费者

因为Kafka代理是无状态的,这意味着消费者必须通过使用分区偏移来维护已经消耗了多少消息。 如果消费者确认特定的消息偏移,则意味着消费者已经消费了所有先前的消息。 消费者向代理发出异步拉取请求,以具有准备好消耗的字节缓冲区。 消费者可以简单地通过提供偏移值来快退或跳到分区中的任何点。 消费者偏移值由ZooKeeper通知。

<<上一课程
下一课程>>
推荐文章
  • XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。据最新统计, 该系统已调度约100万次,表现优异。新接入应用推荐使用最新版本,因为经过数十个版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的优化和提升,核心功能更加稳定高效.
  • 主题的创建创建主题的更加推荐采用脚本的方式,位置为:./bin/kafka-topics.sh#下面是通过命令指定分区数和副本数./kafka-topics.sh  --zookeeper localhost:2181  --create   --topic testTopic --partitio
  • 首先让我们开始实现配置,然后我们将我们的设置迁移到单节点多代理配置。希望你现在可以在你的机器上安装Java,ZooKeeper和Kafka。在迁移到KafkaClusterSetup之前,首先需要启动ZooKeeper,因为KafkaCluster使用ZooKeeper。启动ZooKeeper打开一
  • Kafka是什么Kafka是由Linkedin公司开发的,它是一个分布式的,支持多分区、多副本,基于Zookeeper的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。Kafka的基本术语消息:Kafka中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。
  • Kafka支持许多当今最好的工业应用。在本章中简要介绍Kafka最为显着的应用。TwitterTwitter是一种在线社交网络服务,提供发送和接收用户推文的平台。注册用户可以阅读和发布tweet,但未注册的用户只能阅读tweets。Twitter使用Storm-Kafka作为其流处理基础架构的一部分
  • Kafka在“org.apache.kafka.tools。"下打包的工具。工具分为系统工具和复制工具。系统工具可以使用运行类脚本从命令行运行系统工具。语法如下-bin/kafka-run-class.sh package.class - - options下面提到一些系统工具-Kafka迁移工具-
学习大纲