产生原因:
MQ服务器集群化或MQ采用分区模型架构来存放消息,每个分区对于一个消费者消费消息。
解决消息一致性问题:
核心思想:消息一定要投递到同一个MQ 且是同一个分区模型且被用一个消费者消费,可以根据消息key对分区模型总数取余来实现。
1 大多数的项目是不需要保证MQ消息顺序一致性问题,只有在一些特定的场景下可能会需要,例如MySQL与Redis数据异步同步数据
2 所有消息需要投递到同一个MQ服务器 且是同一个分区模型且被用一个消费者消费,设定相同的消息key,根据相同的消息key计算hash存放在同一个分区中。
3 如果保证了消息顺序一致性问题,可能会引发消息堆积问题。