目录
环境: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.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
runserver.cmd
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 |
以及
MQBrokerException: CODE: 1 DESC: create mapped file failed, server is busy or broker |
解决方法:
查看jdk发现是32位的,换成64位就OK了 (天坑啊!!!!真就是不给提示,全靠排除法!)
问题三:broker闪退、或者根本起不来
解决办法:
c:/user/用户名/store,将这个目录和目录下 所有文件全部删除 ,
由于mq是持久化的保存在磁盘上的,如果不配置默认是在 C盘下 c:/user/用户名/store
在mq/bin目录下执行 start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true 命令即可启动broker
PS:如果你在 broker.conf中配置了 自动创建topic的话就不需要这样启动了,直接启动这俩就好了
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=300000enablePropertyFilter=truetransactionTimeout=3000
transactionCheckMax=5
transactionCheckInterval=2000
如果以上方法都不行,建议换最新版 mq 然后重新配置试试
至此结束