【发布时间】:2019-09-26 13:02:15
【问题描述】:
一个普遍的问题。假设一个主题在不同的服务器(代理)上有 3 个 kafka 分区,每个分区有 10 条消息,其时间戳为偏移量(0,1,...,9,更大的数字意味着在分区中停留的时间更短,也意味着是新来的消息)。假设一个分区碰巧在服务器完成后关闭。 Kafka 将关闭分区中的 10 条消息重新平衡到其他分区的策略是什么?
视觉上,我们有
代理 1 分区:|1-0|1-1|1-2|1-3|1-4|1-5|1-6|1-7|1-8|1-9|
经纪人2分区:|2-0|2-1|2-2|2-3|2-4|2-5|2-6|2-7|2-8|2-9|
经纪人3分区:|3-0|3-1|3-2|3-3|3-4|3-5|3-6|3-7|3-8|3-9|
现在如果broker 3完成了,3-0到3-9怎么插入broker 1和broker 2呢?
(我的假设是默认情况下它将随机分布一半并根据代理 3 的时间戳插入,附加到代理 1 和 2 的尾部,也许有什么地方可以通过代码配置行为?)
提前致谢。
【问题讨论】:
-
Kafka 不会将消息重新平衡到不同的分区上,而是将分区重新平衡到代理上。
-
感谢提醒。我会让我的问题更清楚。