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 或者查看日誌看是否成功
測試代碼
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>
閱讀更多 全棧獨立開發者 的文章