kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?

Posted 四猿外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?相关的知识,希望对你有一定的参考价值。

Kafka 分布式的单位是partition,同一个partition 用一个write ahead log 组织,所以可以保证FIFO 的顺序。不同partition 之间不能保证顺序。但是绝大多数用户都可以通过message key 来定义, 因为同一个key 的message 可以保证只发送到同一个partition。

Kafka 中发送1 条消息的时候,可以指定(topic, partition, key) 3 个参数。

partiton 和key 是可选的。如果你指定了partition,那就是所有消息发往同1个partition,就是有序的。并且在消费端,Kafka 保证,1 个partition 只能被1 个consumer 消费。或者你指定key( 比如order id),具有同1 个key 的所有消息,会发往同1 个partition。

以上是关于kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费?的主要内容,如果未能解决你的问题,请参考以下文章

kafka部署遇到的问题

Linux下Kafka单机安装配置方法(图文)

Kafka深度解析(如何在producer中指定partition)(转)

分布式锁

Kafka单机部署

了解Kafka