liangjianf ff9c171834 初始化 2 年之前
..
rocketmq-consume ff9c171834 初始化 2 年之前
rocketmq-produce ff9c171834 初始化 2 年之前
rocketmq-transactional ff9c171834 初始化 2 年之前
README.md ff9c171834 初始化 2 年之前
pom.xml ff9c171834 初始化 2 年之前
rocketmq-demo.iml ff9c171834 初始化 2 年之前

README.md

[TOC]

一、说明

rocketMQ的demo主要模拟两个场景:

  1. 集成Spring-Cloud-Stream消息框架的消息生产和消费

    • rocketmq-produce:消息生产者
    • rocketmq-consume:消息消费者
  2. rocketMQ的事务消息,模拟场景:生成订单记录 -> MQ -> 增加积分

    • rocketmq-transactional

二、环境准备

安装RocketMQ

三、produceconsume demo

1. 修改application.yml配置

修改rocketmq-producerocketmq-consumenamesrv-addr的值为RocketMQ的服务地址

2. 启动consume

运行rocketmq-consumeRocketMqConsumeApplication

消费者有3个组

input:为字符串消息,消费所有消息

input2:为对象消息,只消费tag为tagObj的消息

input3:为spring.messaging对象消息,消费所有消息

3. 启动produce

运行rocketmq-produceRocketMqProduceApplication

运行后会发送5条消息:2条字符串消息,3条对象消息(带tag)

 

四、事务消息demo

1. 修改application.yml配置

修改rocketmq-transactionalnamesrv-addr的值为RocketMQ的服务地址

2. 启动

运行rocketmq-transactionalRocketMqTxApplication

3. 测试

测试的场景主要有3个:

3.1. 正常情况

流程如下:

  1. 订单创建
  2. 发送mq消息
  3. 消费消息增加积分

http://localhost:11002/success

3.2. 发送消息失败

流程如下:

  1. 订单创建
  2. 发送mq消息 -> 失败
  3. 事务回查(等待1分钟左右)
  4. 发送mq消息
  5. 消费消息增加积分

http://localhost:11002/produceError

3.3. 消费消息失败

流程如下:

  1. 订单创建
  2. 发送mq消息
  3. 消费消息增加积分 -> 失败
  4. 重试消费消息 -> 失败
  5. 进入死信队列
  6. 消费死信队列的消息
  7. 记录日志并发出预警

http://localhost:11002/consumeError

注意:消费死信队列topic,必需把topic的perm改成6才能消费,默认是2