初始化提交

This commit is contained in:
2025-10-07 15:58:15 +08:00
commit 0e593caf99
378 changed files with 77890 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
# Broker 集群名称
brokerClusterName = TestCluster
# Broker 逻辑主名称(主从共享)
brokerName=broker-a
# 设置为 0 表示主节点DLeger 模式下为固定 0
brokerId=0
brokerIP1=192.168.70.17
aclEnable=true
# Broker 角色:同步主节点到从节点
brokerRole=SYNC_MASTER
# 磁盘刷写方式:同步刷下磁盘
flushDiskType=SYNC_MASTER
# Broker 监听客户端连接的端口
listenPort=10911
# NameServer 地址(多个以分号分隔)
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
# 启用 DLedger即5.x推荐主从机制
enableDLegerCommitLog=true
dLegerGroup=dlmq-a
dLegerPeers=n0-192.168.70.17:40911;n1-192.168.70.15:40911
dLegerSelfId=n0
# Broker-A 主节点存储路径
storePathRootDir=/data/rocketmq/store/broker-a
storePathCommitLog=/data/rocketmq/store/broker-a/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-a/consumequeue
storePathIndex=/data/rocketmq/store/broker-a/index
storeCheckpoint=/data/rocketmq/store/broker-a/checkpoint
abortFile=/data/rocketmq/store/broker-a/abort

View File

@@ -0,0 +1,37 @@
# Broker 集群名称
brokerClusterName = TestCluster
# Broker 逻辑主名称(主从共享)
brokerName=broker-b
# 设置为 0 表示主节点DLeger 模式下为固定 0
brokerId=0
brokerIP1=192.168.70.17
aclEnable=true
# Broker 角色:异步主节点
brokerRole=SYNC_MASTER
# 磁盘刷写方式
flushDiskType=SYNC_MASTER
# Broker 监听客户端连接的端口
listenPort=10921
# NameServer 地址(多个以分号分隔)
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
# 启用 DLedger即5.x推荐主从机制
enableDLegerCommitLog=true
dLegerGroup=dlmq-b
dLegerPeers=n0-192.168.70.15:40912;n1-192.168.70.17:40912
dLegerSelfId=n1
# Broker-B 从主节点存储路径
storePathRootDir=/data/rocketmq/store/broker-b-s
storePathCommitLog=/data/rocketmq/store/broker-b-s/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-b-s/consumequeue
storePathIndex=/data/rocketmq/store/broker-b-s/index
storeCheckpoint=/data/rocketmq/store/broker-b-s/checkpoint
abortFile=/data/rocketmq/store/broker-b-s/abort

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,37 @@
# Broker 集群名称
brokerClusterName = TestCluster
# Broker 逻辑主名称(主从共享)
brokerName=broker-a
# 设置为 0 表示主节点DLeger 模式下为固定 0
brokerId=0
brokerIP1=192.168.70.15
aclEnable=true
# Broker 角色:异步主节点
brokerRole=SYNC_MASTER
# 磁盘刷写方式
flushDiskType=SYNC_MASTER
# Broker 监听客户端连接的端口
listenPort=10911
# NameServer 地址(多个以分号分隔)
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
# 启用 DLedger即5.x推荐主从机制
enableDLegerCommitLog=true
dLegerGroup=dlmq-a
dLegerPeers=n0-192.168.70.17:40911;n1-192.168.70.15:40911
dLegerSelfId=n1
# Broker-A 从节点存储路径
storePathRootDir=/data/rocketmq/store/broker-a-s
storePathCommitLog=/data/rocketmq/store/broker-a-s/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-a-s/consumequeue
storePathIndex=/data/rocketmq/store/broker-a-s/index
storeCheckpoint=/data/rocketmq/store/broker-a-s/checkpoint
abortFile=/data/rocketmq/store/broker-a-s/abort

View File

@@ -0,0 +1,37 @@
# Broker 集群名称
brokerClusterName = TestCluster
# Broker 逻辑组名称(主从共享)
brokerName=broker-b
# 设置为 0 表示主节点DLeger 模式下为固定 0
brokerId=0
brokerIP1=192.168.70.15
aclEnable=true
# Broker 角色:异步主节点
brokerRole=SYNC_MASTER
# 磁盘刷写方式
flushDiskType=SYNC_MASTER
# Broker 监听客户端连接的端口
listenPort=10921
# NameServer 地址(多个以分号分隔)
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
# 启用 DLedger即5.x推荐主从机制
enableDLegerCommitLog=true
dLegerGroup=dlmq-b
dLegerPeers=n0-192.168.70.15:40912;n1-192.168.70.17:40912
dLegerSelfId=n0
# Broker-B 主节点存储路径
storePathRootDir=/data/rocketmq/store/broker-b
storePathCommitLog=/data/rocketmq/store/broker-b/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-b/consumequeue
storePathIndex=/data/rocketmq/store/broker-b/index
storeCheckpoint=/data/rocketmq/store/broker-b/checkpoint
abortFile=/data/rocketmq/store/broker-b/abort

View File

@@ -0,0 +1,26 @@
# 监听端口
listenPort = 9876
# 开启 NameServer 内嵌 Controller 模式
enableControllerInNamesrv=true
# Controller 组名,集群内统一
controllerDLegerGroup=TestCluster-ctrl-group
# Controller 集群节点定义(格式为 ID-IP:端口)
controllerDLegerPeers=n0-192.168.70.17:40910;n1-192.168.70.15:40910
# 当前节点的 ID必须与上面对应
controllerDLegerSelfId=n1
# Controller 元数据存储路径
controllerStorePath=/data/rocketmq/store/controller
# 是否可以从 SyncStateSet 以外选举 Master若为 true可能会选取数据落后的副本作为 Master 而丢失消息,默认为 false。
enableElectUncleanMaster = false
# 当 Broker 副本组上角色发生变化时是否主动通知,默认为 true。
notifyBrokerRoleChanged = true
enablePropertyFilter=true
rocketmq.aclEnable=true

View File

@@ -0,0 +1,30 @@
对这些 IP来源的客户端放行不校验账户权限
globalWhiteRemoteAddresses:
- 127.0.0.1
- 192.168.101.*
- 192.168.1.*
- 192.168.70.*
设置了两个账号mquser(只读部分权限)、mqadmin(具有admin权限)
accounts:
- accessKey: rocketmquser
secretKey: 12345678
whiteRemoteAddress: 192.168.*.*
admin: false
defaultTopicPerm: SUB
defaultGroupPerm: SUB
topicPerms:
- topicA=DENY
- topicB=PUB|SUB
- topicC=SUB
groupPerms:
the group should convert to retry topic
- groupA=DENY
- groupB=PUB|SUB
- groupC=SUB
- accessKey: rocketmqadmin
secretKey: Feimoon123
whiteRemoteAddress: 192.168.*.*
可管理所有资源Web UI使用这个
admin: true

View File

@@ -0,0 +1,126 @@
# RocketMQ部署
## 1、集群规划
> 两台机部署两主两从4个broker2个name server
> - 【192.168.70.17】192.168.1.31 (dify) 部署1个name serverbroker-abroker-b-sname server嵌入Controller
> - 【192.168.70.15】19.168.1.8 (rocky) : 部署1个name serverbroker-bbroker-a-sname server嵌入Controller
> 机器 VPN IP NameServer Broker Master Broker Slave
> 本地A 192.168.70.17 ✅ broker-a broker-b-sb的从
> 本地B 192.168.70.15 ✅ broker-b broker-a-sa的从
| 模块 | 默认端口 | 作用 | 是否可修改 | 是否对外 |
| --------------------- | ------------ | --------------------------------- | ------------------ | ---------- |
| **NameServer** | 9876 | 注册中心Producer/Consumer通过它查找Broker | ✅ 可改 | ✅ 通常暴露给客户端 |
| **Broker ListenPort** | 10911 | Broker 服务监听端口(处理生产/消费请求) | ✅ 可改listenPort | ✅ 客户端访问 |
| **Broker HA 端口** | 10912 | Broker 主从同步使用的端口(仅主监听) | ✅ 可改haListenPort | ❌ 仅内部通信 |
| **DLedger 端口** | 自定义(如 40911 | DLedger 主从同步(替代 HA 模式) | ✅ 可改dLegerPeers中 | ❌ 仅主从间同步 |
| **Controller 端口** | 10909 | RocketMQ 5 中控制器模式下,主控端口 | ✅ 可改 | ❌ 控制集群 |
| **Console Web UI** | 8080或自定义 | Web 管理面板端口SpringBoot 应用) | ✅ | ✅ 提供给运维/开发 |
生产者 Producer -------------------------+
|
消费者 Consumer ------------------------+--> [NameServer:9876]
|
[NameServer:9876] <----> [多个 Broker:listenPort如10911]
Broker 主 ←──→ Broker 从: [HA 模式用 10912] 或 [DLedger 用 40911/40912]
Console Web UI8080 通过 9876 查询路由10911 管理 Broker 状态
本地机器A: 本地局域网IP192.168.1.31腾讯云ssl openvpn IP(用于跟腾讯云服务器内网通信)192.168.70.17。
本地机器B: 本地局域网IP192.168.1.8腾讯云ssl openvpn IP(用于跟腾讯云服务器内网通信)192.168.70.15。
现在我在web加密看到的BrokerIP地址是192.168.1.x:10911,加云服务器能正常生产和消费到这里面吗?
RocketMQ部署初步规划
线上的帖子分析:
两台机部署两主两从4个broker2个name server
本地机器A: 本地局域网IP192.168.1.31腾讯云ssl openvpn IP(用于跟腾讯云服务器内网通信)192.168.70.17。部署1个name serverbroker-abroker-b-s
本地机器B: 本地局域网IP192.168.1.8腾讯云ssl openvpn IP(用于跟腾讯云服务器内网通信)192.168.70.15。部署1个name serverbroker-bbroker-a-s
有什么要优化的吗,这里的"主从"是只name server的主从还是broker的主从还是这两者都有主从可以自动切换主从吗是要添加Controller还是Controller就是在ame server内的
docker run -d --name rocketmq-dashboard -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.70.15:9876" -p 8080:8080 -t apacherocketmq/rocketmq-dashboard:latest
机器Abroker-a
brokerClusterName = TestCluster
brokerName=broker-a
brokerId=0
brokerRole=SYNC_MASTER
flushDiskType=SYNC_MASTER
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
enableDLegerCommitLog=true
dLegerGroup=dlmq-a
dLegerPeers=n0-192.168.70.17:40911;n1-192.168.70.15:40911
dLegerSelfId=n0
storePathRootDir=/data/rocketmq/store/broker-a
storePathCommitLog=/data/rocketmq/store/broker-a/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-a/consumequeue
storePathIndex=/data/rocketmq/store/broker-a/index
storeCheckpoint=/data/rocketmq/store/broker-a/checkpoint
abortFile=/data/rocketmq/store/broker-a/abort
机器Bbroker-a
brokerClusterName = TestCluster
brokerName=broker-a
brokerId=0
brokerRole=SYNC_MASTER
flushDiskType=SYNC_MASTER
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
enableDLegerCommitLog=true
dLegerGroup=dlmq-a
dLegerPeers=n0-192.168.70.17:40911;n1-192.168.70.15:40911
dLegerSelfId=n1
storePathRootDir=/data/rocketmq/store/broker-a-s
storePathCommitLog=/data/rocketmq/store/broker-a-s/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-a-s/consumequeue
storePathIndex=/data/rocketmq/store/broker-a-s/index
storeCheckpoint=/data/rocketmq/store/broker-a-s/checkpoint
abortFile=/data/rocketmq/store/broker-a-s/abort
机器Bbroker-b
brokerClusterName = TestCluster
brokerName=broker-b
brokerId=0
brokerRole=SYNC_MASTER
flushDiskType=SYNC_MASTER
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
enableDLegerCommitLog=true
dLegerGroup=dlmq-b
dLegerPeers=n0-192.168.70.15:40911;n1-192.168.70.17:40911
dLegerSelfId=n0
storePathRootDir=/data/rocketmq/store/broker-b
storePathCommitLog=/data/rocketmq/store/broker-b/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-b/consumequeue
storePathIndex=/data/rocketmq/store/broker-b/index
storeCheckpoint=/data/rocketmq/store/broker-b/checkpoint
abortFile=/data/rocketmq/store/broker-b/abort
机器Abroker-b-s
brokerClusterName = TestCluster
brokerName=broker-b
brokerId=0
brokerRole=SYNC_MASTER
flushDiskType=SYNC_MASTER
namesrvAddr=192.168.70.17:9876;192.168.70.15:9876
enableDLegerCommitLog=true
dLegerGroup=dlmq-b
dLegerPeers=n0-192.168.70.15:40911;n1-192.168.70.17:40911
dLegerSelfId=n1
storePathRootDir=/data/rocketmq/store/broker-b-s
storePathCommitLog=/data/rocketmq/store/broker-b-s/commitlog
storePathConsumeQueue=/data/rocketmq/store/broker-b-s/consumequeue
storePathIndex=/data/rocketmq/store/broker-b-s/index
storeCheckpoint=/data/rocketmq/store/broker-b-s/checkpoint
abortFile=/data/rocketmq/store/broker-b-s/abort

View File

@@ -0,0 +1,85 @@
机器A:
启动nameserver:
nohup sh bin/mqnamesrv -c conf/machineA/namesrv.properties > logs/namesrv.log 2>&1 &
tail -f -n 100 logs/namesrv.log
启动broker-a: 主+从
机器A: nohup sh bin/mqbroker -c conf/machineA/broker-a.properties > logs/broker-a.log 2>&1 &
tail -f -n 100 logs/broker-a.log
机器B: nohup sh bin/mqbroker -c conf/machineB/broker-a-s.properties > logs/broker-a-s.log 2>&1 &
tail -f -n 100 logs/broker-a-s.log
机器B:
nameserver:
nohup sh bin/mqnamesrv -c conf/machineB/namesrv.properties > logs/namesrv.log 2>&1 &
tail -f -n 100 logs/namesrv.log
启动broker-b: 主+从
机器B: nohup sh bin/mqbroker -c conf/machineB/broker-b.properties > logs/broker-b.log 2>&1 &
tail -f -n 100 logs/broker-b.log
机器A: nohup sh bin/mqbroker -c conf/machineA/broker-b-s.properties > logs/broker-b-s.log 2>&1 &
tail -f -n 100 logs/broker-b-s.log
accessKey: rocketmqadmin
secretKey: Feimoon123
docker run -d --name rmq-dashboard -e JAVA_OPTS="-Drocketmq.namesrv.addr=192.168.1.31:9876" -p 8080:8080 apacherocketmq/rocketmq-dashboard:latest
docker run -d --name rmq-dashboard -e JAVA_OPTS="-Drocketmq.namesrv.addr=192.168.70.17:9876" -p 8080:8080 apacherocketmq/rocketmq-dashboard:latest
-------------------------------------------------
docker run -d \
--name rocketmq-dashboard \
-p 8080:8080 \
-e JAVA_OPTS="-Drocketmq.namesrv.addr=172.24.16.13:9876" \
apacherocketmq/rocketmq-dashboard:latest
-------------------------------------
docker run -d \
--name rocketmq-dashboard \
-e "rocketmq.config.accessKey=rocketmqadmin" \
-e "rocketmq.config.secretKey=aeimoon123" \
-e "rocketmq.config.namesrvAddr=192.168.70.15:9876" \
-p 8080:8080 \
apacherocketmq/rocketmq-dashboard:latest
----------------------------------------------------------------------------
cat > /data/rocketmq-dashboard/config/application.yml <<EOF
rocketmq:
config:
# 登录凭证(使用您提供的)
accessKey: "rocketmqadmin"
secretKey: "Feimoon123"
# NameServer 地址(根据实际修改)
namesrvAddrs: "192.168.70.17:9876;192.168.70.15:9876"
# 控制台数据保留天数(可选)
dataPath: "/tmp/rocketmq-console"
loginRequired: true
server:
port: 8080
EOF
docker run -d \
--name rocketmq-dashboard \
-p 8080:8080 \
-v /data/rocketmq-dashboard/config:/dashboard/config \
-e "JAVA_OPTS=-Drocketmq.config.loginRequired=true" \
apacherocketmq/rocketmq-dashboard:latest
docker run -d \
--name rocketmq-dashboard \
-p 8080:8080 \
-e JAVA_OPTS="-Drocketmq.namesrv.addr=192.168.1.31:9876" \
apacherocketmq/rocketmq-dashboard:latest