暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

rocketmq 双主双备集群搭建

老柴杂货铺 2019-12-11
455

jdk下载地址:

https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz

rocketmq下载地址:

https://archive.apache.org/dist/rocketmq/4.5.1/rocketmq-all-4.5.1-bin-release.zip

tar xzf jdk-8u231-linux-x64.tar.gz

mv -rf jdk1.8.0_231 usr/local

sed -i '/PATH=/a export JAVA_HOME=/usr/local/jdk1.8.0_231' /root/.bash_profile

sed -i '/JAVA/a PATH=$JAVA_HOME/bin:$PATH' /root/.bash_profile

unzip rocketmq-all-4.5.1-bin-release.zip

mv rocketmq-all-4.5.1-bin-release /usr/local/

sed -i '/$JAVA/a export ROCKETMQ_HOME=/usr/local/rocketmq4.5.1' /root/.bash_profile

sed -i '/ROCKETMQ/a PATH=$ROCKETMQ_HOME/bin:$PATH' /root/.bash_profile

source /root/.bash_profile

cd /usr/local/rocketmq4.5.1

两台服务器集群部署(双主双从异步复制2m-2s-async)

创建存储路径

cd /usr/local/rocketmq4.5.1

mkdir -p data/rocketmq/store/{rootdir-a-m,commitlog-a-m,rootdir-b-s,commitlog-b-s}

mkdir -p data/rocketmq/store/{rootdir-b-m,commitlog-b-m,rootdir-a-s,commitlog-a-s}

修改配置文件

cd  /usr/local/rocketmq4.5.1/conf/2m-2s-async

10.147.4.224      角色为:broker-a-master & broker-b-slave

vi broker-a.properties

# 是否允许 Broker 自动创建Topic

autoCreateTopicEnable=true

# 是否允许 Broker 自动创建订阅组

autoCreateSubscriptionGroup=true

#所属集群名字

brokerClusterName=c_RocketMQ

#broker名字,注意此处不同的配置文件填写的不一样

brokerName=node_a

#brokerId 0 表示 Master,>0 表示 Slave

brokerId=0

#Broker role有3种:SYNC MASTER、ASYNC MASTER、SLAVE。关键词SYNC和ASYNC表示Master和Slave之间同步消息的机制,SYNC即同步更新,

#指当Slave和Master消息同步完成后,再返回发送成功的状态。ASYNC即异步更新,master与slave有短暂消息延迟,毫秒级。本次搭建使用

#了异步复制集群模式,线上环境推荐使用同步双写模式,即SYNC_MASTER

brokerRole=ASYNC_MASTER

# 刷盘方式 ASYNC_FLUSH 异步刷盘

flushDiskType=ASYNC_FLUSH

##Broker 对外服务的监听端口

listenPort=10911

#nameserver地址,分号分割

namesrvAddr=10.147.4.152:9876;10.147.4.224:9876

#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数

defaultTopicQueueNums=4

#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭

autoCreateTopicEnable=true

#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭

autoCreateSubscriptionGroup=true

brokerIP1=10.147.4.152

#存储路径

storePathRootDir=/usr/local/rocketmq4.5.1/data/rocketmq/store/rootdir-a-m

storePathCommitLog=/usr/local/rocketmq4.5.1/data/rocketmq/store/commitlog-a-m

# 消费队列存储路径存储路径

#storePathConsumerQueue=/usr/local/rocketmq4.5.1/data/store/consumequeue

#消息索引存储路径

#storePathIndex=/usr/local/rocketmq4.5.1/data/store/index

#checkpoint 文件存储路径

#storeCheckpoint=/usr/local/rocketmq4.5.1/data/store/checkpoint

#abort 文件存储路径

#abortFile=/usr/local/rocketmq4.5.1/data/store/abort

#删除文件时间点,默认凌晨 4点

deleteWhen=04

#文件保留时间,默认 48 小时

fileReservedTime=120

# commitLog每个文件的大小默认1G

mapedFileSizeCommitLog=1073741824

#ConsumeQueue每个文件默认存30W条,根据业务情况调整

mapedFileSizeConsumeQueue=300000

#destroyMapedFileIntervalForcibly=120000

#redeleteHangedFileInterval=120000

#检测物理文件磁盘空间

#diskMaxUsedSpaceRatio=88

vi broker-b-s.properties

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

brokerClusterName=c_RocketMQ

brokerName=node_b

brokerId=1

brokerRole=SLAVE

flushDiskType=ASYNC_FLUSH

listenPort=10921

namesrvAddr=10.147.4.152:9876;10.147.4.224:9876

defaultTopicQueueNums=4

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

brokerIP1=10.147.4.152

storePathRootDir=/usr/local/rocketmq4.5.1/data/rocketmq/store/rootdir-b-s

storePathCommitLog=/usr/local/rocketmq4.5.1/data/rocketmq/store/commitlog-b-s

deleteWhen=04

fileReservedTime=120

mapedFileSizeCommitLog=1073741824

mapedFileSizeConsumeQueue=300000

192.168.1.212       角色:broker-b-master & broker-a-slave

vi broker-b.properties

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

brokerClusterName=c_RocketMQ

brokerName=node_b

brokerId=0

brokerRole=ASYNC_MASTER

flushDiskType=ASYNC_FLUSH

listenPort=10911

namesrvAddr=10.147.4.152:9876;10.147.4.224:9876

defaultTopicQueueNums=4

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

brokerIP1=10.147.4.224

storePathRootDir=/usr/local/rocketmq4.5.1/data/rocketmq/store/rootdir-a-m

storePathCommitLog=/usr/local/rocketmq4.5.1/data/rocketmq/store/commitlog-a-m

deleteWhen=04

fileReservedTime=120

mapedFileSizeCommitLog=1073741824

mapedFileSizeConsumeQueue=300000

vi broker-a-s.properties

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

brokerClusterName=c_RocketMQ

brokerName=node_a

brokerId=1

brokerRole=SLAVE

flushDiskType=ASYNC_FLUSH

listenPort=10921

namesrvAddr=10.147.4.152:9876;10.147.4.224:9876

defaultTopicQueueNums=4

autoCreateTopicEnable=true

autoCreateSubscriptionGroup=true

brokerIP1=10.147.4.224

storePathRootDir=/usr/local/rocketmq4.5.1/data/rocketmq/store/rootdir-a-s

storePathCommitLog=/usr/local/rocketmq4.5.1/data/rocketmq/store/commitlog-a-s

deleteWhen=04

fileReservedTime=120

mapedFileSizeCommitLog=1073741824

mapedFileSizeConsumeQueue=300000

修改日志配置文件(两台一样)

mkdir -p /usr/local/rocketmq4.5.1/logs

cd /usr/local/rocketmq4.5.1/conf

sed -i 's#${user.home}#/usr/local/rocketmq4.5.1#g' *.xml

启动服务

RocketMQ服务需要先启动NameService,再启动BrokerMaster,最后启动BrokerSlave

nohup sh /usr/local/rocketmq4.5.1/bin/mqnamesrv > /usr/local/rocketmq4.5.1/data/rocketmq/store/mqnamesrv.log 2>&1  &

nohup sh /usr/local/rocketmq4.5.1/bin/mqbroker -c /usr/local/rocketmq4.5.1/conf/2m-2s-async/broker-a.properties >/usr/local/rocketmq4.5.1/data/rocketmq/store/broker-a-m.log 2>&1 &

nohup sh /usr/local/rocketmq4.5.1/bin/mqbroker -c /usr/local/rocketmq4.5.1/conf/2m-2s-async/broker-b.properties >/usr/local/rocketmq4.5.1/data/rocketmq/store/broker-b-m.log 2>&1 &

nohup sh /usr/local/rocketmq4.5.1/bin/mqbroker -c /usr/local/rocketmq4.5.1/conf/2m-2s-async/broker-b-s.properties >/usr/local/rocketmq4.5.1/data/rocketmq/store/broker-b-s.log 2>&1 &

nohup sh /usr/local/rocketmq4.5.1/bin/mqbroker -c /usr/local/rocketmq4.5.1/conf/2m-2s-async/broker-a-s.properties >/usr/local/rocketmq4.5.1/data/rocketmq/store/broker-a-s.log 2>&1 &

使用JPS查看一下进程是否有问题

使用clusterList命令来验证一下集群健康状态

命令:

sh mqadmin clusterList -n 10.147.4.224:9876

sh mqadmin topicList -n 10.147.4.224:9876

使用自带模拟测试

export NAMESRV_ADDR=10.147.4.224:9876

模拟Consumer收消息

sh tools.sh org.apache.rocketmq.example.quickstart.Consumer

模拟Producer发消息

sh tools.sh org.apache.rocketmq.example.quickstart.Producer

关闭broker:

sh mqshutdown broker

关闭nameserver:

sh mqshutdown namesrv


文章转载自老柴杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论