RocketMQ服务的双节点部署文本说明

原文链接: https://my.oschina.net/kevinmaple/blog/1932389

安装Rocket 4.2.0需有64位的Java 1.8版本支持,在安装前,请首先安装Java1.8-64bit

服务安装请在Root权限下执行,以避免因权限问题引发的报错

本文背景:

安装RocketMQ的双节点服务,两个Master对应的IP为:192.168.1.66,192.168.1.218

Rocketmq-4.2.0下载地址链接: https://pan.baidu.com/s/1LePdA0H-NnvqDLxPGWR65w 密码: ydfv

一、安装Java

打开Xshell,新建会话输入相应的主机名称和IP并连接。

更新软件源:apt-get update

添加软件源:add-apt-repository ppa:webupd8team/java

安装jdk1.8:apt-get install oracle-java8-installer

执行java -version,检查安装是否成功

二、安装RocketMQ

1、安装sz、rz用于在win7系统上传软件至Ubuntu,命令:apt install lrzsz

2、在系统/usr/local目录下新建rocketmq,上传rocketmq-4.20.zip文件

3、unzip rocketmq-4.20.zip文件

4、mv rocketmq-4.20 rocketmq,转移文件

5、在/usr/local/rocketmq/conf/wm-noslave文件夹下有broker-a.properties和broker-b.properties两个文件

6、vim broker-a.properties文件,进行修改,文本内容如下:

#所属集群名字 
brokerClusterName=rocketmq-cluster 
#broker名字,注意此处不同的配置文件填写的不一样 
brokerName=broker-a | broker-b  #两文档唯一区别
#0 表示 Master,>0 表示 Slave brokerId=0 #nameServer地址,分号分割 
brokerId=0 
#nameServer地址,分号分割 
namesrvAddr=192.168.1.66:9876;192.168.1.218:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数 
defaultTopicQueueNums=4 
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭 
autoCreateTopicEnable=true 
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭 
autoCreateSubscriptionGroup=true 
#Broker 对外服务的监听端口 
listenPort=10911
#删除文件时间点,默认凌晨 4点 
deleteWhen=04 
#文件保留时间,默认 48 小时 
fileReservedTime=120 
#commitLog每个文件的大小默认1G 
mapedFileSizeCommitLog=1073741824 
#ConsumeQueue每个文件默认存30W条,根据业务情况调整 
mapedFileSizeConsumeQueue=300000 
#destroyMapedFileIntervalForcibly=120000 
#redeleteHangedFileInterval=120000 
#检测物理文件磁盘空间 
diskMaxUsedSpaceRatio=88 
#存储路径 
storePathRootDir=/usr/local/rocketmq/store 
#commitLog 存储路径 
storePathCommitLog=/usr/local/rocketmq/store/commitlog 
#消费队列存储路径存储路径 
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue 
#消息索引存储路径 
storePathIndex=/usr/local/rocketmq/store/index 
#checkpoint 文件存储路径 
storeCheckpoint=/usr/local/rocketmq/store/checkpoint 
#abort 文件存储路径 
abortFile=/usr/local/rocketmq/store/abort 
#限制的消息大小 
maxMessageSize=65536 
#flushCommitLogLeastPages=4 
#flushConsumeQueueLeastPages=2 
#flushCommitLogThoroughInterval=10000 
#flushConsumeQueueThoroughInterval=60000 
#Broker 的角色 
#- ASYNC_MASTER 异步复制Master 
#- SYNC_MASTER 同步双写Master 
#- SLAVE 
brokerRole=ASYNC_MASTER 
#刷盘方式 
#- ASYNC_FLUSH 异步刷盘 
#- SYNC_FLUSH 同步刷盘 
flushDiskType=ASYNC_FLUSH 
#checkTransactionMessageEnable=false 
#发消息线程池数量 
#sendMessageThreadPoolNums=128 
#拉消息线程池数量 
#pullMessageThreadPoolNums=128

7、创建存储路径,命令如下:

mkdir /usr/local/rocketmq/store

mkdir /usr/local/rocketmq/store/commitlog

mkdir /usr/local/rocketmq/store/consumequeue

mkdir /usr/local/rocketmq/store/index

8、修改日志配置文件:

mkdir -p /usr/local/rocketmq/logs

cd /usr/local/rocketmq/conf && sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

9、JVM调优(避免配置内存容量大于实际内存而导致服务启动失败) 进入rocketmq/bin文件夹下,进行如下操作:

a、vim /usr/local/rocketmq/bin/runbroker.sh #进行broker调优

b、vim /usr/local/rocketmq/bin/runserver.sh #进行nameServer调优

10、局域网之间文件复制(将66的rocket部署文件同步到218对应目录)

sudo scp -r rocketmq/ [email protected]:/usr/local/

10、启动NameServer(两端分别操作)

cd /usr/local/rocketmq/bin

nohup sh mqnamesrv &

jps--看进程

12、启动broker

在66上执行(启动Broker-a):

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-a.properties >/dev/null 2>&1 &

在218上执行(启动broker-b):

nohup sh mqbroker -c /usr/local/rocketmq/conf/2m-noslave/broker-b.properties >/dev/null 2>&1 &

13、命令补充(在bin目录下执行):

停止broker命令:sh mqshutdown broker

停止nameServer命令:sh mqshutdown namesrv

三、验证

1、在本地安装Tomcat,下载附件中提供的war包(附件链接:链接: https://pan.baidu.com/s/1VThtPMCdAh9OkmH0mixuOA 密码: nmn4),并复制在Tomcat安装目录下webapps下,启动Tomcat,然后在TOMCAT_HOME\webapps\rocketmq-console\WEB-INF\classes目录下,打开config.properties,配置内容如下:

rocketmq.namesrv.addr=192.168.1.66:9876;192.168.1.218:9876

throwDone=true

2、重启Tomcat,访问http://localhost:8080/rocketmq-console/cluster/list.do,如下图表示双节点部署成功

RocketMQ服务的双节点部署文本说明_第1张图片

3、补充:

代码中用到的Topic如果默认没有创建,请分别对两个broker创建对应的topic,否则会出现其中一台宕机后,另一台无法工作。

转载于:https://my.oschina.net/kevinmaple/blog/1932389

你可能感兴趣的:(RocketMQ服务的双节点部署文本说明)