lili 22b3016048 feat(infra): RocketMQ 5.3.1 自托管 mini-infra(NameServer+单 Broker+lean 1g JVM)(切片一 阶段〇 B2)
纯增量、host 网络、brokerIP1 指 Tailscale 地址;探针绿、Broker 注册成功、内存在 lean 预算内。
端点写回 docs/内网凭据与端点.md。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-01 08:55:59 -07:00

45 lines
2.3 KiB
YAML

# =============================================================================
# RocketMQ 5.3.1 自托管 —— NameServer + 单 Broker + lean JVM(切片一 阶段〇 B2)
# -----------------------------------------------------------------------------
# 配置控制面设计 §3.7:game-cloud 是 Spring Cloud Alibaba,RocketMQ 是其原生异步
# 消息基建,承载异步生成队列(topic = AIGC_GEN_TOPIC)。自托管在 mini-infra,纯增量,
# 不动既有容器。
#
# 三条部署纪律都编进了这里:
# - lean JVM:该镜像 broker 默认 -Xmx2g、nameserver 默认 -Xmx1g;mini-infra 内存要
# 留给既有 MySQL / RAGflow / new-api,故经 JAVA_OPT_EXT 压到 broker 1g、namesrv 512m。
# JAVA_OPT_EXT 在 runbroker.sh / runserver.sh 里拼在默认 HEAP_OPTS 之后,JVM 取最后
# 一个 -Xmx,故覆盖生效(实测确认)。broker 带 AlwaysPreTouch,启动即提交约 1g 常驻。
# - network_mode: host:与既有 infra-* 容器一致。NameServer 占 9876,Broker 占 10911
# (+ 10909 HA、10912 fast)三个 host 端口,均未被既有容器占用。
# - brokerIP1:在 broker.conf 里钉死 100.64.0.8,保证跨机客户端拿到可达的 broker 地址。
#
# 存储 / 日志落宿主 ./data(见 .gitignore,不入仓)。⚠️ 容器以 uid=3000(rocketmq)运行,
# 部署前必须先在宿主建好 data/store、data/logs 并 chown 3000:3000,否则 broker 无权写
# CommitLog、起不来。这一步在部署脚本里做,不在 compose 内。
# =============================================================================
services:
namesrv:
image: apache/rocketmq:5.3.1
container_name: infra-rmq-namesrv
restart: unless-stopped
network_mode: host
environment:
JAVA_OPT_EXT: "-Xms512m -Xmx512m -Xmn256m" # 压死默认 1g
command: sh mqnamesrv
broker:
image: apache/rocketmq:5.3.1
container_name: infra-rmq-broker
restart: unless-stopped
network_mode: host
depends_on: [namesrv]
environment:
JAVA_OPT_EXT: "-Xms1g -Xmx1g -Xmn512m" # 压死默认 2g
NAMESRV_ADDR: "127.0.0.1:9876" # broker 向本机 NameServer 注册
volumes:
- ./broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf
- ./data/store:/home/rocketmq/store
- ./data/logs:/home/rocketmq/logs
command: sh mqbroker -c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf