RocketMQ在Linux中安裝啟動


RocketMQ:

RocketMQ是阿里開源的一款非常優秀中間件產品,脫胎於阿里的另一款隊列技術MetaQ,后捐贈給Apache基金會作為一款孵化技術,僅僅經歷了一年多的時間就成為Apache基金會的頂級項目。

RocketMQ:java語言實現,十萬級數據吞吐量,處理速度ms級,分布式架構,功能強大,擴展性強。

RocketMQ在Linux中安裝:

RocketMQ是基於java開發的,運行使用需要有JDK環境,所以首先要在Linux中安裝JDK(以JDK8為例)。

安裝與RocketMQ對應的JDK之前需要將Linux操作系統默認安裝的OpendJDK刪除:

# 查看
rpm -qa | grep java
# 刪除(把上一個命令看到的所有的jdk文件 用 如下命令刪除)
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.232.b09-0.el7_7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.241-2.6.20.0.el7_7.x86_64
rmp -e --nodeps java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.241-2.6.20.0.el7_7.x86_64

  將默認安裝的OpenedJDK刪除后,導入JDK8的壓縮包:

#1,解壓 jdk
tar -zxvf jdk-8u171-linux-x64.tar.gz
#2,配置環境變量
vim /etc/profile
export JAVA_HOME=/opt/jdk1.8.0_171
export PATH=$PATH:${JAVA_HOME}/bin
#3,重新加載配置
source /etc/profile
#4,查看jdk是否配置成功
java -version

  JDK安裝並且配置完成后,導入對應的RocketMQ壓縮包:

#解壓縮即可
unzip rocketmq-all-4.5.2-bin-release.zip

  RocketMQ啟動:

#步驟1:啟動命名服務器(bin目錄下)
sh mqnamesrv
#步驟2:啟動消息服務器(bin目錄下)
sh mqbroker -n localhost:9876

  運行rockmq時,若出現There is insufficient memory for the Java Runtime Environment,類似報錯信息需要修改bin目錄下的 runbroker.sh、runserver.sh、tools.sh文件內的配置信息即可:

#修改指令(在bin目錄下)
vim runbroker.sh
#將內存配置修改即可
JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g"
#修改后
JAVA_OPT="${JAVA_OPT} -server -Xms256 -Xmx256 -Xmn128"

  測試服務器環境:

#步驟1:配置命名服務器地址
export NAMESRV_ADDR=localhost:9876
#步驟2:啟動生產者程序客戶端(bin目錄下)
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
#啟動后產生大量日志信息(注意該信息是測試程序中自帶的,不具有通用性,僅供學習查閱參考)
#步驟3:啟動消費者程序客戶端(bin目錄下)
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

  遠程調用時(代碼運行)出現RemotingTooMuchRequestException: sendDefaultImpl call timeou錯誤,需要在conf目錄下broker.conf文件中添加如下配置:

#配置自己Linux的ip
brokerIP1 = 192.168.1.1

  修改配置文件后,在mqbroker啟動時,指定配置文件啟動,例如:

#在bin目錄下-n ip -c 配置文件路徑
sh mqbroker -n 192.168.1.1:9876 -c ../conf/broker.conf 

   若還是報錯檢查防火牆是否關閉

# 關閉防火牆
systemctl stop firewalld.service 
# 查看防火牆的狀態
firewall-cmd --state 
# 禁止firewall開機啟動
systemctl disable firewalld.service

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM