架構運維篇(五):Centos7/Linux中安裝RocketMQ

上一篇 架構運維篇(四):Centos7/Linux中Tomcat安裝Https證書實踐
這一篇講一下在Centos7/Linux安裝RocketMQ,MQ的具體應用場景和使用就不再囉嗦了。我在沒有使用過MQ之前聽其他大神提到感覺很高深和複雜,不過有道是“難者不會,會者不難”,那麼想要入門MQ的先從學會安裝部署開始。
RocketMQ

版本說明

  • JDK :jdk1.8.0_172(已安裝)
  • MQ : rocketmq4.3

安裝部署RocketMQ

第一步:下載RocketMQ安裝包

  1. 官網下載
下載地址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip
  1. 其他鏡像下載
下載地址:http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.3.2/rocketmq-all-4.3.2-bin-release.zip
第二步:上傳至服務器

這裏將下載好的rocketmq安裝包放到服務器 software 目錄下(可以參考架構運維篇的前幾章,安裝文件都會放到該目錄下)

[root@localhost software]# unzip rocketmq-all-4.3.2-bin-release.zip //解壓,也可以採用tar 等方式
[root@localhost software]# mv rocketmq-all-4.3.2-bin-release rocket4.3  //這裏進行重命名,名字太長不好維護
[root@localhost software]# rm -f rocketmq-all-4.3.2-bin-release.zip //刪除安裝包,可選
第三步:修改相關配置

如果對rocketmq的配置有詳細查看過就會發現,默認配置是非常耗費內存的,如果服務器資源不是很充足還是需要修改的,不然啓動會報錯。
1、修改runserver.sh 配置文件
到rocketmq的解壓文件 /bin 目錄下,進行如下操作:

[root@localhost bin]# vim runserver.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

也不要設置太小(至少要配置512m),第一次安裝時參考網上其他作者寫的文章這裏配置了256,啓動時是會報錯的,錯誤信息如下所示:

[root@localhost bin]# Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
Java HotSpot(TM) 64-Bit Server VM warning: MaxNewSize (524288k) is equal to or greater than the entire heap (524288k).  A new max generation size of 524224k will be used.
java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(Native Method)
	at sun.nio.ch.Net.bind(Net.java:433)
	at sun.nio.ch.Net.bind(Net.java:425)
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
	at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:127)
......

2、修改runbroker.sh 配置文件
copy一份原來的,再進行修改配置信息:

[root@localhost bin]# vim runbroker.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"

備註:同樣不可設置過低
3、修改tools.sh 配置文件
同樣copy一份原來的,再進行修改配置信息:

[root@localhost bin]# vim tools.sh
#JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn256m -XX:PermSize=128m -XX:MaxPermSize=128m"
第四步:啓動服務

rocketmq在啓動時需要啓動Name Server和Broker兩個服務,按照順序依次啓動。
啓動Name Server:

[root@ localhost bin]# nohup sh mqnamesrv -n localhost:9876 &
[1] 28042
[root@ localhost bin]# Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON

啓動Broker:

[root@localhost bin]# nohup sh mqbroker -n localhost:9876 &
[2] 28082

備註:9876是rocketmq的默認端口

關閉服務

sh mqshutdown namers
sh mqshutdown broker

其實寫到這裏已經算是安裝部署完成了,那麼爲了讓初學者對MQ有更加直觀的體驗,接着搭建監控平臺。

搭建RocketMQ監控平臺

官方有提供基於Spring Boot的RocketMQ web界面監控項目(rocketmq-console),接下來部署上。

第一步:下載項目

GitHub地址:https://github.com/apache/rocketmq-externals.git
如下圖打包下載:
GitHub下載

第二步:修改配置文件

打開rocketmq-console項目中的application.properties文件,修改如下配置:

server.port=89  #端口自己定義
rocketmq.config.namesrvAddr=127.0.0.1:9876  #IP地址可以修改
第三步:rocketmq-console項目打包

打包命令如下:

#進入rocketmq-console目錄,執行命令
mvn clean package -Dmaven.test.skip=true

備註:會編譯生成rocketmq-console-ng-1.0.1.jar,也可以將項目導入的idea裏面進行修改和打包操作。
rocketmq-console打包

第四步:上傳jar到服務器並啓動項目

上傳到服務器後,進入jar包所在目錄執行如下命令:

[root@localhost data]# java -jar rocketmq-console-ng-1.0.1.jar
第五步:測試結果

瀏覽器訪問:http://127.0.0.1:89 ,如下圖所示部署成功:
8.pic.jpg

總結

Centos7/Linux環境搭建RocketMQ會遇到一些坑,這裏給大家先列舉一下:
1、jvm內存溢出
文章上面有提到過如果配置空間過小啓動時會報內存錯誤,參考文中配置即可解決,也可以自己調試合適的空間大小。
2、No route info of this topic, TopicTest 錯誤
項目是用Spring Boot 搭建的,在啓動是報“org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest”錯誤,經排查是啓動broker方式不對。
官網啓動方式和文中一樣,但是還是報錯。

#官網推薦啓動命令
nohup sh bin/mqbroker -n localhost:9876 &

改爲

nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &

貢獻者

更多精彩內容可以關注“IT實戰聯盟”公號哦~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章