设备准备
| 服务器 | IP | NameServer | BROKER角色 | Dashboard |
|---|---|---|---|---|
| 服务器1 | 83.3.24.39 | 83.3.24.39:9876 | broker-a(master) | 83.3.24.39:18080 |
| 服务器2 | 83.3.24.40 | 83.3.24.40:9876 | broker-b(master) | |
| 服务器3 | 83.3.24.41 | 83.3.24.41:9876 | broker-a-s(slave) |
Host配置
# 三台设备都要执行
echo "83.3.24.39 rocketmq-n0" | tee -a /etc/hosts
echo "83.3.24.40 rocketmq-n1" | tee -a /etc/hosts
echo "83.3.24.41 rocketmq-n2" | tee -a /etc/hosts
安装包
# 下载安装包三台设备都要执行
cd /home
wget https://dist.apache.org/repos/dist/release/rocketmq/5.2.0/rocketmq-all-5.2.0-bin-release.zip
unzip rocketmq-all-5.2.0-bin-release.zip
mv /home/rocketmq-all-5.2.0-bin-release /home/rocketmq
# 创建日志以及密码认证目录
mkdir -p /home/rocketmq/logs
mkdir -p /home/rocketmq/conf/acl
sed -i 's#${user.home}#/home/rocketmq#g' /home/rocketmq/conf/*.xml
# 根据自己设备修改JVM堆内存大小。 推荐brock大于namesrv
sed -i 's#-Xms8g -Xmx8g#-Xms64g -Xmx64g#g' /home/rocketmq/bin/runbroker.sh
sed -i 's#-Xms4g -Xmx4g#-Xms32g -Xmx32g#g' /home/rocketmq/bin/runserver.sh
配置namesrv
# 83.3.24.39 设备配置
tee /home/rocketmq/conf/namesrv.conf <<-'EOF'
listenPort=9876
enableControllerInNamesrv=true
controllerDLegerGroup=group1
controllerDLegerPeers=n0-rocketmq-n0:9878;n1-rocketmq-n1:9878;n2-rocketmq-n2:9878
controllerDLegerSelfId=n0
controllerStorePath=/home/rocketmq/controller/DledgerController
enableElectUncleanMaster=true
notifyBrokerRoleChanged=true
EOF
# 83.3.24.40 设备配置
tee /home/rocketmq/conf/namesrv.conf <<-'EOF'
listenPort=9876
enableControllerInNamesrv=true
controllerDLegerGroup=group1
controllerDLegerPeers=n0-rocketmq-n0:9878;n1-rocketmq-n1:9878;n2-rocketmq-n2:9878
controllerDLegerSelfId=n1
controllerStorePath=/home/rocketmq/controller/DledgerController
enableElectUncleanMaster=true
notifyBrokerRoleChanged=true
EOF
# 83.3.24.41 设备配置
tee /home/rocketmq/conf/namesrv.conf <<-'EOF'
listenPort=9876
enableControllerInNamesrv=true
controllerDLegerGroup=group1
controllerDLegerPeers=n0-rocketmq-n0:9878;n1-rocketmq-n1:9878;n2-rocketmq-n2:9878
controllerDLegerSelfId=n2
controllerStorePath=/home/rocketmq/controller/DledgerController
enableElectUncleanMaster=true
notifyBrokerRoleChanged=true
EOF
# 启动namesrv 三台设备都要执行
nohup sh /home/rocketmq/bin/mqnamesrv -c /home/rocketmq/conf/namesrv.conf > /home/rocketmq/logs/mqnamesrv.log 2>&1 &
# 查看是否启动成功
tail -f /home/rocketmq/logs/mqnamesrv.log
配置broker
# 83.3.24.39 配置
tee /home/rocketmq/conf/2m-2s-async/broker-a.conf <<-'EOF'
#所属集群名字
brokerClusterName=rocketmq-control-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
brokerRole=ASYNC_FLUSH
fetchNameSrvAddrByDnsLookup=false
namesrvAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,10911为默认值
listenPort=10911
#表示Master监听Slave请求的端口,默认为服务端口+1
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq/store/abort
#限制的消息大小
maxMessageSize=104857600
#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=64
#拉消息线程池数量
pullMessageThreadPoolNums=128
#broker检测队列中的消息等待时间(默认是200毫秒,自行配置)
waitTimeMillsInSendQueue=10000
#发送队列线程容量
sendThreadPoolQueueCapacity=100000
#关闭堆外内存
transientStorePoolEnable=false
#关闭文件预热
warmMapedFileEnable=false
#开启堆内传
transferMsgByHeap=true
aclEnable=false
# Broker controller 模式的总开关,只有该值为 true,自动主从切换模式才会打开
enableControllerMode=true
fetchControllerAddrByDnsLookup=false
controllerAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
# 向 controller 同步 Broker 副本信息的时间间隔
syncBrokerMetadataPeriod=5000
# 检查 SyncStateSet 的时间间隔,检查 SyncStateSet 可能会 shrink SyncState
checkSyncStateSetPeriod=5000
# 同步 controller 元数据的时间间隔,主要是获取 active controller 的地址
syncControllerMetadataPeriod=10000
EOF
# 83.3.24.40 配置
tee /home/rocketmq/conf/2m-2s-async/broker-b.conf <<-'EOF'
#所属集群名字
brokerClusterName=rocketmq-control-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=0
brokerRole=ASYNC_FLUSH
fetchNameSrvAddrByDnsLookup=false
namesrvAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,10911为默认值
listenPort=10911
#表示Master监听Slave请求的端口,默认为服务端口+1
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq/store/abort
#限制的消息大小
maxMessageSize=104857600
#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=64
#拉消息线程池数量
pullMessageThreadPoolNums=128
#broker检测队列中的消息等待时间(默认是200毫秒,自行配置)
waitTimeMillsInSendQueue=10000
#发送队列线程容量
sendThreadPoolQueueCapacity=100000
#关闭堆外内存
transientStorePoolEnable=false
#关闭文件预热
warmMapedFileEnable=false
#开启堆内传
transferMsgByHeap=true
aclEnable=false
# Broker controller 模式的总开关,只有该值为 true,自动主从切换模式才会打开
enableControllerMode=true
fetchControllerAddrByDnsLookup=false
controllerAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
# 向 controller 同步 Broker 副本信息的时间间隔
syncBrokerMetadataPeriod=5000
# 检查 SyncStateSet 的时间间隔,检查 SyncStateSet 可能会 shrink SyncState
checkSyncStateSetPeriod=5000
# 同步 controller 元数据的时间间隔,主要是获取 active controller 的地址
syncControllerMetadataPeriod=10000
EOF
# 83.3.24.41 配置
tee /home/rocketmq/conf/2m-2s-async/broker-a-s.conf <<-'EOF'
#所属集群名字
brokerClusterName=rocketmq-control-cluster
#broker名字,注意此处不同的配置文件填写的不一样
brokerName=broker-a
#0 表示 Master,>0 表示 Slave
brokerId=1
brokerRole=SLAVE
fetchNameSrvAddrByDnsLookup=false
namesrvAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
#在发送消息时,自动创建服务器不存在的topic,默认创建的队列数
defaultTopicQueueNums=4
#是否允许 Broker 自动创建Topic
autoCreateTopicEnable=true
#是否允许 Broker 自动创建订阅组
autoCreateSubscriptionGroup=true
#Broker 对外服务的监听端口,10911为默认值
listenPort=10911
#表示Master监听Slave请求的端口,默认为服务端口+1
haListenPort=10912
#删除文件时间点,默认凌晨 4点
deleteWhen=04
#文件保留时间,默认 48 小时
fileReservedTime=48
#commitLog每个文件的大小默认1G
mapedFileSizeCommitLog=1073741824
#ConsumeQueue每个文件默认存30W条,根据业务情况调整
mapedFileSizeConsumeQueue=300000
#destroyMapedFileIntervalForcibly=120000
#redeleteHangedFileInterval=120000
#检测物理文件磁盘空间
diskMaxUsedSpaceRatio=88
#存储路径
storePathRootDir=/home/rocketmq/store
#commitLog 存储路径
storePathCommitLog=/home/rocketmq/store/commitlog
#消费队列存储路径存储路径
storePathConsumeQueue=/home/rocketmq/store/consumequeue
#消息索引存储路径
storePathIndex=/home/rocketmq/store/index
#checkpoint 文件存储路径
storeCheckpoint=/home/rocketmq/store/checkpoint
#abort 文件存储路径
abortFile=/home/rocketmq/store/abort
#限制的消息大小
maxMessageSize=104857600
#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=64
#拉消息线程池数量
pullMessageThreadPoolNums=128
#broker检测队列中的消息等待时间(默认是200毫秒,自行配置)
waitTimeMillsInSendQueue=10000
#发送队列线程容量
sendThreadPoolQueueCapacity=100000
#关闭堆外内存
transientStorePoolEnable=false
#关闭文件预热
warmMapedFileEnable=false
#开启堆内传
transferMsgByHeap=true
aclEnable=false
# Broker controller 模式的总开关,只有该值为 true,自动主从切换模式才会打开
enableControllerMode=true
fetchControllerAddrByDnsLookup=false
controllerAddr=rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876
# 向 controller 同步 Broker 副本信息的时间间隔
syncBrokerMetadataPeriod=5000
# 检查 SyncStateSet 的时间间隔,检查 SyncStateSet 可能会 shrink SyncState
checkSyncStateSetPeriod=5000
# 同步 controller 元数据的时间间隔,主要是获取 active controller 的地址
syncControllerMetadataPeriod=10000
EOF
配置代理
# 8081的gRPC端口(用于 gRPC 协议通信,如跨语言客户端或 Stream 场景)。
tee /home/rocketmq/conf/rmq-proxy.json <<-'EOF'
{
"namesrvAddr": "rocketmq-n0:9876;rocketmq-n1:9876;rocketmq-n2:9876",
"proxyMode": "cluster",
"rocketMQClusterName": "rocketmq-control-cluster",
"remotingListenPort": 8380,
"grpcServerPort": 8081,
"useEndpointPortFromRequest": true,
"enableACL": false
}
EOF
# 启动brock
# 83.3.24.39 执行
nohup /home/rocketmq/bin/mqbroker -c /home/rocketmq/conf/broker-a.conf -pc /home/rocketmq/conf/rmq-proxy.json --enable-proxy > /home/rocketmq/logs/broker.log 2>&1 &
# 83.3.24.40 执行
nohup /home/rocketmq/bin/mqbroker -c /home/rocketmq/conf/broker-b.conf -pc /home/rocketmq/conf/rmq-proxy.json --enable-proxy > /home/rocketmq/logs/broker.log 2>&1 &
# 83.3.24.41 执行
nohup /home/rocketmq/bin/mqbroker -c /home/rocketmq/conf/broker-a-s.conf -pc /home/rocketmq/conf/rmq-proxy.json --enable-proxy > /home/rocketmq/logs/broker.log 2>&1 &
查询集群状态
/home/rocketmq/bin/mqadmin clusterlist -n rocketmq-n0:9876 rocketmq-n1:9876 rocketmq-n2:9876
部署Dashboard
# 83.3.24.39下载、
cd /home
wget https://dist.apache.org/repos/dist/release/rocketmq/rocketmq-dashboard/2.0.0/rocketmq-dashboard-2.0.0-source-release.zip
vim /home/rocketmq-dashboard-2.0.0-source-release/src/main/resources/application.yml
rocketmq:
config:
# if this value is empty,use env value rocketmq.config.namesrvAddr NAMESRV_ADDR | now, default localhost:9876
# configure multiple namesrv addresses to manage multiple different clusters
namesrvAddrs:
# - 127.0.0.1:9876
# - 127.0.0.2:9876
# 集群地址
- 83.3.24.39:9876;83.3.24.40:9876;83.3.24.41:9876
# 打包jar包
mvn clean package -Dmaven.test.skip=true
# 运行jar
cd /home/rocketmq-dashboard-2.0.0-source-release/target/
nohup java -jar rocketmq-dashboard-2.0.0.jar &
# 查看日志
tail -f nohup.out
# mvn仓库地址配置
[root@localhost conf]# cat settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)