初始化提交

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,75 @@
# 文件: /data/rocketmq/conf/broker-a-s.conf
# 在Controller模式下Broker配置必须设置 enableControllerMode=true并填写 controllerAddr并以下面命令启动
# $ nohup sh bin/mqbroker -c broker.conf &
# 自动主备切换模式下Broker无需指定brokerId和brokerRole其由Controller组件进行分配
# Broker 集群名称
brokerClusterName = ProdCluster
# Broker 逻辑组名称(主从共享)
brokerName=broker-a
# 设置为 0 表示主节点
# brokerId=0
# Broker 角色:同步主节点到从节点
# brokerRole=SYNC_MASTER
# 定义对外的IP
# brokerIP1=172.24.16.7
# 启动acl规则
# aclEnable=true
# 文件保留时间(小时)
fileReservedTime=48
# 定时清理文件时间 (天)
deleteWhen=04
# 是否自动创建 Topic
autoCreateTopicEnable = false
# 磁盘刷写方式:同步刷下磁盘
flushDiskType=SYNC_MASTER
# Broker 监听客户端连接的端口
listenPort=10911
# NameServer 地址(多个以分号分隔)
namesrvAddr=172.24.16.13:9876
# 启用主从机制
enableControllerMode = true
# Controller地址
controllerAddr=172.24.16.13:9876
# 向 controller 同步 Broker 副本信息的时间间隔
syncBrokerMetadataPeriod = 5000
# 检查 SyncStateSet 的时间间隔,检查 SyncStateSet 可能会 shrink SyncState
checkSyncStateSetPeriod = 5000
# 同步 controller 元数据的时间间隔,主要是获取 active controller 的地址
syncControllerMetadataPeriod = 10000
# 表示 Slave 没有跟上 Master 的最大时间间隔,若在 SyncStateSet 中的 slave 超过该时间间隔会将其从 SyncStateSet 移除
haMaxTimeSlaveNotCatchup = 15000
# 存储 epoch 文件的位置
storePathEpochFile = /data/rocketmq/store/epoch
# 若该值为 true则一条消息需要复制到 SyncStateSet 中的每一个副本才会向客户端返回成功,可以保证消息不丢失。
allAckInSyncStateSet = false
# 若 slave 是空盘启动,是否从最后一个文件进行复制。
syncFromLastFile = false
# 若该值为 true则该副本不会进入 SyncStateSet也就是不会被选举成 Master而是一直作为一个 learner 副本进行异步复制。
asyncLearner = false
# 需保持同步的副本组数量默认为1allAckInSyncStateSet=true 时该参数无效
inSyncReplicas = 1
# 最小需保持同步的副本组数量,若 SyncStateSet 中副本个数小于 minInSyncReplicas 则 putMessage 直接返回 PutMessageStatus.IN_SYNC_REPLICAS_NOT_ENOUGH
minInSyncReplicas = 1
# 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,74 @@
# 文件: /data/rocketmq/conf/broker-a.conf
# 在Controller模式下Broker配置必须设置 enableControllerMode=true并填写 controllerAddr并以下面命令启动
# $ nohup sh bin/mqbroker -c broker.conf &
# 自动主备切换模式下Broker无需指定brokerId和brokerRole其由Controller组件进行分配
# Broker 集群名称
brokerClusterName = ProdCluster
# Broker 逻辑组名称(主从一致)
brokerName=broker-a
# 设置为 0 表示主节点
# brokerId=0
# Broker 角色:同步主节点到从节点
# brokerRole=SYNC_MASTER
# 启动acl规则
# aclEnable=true
# 磁盘刷写方式:同步刷下磁盘
flushDiskType=SYNC_MASTER
# Broker 对外端口
listenPort=10911
# NameServer 地址(多个以分号分隔)
namesrvAddr=172.24.16.13:9876
# Broker 外部访问 IP
brokerIP1 = 172.24.16.10
# 文件保留时间(小时)
fileReservedTime=48
# 定时清理文件时间 (天)
deleteWhen=04
# 是否自动创建 Topic
autoCreateTopicEnable = false
# 启用主从机制
enableControllerMode = true
# Controller地址
controllerAddr=172.24.16.13:9876
# 向 controller 同步 Broker 副本信息的时间间隔
syncBrokerMetadataPeriod = 5000
# 检查 SyncStateSet 的时间间隔,检查 SyncStateSet 可能会 shrink SyncState
checkSyncStateSetPeriod = 5000
# 同步 controller 元数据的时间间隔,主要是获取 active controller 的地址
syncControllerMetadataPeriod = 10000
# 表示 Slave 没有跟上 Master 的最大时间间隔,若在 SyncStateSet 中的 slave 超过该时间间隔会将其从 SyncStateSet 移除
haMaxTimeSlaveNotCatchup = 15000
# 存储 epoch 文件的位置
storePathEpochFile = /data/rocketmq/store/epoch
# 若该值为 true则一条消息需要复制到 SyncStateSet 中的每一个副本才会向客户端返回成功,可以保证消息不丢失。
allAckInSyncStateSet = false
# 若 slave 是空盘启动,是否从最后一个文件进行复制。
syncFromLastFile = false
# 若该值为 true则该副本不会进入 SyncStateSet也就是不会被选举成 Master而是一直作为一个 learner 副本进行异步复制。
asyncLearner = false
# 需保持同步的副本组数量默认为1allAckInSyncStateSet=true 时该参数无效
inSyncReplicas = 1
# 最小需保持同步的副本组数量,若 SyncStateSet 中副本个数小于 minInSyncReplicas 则 putMessage 直接返回 PutMessageStatus.IN_SYNC_REPLICAS_NOT_ENOUGH
minInSyncReplicas = 1
# 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,33 @@
# 文件:/data/rocketmq/conf/controller.properties
# Controller 集群名
controllerClusterName = ControllerCluster
# controller 节点名
controllerName = controller-1
controllerDLegerPeers = n0-172.24.16.13:40911
controllerDLegerSelfId = n0
# controller http rest api 端口
controllerHttpPort = 7070
# 开启 NameServer 内嵌 Controller 模式
enableControllerInNamesrv=true
# Controller 组名,集群内统一
controllerDLegerGroup=Prod-Cluster-ctrl-group
# 选举间隔
controllerElectionTimeoutMs = 3000
# 节点心跳超时
controllerHeartbeatTimeoutMs = 10000
# Controller 元数据存储路径
controllerStorePathRootDir=/data/rocketmq/store/controller
# 日志保留天数
fileReservedTime = 48

View File

@@ -0,0 +1,52 @@
# 启动 NameServer
export JAVA_HOME=/data/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
java -version
nohup sh bin/mqnamesrv > logs/nameserver.log 2>&1 &
# 启动 Controller
export JAVA_HOME=/data/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
java -version
nohup sh bin/mqcontroller -c conf/controller.properties > logs/controller.log 2>&1 &
# 启动 brocker主
export JAVA_HOME=/data/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
java -version
nohup sh bin/mqbroker -c conf/broker-a.properties > logs/broker-a.log 2>&1 &
# 启动 brocker从
export JAVA_HOME=/data/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
java -version
nohup sh bin/mqbroker -c conf/broker-a-s.properties > logs/broker-a-s.log 2>&1 &
nohup sh bin/mqnamesrv -c conf/controller.properties > logs/nameserver.log 2>&1 &
nohup sh bin/mqnamesrv -c conf/controller.properties > logs/nameserver.log 2>&1 &
nohup sh bin/mqnamesrv -c conf/namesrv-n0.properties > logs/controller.log 2>&1 &
----
nohup bin/mqcontroller -c conf/controller.conf > logs/controller.log 2>&1 &
nohup bin/mqnamesrv -c conf/namesrv.conf > logs/controller.log 2>&1 &
nohup sh bin/mqnamesrv -c ./conf/controller/cluster-3n-namesrv-plugin/namesrv-n0.conf > logs/nameserver.log 2>&1 &
nohup sh bin/mqbroker -c conf/controller/quick-start/broker-n0.conf > logs/brocker.log 2>&1 &
nohup sh bin/mqnamesrv > logs/nameserv.log 2>&1 &

View File

@@ -0,0 +1,27 @@
app-test-server 172.24.16.13 NameServer
app-prod-server01 172.24.16.10 Broker Master-0 (主)
app-prod-server02 172.24.16.7 Broker Slave-0 (从)
组件说明
1、NameServer + Controller (172.24.16.13)
提供服务注册与发现。
启用 Controller 模式(Raft 协议),负责 Broker 自动主从切换。
启动参数 --enable-controller=true。
2、Broker Master-0 (172.24.16.10)
唯一主节点,负责生产与消费请求。
brokerRole=SYNC_MASTER。
3、Broker Slave-0 (172.24.16.7)
从节点,数据通过异步复制。
brokerRole=SLAVE。
在主节点不可用时,由 Controller 切换该节点为 Master。
内网连接与外部接入
1、内部生产者/消费者:直接用 nameserverAddr=172.24.16.13:9876。
2、外部接入(如硅谷区机房):推荐在 172.24.16.13 上用 Nginx 配置 TCP 反向代理,将公网域名+端口转发到对应内部 IP+端口(NameServer: 9876, Broker: 10911)。
------------------------------------------------