首页 > 解决方案 > 增加分区后,有没有办法在 Apache Kafka 中保持顺序?

问题描述

我知道 kafka 使用默认的分区策略将消息发送到不同的主题分区。默认策略是 hash(key) % partitions。这意味着以后添加更多分区后,具有相同键的新记录将转到不同的分区,并且顺序丢失。

一种方法是使用自定义策略,我可以从数据库或本地存储中查询数据,如果存在密钥,那么我可以将消息转发到同一个分区。但这会降低吞吐量。

另一种方法是将消息读取到一个新的高度分区的主题,并将该主题用作默认主题。这可能会变得非常复杂,因为我们为事件源系统使用了几个不同的主题,其中我们使用 kafka 流本地状态存储以及命令、结果和事件等的不同主题。

还有其他选择吗?

标签: javaapache-kafka

解决方案


推荐阅读