rocketmq分布式事务 kafka分布式的情况下,如何保证消息的顺序?

kafka分布式的情况下,如何保证消息的顺序?Kafka分布式的单位是partition,Kafka保证一个partition内的数据是有序的,而partition间的数据不能保证有序性,而多part

kafka分布式的情况下,如何保证消息的顺序?

Kafka分布式的单位是partition,Kafka保证一个partition内的数据是有序的,而partition间的数据不能保证有序性,而多partition的特点使得Kafka可以一定程度上拥有分布式消息传递能力。

在业务上我们需要将需要严格顺序排列的数据放置在一个partition上,同时将可以分布式处理的消息放置到其他partition上以保证高性能。


kafka的一致性为什么不替换成raft?

一:更早的起源时间

kafka是2011 年被捐献给 Apache 基金会,而raft论文是2013年由斯坦福大学发表的《In Search of an Understandable Consensus Algorithm》,kafka在raft之前诞生

二:更少的可容错副本数量。raft当有1/3个节点数目不可用时,服务不可用,kafka中维护的ISR(in-sync-replica),即便副本均不可用,只剩下Leader,也可以对外提供服务

三:更大的数据吞吐量。raft适合强一致性