如何选择CTG-MQ的消息模式

2025-04-20 14:39:54

1、在CTG-MQ中,消息模式选择的优先顺序为:无序消息>普通有序消息>严格有序消息。在业务场景允许的情况下,优先选择无序消息,或者在业务能变通的情况下,将有序消息转化为无序消息。

如何选择CTG-MQ的消息模式

2、无序消息的优点是生产者可以使用多进程、多线程往同一个TOPIC发送消费,消费者可以使用多进程、多线程同时消费,性能较好;

如何选择CTG-MQ的消息模式

3、可以充分使用集群的failover特点,无须依赖自动主备切换(切换过期服务中断),可不部署自动切换组件,减少部署复杂度,减少运维难度,能动态地扩容。

如何选择CTG-MQ的消息模式

4、有序消息对于生产者来说,因为要保证顺序,所以一般都是单线程串行发送,生产性能较低。对一个Topic有多个Queue的场景,可以通过程序控制一个生产者发送固定的Queue,增加生产者数,提高性能。

如何选择CTG-MQ的消息模式

5、对于消费者来说,因为要保证顺序,所以一般是单线程串行消费,消费性能较低。对一个Topic有多个Queue的场景,可以通过增加消费者实例数,提高性能,但应用必须考虑消息者实例数量变化,由于负载均衡带来的短时间数据乱序问题。

如何选择CTG-MQ的消息模式

6、对于普通有序消息,当节点故障时,由于Queue数的变化,导致hash值的变化,产生与消费都会出现短暂的消息顺序不一致;对于严格有序消息,当节点故障时,Queue数不会变化,产生与消费都会出现异常,直到故障节点恢复。

如何选择CTG-MQ的消息模式

7、对于普通有序消息,意味着业务能接受短时间消息乱序,所以一般情况下可以在线态扩容;对于严格有序消息,需要将所有消息消费完,并且停止服务,才能扩容。

如何选择CTG-MQ的消息模式

8、有一种场景,同一Topic所有消息必须是有序生产与有碌食撞搁序消费,可以使用多Queue然后在生产消费端做顺序处理,也可以拆分多个Top足毂忍珩ic然后使用单Queue进行处理,但在设计时,应用必须考虑单Queue的处理性能是否能满足。对于单Queue,只要对应的broker故障,则服务中断。

如何选择CTG-MQ的消息模式
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢