1. RocketMQ介绍
rocketmq是阿里巴巴开源的一款分布式的消息中间件,他源于jms规范但是不遵守jms规范。对于分布式只一点,如果你了用过其他mq并且了解过rocketmq,就知道rocketmq天生就是分布式的,可以说是broker、provider、consumer等各种分布式
2. RocketMQ优点
- 去除对zk的依赖
- 支持异步和同步两种方式刷磁盘
- 单机支持的队列或者topic数量是5w
- 支持消息重试
- 支持严格按照一定的顺序发送消息
- 支持定时发送消息
- 支持根据消息ID来进行查询
- 支持根据某个时间点进行消息的回溯
- 支持对消息服务端的过滤
- 消费并行度:顺序消费 取决于queue数量,乱序消费 取决于consumer数量
3. RocketMQ发送消息和消费消息
(1) 创建父工程
pom.xml如下
1 | java复制代码<?xml version="1.0" encoding="UTF-8"?> |
(2) 创建消息生产者
新建工程MQProducer-demo
pom.xml如下所示
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
修改application.properties文件
1 | properties复制代码server.port=8082 |
新建消息生产者配置类
1 | java复制代码package com.james.mq.producer.config; |
新建消息生产者接口
1 | java复制代码package com.james.mq.producer.controller; |
测试
生产者控制台发送消息:
(3) 创建消息消费者
pom.xml同消息生成者模块
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
修改配置文件
1 | properties复制代码spring.application.name=consumers-demo |
mq消费者配置
1 | java复制代码package com.james.mq.consume.config; |
这个只是初始化操作,实际对消费者对消息处理放在 consumer.registerMessageListener(consumeMsgListenerProcessor); 这个监听类里面了,实际接收消息,处理消息都放在监听类里
1 | java复制代码package com.james.mq.consume.config; |
启动测试
如图,收到生产者消息
本文转载自: 掘金