windows安装使用RocketMQ常见问题,及springboot整合

win安装rocketmq

  1. 官网下载二进制包:https://rocketmq.apache.org/download
    windows安装使用RocketMQ常见问题,及springboot整合_第1张图片

  2. 解压到不包含中文及空格的目录,配置环境变量

ROCKETMQ_HOME

windows安装使用RocketMQ常见问题,及springboot整合_第2张图片
4. 修改runbroker.cmdrunserver.cmd文件
文件地址在rocketmq安装目录下的bin文件夹中。
如果不修改可能会遇见以下报错信息,错误:找不到或无法加载主类
修改如下图所示,为classpath添加引号,原因是windows上装的jdk路径可能有空格,网上有其他解决方案,但是对我不管用。
windows安装使用RocketMQ常见问题,及springboot整合_第3张图片

windows安装使用RocketMQ常见问题,及springboot整合_第4张图片
5. 先启动name server,再启动broker
在rocketmq的bin目录下打开cmd,输入以下命令

start mqnamesrv.cmd
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

如下图所示:
windows安装使用RocketMQ常见问题,及springboot整合_第5张图片
此时会弹出2个新的窗口,如下图所示,则表示启动成功。不是以集群的方式启动,name server和broker都是单机,只适合用于学习。
windows安装使用RocketMQ常见问题,及springboot整合_第6张图片

验证是否安装成功

继续在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

windows安装使用RocketMQ常见问题,及springboot整合_第7张图片
修改

可能会报错,如下图所示,需要修改mq的jvm内存,改小一点。

具体原因可参考博客
https://blog.csdn.net/niceHack/article/details/129015284

windows安装使用RocketMQ常见问题,及springboot整合_第8张图片
修改文件runbroker.cmd文件:
windows安装使用RocketMQ常见问题,及springboot整合_第9张图片

然后重新启动broker 和 生产者程序,成功后如下图所示:
windows安装使用RocketMQ常见问题,及springboot整合_第10张图片

springboot中使用rocketmq

创建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);
    }
}

常见报错分析

  • 报错是maven依赖版本和安装的mq版本不对,需要改为正确的版本(最常见)
    这个错误通常spring会抛出异常无法创建bean或者nullpoint异常
  • yml中的配置没写对,例如IP或端口
  • rocketmq启动后的控制台不能关闭
  • 上述都没问题的情况下,重启nameserver和broker往往就能解决

参考

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

你可能感兴趣的:(springboot,java-rocketmq,rocketmq,后端)