RocketMQ的安裝配置:配置jdk環境,配置RocketMQ環境,配置集群環境,配置rocketmq-console


RocketMQ的安裝配置

演示虛擬機環境:Centos64-1 (D:\linuxMore\centos6_64)

root / itcast : 固定IP 192.168.52.128

一,配置JDK環境

1,解壓jdk到指定的目錄

tar -xvf jdk-8u171-linux-x64.tar.gz -C /usr/local
cd /usr/local
mv jdk1.8.0_171 jdk1.8

 

2,配置環境變量

  • vi /etc/profile

  • 在末尾行添加

 #set java environment
​
  export JAVA_HOME=/usr/local/jdk1.8
  export PATH=$PATH:${JAVA_HOME}/bin

 

  • source /etc/profile 使用剛才的配置生效,如果不起作用,重啟服務器 reboot

 

二,配置RocketMQ環境

上傳 文件到/usr/local/src下

解壓:

unzip rocketmq-all-4.5.2-bin-release.zip -C /opt
cd /opt
mv  rocketmq-all-4.5.2-bin-release rocketmq

 


啟動nameserver

./mqnamesrv
[root@localhost bin]# ./mqnamesrv
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

./mqbroker -n 192.168.52.128:9876
[root@localhost bin]# ./mqbroker
The broker[localhost.localdomain, 192.168.52.128:10911] boot success. serializeType=JSON

 

如果broker啟動報錯:修改 runbroker.sh文件中的內存參數即可

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

 

 

如果和docker 一起 需要修改配置文件:

conf/broker.conf

brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUS
# 解決和docker 沖突的
brokerIP1=192.168.52.128
namesrvAddr=192.168.52.128:9876

 

 

三,配置集群環境

1) 配置主機名稱(未來就可以根據主機名找到對應的服務器了)

vim /etc/hosts

# nameserver
192.168.52.128 rocketmq-nameserver1
192.168.52.128 rocketmq-nameserver2
# broker
192.168.52.128 rocketmq-master1
192.168.52.128 rocketmq-slave2
192.168.52.128 rocketmq-master2
192.168.52.128 rocketmq-slave1

 

配置完畢后重啟網卡,應用配置(centos6和7的命令不太一樣,如果是7參考原筆記)

#CENTOS6
service network restart
​
#CENTOS7
systemctl retsart network

 

2) 關閉防火牆

#CENTOS6
# 關閉防火牆
service iptables stop firewalld.service 
# 查看防火牆的狀態
service iptables status
# 禁止firewall開機啟動
chkconfig iptables off
​
#CENTOS7
systemctl stop firewalld

 

3) 配置jdk

詳見Linux安裝jdk

4) 配置服務器環境

在同一個虛擬機上配置集群環境:
•rocketmq: 配置broker-a的主和broker-b-s從
​
•rocketmq2:配置broker-b的主和broker-a-s從

 

將rocketmq 解壓至跟目錄 /opt/rocketmq-cluster

# 解壓
unzip rocketmq-all-4.5.2-bin-release.zip -d /opt/rocketmq-cluster
# 修改目錄名稱
mv rocketmq-all-4.5.2-bin-release rocketmq
​
#復制一個出來
cp rocketmq/ -R rocketmq2

 

5) 創建集群服務器的數據存儲目錄

主節點創建四個目錄/ 從節點四個目錄

#配置rocetmq
#a主
mkdir /opt/rocketmq-cluster/rocketmq/store
mkdir /opt/rocketmq-cluster/rocketmq/store/commitlog
mkdir /opt/rocketmq-cluster/rocketmq/store/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq/store/index
mkdir /opt/rocketmq-cluster/rocketmq/store/abortfile
#b從
mkdir /opt/rocketmq-cluster/rocketmq/store-slave
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/commitlog
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/index
mkdir /opt/rocketmq-cluster/rocketmq/store-slave/abortfile
​
#配置rocetmq2
#b主
mkdir /opt/rocketmq-cluster/rocketmq2/store
mkdir /opt/rocketmq-cluster/rocketmq2/store/commitlog
mkdir /opt/rocketmq-cluster/rocketmq2/store/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq2/store/index
mkdir /opt/rocketmq-cluster/rocketmq2/store/abortfile
#a從
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/commitlog
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/consumequeue
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/index
mkdir /opt/rocketmq-cluster/rocketmq2/store-slave/abortfile
注意master與slave如果在同一個虛擬機中部署,需要將存儲目錄區分開

 

6) 修改配置

(不同的節點,應該修改不同的配置,文件夾也應該不一樣)

兩個命名服務器:
192.168.52.128:9876
192.168.52.128:5432
broker集群:
    192.168.52.128:11011    a主
    192.168.52.128:11111    a從
    192.168.52.128:10811    b主
    192.168.52.128:10911    b從

 

修改rocketmq的相關配置

6.1 修改a的master

>cd /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync
>vim  broker-a.proerties  

 

此時broker-a的端口為:11011

#所屬集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽端口
listenPort=11011
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=48
​
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/opt/rocketmq-cluster/rocketmq/store
#commitLog 存儲路徑
storePathCommitLog=/opt/rocketmq-cluster/rocketmq/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq/store/consumequeue
#消息索引存儲路徑
storePathIndex=/opt/rocketmq-cluster/rocketmq/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/opt/rocketmq-cluster/rocketmq/store/checkpoint
#abort 文件存儲路徑
abortFile=/opt/rocketmq-cluster/rocketmq/store/abortfile
​
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步復制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量
#pullMessageThreadPoolNums=128

 

6.2 修改b的slave

>cd /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync
>vim  broker-b-s.proerties  

 

此時broker-b-s從的端口為:10911

#所屬集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽端口
listenPort=10911
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=48
​
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/opt/rocketmq-cluster/rocketmq/store-slave
#commitLog 存儲路徑
storePathCommitLog=/opt/rocketmq-cluster/rocketmq/store-slave/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq/store-slave/consumequeue
#消息索引存儲路徑
storePathIndex=/opt/rocketmq-cluster/rocketmq/store-slave/index
#checkpoint 文件存儲路徑
storeCheckpoint=/opt/rocketmq-cluster/rocketmq/store-slave/checkpoint
#abort 文件存儲路徑
abortFile=/opt/rocketmq-cluster/rocketmq/store-slave/abortfile
​
​
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步復制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SLAVE
#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量
#pullMessageThreadPoolNums=128

 

檢查啟動內存 (nameserver 和broker 均需要修改)

vim /opt/rocketmq-cluster/rocketmq/bin/runbroker.sh
vim /opt/rocketmq-cluster/rocketmq/bin/runserver.sh
​
# 開發環境配置 JVM Configuration
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"
​

 

rocketmq的nameserver默認端口為9876,不用修改。

#

 

修改rocketmq2的相關配置

6.3 修改b的master

>cd /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync
>vim  broker-b.proerties  

 

此時broker-b的端口為:10811

#所屬集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-b
#0 表示 Master,>0 表示 Slave
brokerId=0
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽端口
listenPort=10811
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=48
​
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/opt/rocketmq-cluster/rocketmq2/store
#commitLog 存儲路徑
storePathCommitLog=/opt/rocketmq-cluster/rocketmq2/store/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq2/store/consumequeue
#消息索引存儲路徑
storePathIndex=/opt/rocketmq-cluster/rocketmq2/store/index
#checkpoint 文件存儲路徑
storeCheckpoint=/opt/rocketmq-cluster/rocketmq2/store/checkpoint
#abort 文件存儲路徑
abortFile=/opt/rocketmq-cluster/rocketmq2/store/abortfile
​
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步復制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SYNC_MASTER
#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量
#pullMessageThreadPoolNums=128

 

6.4 修改b的slave

>cd /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync
>vim  broker-a-s.proerties  

 

此時broker-a-s從的端口為:11111

#所屬集群名字
brokerClusterName=rocketmq-cluster
#broker名字,注意此處不同的配置文件填寫的不一樣
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分號分割
namesrvAddr=rocketmq-nameserver1:9876;rocketmq-nameserver2:5432
#在發送消息時,自動創建服務器不存在的topic,默認創建的隊列數
defaultTopicQueueNums=4
#是否允許 Broker 自動創建Topic,建議線下開啟,線上關閉
autoCreateTopicEnable=true
#是否允許 Broker 自動創建訂閱組,建議線下開啟,線上關閉
autoCreateSubscriptionGroup=true
#Broker 對外服務的監聽端口
listenPort=11111
#刪除文件時間點,默認凌晨 4點
deleteWhen=04
#文件保留時間,默認 48 小時
fileReservedTime=48
​
#commitLog每個文件的大小默認1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每個文件默認存30W條,根據業務情況調整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#檢測物理文件磁盤空間
diskMaxUsedSpaceRatio=88
#存儲路徑
storePathRootDir=/opt/rocketmq-cluster/rocketmq2/store-slave
#commitLog 存儲路徑
storePathCommitLog=/opt/rocketmq-cluster/rocketmq2/store-slave/commitlog
#消費隊列存儲路徑存儲路徑
storePathConsumeQueue=/opt/rocketmq-cluster/rocketmq2/store-slave/consumequeue
#消息索引存儲路徑
storePathIndex=/opt/rocketmq-cluster/rocketmq2/store-slave/index
#checkpoint 文件存儲路徑
storeCheckpoint=/opt/rocketmq-cluster/rocketmq2/store-slave/checkpoint
#abort 文件存儲路徑
abortFile=/opt/rocketmq-cluster/rocketmq2/store-slave/abortfile
​
​
#限制的消息大小
maxMessageSize=65536
#flushCommitLogLeastPages=4
#flushConsumeQueueLeastPages=2
#flushCommitLogThoroughInterval=10000
#flushConsumeQueueThoroughInterval=60000
#Broker 的角色
#- ASYNC_MASTER 異步復制Master
#- SYNC_MASTER 同步雙寫Master
#- SLAVE
brokerRole=SLAVE
#刷盤方式
#- ASYNC_FLUSH 異步刷盤
#- SYNC_FLUSH 同步刷盤
flushDiskType=SYNC_FLUSH
#checkTransactionMessageEnable=false
#發消息線程池數量
#sendMessageThreadPoolNums=128
#拉消息線程池數量
#pullMessageThreadPoolNums=128

 

檢查啟動內存 (nameserver 和broker 均需要修改)

vim /opt/rocketmq-cluster/rocketmq2/bin/runbroker.sh
vim /opt/rocketmq-cluster/rocketmq2/bin/runserver.sh
​
# 開發環境配置 JVM Configuration
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m"

 


 

修改rocketmq2的nameserver 的端口 為5432:

conf目錄下新增:
vi namesrv.properties
添加內容為:
listenPort=5432
 

 

先啟動nameserver:

# 進入/opt/rocketmq-cluster/rocketmq/bin目錄
nohup ./mqnamesrv &
​
# 進入/opt/rocketmq-cluster/rocketmq2/bin目錄
nohup ./mqnamesrv -c ../conf/namesrv.properties &
再啟動brokerserver:

# 進入/opt/rocketmq-cluster/rocketmq/bin目錄
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a.properties &
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b-s.properties &
​
# 進入/opt/rocketmq-cluster/rocketmq2/bin目錄
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-b.properties &
nohup ./mqbroker -c ../conf/2m-2s-sync/broker-a-s.properties &

 

 

nohup和&的區別
& : 指在后台運行

nohup : 不掛斷的運行,注意並沒有后台運行的功能,,就是指,用nohup運行命令可以使命令永久的執行下去,和用戶終端沒有關系,例如我們斷開SSH連接都不會影響他的運行,注意了nohup沒有后台運行的意思;&才是后台運行

 

集群啟動腳本:rocketmq-cluster-start.sh

#!/bin/bash
#啟動nameserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqnamesrv &
sh /opt/rocketmq-cluster/rocketmq2/bin/mqnamesrv -c /opt/rocketmq-cluster/rocketmq2/conf/namesrv.properties &
​
#啟動brokerserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync/broker-a.properties &
sh /opt/rocketmq-cluster/rocketmq/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq/conf/2m-2s-sync/broker-b-s.properties &
sh /opt/rocketmq-cluster/rocketmq2/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync/broker-b.properties &
sh /opt/rocketmq-cluster/rocketmq2/bin/mqbroker -c /opt/rocketmq-cluster/rocketmq2/conf/2m-2s-sync/broker-a-s.properties &

 

集群啟動腳本:rocketmq-cluster-stop.sh

#!/bin/bash
#關閉nameserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqshutdown namesrv &
​
#關閉brokerserver
sh /opt/rocketmq-cluster/rocketmq/bin/mqshutdown broker &

 

 

四,配置rocketmq-console

進入/opt/rocketmq-cluster/rocketmq-console目錄下:

rocketmq-console-2.0.0.jar  為打包好的 springboot應用程序
application.properties 為外部配置文件,根據自己的需求進行修改
執行如下命令啟動即可:
java -jar rocketmq-console-2.0.0.jar --spring.config.location=application.properties

 



已做成腳本:直接啟動./start.sh即可

 


免責聲明!

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



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