Skip to content

生产就绪清单 ​

在集群承载你真正在乎的流量之前,把下面每一行勾掉。每项都写明查什么、为什么重要、怎么验证。

多数项是配置白名单里已经冻结的决定 —— 本页是把它们按「失败成本从低到高」的顺序集中应用的地方。

1. 网络暴露 ​

  • [ ] listen_peer 已从公网防火墙挡掉。 它跑复制流量:独立共享密钥,而且没有客户端认证。暴露它是可犯的最严重错误。
  • [ ] listen_admin 绑 127.0.0.1。 v0 的指标面没有认证 —— 绑宽一点就等于把队列深度和拓扑发布给任何能连上这个端口的人。
  • [ ] listen_client 绑的是你想要的地址。 0.0.0.0 只在防火墙或私网后面才是对的。
  • [ ] ws_origins 是显式列表,不是空。 空 = 拒绝所有来源(安全,但浏览器 demo 会连不上);它永远不是「全部允许」。
bash
# 从宿主机外部验证
ss -tlnp | grep -E '7188|7189|7190'
# 期望:7188 面向客户端,7189 仅对内,7190 只在 127.0.0.1

2. 身份与访问 ​

  • [ ] 每个节点 node_id 唯一,且三台共享完全相同的 peers 表。
  • [ ] token 带外分发,服务端只存 SHA-256 摘要。
  • [ ] 你接受 v0 没有授权。 任何持有 token 的客户端都能向任何 topic 发、从任何 topic 收。如果这不可接受,v0 就不合适 —— 见安全边界。
  • [ ] 你接受 v0 没有 TLS。 在不可信网络上请自己加一层隧道。

3. 存储与容量 ​

  • [ ] 每节点一个 data_dir,且分属不同故障域。 共用卷会互相破坏对方的 segment。
  • [ ] 磁盘按整个保留窗口规划 —— 因为没有保留策略。 v0 不做日志截断,也没有自动保留执行器。data_dir 会一直涨到满,而磁盘满是一次可用性事故,不是优雅降级。上线前按 预估吞吐 × 天数 算好,并在远低于 100% 时告警。
  • [ ] 文件系统的 fsync 语义符合预期。 持久性全押在 fsync 上;不落盘就返回确认的网络文件系统会静默破坏这个保证。
  • [ ] 持续写入吞吐落在 fsync 预算内。 设计预算是端到端 P50 ≤ 1.5 ms / P99 ≤ 5 ms、NVMe fsync 占大头 —— 请在你的硬件上验证,不要假设。

4. 监控与告警 ​

  • [ ] /metrics 已被抓取,且 metrics_enabled=true。
  • [ ] mortarmq_quorum_state != 0 告警 —— 这是叫醒值班的信号。1 是警告(一个 follower 落后),2 是只读。
  • [ ] mortarmq_group_lag 单调增长告警 —— 那是消费者停了,不是慢。
  • [ ] 磁盘用量告警 —— 因为没有任何东西会自动回收。
  • [ ] 每天核一次守恒恒等式,而不是信单个 counter: produced = delivered + dropped + dlq + Δdepth
  • [ ] mortarmq_partition_last_seq 下降是一次事故,不是抖动 —— 设计里把下降定义为 fatal。

5. 故障处置 ​

  • [ ] RB-1 已打印或置顶 —— quorum 丢失是凌晨三点最先发生的事,而正确反应是别重启 leader。
  • [ ] 分得清 level 0(soft timeout)和 level 0(no follower) —— 后者必须先修 follower 才能恢复写入。
  • [ ] data/metadata/quarantine/ 已纳入监控。 隔离是刻意的、绝不自动重放;要人来对账。
  • [ ] 至少演练过一次 kill -9,事后 leader get 显示的是 epoch 递增,不是数据丢失。

6. 升级 ​

  • [ ] 第一次升级前先读懂降级前置检查 —— case R2 按设计会拒绝不兼容降级。
  • [ ] 知道自己在哪一档(兼容 / 不兼容)。这一条决定了回滚是否根本可能。

7. 备份 ​

  • [ ] 元数据日志与其快照已备份 —— data/metadata/ 存着集群真相(topic、组、leader)。
  • [ ] segment 备份是一个决定,不是默认动作。 备份 segment 会让写放大翻倍;多数团队转而依赖复制,接受「整个集群全灭需要重建」。要有意识地选。

目前还没有代码

这里没有任何一项被实战验证过。清单全部由冻结设计决定拼装而成,凡是带验证命令的项,都是 broker 上线时欠你的。

相关 ​