前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >rocketmq主从模式搭建

rocketmq主从模式搭建

作者头像
叔牙
发布2023-12-11 13:07:26
1780
发布2023-12-11 13:07:26
举报

微信公众号:PersistentCoder 关注可了解更多的教程。问题或建议,请公众号留言;

内容目录

一、服务结构二、相关版本要求三、服务搭建四、配置alb负载五、配置域名和证书

一、服务结构

二、相关版本要求

1.服务器

服务器类型

ec2 amazon linux2

或者其他linux版本

cpu

2核

可根据需要调整

内存

8G

可根据需要调整

硬盘

128G

可根据需要调整

2.jdk

jdk1.8

3.rocketmq

5.0.0

4.控制台

dashboard1.0.1

三、服务搭建

1.机器初始化

初始化两台机器,忽略。

2.安装jdk
代码语言:javascript
复制
yum install -y java-1.8.0-openjdk-devel


#/etc/profile环境变量
# jdk 8
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.amzn2.0.2.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin


# 保存后,source生效
source /etc/profile
3.安装rocketmq

下载

代码语言:javascript
复制
mkdir -p /usr/local/apache-rocketmq
cd /usr/local/apache-rocketmq
wget https://archive.apache.org/dist/rocketmq/5.0.0/rocketmq-all-5.0.0-bin-release.zip
unzip rocketmq-all-5.0.0-bin-release.zip



 mkdir -p /usr/local/rocketmq/store
 mkdir /usr/local/rocketmq/store/commitlog -p
mkdir /usr/local/rocketmq/store/consumequeue -p
 mkdir /usr/local/rocketmq/store/index -p

修改配置文件

代码语言:javascript
复制
vim /usr/local/apache-rocketmq/conf/2m-2s-async/broker-a.properties

对于master,填入以下内容:

代码语言:javascript
复制
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=rocketmq-nameserver1:9876
brokerIP1=ip
defaultTopicQueueNums=4
#是否允许Broker自动创建 Topic,建议线下开启,线上关闭
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组,建议线下开启,线上关闭
autoCreateSubscriptionGroup=true
listenPort=10911
deleteWhen=04
fileReservedTime=120
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=300000
diskMaxUsedSpaceRatio=88
storePathRootDir=/usr/local/rocketmq/store
storePathCommitLog=/usr/local/rocketmq/store/commitlog
storePathConsumeQueue=/usr/local/rocketmq/store/consumequeue
storePathIndex=/usr/local/rocketmq/store/index
storeCheckpoint=/usr/local/rocketmq/store/checkpoint
abortFile=/usr/local/rocketmq/store/abort
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH

对于slave,填入如下内容:

代码语言:javascript
复制
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
namesrvAddr=rocketmq-nameserver1:9876
brokerIP1=172.31.23.122
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

修改其他配置:

代码语言:javascript
复制
cd /usr/local/apache-rocketmq/conf/
sed -i 's#${user.home}#/usr/local/rocketmq#g' *.xml

在主从两台机器的/etc/hosts中添加以下内容:

代码语言:javascript
复制
内网ip1   rocketmq-nameserver1
内网ip1   rocketmq-master1
内网ip2   rocketmq-slave1

修改nameserver和broker的启动参数,对于2c8g机器,nameserver建议1g,broker建议4g。

nameserver启动脚本/usr/local/apache-rocketmq/bin/runserver.sh

broker启动脚本/usr/local/apache-rocketmq/bin/runbroker.sh

在server1上先启动nameserver:

代码语言:javascript
复制
/usr/local/apache-rocketmq/bin
nohup sh mqnamesrv >/dev/null 2>&1 &

再启动master broker:

代码语言:javascript
复制
cd /usr/local/apache-rocketmq/bin
nohup sh mqbroker -c /usr/local/apache-rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &

最后启动slave broker(同样修改启动参数 jvm 4g):

代码语言:javascript
复制
cd /usr/local/apache-rocketmq/bin
nohup sh mqbroker -c /usr/local/apache-rocketmq/conf/2m-2s-async/broker-a.properties >/dev/null 2>&1 &
4.安装控制台

低版本的控制台不支持账密登录,高版本的控制台需要自己编译打包。

安装maven并配置环境变量:

代码语言:javascript
复制
mkdir /opt/tools/maven
cd /opt/tools/maven
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
tar -zxvf apache-maven-3.8.8-bin.tar.gz
#配置环境变量
vim /etc/profile
# maven 3.8.8
export MAVEN_HOME=/opt/tools/maven/apache-maven-3.8.8
export PATH=${PATH}:${MAVEN_HOME}/bin
#保存后source生效
source /etc/profile

安装git,从github拉取控制台源码:

代码语言:javascript
复制
yum -y install git

拉取dashboard代码:

代码语言:javascript
复制
mkdir -p /usr/local/rocketmq-console/
cd /usr/local/rocketmq-console/
git clone https://github.com/apache/rocketmq-dashboard.git

开启账密登录:

代码语言:javascript
复制
vim /usr/local/rocketmq-console/rocketmq-dashboard/src/main/resources/application.yml


rocketmq:
config:
     loginRequired: true

设置登录账密:

代码语言:javascript
复制
vim /usr/local/rocketmq-console/rocketmq-dashboard/src/main/resources/users.properties
admin=xxxxxx,1

编译打包:

代码语言:javascript
复制
cd /usr/local/rocketmq-console/rocketmq-dashboard
mvn clean package -Dmaven.test.skip=true
# 拷贝到/usr/local/rocketmq-console目录
cp  target/rocketmq-dashboard-1.0.1-SNAPSHOT.jar /usr/local/rocketmq-console/

启动控制台:

代码语言:javascript
复制
cd /usr/local/rocketmq-console
nohup java -jar rocketmq-dashboard-1.0.1-SNAPSHOT.jar --server.port=8080 --rocketmq.config.namesrvAddr=ip1:9876 >/dev/null 2>&1 &

四、配置alb负载

消息能力主要是线上机器内网访问,配置安全组的时候配置内网即可,控制台需要开发人员本地电脑访问,考虑到安全问题,基于alb穿透到内网机器,内网机器不用暴露任何ip和端口到公网。

1.创建目标群组
2.注册目标机器
3.创建alb

创建完成后可以看到详情页有dns信息和对应A记录:

A记录可以直接拿来访问.

五、配置域名和证书

1.配置域名

到域名管理平台配置二级域名解析,配置cname类型:

2.配置证书

这里使用aws免费证书

需要按照aws的要求,将上述截图中的内容到域名管理平台配置cname解析,这里验证域名所属权,如果验证没问题,等5分钟左右,aws会颁发证书,证书状态变成已颁发:

3.配置加密访问

到alb详情页添加侦听器:

配置http协议自动转换成https协议,修改80端口的侦听器:

这样http和https协议都可以访问,并且通过http协议访问会自动转换为https协议。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PersistentCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 内容目录
  • 一、服务结构
  • 二、相关版本要求
    • 1.服务器
      • 2.jdk
        • 3.rocketmq
          • 4.控制台
          • 三、服务搭建
            • 1.机器初始化
              • 2.安装jdk
                • 3.安装rocketmq
                  • 4.安装控制台
                  • 四、配置alb负载
                    • 1.创建目标群组
                      • 2.注册目标机器
                        • 3.创建alb
                        • 五、配置域名和证书
                          • 1.配置域名
                            • 2.配置证书
                              • 3.配置加密访问
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档