RocketMQ -centos環境配置+雙主模式

hosts新增資訊

192。168。101。133 rocketmq-nameserver1 192。168。101。133 rocketmq-master1192。168。101。134 rocketmq-nameserver2192。168。101。134 rocketmq-master2

nameserver可以寫死在配置檔案中

下載rocketmq安裝包到 /usr/local目錄

Apache官網可以下載到原始碼和二進位制包。 解壓縮rocketmy二進位制包 ```

yum install zip unzipunzip rocketmq-all-4。4。0-bin-release。zip ```## 建立rocketmq儲存檔案目錄/usr/local/rocketmq-all-4。4。0-bin-release/store/usr/local/rocketmq-all-4。4。0-bin-release/store/commitlog/usr/local/rocketmq-all-4。4。0-bin-release/store/consumequeue/usr/local/rocketmq-all-4。4。0-bin-release/store/index

RocketMQ配置檔案修改

vim /usr/local/rocketmq-all-4。4。0-bin-release/conf/2m-noslave/broker-a。propertiesvim /usr/local/rocketmq-all-4。4。0-bin-release/conf/2m-noslave/broker-b。properties

配置資訊參考如下:

brokerClusterName=DefaultClusterbrokerName=broker-blistenPort=10911#vmware 這裡要寫固定的ip地址 不然 會報 10909錯brokerIP1=192。168。101。133brokerIP2=rocketmq-master1namesrvAddr=rocketmq-nameserver1:9876brokerId=0deleteWhen=04fileReservedTime=48brokerRole=ASYNC_MASTERflushDiskType=ASYNC_FLUSHautoCreateTopicEnable=truestorePathRootDir=/usr/local/rocketmq-all-4。4。0-bin-release/storestorePathCommitLog=/usr/local/rocketmq-all-4。4。0-bin-release/store/ommitlogstorePathIndex=/usr/local/rocketmq-all-4。4。0-bin-release/store/indexstorePathConsumeQueue=/usr/local/rocketmq-all-4。4。0-bin-release/store/consumequeuemapedFileSizeCommitLog=1073741824mapedFileSizeConsumeQueue=50000000shDiskType=ASYNC_FLUSH

brokerid=0 表示主,其他為從

修改日誌配置檔案【兩臺機器】

/usr/local/rocketmq-all-4。4。0-bin-release 下面建立 logs目錄cd /usr/local/rocketmq-all-4。4。0-bin-release/conf && sed -i ‘s#${user。home}#/usr/local/rocketmqe#g’ *。xml

修改啟動指令碼引數【兩臺機器】

修改 vim /usr/local/rocketmq-all-4。4。0-bin-release/bin/runbroker。sh檔案

JAVA_OPT=“${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m”

啟動NameServer【兩臺機器】

進入:/usr/local/rocketmq-all-4。4。0-bin-release/bin

nohup sh mqnamesrv &

測試,檢視程序 jps

[root@rocketmq-nameserver1 bin]# jps 8072 Jps 5178 NamesrvStartup [1]+ Exit 255 nohup sh mqnamesrv

啟動BrokerServer A 和B

bin 目錄執行下面的語句:

A執行下面的語句:nohup sh mqbroker -c /usr/local/rocketmq-all-4。4。0-bin-release/conf/2m-noslave/broker-a。properties >/dev/null 2>&1 &B執行下面的語句:nohup sh mqbroker -c /usr/local/rocketmq-all-4。4。0-bin-release/conf/2m-noslave/broker-b。properties >/dev/null 2>&1 &

資料檔案清理

cd /usr/local/rocketmq/bin sh mqshutdown broker sh mqshutdown namesrv ——等待停止 rm -rf /usr/local/rocketmq/store mkdir /usr/local/rocketmq/store mkdir /usr/local/rocketmq/store/commitlog mkdir /usr/local/rocketmq/store/consumequeuemkdir /usr/local/rocketmq/store/index ——按照上面步驟重啟NameServer與BrokerServer

到此環境搭建完畢!

其他補充

1、注意vmware要關閉防火牆 ,命令如下:

systemctl stop firewalld。service

2、先啟動nameserver,在啟動Broker,透過jps 或者檢視日誌看是否成功

測試程式碼

RocketMQ -centos環境配置+雙主模式

public class Product { public static void main(String[] args) throws Exception{ //預設的 mqproducer DefaultMQProducer producer = new DefaultMQProducer(“producer”); //生產者組名 producer。setNamesrvAddr(“192。168。101。133:9876;192。168。101。134:9876”); //nameserver 地址 + 埠 //producer。setVipChannelEnabled(false); producer。start(); //開啟producer for (int i=0;i<500;i++){ Message msg = new Message(“TopicTst”,“tag1”, “hello message”。getBytes(RemotingHelper。DEFAULT_CHARSET)); SendResult sendResult = producer。send(msg); System。out。println(sendResult); } producer。shutdown(); }}

Maven 加入rocketmq的相關外掛

org。apache。rocketmq rocketmq-client 4。4。0 <!—— https://mvnrepository。com/artifact/org。apache。rocketmq/rocketmq-remoting ——> org。apache。rocketmq rocketmq-remoting 4。4。0 com。alibaba fastjson 1。1。33