ITPub博客

首页 > 数据库 > 数据库开发技术 > Kafka 高性能之 Partition 并发和负载均衡分配策略

Kafka 高性能之 Partition 并发和负载均衡分配策略

原创 数据库开发技术 作者:码哥字节 时间:2024-06-11 08:30:00 0 删除 编辑

在这篇文章中,我将深入解析 Kafka 高性能 7 大秘诀之 Topic Partition 分区并发架构设计和分区负载均衡策略。

购买权益

本专栏原价 119,目前活动价 10 元,满 50 人后涨价。购买后除了可以学习知识以外,重点是提供以下服务。

  1. 享受 1 年内的 VIP 沟通交流服务,对于问题的任何疑问,都可以随时与我沟通进行答疑,直到理解为止。
  2. 享受 1 年内未来我的所有付费专栏的 7 折购买优惠。
  3. 享受 1 年内一次面试模拟服务(1 小时)。
  4. 享受 1 年内一次简历修改优化服务。

kafka 架构

在说 Topic patition 分区并发之前,我们先了解下 kafka 架构设计。一个典型的 Kafka 架构包含以下几个重要组件,如图 1 所示。

图 1

  1. Producer(生产者):发送消息的一方,负责发布消息到 Kafka 主题(Topic)。

  2. Consumer(消费者):接受消息的一方,订阅主题并处理消息。Kafka 有 ConsumerGroup 的概念,每个 Consumer 只能消费所分配到的 Partition 的消息,每一个 Partition 只能被一个 ConsumerGroup 中的一个 Consumer 所消费,所以同一个 ConsumerGroup 中 Consumer 的数量如果超过了 Partiton 的数量,将会出现有些 Consumer 分配不到 partition 消费。

  3. Broker(代理):服务代理节点,Kafka 集群中的一台服务器就是一个 broker,可以水平无限扩展,同一个 Topic 的消息可以分布在多个 broker 中。

  4. Topic(主题)与 Partition(分区) :Kafka 中的消息以 Topic 为单位进行划分,生产者将消息发送到特定的 Topic,而消费者负责订阅 Topic 的消息并进行消费。图中 TopicA 有三个 Partiton(TopicA-par0、TopicA-par1、TopicA-par2)

    为了提升整个集群的吞吐量,Topic 在物理上还可以细分多个 Partition,一个 Partition 在磁盘上对应一个文件夹。

  5. Replica(副本):副本,是 Kafka 保证数据高可用的方式,Kafka 同一 Partition 的数据可以在多 Broker 上存在多个副本,通常只有 leader 副本对外提供读写服务,当 leader 副本所在 broker 崩溃或发生网络异常,Kafka 会在 Controller 的管理下会重新选择新的 Leader 副本对外提供读写服务。

  6. ZooKeeper:管理 Kafka 集群的元数据和分布式协调。

Topic 主题

Topic 是 Kafka 中数据的逻辑分类单元,可以理解成一个队列。Broker 是所有队列部署的机器,Producer 将消息发送到特定的 Topic,而 Consumer 则从特定的 Topic 中消费消息,如图 2 所示。

图 2

也就是说 Kafka 的消息组织方式实际上是三级结构:主题-分区-消息。主题下的每条消息只会保存在某一个分区中,而不会在多个分区中被保存多份。Topic、Partition、Broker 的关系如图 3 所示。

图 3

原文作者:码哥跳动;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
拥抱硬核技术和对象,面向人命币编程

注册时间:2019-04-24

  • 博文量
    185
  • 访问量
    77841