CentOS7安裝RocketMQ單機
1、下載apache最新rocketmq二進位制壓縮檔案 64位作業系統,建議使用 Linux / Unix / Mac; 64位JDK 1.8+; Maven 3.2.x 如圖:
2、解壓安裝 [[email protected] src]# unzip rocketmq-all-4.2.0-source-release.zip
3、環境變數 nameserver環境變數:vi /etc/profile 新增:ii
4、構建rocketMq [[email protected] src]# cd rocketmq-all-4.2.0 [[email protected] rocketmq-all-4.2.0]# mvn -Prelease-all -DskipTests clean install -U
5、修改設定 啟動broker時會卡頓,因為虛擬機器記憶體和broker配置記憶體跟不上。 設定:給虛擬機器預留1g的記憶體,這樣啟動時不太會卡:虛擬機器設2g,nameserver和broker共用1g
修改前: 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"
修改前: JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
修改後: JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
6、啟動mq cd /usr/local/src/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin 啟動 NameServer
[[email protected] bin]# nohup sh mqnamesrv &
檢視日誌:
啟動 Broker
[[email protected] bin]# nohup sh mqbroker -n 10.164.239.5:9876 &
檢視日誌:
[
‘ 7、啟動成功後警告
bin目錄: vi mqadmin.xml vi mqbroker.xml vi mqnamesrv.xml vi mqfiltersrv.xml 刪除紅色部分:
vi tools.cmd vi tools.sh vi …/benchmark/runclass.sh 刪除紅色部分:
8、傳送和接受訊息 在傳送/接收訊息之前,我們需要告訴客戶名稱伺服器的位置。RocketMQ 提供了多種方法來實現這一點。為了簡單起見,我們使用環境變數NAMESRV_ADDR 傳送訊息: [[email protected] bin]# sh tools.sh org.apache.rocketmq.example.quickstart.Producer
消費訊息: [[email protected] bin]# sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
9、除錯過程中的問題 程式碼是基於springboot的簡單示例 配置正確情況下,啟動後嘗試釋出訊息,仍報遠端mq伺服器topic不存在異常。 檢查linux防火牆:service firewalld status 因centos7預設使用firewalld防火牆,而不是iptables,解除安裝firewalld,再安裝iptables 步驟: 解除安裝firewalld:yum remove firewalld 安裝iptables:yum install iptables-services 檢視防火牆狀態:service iptables status 停止防火牆:service iptables stop 啟動防火牆:service iptables start 設為開機不啟動:systemctl disable iptables.service 設為開機啟動:systemctl enable iptables.service 如果要開啟防火牆,則需要開放特定埠,例:開放3306埠 編輯:vi /etc/sysconfig/iptables 新增配置:-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 重啟防火牆使配置生效:systemctl restart iptables.service 其它相關命令: 檢視防火牆規則:iptables -L 清空防火牆規則:iptables -F 儲存使操作生效:/etc/sysconfig/iptables save 停止防火牆:/etc/sysconfig/iptables stop 10、關閉服務 sh mqshutdown namesrv sh mqshutdown broker 或者通過jps檢視程序,使用kill -9 pid結束程序(有時會看不見程序,但是服務仍在執行,建議用mqshutdown關閉服務)。
java -jar rocketmq-console/rocketmq-console-ng-1.0.0.jar