rocketmq集群配置

官网地址:https://rocketmq.apache.org/zh/docs/4.x/deployment/01deploy
参考文档:
https://blog.csdn.net/wangqingjia/article/details/125408142
https://blog.csdn.net/lvxiucai/article/details/104907614

配置说明

使用俩台机子,部署同步刷新集群,slaver和master错开部署,可以防止一台服务器宕机后,集群依然可用

ip broker
192.168.20.202 broker-a
192.168.20.202 broker-b-s
192.168.20.203 broker-b
192.168.20.203 broker-a-s

修改内存

修改bin目录下runserver.sh和runbroker.sh的内存大小,网上有,就不做说明了

配置文件

在conf/2m-2s-sync文件夹中配置

image.png

image.png

在192.168.20.202中配置broker-a和broker-b-s
在192.168.20.203中配置broker-b和broker-a-s

1、broker-a

#下面是自带的,可以不用动
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH

#这个是broker启动端口,一个机子启动多个broker一定要配置下
listenPort=10911
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876

#这个是文件位置,同一机子上启动多个broker一定要配置
storePathRootDir=/root/rocket/store-a
storePathCommitLog=/root/rocket/store-a/commitlog
storePathConsumeQueue=/root/rocket/store-a/consumequeue
storePathIndex=/root/rocket/store-a/index
storeCheckPoint=/root/rocket/store-a/checkpoint
abortFile=/root/rocket/store-a/abort

2、broker-b-s

#下面是自带的,可以不用动
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

#这个是broker启动端口,一个机子启动多个broker一定要配置下
listenPort=10918
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876

#这个是文件位置,同一机子上启动多个broker一定要配置
storePathRootDir=/root/rocket/store-b-s
storePathCommitLog=/root/rocket/store-b-s/commitlog
storePathConsumeQueue=/root/rocket/store-b-s/consumequeue
storePathIndex=/root/rocket/store-b-s/index
storeCheckPoint=/root/rocket/store-b-s/checkpoint
abortFile=/root/rocket/store-b-s/abort

3、broker-b

brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=SYNC_MASTER
flushDiskType=ASYNC_FLUSH


listenPort=10911
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876

storePathRootDir=/root/rocket/store-b
storePathCommitLog=/root/rocket/store-b/commitlog
storePathConsumeQueue=/root/rocket/store-b/consumequeue
storePathIndex=/root/rocket/store-b/index
storeCheckPoint=/root/rocket/store-b/checkpoint
abortFile=/root/rocket/store-b/abort

4、broker-a-s

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH


listenPort=10918
namesrvAddr=192.168.20.202:9876;192.168.20.203:9876


storePathRootDir=/root/rocket/store-a-s
storePathCommitLog=/root/rocket/store-a-s/commitlog
storePathConsumeQueue=/root/rocket/store-a-s/consumequeue
storePathIndex=/root/rocket/store-a-s/index
storeCheckPoint=/root/rocket/store-a-s/checkpoint
abortFile=/root/rocket/store-a-s/abort

启动

1、启动nameserver

分别在俩台服务器上的rocket目录下执行下列命令

nohup sh bin/mqnamesrv &

通过jps命令查看到NamesrvStartup即启动成功,启动成功会占用9876端口


image.png

2、启动broker

1、192.168.20.202启动主服务(broker-a)

nohup sh bin/mqbroker  -c conf/2m-2s-sync/broker-a.properties  &

2、192.168.20.203启动主服务(broker-b)

nohup sh bin/mqbroker  -c conf/2m-2s-sync/broker-b.properties  &

3、192.168.20.202启动从服务(broker-b-s)

nohup sh bin/mqbroker  -c conf/2m-2s-sync/broker-b-s.properties  &

4、192.168.20.203动从服务(broker-a-s)

nohup sh bin/mqbroker  -c conf/2m-2s-sync/broker-a-s.properties  &

通过jps命令查看到BrokerStartup即启动成功


image.png

配置注意事项(一个服务器启动多个broker才会出现问题)

1、启动主服务没有问题,启动从服务器报rocketmq已存在错误

这种就是文件路径一致导致的,只需要在配置文件中将以下配置文件路径设置成不一样即可

storePathRootDir=/root/rocket/store-a-s
storePathCommitLog=/root/rocket/store-a-s/commitlog
storePathConsumeQueue=/root/rocket/store-a-s/consumequeue
storePathIndex=/root/rocket/store-a-s/index
storeCheckPoint=/root/rocket/store-a-s/checkpoint
abortFile=/root/rocket/store-a-s/abort

2、启动从服务器报端口占用问题

将listenPort配置尽量拉开,我发现配置listenPort后会服务会在占用listenPort端口后,自动占用另俩个端口,一个是listenPort+1,一个是listenPort-2。(具体作用参考:https://blog.csdn.net/yucaifu1989/article/details/127983899

举一个列子,broker-a的listenPort配置10911,broker-b-s的listenPort配置10912,broker-a占用三个端口为10909、10911、10912,broker-b-s占用三个端口为10910、10912、10913,那么俩个服务都会争10912,就会报端口占用,服务启动不了。

所以我上面配置的时候listenPort一个配置10911,一个配置了10918,所以端口占用如下


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容