记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死

目录

环境:Win10  , 不是 linux

首先我遇见的第一个问题是:

No route info of this topic

问题原因:

PS: 64位系统环境下,如果软件在安装时安装路径默认c:\progarmfiles即为64位,默认c:\progarmfiles(x86)即为32位应用程序。带(x86)的文件夹是默认用来安装32位软件的。

第二个问题 sendDefaultImpl call timeout、server is busy or broker

 解决方法:

问题三:broker闪退、或者根本起不来

******** 解决办法 (这个可以解决无法启动broker的问题)*******:

broker.conf 配置参考


环境:Win10  , 不是 linux

网上五花八门的方法几乎都试了一般,最后排除法解决了这些错误,耗时半天多。。因此写下此博客,希望能帮到遇见这些大坑的人

首先我遇见的第一个问题是:

No route info of this topic

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic

(PS:这个坑我专心解决了一个下午,所以忘记截图了。。。)

问题原因:

1、关闭电脑防火墙

2、调整 runbroker.cmd 、 runserver.cmd  运行内存(按需调整,我是测试环境,小点无所谓) 

如下:

runbroker.cmd

记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死_第1张图片

runserver.cmd 

记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死_第2张图片

3、 端口被占用:RocketMQ中的broker默认使用10911和10909端口,如果这些端口已经被其他应用程序占用,就会导致broker启动失败。

4、配置文件错误:RocketMQ中的broker需要通过配置文件来指定一些参数,如果配置文件中存在错误或者缺少必要的参数,就会导致broker启动失败。

5、内存不足:如果系统内存不足,就会导致broker启动失败。

6、磁盘空间不足:如果磁盘空间不足,就会导致broker无法写入数据,从而导致启动失败。

7、网络问题:如果网络连接不稳定或者存在防火墙等问题,就会导致broker无法正常通信,从而导致启动失败。

8、Java版本问题:RocketMQ需要使用Java 8或以上版本,如果使用了低于Java 8的版本,就会导致启动失败。

9、其他问题:还有一些其他的问题,比如操作系统版本不兼容、文件权限不足等,也可能导致broker启动失败。

PS: 64位系统环境下,如果软件在安装时安装路径默认c:\progarmfiles即为64位,默认c:\progarmfiles(x86)即为32位应用程序。带(x86)的文件夹是默认用来安装32位软件的。

我是由于jdk是32位的,改成64位就好了

第二个问题 sendDefaultImpl call timeout、server is busy or broker

RemotingTooMuchRequestException: sendDefaultImpl call timeout

记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死_第3张图片

以及

 MQBrokerException: CODE: 1 DESC: create mapped file failed, server is busy or broker

记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死_第4张图片

 解决方法:

查看jdk发现是32位的,换成64位就OK了  (天坑啊!!!!真就是不给提示,全靠排除法!)

问题三:broker闪退、或者根本起不来

******** 解决办法 (这个可以解决无法启动broker的问题)*******:

c:/user/用户名/store,将这个目录和目录下 所有文件全部删除

记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死_第5张图片

 由于mq是持久化的保存在磁盘上的,如果不配置默认是在 C盘下 c:/user/用户名/store

在mq/bin目录下执行 start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true 命令即可启动broker

                broker启动成功示例:

 

PS:如果你在 broker.conf中配置了 自动创建topic的话就不需要这样启动了,直接启动这俩就好了

记录一下RocketMQ中遇见的 连环大坑!!!差点没把我摔死_第6张图片

broker.conf 配置参考

#所属集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分号分割
namesrvAddr=127.0.0.1:9876
#Broker 对外服务的监听端口
listenPort=10911
#Broker监听的ip
brokerIP1=127.0.0.1

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000

enablePropertyFilter=true

transactionTimeout=3000
transactionCheckMax=5
transactionCheckInterval=2000

如果以上方法都不行,建议换最新版 mq 然后重新配置试试

至此结束

你可能感兴趣的:(各种经验分享,java-rocketmq,rocketmq,java,经验分享)