在业务场景允许的情况下,优先选择无序消息,或者在业务能变通的情况下,将有序消息转化为无序消息。
无序消息的优点:
- 生产者可以使用多进程、多线程往同一个Topic发送消息,性能更好。
- 消费者可以使用多进程、多线程同时消费,性能较好。
- 可以充分使用集群的Failover特点,无须依赖自动主备切换(切换过程服务会中断),包括:
- 当集群中某一Broker节点故障时,不影响业务消息生产,消息将failover发送到其它节点;
- 当集群中某一Broker节点故障时,不影响其它节点数据消费,故障恢复后即可消费。
- 能动态地扩容。
有序消息的缺点:
- 对于有序消息,当节点故障时,Queue数不会变化,生产与消费都会出现异常,直到故障节点恢复。
- 对于有序消息,需要将所有消息消费完,并且停止客户端,才能扩容。