比较详细的介绍单机部署 RocketMQ
Linux 环境
CentOS 7.6 64位
RocketMQ 4.6.1
JDK 1.8.0_181
Maven 3.6.0
下载
1 | wget http://mirror.bit.edu.cn/apache/rocketmq/4.6.1/rocketmq-all-4.6.1-bin-release.zip |
安装
解压
1 | unzip rocketmq-all-4.6.1-bin-release.zip |
移动目录
给解压出来的文件夹移动个位置,我这里移动到/usr/local/rocketmq
1 | mv rocketmq-all-4.6.1-bin-release /usr/local/rocketmq |
环境变量设置
注意你刚才将文件夹移动到哪儿了,我这里是/usr/local/rocketmq
1 | echo 'export ROCKETMQ_HOME=/usr/local/rocketmq' >> /etc/profile |
使环境变量生效
1 | source /etc/profile |
修改默认启动配置
RocketMQ默认配置要求很高,开始启动前需要先修改这些参数,否则的话,我们很有可能会遇到内存分配或者不够的问题(memory alloc failed):
修改 bin/runserver.sh
1 | JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" |
修改 bin/runbroker.sh
1 | JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m" |
修改 bin/tools.sh
1 | JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m" |
修改 broker 配置
broker的配置文件为conf/broker.conf
,修改内容如下
1 | # 所属集群名字(同一主从下: Master 和 Slave 名称要一致) |
启动
运行 namesrv 节点
执行如下命令
1 | nohup sh mqnamesrv & |
查看log
1 | tail -f ~/logs/rocketmqlogs/namesrv.log |
出现 The Name Server boot success...
表示 namesrv
启动成功
运行 broker 节点
执行如下命令
1 | nohup sh mqbroker & |
查看log
1 | tail -f ~/logs/rocketmqlogs/broker.log |
出现 The broker[%s, 172.30.30.233:10911] boot success...
表示 broker
启动成功,其中 %s
是指broker
的IP地址
测试
测试准备
现在我们进行一下生产者/消费者测试,先声明一下NAMESRV_ADDR
1 | export NAMESRV_ADDR=localhost:9876 |
进入rocketmq
目录
1 | cd /usr/local/rocketmq/ |
测试生产者
1 | sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer |
出现SendResult [sendStatus=SEND_OK, msgId= ...
表示生产者
测试成功
测试消费者
1 | sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer |
出现ConsumeMessageThread_%d Receive New Messages: [MessageExt...
表示消费者
试成功
停止服务
1 | sh mqshutdown broker |