RocketMQ 问题汇总

1. rocketMQ安装:

    编译完成以后准备启动项目,注意:bin的位置是编译后target目录下,启动命令在这里。

    linux命令目录:你的目录/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin

    windows命令目录:你的目录\rocketmq-3.5.8\target\alibaba-rocketmq-broker\alibaba-rocketmq\bin

    如果嫌层级太深,可以将里面的内容拷贝出去,将第一层内容覆盖掉。

2. linux 下启动后 broker 无法启动:

    Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f85b2000000, 33554432, 0) failed; error='Cannot allocate memory' (errno=12)

    There is insufficient memory for the Java Runtime Environment to continue. Native memory allocation (mmap) failed to map 33554432 bytes for committing reserved memory.

     broker启动时,默认要获取8G内存,如果服务器内存不够,将启动失败。

     需要修改启动脚本runbroker.sh中的启动参数:

     JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn521m"

 

3. linux 下启动后 broker 返回内网地址,外网服务器无法连接:

    本地报错显示Caused by: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to <10.19.73.64:10911> failed

    需要修改启动参数,将broker绑定地址设置为外网地址:

     #进入rocketmq根目录

     cd incubator-rocketmq/distribution/target/apache-rocketmq

     #编写配置文件,并写好配置

     echo "brokerIP1=10.19.73.64的外网IP" > broker.properties

     #启动 mqnamesrv

     nohup sh bin/mqnamesrv &

     #重点:mrbroker 启动时通过 -c 加载配置文件

     nohup sh bin/mqbroker -n ${namesrvIp}:9876 -c /opt/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq/broker.properties &

     参见:https://www.cnblogs.com/smail-bao/p/6905460.html

 

4. RocketMQ报No route info of this topic:异常

    1). 第一种情况:我遇到的情况都是broker没有正常启动,需要保证broker正常启动

    2). 第二种情况:

         linux系统下,在启动mqbroker的时候需要指定autoCreateTopicEnable=true。例如:

         nohup sh mqbroker -n 192.168.180.133:9876 autoCreateTopicEnable=true > ~/logs/rocketmqlogs/broker.log 2>&1 &

         window系统下:

         在window系统下需要在cmd中启动mqbroker才行。命令格式如下:

         mqbroker.exe -n localhost:9876 autoCreateTopicEnable=true

         参见:http://blog.csdn.net/zknxx/article/details/52987216

 

5. rocketmq 安装配置出现NoClassDefFoundError的问题:

    原因是install.bat执行之后

    还需要把D:\project\rocketmq\RocketMQ-3.5.8\RocketMQ-3.5.8\target\alibaba-rocketmq-broker\alibaba-rocketmq

    中生成的编译结果复制到D:\project\rocketmq\RocketMQ-3.5.8\RocketMQ-3.5.8中进行覆盖

    参见:http://blog.csdn.net/ningcaicheng/article/details/77127021

 

 

其他参考:

https://www.jianshu.com/p/ca3a87bed2c2

http://www.bijishequ.com/detail/532581

http://blog.csdn.net/c_yang13/article/details/76836753

 

posted @ 2018-02-09 17:13  Jtianlin  阅读(1082)  评论(0编辑  收藏  举报