人的知识就好比一个圆圈,圆圈里面是已知的,圆圈外面是未知的。你知道得越多,圆圈也就越大,你不知道的也就越多。

0%

Kafka 保证消息的顺序性

Kafka 只能保证分区级别的消息顺序性。

要实现全局性的消息顺序性,我们或者只定义一个分区,或者通过指定消息的 key,从而将 key 值相同的消息都路由到同一个分区。并且每个分区对应的消费者组里应该只有一个消费者。

同时,我们应该关闭位移自动提交,改为位移手动提交,即设置 enable.auto.commit = false。

不过这样做的话,吞吐量又可能过低,我们可以在消费端内部用内存队列做排队,然后分发给底层不同的 worker 来处理。这样又可能会存在消息丢失。

小礼物走一走,来 Github 关注我