本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、Linux中部署rocketmq集群
下载地址 rocketmq.apache.org/dowloading/…
1.解压安装包
tar -xvf rocketmq-all-4.2.0-bin-release.tar
2.将解压文件重新命名
mv rocketmq-all-4.2.0-bin-release rocketmq-4.2.0
3.rocketmq-4.2.0目录下创建一个logs目录用于存放日志文件
mkdir /aifs01/iam/iam_soft/rocketmq-all-4.2.0/logs
创建store文件夹然后在store文件夹下创建目录commitlog、consumequeue、index用于存放对应内容
mkdir store
cd store
mkdir commitlog consumequeue index
4.修改/aifs01/iam/iam_soft/rocketmq-4.2.0/conf/2m-noslave/broker-a.properties文件,如果没有则新增
vim /aifs01/iam/iam_soft/rocketmq-4.2.0/conf/2m-noslave/broker-a.properties
brokerClusterName=rocketmq-cluster
#broker名字,注意此处不同的配置文件填写的不一样如果在broker-a.properties使用:broker-a,在broker-b.properties使用:broker-b
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
#nameServer地址,分号分割
#namesrvAddr=rocketmq-namesrv1:9876;rocketmq-namesrv2:9876
namesrvAddr=10.10.10.1:6876;10.10.10.2:6876;10.10.10.3:6876
brokerIP1=10.10.10.1
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
#Broker对外服务的监听端口
listenPort=10911
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=120
#存储路径
storePathRootDir=/aifs01/iam/iam_soft/rocketmq-4.2.0/store
#commitLog 存储路径
storePathCommitLog=/aifs01/iam/iam_soft/rocketmq-4.2.0/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/aifs01/iam/iam_soft/rocketmq-4.2.0/store/consumequeue
#消息索引存储路径
storePathIndex=/aifs01/iam/iam_soft/rocketmq-4.2.0/store/index
#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
flushDiskType=ASYNC_FLUSH
5.设置启动端口为6876
注:
rocketmq一般有4个端口,9876,10911,10912,10909
9876是nameserver中的端口,连接主要是这个端口
listenPort是Broker对外服务的监听端口,默认为10911
fastListenPort参数是fastRemotingServer服务组件使用,默认为listenPort - 2,可以通过配置文件修改。
haListenPort参数是HAService服务组件使用,用于Broker的主从同步,默认为listenPort+1,可以通过配置文件修改。
因此,如果我们想在一台服务器部署多个rocketmq,需要修改上述几个端口,可以只修改listenPort端口,但是端 口不能在+1和-2后和默认的冲突,也可以单独给每个参数指定固定的端口 需要在broker-a.properties文件里面添加如下配置:
#Broker对外服务的监听端口
listenPort=10911
#主要用于slave同步master
fastListenPort=10909
#haService中使用
haListenPort=10912
在rocketmq-4.2.0下创建namesrv.properties文件
vim namesrv.properties
然后将如下内容添加进去
listenPort=6876
6.修改日志路径
进入rocketmq-4.2.0/conf目录
cd /aifs01/iam/iam_soft/rocketmq-4.2.0/conf
sed -i 's#${user.home}#/aifs01/iam/iam_soft/rocketmq-4.2.0#g' *.xml
7.修改启动内存(此处需要根据实际情况来确认是否需要修改)
在/aifs01/iam/iam_soft/rocketmq-4.2.0/bin目录下
1)修改runserver.sh
vi runserver.sh
2)修改runbroker.sh
vi runbroker.sh
然后在其他2台服务器重复上述操作,操作完成后进行启动
8.应用启停
启动先启动namesrv.sh 再启动broker.sh 停止相反先停止broker.sh在停止,由于我们需要启动的时候指定端口启动,
所以nameserver启动启动命令如下:
nohup sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqnamesrv -c /aifs01/iam/iam_soft/rocketmq-4.2.0/namesrv.properties > /aifs01/iam/iam_soft/rocketmq-4.2.0/logs/mqnamesrv.log 2>&1 &
然后启动broker
nohup sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqbroker -c /aifs01/iam/iam_soft/rocketmq-4.2.0/conf/2m-noslave/broker-a.properties > /aifs01/iam/iam_soft/rocketmq-4.2.0/logs/mqbroker.log 2>&1 &
停止broker脚本
sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqshutdown namesrv
停止namesrv脚本
sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqshutdown broker
为了方便使用我们在rocketmq-4.2.0目录下创建启动脚本:
vim start.sh
nohup sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqnamesrv -c /aifs01/iam/iam_soft/rocketmq-4.2.0/namesrv.properties > /aifs01/iam/iam_soft/rocketmq-4.2.0/logs/mqnamesrv.log 2>&1 &
sleep 5
snohup sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqbroker -c /aifs01/iam/iam_soft/rocketmq-4.2.0/conf/2m-noslave/broker-a.properties > /aifs01/iam/iam_soft/rocketmq-4.2.0/logs/mqbroker.log 2>&1 &
然后给start.sh执行权限
chmod +x start.sh
创建停止脚本:
vim stop.sh
sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqshutdown namesrv
sh /aifs01/iam/iam_soft/rocketmq-4.2.0/bin/mqshutdown broker
二、rocketmq-console 控制台安装
1.下载
2.使用maven打包命令打成jar包
mvn clean package -Dmaven.test.skip=true
注:也可以直接在下面地址进行下载已经打包好的
链接: https://pan.baidu.com/s/1hH8y6JplXnKM5VTOqqejOg 提取码: ih89
3.修改配置文件application.properties文件
server.contextPath=
server.port=6881
#spring.application.index=true
spring.application.name=rocketmq-console
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
logging.config=classpath:logback.xml
#if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, you can set it in ops page.default localhost:9876
rocketmq.config.namesrvAddr=10.10.10.1:6876;10.10.10.2:6876;10.10.10.3:6876
#if you use rocketmq version < 3.5.8, rocketmq.config.isVIPChannel should be false.default true
rocketmq.config.isVIPChannel=false
#rocketmq-console's data path:dashboard/monitor
rocketmq.config.dataPath=/aifs01/iam/iam_soft/rocketmq-console/data
#set it false if you don't want use dashboard.default true
rocketmq.config.enableDashBoardCollect=true
4.修改jar包里面的logback.Xml文件日志路径
vim rocketmq-console-ng-1.0.0.jar
找到logback.Xml文件然后回车,修改value值为实际路径
<property name="user.home" value="/aifs01/iam/iam_soft/rocketmq-console" />
然后:wq保存退出,然后按:q退出
5.启动jar包
nohup java -jar rocketmq-console-ng-1.0.0.jar --spring.config.name=application >/dev/null 2>&1 &
然后浏览器访问ip:port即可