1、安装和配置
版本: rocketmq-4.9.3
设置环境变量:
1
| ROCKETMQ_HOME = E:\LuckySoft\rocketmq-4.9.3
|
修改JVM内存参数
进入 bin 目录,修改 runserver.cmd 和 runbroker.cmd 中的 JAVA_OPT 参数,根据本地机器配置调整内存大小:
1 2 3 4 5
| # 修改前(默认配置) rem set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g"
# 修改后(本地开发环境) set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx512m"
|
2、启动服务
启动 NameServer
直接运行 bin 目录下的 mqnamesrv.cmd
启动 Broker
打开 cmd 终端,执行以下命令连接到 NameServer:
1
| bin>mqbroker.cmd -n localhost:9876
|
3、Spring Boot 集成代码
引入依赖
1 2 3 4 5
| <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.4</version> </dependency>
|
配置 application.yml
1 2 3 4 5 6
| rocketmq: name-server: 127.0.0.1:9876 producer: group: producer-demo1 consumer: group: consumer-demo1
|
消费者示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package com.nwa.Lis;
import com.nwa.aop.SysLog; import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; import org.apache.rocketmq.spring.core.RocketMQListener; import org.springframework.stereotype.Component;
@RocketMQMessageListener(topic = "rocket-send1", consumerGroup = "${rocketmq.consumer.group}") @Component public class RocketConsumerListener implements RocketMQListener<String> { @Override @SysLog(operationType = "接收", operationName = "接收,并展示", value = "200") public void onMessage(String s) { System.out.println("consumer 收到消息:" + s); } }
|
生产者示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| package com.nwa.controller;
import com.nwa.aop.SysLog; import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController @RequestMapping("/rocket/producer") public class RocketProducerHandler {
@Resource private RocketMQTemplate rocketMQTemplate;
@SysLog(operationType = "用户操作", operationName = "发送,并展示", value = "200") @RequestMapping("/send") public String send() { for (int i = 0; i < 10; i++) { rocketMQTemplate.convertAndSend("rocket-send1", "rocket-testA-" + i); } return "send ok"; } }
|