当前位置: 首页 > 知识库问答 >
问题:

分区0的偏移量非常接近于其余分区的偏移量之和

高山
2023-03-14

我有一个由5个分区组成的主题如下:

p[0] offset: 492453047
p[1] offset: 122642552
p[2] offset: 122641146
p[3] offset: 122636144
p[4] offset: 122638175

似乎分区的偏移量非常接近其余分区的偏移量之和。我不知道如何以及为什么。

共有2个答案

秦宁
2023-03-14

制片人

生产者直接将数据发送给作为分区领导者的代理,而不需要任何中间路由层。为了帮助制作者做到这一点,所有Kafka节点都可以回答元数据请求,这些元数据涉及哪些服务器处于活动状态以及主题分区的引线在任何给定时间的何处,以允许制作者适当地引导其请求。

客户端控制将消息发布到哪个分区。这可以随机完成,实现一种随机负载平衡,也可以通过一些语义分区功能完成。我们公开了语义分区的接口,允许用户指定要进行分区的键,并使用该键对分区进行散列(如果需要,还可以选择重写分区函数)。例如,如果选择的键是用户id,那么给定用户的所有数据都将发送到同一分区。这反过来又将允许消费者对其消费进行地区性假设。这种类型的分区被明确设计为允许使用者进行对位置敏感的处理。

乐修远
2023-03-14

对于Kafka,制作人负责为每个记录分配一个分区。

这可以使用partitioner.class设置进行配置。如果您没有更改它,那么默认分区程序的工作原理如下:

  • 如果在记录中指定了分区,请使用它
  • 如果未指定分区,但存在密钥,请根据密钥哈希选择分区
  • 如果没有分区或密钥,请以循环方式选择分区

所以看起来您的密钥不是均匀分布的。要么您有几个不同的键,要么有更多具有特定键的记录。键通常用于确保将具有相同键的记录发送到相同的分区(从而保持有序)。

对分区有一点倾斜并不一定是坏的,这主要取决于您的用例。如果您认为可以更好地对数据进行分区,那么可以实现自己的分区器。

 类似资料:
  • 问题内容: 如何获取格式化为使用的日期? 如果我使用类似的格式 然后它显示 问题答案: 你可以得到区偏移格式一样用 的SimpleDateFormat 中 的Java 7 (),或与 乔达 的 DateTimeFormat ()。

  • 为什么实际主题中的偏移值与同一主题中的偏移值不同?PFB偏移位置以及使用的命令。 我错过了什么?

  • 问题内容: MySQL中有没有一种方法可以计算任何时区的偏移量?例如,要获取时区中的本地时间。我想做的是计算该时区的偏移量,并将该偏移量添加到GMT以获得本地时间。 问题答案: 如果要计算某个时区(例如,美国/温哥华)与UTC的时差,则可以按照以下步骤进行操作: 为此,您首先需要按照以下概述将时区信息加载到mysql中:http : //dev.mysql.com/doc/refman/5.0/e

  • 我们正在使用kafka拓扑转发向kafka主题发送记录。 我们之前使用了一个单独的生产者来发布消息,我们能够获取消息的偏移量和分区。现在我们想用上下文替换它。向前地 如何使用上下文获取Kafka接收器处理器发送的记录的偏移量和分区。向前地

  • 将kafka consumer offset重置为“最早”时,它会保留一些带有偏移量的分区 显示: 为什么分区1也没有0?

  • 我需要打印/记录/存储处理消息的kafka分区和偏移量。我如何才能做到这一点?我使用StreamBridge从制作人那里发送消息,还使用功能性spring kafka streams方法