问题标签 [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.
java - Kafka Java 和 DotNet 客户端的默认分区器
Kafka DotNet Producer with Partitioner = Confluent.Kafka.Partitioner.Murmur2Random
- To topic T1 with 30 partition -- key x 生成到 T1 的 partition 12
带有默认分区器的 Kafka Java Producer
- To topic T2 with 30 partition -- key x 生成到 T2 的 partition 13
我假设
- Kafka Java Producer 将 Murmur2Random 作为默认分区器
- 当 DotNet 配置了 Murmur2Random 时,DotNet 客户端和 Java 客户端将为给定键生成相同的主题分区
问:我不明白什么,为什么键没有到达相同的主题分区?
我们有一个用例,其中一些团队使用 Java 和一些 DotNet 客户端,我们需要对 Java 和 DotNet 客户端创建的两个主题 T1 和 T2 执行 KStream.join。
apache-kafka - Kafka 消费者无法读取所有可用分区
我们注意到我们的一个产品主题(6 个分区)存在一个奇怪的问题,其中我们的消费者(dotnet 核心,只有 1 个实例)只能从 3 个分区(0、1、3)读取。这显然会影响应用程序的行为,因为消费者缺少来自其他 3 个分区(2、4、5)的消息。我们能够验证主题配置没有问题。由于消息过期而怀疑存在偏移提交问题,我们删除了该主题中的所有消息(通过将保留期更改为一个小数字),但这并没有解决问题。我们尝试了多次重启消费者应用程序,每次分区分配都保持不变(0,1,3),这让我们相信其他分区有问题。我们正在考虑创建一个新主题的想法。想法,我会把它贴在这里检查我们是否遗漏了什么。任何输入表示赞赏。谢谢。
apache-kafka - KSQLDB Group by 没有 Kafka 分区效果
我需要按 kSQLDB 表中的多个列进行分组,并且我知道 KSQLDB 将自动使用这些列作为 kafka 主题的分区键。但是,我不希望通过这些键对基础主题进行分区
我想创建一个 KSQLDB 表来按客户、类型和年份分组,以消除第一条或第三条记录。但是,一旦我这样做,该主题将被所有 3 个字段划分,并且我失去了对消息排序的控制。我希望分区只对客户起作用,并为每个客户保留消息的顺序。
Failed to prepare statement: Queries only support one of PARTITION BY and GROUP BY
有没有办法将 group by 与分区键分开?
apache-kafka - 是否可以控制 Spring Kafka 消息侦听器在其分配的分区之间切换的频率?
当 Spring Kafka MessageListener 使用来自多个分区的消息时,它会继续处理来自一个分区的消息,直到没有更多消息,然后才继续处理下一个分区。(根据我的观察)
是否可以设置消息/批次的最大数量并告诉侦听器更快地切换到下一个分区而不是稍后?
这将提高公平性并均匀地消耗所有分配的分区。
apache-kafka - 在 Kafka 中具有单个分区时是否存在可伸缩性问题?
如果我有一个在 kafka 主题上发布事件的应用程序,并且我的消费者需要按照发布的顺序读取数据,那么我的主题只能有一个分区,因为 kafka 保证仅在分区内排序。
但是,我读到 kafka 使用分区来提供可伸缩性,即将主题的分区放置在多个代理上。我还读到,分区本身不能拆分。
由于只能在分区内进行排序,所以可伸缩性对我的应用程序来说是个问题吗?有没有办法解决这个问题还是我对Kafka的理解不对?
想象一下,我的应用程序有数千个消费者(每个都在一个组中,所以每个人都消费已发布的事件)。所有人都需要从具有单个分区的单个主题中读取数据。
编辑:我想到的另一件事是:想象一下该主题有 5 个分区,并且所有消费者仍必须阅读正确的顺序。如果发布者没有指定分区 id 或密钥,那么 kafka 会在 5 个分区上循环发布信息,对吗?
如果所有的消费者都在一个组中并且都订阅了主题,那么每个消费者都会读取所有主题的事件,这意味着他们仍然会得到有序的消息,对吧?