安装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,如下图表示双节点部署成功
3、补充:
代码中用到的Topic如果默认没有创建,请分别对两个broker创建对应的topic,否则会出现其中一台宕机后,另一台无法工作。