RocketMQ 4.7同步复制,两主两从,ACL认证,console搭建

1. 配置环境

主机IP服务
192.168.100.122a-m
192.168.100.123a-s
192.168.100.124namesrv console
192.168.100.125b-m
192.168.100.126b-s
192.168.100.127namesrv

系统环境:CentosOS 7.6

2. 开始配置

java环境准备

yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel

2.1 下载配置文件

在所有主机上都下载好rocketmq的二进制文件

wget https://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.7.0/rocketmq-all-4.7.0-bin-release.zip -O /usr/local/rocketmq-all-4.7.0-bin-release.zip
cd /usr/local
unzip rocketmq-all-4.7.0-bin-release.zip
ln -sv rocketmq-all-4.7.0-bin-release rocketmq
cd /usr/local/rocketmq/conf/2m-2s-sync
useradd -s /sbin/nologin rocketmq
chown -R rocketmq.rocketmq /usr/local/rocketmq/*

2.2 broker配置文件

2.2.1 a-m

在192.168.100.122上修改配置文件
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER

# acl权限
aclEnable=true

#刷盘方式
#- ASYNC_FLUSH  异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH

namesrvAddr=192.168.100.124:9876;192.168.100.127:9876;
2.2.2 a-s

在192.168.100.123上修改配置文件
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE

# acl权限
aclEnable=true

#刷盘方式
#- ASYNC_FLUSH  异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH

namesrvAddr=192.168.100.124:9876;192.168.100.127:9876;
2.2.3 b-m

在192.168.100.125上修改配置文件
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties

brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
deleteWhen=04
fileReservedTime=48

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SYNC_MASTER

# acl权限
aclEnable=true

#刷盘方式
#- ASYNC_FLUSH  异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH

namesrvAddr=192.168.100.124:9876;192.168.100.127:9876;
2.2.4 b-s

在192.168.100.126上修改配置文件
vim /usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties

brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
deleteWhen=04
fileReservedTime=48

#Broker 的角色
#- ASYNC_MASTER 异步复制Master
#- SYNC_MASTER 同步双写Master
#- SLAVE
brokerRole=SLAVE

# acl权限
aclEnable=true

#刷盘方式
#- ASYNC_FLUSH  异步刷盘
#- SYNC_FLUSH 同步刷盘
flushDiskType=SYNC_FLUSH

namesrvAddr=192.168.100.124:9876;192.168.100.127:9876;
2.2.5 ACL规则配置

注意:配置rocketmq支持acl规则,需要在broker配置文件里开启

# acl权限
aclEnable=true

acl配置文件:/usr/local/rocketmq/conf/plain_acl.yml
下面是一个简单的示例

globalWhiteRemoteAddresses: # 全局白名单地址
- 192.168.100.*
- 10.1.32.*

accounts:
- accessKey: administrator
  secretKey: 8bd8cee20c7b7017975276cebff0b5f6fcf36f6a7635c37683fed5916ff51039
  whiteRemoteAddress:   # 白名单地址
  admin: true  # 是否管理员用户

详细的配置规则可以参考:
https://blog.csdn.net/prestigeding/article/details/94317946
https://my.oschina.net/mingxungu/blog/3083998
https://www.jianshu.com/p/7c9b20518800

2.2.6 java服务启动参数修改

broker服务启动参数在文件/usr/local/rocketmq/bin/runbroker.sh中,可以修改jvm相关启动参数

2.3 namserver

nameserver不需要特殊配置

2.4 console

apache提供一个开源的扩展项目: https://github.com/apache/rocketmq-externals 里面包含一个子项目rocketmq-console,配置下,打个包就可以用了。把项目clone到有maven3以上版本的linux主机中

cd /home/rocketmq-externals-master/rocketmq-console/src/main/resources
vim application.properties  # 编辑主配置文件
# 主要是下面这两行
--
rocketmq.config.namesrvAddr=192.168.100.124:9876;192.168.100.127:9876  # nameserver的地址
rocketmq.config.loginRequired=true # 开启控制台认证功能
--
编辑完保存退出

vim  users.properties  # 配置控制台认证文件
--
admin=admin,1  # 管理员用户
user1=user1  # 普通用户
--
编辑完保存退出

# 下面执行maven打包
cd /home/rocketmq-externals-master/rocketmq-console
mvn clean package -Dmaven.test.skip=true

# 执行完打包程序,找到jar包
cd /home/rocketmq-externals-master/rocketmq-console/target
sz rocketmq-console-ng-1.0.1.jar
jar包上传到192.168.100.124的/usr/local/rocketmq/目录下

console配置文件详细配置说明,console控制台使用参考
https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_CN.md

3. 配置rocketmq服务

配置rocketmq服务,设置开机启动

3.1 a-m

192.168.100.122上配置

vim /etc/systemd/system/rocketmq-brokerA-master.service
---
[Unit]
Description=RocketMQ is an open source distributed messaging and streaming data plantform
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/rocketmq/
ExecStart=/usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-a.properties
ExecStop=/bin/kill $MAINPID
User=rocketmq
Group=rocketmq

[Install]
WantedBy=multi-user.target
---

systemctl enable rocketmq-brokerA-master.service  # 开机启动

3.2 a-s

192.168.100.123上配置

vim /etc/systemd/system/rocketmq-brokerA-slave.service
---
[Unit]
Description=RocketMQ is an open source distributed messaging and streaming data plantform
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/rocketmq/
ExecStart=/usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-a-s.properties
ExecStop=/bin/kill $MAINPID
User=rocketmq
Group=rocketmq

[Install]
WantedBy=multi-user.target
You have new mail in /var/spool/mail/root
---

systemctl enable rocketmq-brokerA-slave.service

3.3 b-m

192.168.100.125上配置

vim /etc/systemd/system/rocketmq-brokerB-master.service
---
[Unit]
Description=RocketMQ is an open source distributed messaging and streaming data plantform
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/rocketmq/
ExecStart=/usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-b.properties
ExecStop=/bin/kill $MAINPID
User=rocketmq
Group=rocketmq

[Install]
WantedBy=multi-user.target
---

systemctl enable rocketmq-brokerB-master.service

3.4 b-s

192.168.100.126上配置

vim /etc/systemd/system/rocketmq-brokerB-slave.service 
---
[Unit]
Description=RocketMQ is an open source distributed messaging and streaming data plantform
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/rocketmq/
ExecStart=/usr/local/rocketmq/bin/mqbroker -c /usr/local/rocketmq/conf/2m-2s-sync/broker-b-s.properties
ExecStop=/bin/kill $MAINPID
User=rocketmq
Group=rocketmq

[Install]
WantedBy=multi-user.target
---
systemctl enable rocketmq-brokerB-slave.service

3.5 nameserver

分别在192.168.100.124、192.168.100.127上配置

vim /etc/systemd/system/rocketmq-namesrv.service
[Unit]
Description=RocketMQ is an open source distributed messaging and streaming data plantform
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/rocketmq/
ExecStart=/usr/local/rocketmq/bin/mqnamesrv
ExecStop=/bin/kill 
User=rocketmq
Group=rocketmq

[Install]
WantedBy=multi-user.target
You have new mail in /var/spool/mail/root

systemctl enable rocketmq-namesrv

3.6 console

192.168.100.124上配置

vim /etc/systemd/system/rocketmq-console.service
---
[Unit]
Description=RocketMQ is an open source distributed messaging and streaming data plantform
After=network.target

[Service]
Type=simple
WorkingDirectory=/usr/local/rocketmq/
ExecStart=/usr/bin/java -jar /usr/local/rocketmq/rocketmq-console-ng-1.0.1.jar
ExecStop=/bin/kill 
User=rocketmq
Group=rocketmq

[Install]
WantedBy=multi-user.target
---
systemctl enable rocketmq-console

4. 服务启动

4.1 先启动nameserver console

192.168.100.124

systemctl start rocketmq-console rocketmq-namesrv
systemctl status rocketmq-console rocketmq-namesrv

192.168.100.127

systemctl start rocketmq-namesrv
systemctl status rocketmq-namesrv

4.2 启动broker

192.168.100.122

systemctl start rocketmq-brokerA-master.service
systemctl status rocketmq-brokerA-master.service

192.168.100.123

systemctl start rocketmq-brokerA-slave.service
systemctl status rocketmq-brokerA-slave.service

192.168.100.125

systemctl start rocketmq-brokerB-master.service
systemctl status rocketmq-brokerB-master.service

192.168.100.126

systemctl start rocketmq-brokerB-slave.service
systemctl status rocketmq-brokerB-slave.service

4.3 登录console

确认上面所有的nameserver,console,broker服务全部正常启动后,登录控制台
控制台登录地址:192.168.100.124:8080
在这里插入图片描述
在这里插入图片描述
注意一点,如果要修改console的账号配置文件,需要先创建
在console服务所在的主机/tmp/rocketmq-console/data,创建一个用户认证文件
cd /tmp/rocketmq-console/data
touch users.properties
chown rocketmq.rocketmq users.properties
这个文件此时是空文件,需要加入用户认证信息,原来在mvn打包时的认证信息已经没用了,需要重新配置。

5. 结束

OK,这样就完全配置完成了。
ACL配置需要根据具体使用情况进行配置。

参考:
https://blog.csdn.net/qq_34125999/article/details/99711503
https://blog.csdn.net/weixin_40533111/article/details/84451219

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值