1RocketMQ簡介
RocketMQ是一款分布式、隊列模型的消息中間件,具有以下特點:
能夠保證嚴格的消息順序
提供豐富的消息拉取模式
高效的訂閱者水平擴展能力
實時的消息訂閱機制
億級消息堆積能力
官網介紹:https://yq.aliyun.com/articles/624207?utm_content=m_1000012577
2 准備工作
本次安裝選擇在可連外網的本地虛擬機執行第2步,第3步,將編譯好的結果(在SVN安裝介質有)copy到服務器配置一下即可
2.1安裝jdk
https://blog.csdn.net/Shiloh_My/article/details/82911878
https://www.cnblogs.com/pu20065226/p/10730506.html
2.2安裝maven
下載源碼包
wget http://mirror.bit.edu.cn/apache/maven/binaries/apache-maven-3.2.2-bin.tar.gz
tar -zxvf apache-maven-3.2.2-bin.tar.gz
2.3配置環境變量
以root用戶修改/etc/profile,追加
export JAVA_HOME=/usr/local/java/jdk1.8.0_201 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export ROCKETMQ_HOME=/home/ap/testapp/software/rocketmq-all-4.2.0/distribution/target/apache-rocketmq MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1 PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH export MAVEN_HOME PATH
配置生效:
source /etc/profile
2.4配置maven鏡像
注:保證服務器可以連外網
在鏡像連阿里雲
[testapp@k8s-node1 /usr/local/maven/apache-maven-3.6.1/conf]$ pwd /usr/local/maven/apache-maven-3.6.1/conf [testapp@k8s-node1 /usr/local/maven/apache-maven-3.6.1/conf]$ cat settings.xml ...... <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
驗證maven:
3RocketMQ下載編譯
3.1下載rocketmq4.2.0
https://github.com/apache/rocketmq/archive/release-4.2.0.zip下載zip包並上傳
或者wget -P /software https://github.com/apache/rocketmq/archive/release-4.2.0.zip -O rocketmq-all-4.2.0-source-release.zip
Wget命令說明-P表示目錄沒有就創建,-O表示重命名
免編譯版本(本文未用):http://mirror.bit.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-bin-release.zip
3.2編譯
unzip rocketmq-all-4.2.0-source-release.zip
cd rocketmq-all-4.2.0
[testapp@k8s-node1 ~/software/rocketmq-all-4.2.0]$ ll 總用量 64 -rw-r--r-- 1 root root 2917 12月 13 2017 1 drwxr-xr-x 4 root root 46 8月 20 19:38 broker -rw-r--r-- 1 root root 997 12月 13 2017 BUILDING drwxr-xr-x 4 root root 46 8月 20 19:38 client drwxr-xr-x 4 root root 46 8月 20 19:37 common -rw-r--r-- 1 root root 1997 12月 13 2017 CONTRIBUTING.md -rw-r--r-- 1 root root 271 12月 13 2017 DEPENDENCIES drwxr-xr-x 2 root root 34 12月 13 2017 dev drwxr-xr-x 6 root root 157 8月 20 19:39 distribution drwxr-xr-x 4 root root 46 8月 20 19:38 example drwxr-xr-x 4 root root 46 8月 20 19:38 filter drwxr-xr-x 4 root root 46 8月 20 19:38 filtersrv -rw-r--r-- 1 root root 11365 12月 13 2017 LICENSE drwxr-xr-x 4 root root 46 8月 20 19:38 logappender drwxr-xr-x 4 root root 46 8月 20 19:38 namesrv -rw-r--r-- 1 root root 168 12月 13 2017 NOTICE drwxr-xr-x 4 root root 46 8月 20 19:38 openmessaging -rw-r--r-- 1 root root 23353 12月 13 2017 pom.xml -rw-r--r-- 1 root root 1524 12月 13 2017 PULL_REQUEST_TEMPLATE.md -rw-r--r-- 1 root root 2426 12月 13 2017 README.md drwxr-xr-x 4 root root 46 8月 20 19:37 remoting drwxr-xr-x 4 root root 46 8月 20 19:38 srvutil drwxr-xr-x 4 root root 46 8月 20 19:38 store drwxr-xr-x 3 root root 74 12月 13 2017 style drwxr-xr-x 4 root root 167 8月 20 19:37 target drwxr-xr-x 4 root root 46 8月 20 19:38 test drwxr-xr-x 4 root root 46 8月 20 19:38 tools [testapp@k8s-node1 ~/software/rocketmq-all-4.2.0]$
[testapp@k8s-node1 ~/software/rocketmq-all-4.2.0]$ pwd
/home/ap/testapp/software/rocketmq-all-4.2.0
mvn -Prelease-all -DskipTests clean install -U
時間會比較長,要去下載相關依賴包
4安裝步驟
保證2.3 ROCKETMQ_HOME變量以root用戶添加並生效,第4步可以不用root用戶如softwareapp
4.1拷貝編譯后的文件至服務器
4.2 啟動namesrv
nohup sh bin/mqnamesrv &
如果這條命令報錯,請使用 nohup sh bin/mqnamesrv >/dev/null 2>&1 &
tail -f ~/logs/rocketmqlogs/namesrv.log
4.3啟動broker
nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log
5.驗證
在發送/接收消息之前,我們需要告訴客戶名稱服務器的位置。RocketMQ 提供了多種方法來實現這一點。為了簡單起見,我們使用環境變量NAMESRV_ADDR
5.1發送
export NAMESRV_ADDR=localhost:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
5.2 接收
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
6.關閉服務器
sh bin/mqshutdown broker //停止 broker
sh bin/mqshutdown namesrv //停止 nameserver
7.修改內存配置
默認配置太大,top命令下消耗內存太多,可按需求更改
cd /software/rocketmq-all-4.2.0/distribution/target/apache-rocketmq/bin
使用vim xxx.sh命令進行JVM參數配置修改:
將runbroker.sh的第一個JAVA_OPT改成JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
將runserver.sh的第一個JAVA_OPT改成JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx256m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
8.常用命令
查看集群情況 ./mqadmin clusterList -n 192.168.102.84:9876
查看 broker 狀態 ./mqadmin brokerStatus -n 192.168.102.84:9876 -b 192.168.102.84:10911 (注意換成你的 broker 地址)
查看 topic 列表 ./mqadmin topicList -n 192.168.102.84:9876
查看 topic 狀態 ./mqadmin topicStatus -n 192.168.102.84:9876 -t MyTopic (換成你想查詢的 topic)
查看 topic 路由 ./mqadmin topicRoute -n 192.168.102.84:9876 -t MyTopic