【RocketMq实战第九篇】-不同场景解决方案

前言

RocketMQ完结篇,主要使用消息队列处理一些业务场景。

正文

顺序消息

顺序消息分为全局顺序消息和部分顺序消息。

全局顺序消息指某个 Topic 下的 所有消息都要保证顺序;

部分顺序消息只要保证每一组消息被顺序消费即可,如订单消息的例子,只要保证 同一个订单 ID 的三个消息能按顺序消费 即可。

全局顺序消息

要保 证全局顺序消息, 需要 先把 Topic 的读写队列数设置为 一,然后 Producer 和 Consumer 的并发设置也要是一 。 简单来说,为了保证整个 Topic 的 全局消息有序,只能消除所有的并发处理,各部分都设置成单线程处理 。 这时 高并发、高吞吐量的功能完全用不上了 。

部分顺序消息

要保证部分消息有序,需要发送端和消费端配合处理 。 在发送端,要做到 把同一业务 ID 的消息发送到同一个 Message Queue ;在消费过程中,要做到从 同一个 Message Queue 读取的消息不被并发处理,这样才能达到部分有序 。

发送端使用 MessageQueueSelector类来控制 把消息发往哪个 Message Queue,如代码:

for (int i= 0; i <100; i++) { 
    int orderid = i ;
    Message msg =new Message ("OrderTopic8”, tags,”KEY" + i ,
    (”Hello RocketMQ "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值