Kafka如何在分区增加时保留事件的顺序

时间:2016-09-21 06:12:40

标签: apache-kafka

我想通过 N 修改user_id来创建用户事件的 N 分区,以便处理事件按消费者的顺序发送。

如果我决定 N 不足以处理负载并希望分别增加分区数量和消费者,那该做什么呢?在使用用户事件时我必须保留事件顺序吗?

1 个答案:

答案 0 :(得分:0)

好吧,您可以使用增加的分区计数创建一个新主题,然后将所有事件复制到新主题中。这样你维护排序(相对于给定的user_id,无论如何都不会在原始方案中跨不同的user_id进行排序。)

当然,这可能需要停机时间。仅增加分区计数的天真解决方案显然不会起作用,因为它将改变您的散列计算并导致给定user_id的事件被分割为多个分区(从而失去排序)。增加分区计数的难度是您在最初创建主题时想要仔细考虑分区计数的原因之一。