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

hosts添加信息

192.168.101.133 rocketmq-nameserver1  

192.168.101.133 rocketmq-master1
192.168.101.134 rocketmq-nameserver2
192.168.101.134 rocketmq-master2

nameserver可以寫死在配置文件中

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

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

yum install zip unzip
unzip 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.properties
vim /usr/local/rocketmq-all-4.4.0-bin-release/conf/2m-noslave/broker-b.properties

配置信息參考如下:

brokerClusterName=DefaultCluster
brokerName=broker-b
listenPort=10911
#vmware 這裡要寫固定的ip地址 不然 會報 10909錯
brokerIP1=192.168.101.133
brokerIP2=rocketmq-master1
namesrvAddr=rocketmq-nameserver1:9876
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
autoCreateTopicEnable=true
storePathRootDir=/usr/local/rocketmq-all-4.4.0-bin-release/store

storePathCommitLog=/usr/local/rocketmq-all-4.4.0-bin-release/store/ommitlog
storePathIndex=/usr/local/rocketmq-all-4.4.0-bin-release/store/index
storePathConsumeQueue=/usr/local/rocketmq-all-4.4.0-bin-release/store/consumequeue
mapedFileSizeCommitLog=1073741824
m
apedFileSizeConsumeQueue=50000000
shDiskType=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/consumequeue
mkdir /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的相關插件

<dependency>
\t\t\t<groupid>org.apache.rocketmq/<groupid>
\t\t\t<artifactid>rocketmq-client/<artifactid>
\t\t\t<version>4.4.0/<version>
\t\t/<dependency>
\t\t
\t\t<dependency>
\t\t\t<groupid>org.apache.rocketmq/<groupid>
\t\t\t<artifactid>rocketmq-remoting/<artifactid>
\t\t\t<version>4.4.0/<version>
\t\t/<dependency>
\t\t<dependency>
\t\t\t<groupid>com.alibaba/<groupid>
\t\t\t<artifactid>fastjson/<artifactid>
\t\t\t<version>1.1.33/<version>
\t\t/<dependency>


分享到:


相關文章: