天翼云分布式消息服务RocketMQ-全局有序消息和局部有序消息
文档简介:
有序消息是指消费消息的顺序要同发送消息的顺序一致,在RocketMQ中,主要有两种有序消息,全局有序消息和局部有序消息(又叫普通有序消息、分区有序消息)。
有序消息是指消费消息的顺序要同发送消息的顺序一致,在RocketMQ中,主要有两种有序消息,全局有序消息和局部有序消息(又叫普通有序消息、分区有序消息)。
普通有序消息
有序消息的一种,在正常情况下可以保证完全的顺序消息,但是一旦发生通信异常,Broker重启,由于队列总数发生变化,哈希取模后定位的队列会变化,产生短暂的消息顺序不一致。
如果业务能容忍在集群异常情况(如某个Broker宕机或者重启)下,消息短暂的乱序,使用普通顺序方式比较合适。
严格有序消息
有序消息的一种。无论正常异常情况都能保证顺序,但是牺牲了分布式Failover特性,即Broker集群中只要有一台机器不可用,则整个集群都不可用(或者影响hash值对应队列的使用),服务可用性大大降低。
如果服务器部署为同步双写模式,此缺陷可通过备机自动切换为主避免,不过仍然会存在几分钟的服务不可用。
若业务能容忍短暂乱序,推荐普通有序消费。