RocketMQ版本: 4.7.1
阿里云服务器:
- CentOS 8.2 64位操作系统
- CPU 1核
- 内存 2G
注:RocketMQ依赖JDK,安装RocketMQ之前需要先安装JDK
进入官网下载 rocketmq-all-4.7.1-bin-release.zip
安装
本地解压 rocketmq-all-4.7.1-bin-release.zip, 然后上传到 linux, 并重命名为 rocketmq
启动NameServer
sh bin/mqnamesrv &
NameServer启动时内存不足(问题解决)
找到runserver.sh 修改JAVA_OPT
vim /bin/runserver.sh配置
分配内存,我这里分配的128m,
启动Broker
sh bin/mqbroker -n localhost:9876 &
Broker内存不足(问题解决)
找到runbroker.sh 修改JAVA_OPT
vim /bin/runbroker.sh配置
分配内存,我这里分配的128m,
jps查看是否启动,看到如下信息表示启动成功!
模拟消费
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
看到如下信息表示发送成功!
遇到的问题总结
1、内存溢出,根据自己服务器配置设置堆内存
2、配置了合适的内存还是报内存溢出,通过top命令查看发现有几个java进程和mysqld进程,kill掉,重启NameServer跟Broker即可
本地调试没问题,接下来换成公网ip。
修改broker.conf配置文件
增加如下两条配置
namesrvAddr = 你自己的外网ip:9876
brokerIP1 = 你自己的外网ip
重启nameServer
nohup sh bin/mqnamesrv &
查看启动日志:tail -f ~/logs/rocketmqlogs/namesrv.log
重启broker
nohup sh bin/mqbroker -c conf/broker.conf &
查看启动日志:tail -f ~/logs/rocketmqlogs/broker.log
后台发消息报错:
解决方案:https://blog.youkuaiyun.com/qq_43037478/article/details/115702382
后台代码:https://blog.youkuaiyun.com/qq_43037478/article/details/115703530