ROCKETMQ_HOME
4. 修改runbroker.cmd
和runserver.cmd
文件
文件地址在rocketmq安装目录下的bin文件夹中。
如果不修改可能会遇见以下报错信息,错误:找不到或无法加载主类
。
修改如下图所示,为classpath
添加引号,原因是windows上装的jdk路径可能有空格,网上有其他解决方案,但是对我不管用。
5. 先启动name server,再启动broker
在rocketmq的bin目录下打开cmd,输入以下命令
start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
如下图所示:
此时会弹出2个新的窗口,如下图所示,则表示启动成功。不是以集群的方式启动,name server和broker都是单机,只适合用于学习。
继续在bin目录下,启动2个新的cmd,分别输入以下命令,启动2个程序。
启动消费者
set NAMESRV_ADDR=localhost:9876
tools.cmd org.apache.rocketmq.example.quickstart.Consumer
启动生产者
set NAMESRV_ADDR=localhost:9876
tools.cmd org.apache.rocketmq.example.quickstart.Producer
可能会报错,如下图所示,需要修改mq的jvm内存,改小一点。
具体原因可参考博客
https://blog.csdn.net/niceHack/article/details/129015284
然后重新启动broker 和 生产者程序,成功后如下图所示:
创建maven项目,导入依赖。
如果后续报错,极有可能是依赖版本冲突,重新选择一个版本,通常最新的都没问题!!
<dependency>
<groupId>org.apache.rocketmqgroupId>
<artifactId>rocketmq-spring-boot-starterartifactId>
<version>2.2.3version>
dependency>
田间yml配置
#rocketmq配置
rocketmq:
name-server: 127.0.0.1:9876
producer:
group: test-producer-group
写个方法测试一下:
public class MqOrderController {
@Resource
private RocketMQTemplate rocketMQTemplate;
@Test
public void sendMessage() {
rocketMQTemplate.syncSend("my-topic","我是一条消息");
}
}
@Component
@RocketMQMessageListener(topic = "my-topi",consumerGroup = "my-consumer-group")
public class ConsumerListener implements RocketMQListener<String> {
@Override
public void onMessage(String orderInfo) {
System.out.println(orderInfo);
}
}
https://blog.csdn.net/quanzhan_King/article/details/130783862
https://blog.csdn.net/qq_37400096/article/details/126679607
https://rocketmq.apache.org/download/
https://github.com/WENZIZZHENG/spring-boot-demo/tree/master/spring-boot-mq-rocketmq/spring-boot-rocketmq-simple