问题标签 [kafka-partition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
34 浏览

apache-kafka - 如果我要向其发送消息的分区已满磁盘,Kafka 是否会在同一主题中选择替代分区?

我的主题有 3 个分区(在 3 个不同的代理中)。我想向特定的分区 1 发送消息(添加分区 ID 或在我的消息中指定一个键)。假设分区 1 已满磁盘,是否会为此消息选择替代分区(在本例中为分区 2 或 3)?

0 投票
1 回答
250 浏览

apache-kafka - Kafka 消费者是否从分区中的活动段读取消息?

假设我有一个分区(partition-0),其中包含 4 个已提交且符合压缩条件的段。所以所有这些段都不会有任何重复数据,因为压缩是在所有 4 个段上完成的。

现在,有一个活动段仍未关闭。同时,如果消费者开始从 partition-0 读取数据,它是否也从活动段读取消息?

注意:我的目标是不向消费者提供特定键的重复数据。

0 投票
1 回答
84 浏览

apache-kafka - 在 kafka 分区中压缩的偏移量会发生什么?

假设,我有一个带有 2 个日志段的 partion-0。第一段在偏移量 0、1 和 2 处包含键 v1、v2 和 v3。第二段在偏移量 3、4 和 5 处包含键 v3、v4、v1。

当日志压缩发生时,第一段中偏移量 0 和 2 的键将被删除。

偏移量 0 和 2 会发生什么?它们会变空吗?如果是这样,这个空偏移量会发生什么?

0 投票
1 回答
854 浏览

apache-kafka - 为多个分区消耗 kafka 批处理

我知道 Kafka 可以批量提取事件。我试图理解这种情况:

  • 我有一个主题的 4 个分区
  • 我有 1 个消费者,Kafka 将所有 4 个分区分配给它。
  • 假设 Kafka 客户端从 Kafka 中提取的每批消息都是 5 条消息。

我在这里想要了解的是,如果 1 批次中的事件都来自同一个分区,然后循环到下一个分区批次。或者批次本身是否已经包含来自不同分区的事件?

0 投票
0 回答
67 浏览

apache-kafka - Kafka 自定义分区器,用于跨消费者的统一负载平衡

我有 1 个带有 K 个分区的主题,但是消息的大小不同。假设它们的权重范围为 1 到 10,并且消费者花费相同的时间/资源来处理它们。

我们如何设计一个自定义分区器来将消息分散到 K 个分区上,以便 K 个消费者具有相似的负载?

0 投票
1 回答
198 浏览

linux - Kafka 日志目录中文件的总大小小于它们大小的总和

我正在测试一个 Kafka 生产者应用程序,并注意到 Kafka 日志的磁盘使用情况有些奇怪。在查看某个分区的日志目录的总大小时,当应用程序正在写入 Kafka 时,我看到:

然后我停止我的应用程序,几分钟后我重复上面的命令,得到这个:

问题:为什么ls总数字不代表该目录中所有文件的大小总和?为什么在停止生产者应用程序后几分钟总减少,即使目录中的所有文件保持相同大小?

0 投票
1 回答
423 浏览

apache-kafka - kafka 支持百万分区吗?

如果一个主题有数百万个分区,我们会有什么问题吗?由于我们的业务需求,我们正在考虑是否可以为kafka中的每个用户进行分区。我们拥有数百万用户。任何见解将不胜感激!

0 投票
1 回答
186 浏览

apache-kafka - 消息在 kafka 分区中是如何分布的?

如果我们在 Kafka 中有一个具有 4 个分区的主题。有 4 个发布者在同一主题中发布消息。

所有发布者发布不同数量的消息,例如发布者 1 发布 W 条消息,发布者 2 发布 X 条消息,发布者 3 发布 Y 条消息,发布者4 发布 Z 条消息。

每个分区中有多少条消息?

0 投票
1 回答
362 浏览

apache-kafka - Kafka 代理从集群中移除且重新分配失败后降低主题复制因子

主题复制因子已增加到 45,而集群中可用的 Kafka 代理数量为 40。

这是由于重复的分区重新分配被停止而发生的。

kafka-topics --topic top --zookeeper zoo_url --describe

节目

Partition: 0 Leader: 20464 Replicas: 20464,20765,1882,20870,873,898,20752,16789,17181,20743,20854,20762,894,20459,20851,21070,20757,20766,20763,890,21173,20852,895,21314,20767,883,20467,16787,21071,20750,887,20760,7067,876,20764,891,20768,4880,20769,16788,20756,886,21172,1582,871,16827 Isr: 20464,20765,1882,20870,873,898,20752,16789,17181,20743,20762,894,20459,21070,20757,20766,20763,890,21173,895,21314,20767,883,20467,16787,20750,887,20760,7067,876,20764,891,20768,4880,20769,16788,20756,886,21172,871,16827 ...

一些副本不是集群的一部分。

跑步:

kafka-reassign-partitions --zookeeper zoo_url --topics-to-move-json-file assign.json --generate --broker-list ...

失败并出现以下错误

--broker-list参数输入是在线经纪人的 ID。

如何强制降低主题复制因子?

唯一有效的解决方案是通过运行降低一个分区的复制因子

kafka-reassign-partitions --zookeeper zoo_url --reassignment-json-file /tmp/assign.json --execute

什么时候/tmp/assign.json像下面

{ "partitions": [ { "partition": 0, "replicas": [20743,20762,894,20459,20757,895,20467,20760], "topic": "topic" } ], "version": 1 }

然后重新运行分区分配(生成分配并执行它)

Kafka0.9.0.1作为 Cloudera 的一部分进行部署。

0 投票
1 回答
373 浏览

apache-kafka - Kafka Streams GlobalKTable 主题是否需要与它将加入的 KStream 主题相同数量的分区?

我们想在 Kafka 流应用程序中使用 GlobalKTable。输入主题(KTable/KStream)有 N 个分区,一个 GlobalKTable 将用作流应用程序中的字典。

GlobalKTable 的输入主题是否必须与其他输入主题(KTable/KStream 的来源)具有相同数量的分区?

据我了解,答案是否定的(不受限制,主题也可能有 M 个分区,其中 N > M),因为 GlobalKTable 在流应用程序的每个实例中都已完全加载,并且在 KStream 加入期间不需要共同分区手术。但我需要专家的确认!

谢谢!