centos7安裝單機rocketmq,圖文教程
系統環境
1、作業系統:64位CentOS Linux release 7.2.1511 (Core)
2、jdk版本:1.8.0_121
3、IP地址:192.168.1.210
下載rocketmq
訪問網址:http://rocketmq.apache.org/docs/quick-start/,如下圖:
我們下載編譯好的,這樣無需自己再編譯了,省去很多時間。點選上圖紅色框的連結。
然後就進入網址:http://rocketmq.apache.org/release_notes/release-notes-4.3.2/。下載Binary版本的rocketmq,如下圖:
我寫這篇筆記的時候,最新版本為 rocketmq-all-4.3.2,我們選擇編譯好的zip包,即上圖中紅色框框標記的。
點選後進入真正的下載頁面:
隨便選擇一個即可,進行下載。
拷貝到centos系統
建立/soft目錄
[[email protected] ~]# mkdir /soft
將在windows系統下載好的zip包利用WinSCP工具拷貝到centos系統的/soft目錄
解壓rocketmq
[[email protected] data]# cd /soft
解壓
[[email protected] soft]# unzip rocketmq-all-4.3.2-bin-release.zip
移動
[[email protected] soft]# mv rocketmq-all-4.3.2-bin-release /usr/local/rocketmq
設定rocketmq的環境變數
編輯profile檔案
[[email protected] rocket]# vi /etc/profile
將下面的配置新增到檔案最底部
export PATH=$PATH:/usr/local/rocketmq/bin
export NAMESRV_ADDR=localhost:9876
儲存,並退出。
更新profile檔案
[[email protected] rocket]# source /etc/profile
說明:export NAMESRV_ADDR=localhost:9876是NAMESRV_ADDR環境變數
啟動Name Server
[[email protected] rocket]# mqnamesrv &
啟動Broker
[[email protected] ~]# mqbroker -n localhost:9876 &
會遇到如下問題:
[1] 3361
[[email protected] ~]# Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /root/hs_err_pid3368.log
原因是:bin/ 下的服務啟動指令碼 runserver.sh 、runbroker.sh 中對於記憶體的限制
解決辦法:
[[email protected] ~]# cd /usr/local/rocketmq/bin/
[[email protected] bin]# vi runserver.sh
將JAVA_OPT="${JAVA_OPT} -server -Xms4g -Xmx4g -Xmn2g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
改成如下:
JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m"
[[email protected] bin]# vi runbroker.sh
將JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
改成JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m"
再次啟動
[[email protected] bin]# mqbroker -n localhost:9876 &
會提示:
[[email protected] bin]# The broker[localhost.localdomain, 192.168.1.210:10911] boot success. serializeType=JSON and name server is localhost:9876
表示啟動成功
關閉防火牆
[[email protected] bin]# systemctl stop firewalld.service
[[email protected] bin]# systemctl disable firewalld.service //關閉開機啟動
關閉Name Server和Broker
[[email protected] bin]# mqshutdown broker
[[email protected] bin]# mqshutdown namesrv
示例就不提供了,可參考官網Demo:http://rocketmq.apache.org/docs/simple-example/