RocketMQ-安装部署教程
前期准备
环境准备
Java8安装
Linux系统
安装包
rocketmq-4.2.0.zip
安装
解压缩zip安装包到指定文件夹
1 | unzip rocketmq-all-4.2.0-bin-release.zip -d rocketmq-4,2,0 |
部署
参考mq官方quickstart文档 :http://rocketmq.apache.org/docs/quick-start/
启动Name Server
1 | nohup sh bin/mqnamesrv & |
注:启动过程中可能报错显示内存不足,报错信息如下:
1 | # There is insufficient memory for the Java Runtime Environment to continue. |
需修改bin文件夹下的runserver.sh文件,改成
1 | JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=320m" |
xms:初始化内存 xmx:最大内存 xmn:新生代内存 permsize:永久区 maxPermSize:最大永久区
一般建议是按官方推荐的内存设置,否则可能发挥不出mq的性能。
同理,修改runbroker.sh文件,改成
1 | JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m |
再同理,修改tools.sh文件,改成
1 | JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=128m" |
启动Broker
1 | nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true & |
注:官网上启动Broker用的命令就是nohup sh bin/mqbroker -n localhost:9876 &
,这样启动后在后来运行Producer发送的时候会出现
1 | com.alibaba.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest1 |
autoCreateTopicEnable在broker配置文件里面默认是false,如果在配置文件里面改成true,就可以直接用nohup sh bin/mqbroker -n localhost:9876 &
启动了。
发送&接收信息
在发送/接收消息之前,我们需要告诉客户端服务器的ip。RocketMQ提供了多种实现此目的的方法。为简单起见,我们使用环境变量namesrvaddr
1 | export NAMESRV_ADDR=localhost:9876 |
看见日志飞速刷,就是启动成功了。
关闭服务器
1 | sh bin/mqshutdown broker |
本地测试类
ProducerTest——生产者
1 | public class ProducerTest { |
ConsumerTest——消费者
1 | public class ConsumerTest { |
注:在本地启动的时候,可以会出现这个错误
需要在conf/broker.conf文件里面添加brokerIP1=你的服务器IP,然后启动broker的时候用
1 | sh bin/mqbroker -n localhost:9876 autoCrenohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true -c ~/software/rocketmq-4.2.0/conf/broker.conf & |
看一下broker.log文件
1 | 2018-05-09 19:43:45 INFO main - load exist subscription group, SubscriptionGroupConfig [groupName=CID_ONS-HTTP-PROXY, consumeEnable=true, consumeFromMinEnable=true, consumeBroadcastEnable=true, retryQueueNums=1, retryMaxTimes=16, brokerId=0, whichBrokerWhenConsumeSlowly=1, notifyConsumerIdsChangedEnable=true] |
再看一下nohup sh bin/mqbroker -n localhost:9876 autoCreateTopicEnable=true &
命令启动的broker的log日志
1 | 2018-05-09 19:39:02 INFO main - register broker to name server localhost:9876 OK |
貌似多加载了config文件夹下的几个配置。
真是个深渊巨坑。。。。。。。。。。
END