美文网首页
RocketMQ 的OrderMessage demo

RocketMQ 的OrderMessage demo

作者: totohui | 来源:发表于2018-04-27 15:15 被阅读0次

如何保证消息的顺序消费,只要将一组需要顺序消费的消息发送到同一个broker的同一个队列上,并且消费者采用有序Listener即可。

下面的代码,发送十个订单,每个订单有创建,支付,发货状态;

@RequestMapping("/order_mq")

@ResponseBody

public Result oreder_mq() {

String[] tags = new String[] { "createTag", "payTag", "sendTag" };

for (int orderId = 0; orderId < 10; orderId++) {

for (int type = 0; type < 3; type++) {

Message msg = new Message("orderTopic", tags[type % tags.length], orderId + ":" + type, (orderId + ":" + type).getBytes());

sender.sendOrderMessage(orderId, msg);

}

}

return Result.success("Hello,world"); }

MQSender.java

public void sendOrderMessage(int orderId, Message msg) {

log.info("send message:" + msg);

rocketMQTemplate.asyncSendOrderly("orderTopic", msg, orderId + "", null, 3000);

}

MQReceiver.java需要实现RocketMQPushConsumerLifecycleListener,并且注册MessageListenerOrderly

@Service

@RocketMQMessageListener(topic = "orderTopic", consumerGroup = "my-consumer_orderTopic")

public class MQReceiver1 implements RocketMQListener, RocketMQPushConsumerLifecycleListener {

private static Logger log = LoggerFactory.getLogger(MQReceiver1.class);

public void prepareStart(DefaultMQPushConsumer consumer) { consumer.registerMessageListener(new MessageListenerOrderly(){

public ConsumeOrderlyStatus consumeMessage(

List msgs, ConsumeOrderlyContext context) {

try {

log.info(new String(msgs.get(0).getBody(), "UTF-8"));

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return ConsumeOrderlyStatus.SUCCESS;

} }); } 

}

相关文章

  • RocketMQ 的OrderMessage demo

    如何保证消息的顺序消费,只要将一组需要顺序消费的消息发送到同一个broker的同一个队列上,并且消费者采用有序Li...

  • RocketMQ客户端简单封装

    demo: rocketmq-producer.xml rocketmq-consumer.xml 作者:java...

  • rocketmq总目录

    实战 rocketmq最简单的入门demo rocketmq的常用概念,接口和方法 rocketmq的正式部署 高...

  • RocketMQ demo

    解决连接超时问题 我们采用 Docker 部署了 RocketMQ 服务,此时 RocketMQ Broker 暴...

  • Springcloud集成rocketmq全部demo

    https://github.com/fangjian0423/rocketmq-binder-demo

  • rocketmq自测

    1、生产者package com.example.demo.rocketmq; /** @Description:...

  • RocketMQ-demo

    采用的是官网的的一个简单例子 生产者 消费者

  • rocketmq入门的demo

    最简单的demo,编写一个消息监听和消息发送。namesrv,broker,producer,consuer都是一...

  • 程序重启RocketMQ消息重复消费

    最近在调试RocketMQ消息发送与消费的Demo时,发现一个问题:只要重启程序,RocketMQ消息就会重复消费...

  • RocketMQ 消息的类型

    参考资料 阿里云官方英文、最新的Demo和Guidencehttp://rocketmq.apache.org/d...

网友评论

      本文标题:RocketMQ 的OrderMessage demo

      本文链接:https://www.haomeiwen.com/subject/ccnblftx.html