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>


分享到:


相關文章: