最近研究了下Rocketmq消息中间件,在Win10上部署时遇到一些问题,做个记录
部署的是Rocketmq 4.92版本,对应使用的控制台用的1.0版本 下载地址
1.优化内存占用
修改 runserver.cmd
修改前
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改后
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
修改 runbroker.cmd
修改前
set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g"
修改后
set "JAVA_OPT=%JAVA_OPT% -server -Xms256m -Xmx256m"
2.使用命令行启动
可以通过新建命令行的方式启动nameserver,broker和dashboard,这样就可以把启动环境放到一起了
启动nameserver
D:\Library\rocketmq-4.9.2\bin\mqnamesrv.cmd
启动broker的时候,可以设置连接的nameserver以及通过设置配置文件修改broker的名字
D:\Library\rocketmq-4.9.2\bin\mqbroker.cmd -c D:\Library\rocketmq-4.9.2\conf\broker.conf -n localhost:9876
启动dashboard,老版本的rocketmq最好使用低版本的dashboard,老版本需要java1.8启动,默认的端口号是8080,可以通过设置端口为58080来放置端口冲突
"D:\Library\Java\jdk-1.8\bin\java" -jar rocketmq-dashboard-1.0.0.jar --server.port=58080
3.dashboard启动后报java.lang.NullPointerException错误
通过在运维界面配置NameServer的地址可以解决
4.通过主题发消息遇到下面的报错
org.apache.rocketmq.client.exception.MQClientException: Send [3] times, still failed, cost [33]ms, Topic: Asset, BrokersSent: [broker-a, broker-a, broker-a] See http://rocketmq.apache.org/docs/faq/ for further details.
我的问题是由于C盘快满了导致了,腾出空间后问题解决
5.使用RocketMQ Assistant报351问题
使用RocketMQ Assistant连接mq报如下错误
org.apache.rocketmq.client.exception.MQBrokerException: CODE: 3 DESC: request type 351 not supported
For more information, please visit the url, https://rocketmq.apache.org/docs/bestPractice/06FAQ
应该是RocketMQ Assistant只支持5.x,如果连接4.x版本就会报这个错,具体参考这个案例
dashboard各版本下载地址