Linux中部署rocketmq集群和可视化界面

407 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、Linux中部署rocketmq集群

下载地址 rocketmq.apache.org/dowloading/…

1.解压安装包

tar -xvf rocketmq-all-4.2.0-bin-release.tar

image.png

2.将解压文件重新命名

mv rocketmq-all-4.2.0-bin-release  rocketmq-4.2.0

image.png 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个端口,9876109111091210909

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

image.png 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

5EDCBBEE-57DA-4658-8B55-8F2B7308404F.png

 2)修改runbroker.sh

 vi  runbroker.sh

E3203F69-01D6-447E-B946-C868CBB0FA78.png

 然后在其他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.下载

github.com/apache/rock…

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即可

image.png