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

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

购买权益

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

  1. 享受 1 年内的 VIP 沟通交流服务,对于问题的任何疑问,都可以随时与我沟通进行答疑,直到理解为止。

  2. 享受 1 年内未来我的所有付费专栏的 7 折购买优惠。

  3. 享受 1 年内一次面试模拟服务(1 小时)。

  4. 享受 1 年内一次简历修改优化服务。

kafka 架构

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

c905f7952188a901fa7614ee3fd43e5e.png

图 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 所示。

50d9a0d1b759798593e2ac1d1029ec5a.png

图 2

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

5fa8bea7afe9181fc17124f0897480f3.png

图 3

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值