部署形态矩阵
六种标准形态共用同一份 worker 产物,差别只在 worker.json 的装配段。本页给每种形态的
最小装配骨架;磁盘卷/管理口等共通字段见单机部署,集群组网细节见集群部署。
形态 → 装配对照
| 形态 | 最少节点 | 角色布局 | 端口构成 |
|---|---|---|---|
| Standalone · 单口 | 1 台 1 进程 | 全部合一 | 最少 1 个口(数据+管理+UI 合一;Tier=InProcess 无口) |
| Standalone · 严格分离 | 1 台 1 进程 | 全部合一 | 数据口+管理口 |
| 生产集群(标准) | 4 台 | 纯控制 Voter×3 + Learner×1 起 | CP:管理口+Tier 口;DP:N 数据口+Tier 口 |
| 生产集群(预算敏感) | 3 台 | Voter×3 兼流量 | 每节点:N 数据口+Tier 口 |
| +Witness(可选) | +1 台轻载 | 第三票防脑裂 | 仅 Tier 口 |
| Kubernetes | 同生产集群 | 同上 | guardian 口=0,探针指管理口 |
Standalone(单口)
不配 admin.listen =兼容模式:管理面与数据面同口复用。
{ "volume": "memory:", "listen": { "port": 5010 } }
Standalone(严格分离)
{
"volume": "virtual:///var/lib/traffic/config.tier",
"resourceKey": "file:///etc/traffic/resource.key",
"listen": { "port": 5010 },
"admin": { "listen": "127.0.0.1:7901" }
}
生产集群 · 纯控制节点(CP)
raft 段三要素齐备:nodeId、listen(Tier 口)、members(含自身与 Voter 全集)。
{
"volume": "virtual:///var/lib/traffic/config.tier",
"resourceKey": "file:///etc/traffic/resource.key",
"admin": { "listen": "10.0.0.11:7901" },
"raft": {
"role": "voter", "nodeId": "cp1", "listen": "10.0.0.11:7910",
"members": {
"cp1": "10.0.0.11:7910",
"cp2": "10.0.0.12:7910",
"cp3": "10.0.0.13:7910"
}
}
}
纯控制=不配数据口(无 listen.port)——Voter 节点零客户端可达面,
编译、发布编排、管理面照常。三台 cp1/cp2/cp3 同 members 表、各自 nodeId/listen。
生产集群 · 数据节点(DP)
{
"volume": "virtual:///var/lib/traffic/config.tier",
"resourceKey": "file:///etc/traffic/resource.key",
"listen": { "port": 5010 },
"raft": {
"role": "learner", "nodeId": "dp1", "listen": "10.0.0.21:7910",
"members": {
"cp1": "10.0.0.11:7910",
"cp2": "10.0.0.12:7910",
"cp3": "10.0.0.13:7910"
}
}
}
DP 的 members 表=Voter 全集(learner 不在表中——加入集群用
cluster member add,见集群部署)。
Witness(可选第三票)
{
"volume": "virtual:///var/lib/traffic-witness/config.tier",
"resourceKey": "file:///etc/traffic/resource.key",
"raft": {
"role": "witness", "nodeId": "w1", "listen": "10.0.0.14:7910",
"members": { "cp1": "10.0.0.11:7910", "cp2": "10.0.0.12:7910", "cp3": "10.0.0.13:7910" }
}
}
Witness 投票计入多数派但不存全量日志——轻载机即可,用于三台预算下防脑裂。
预算敏感:Voter 兼流量
标准 CP 装配加上 listen.port 即兼跑流量(兼容模式)——接受流量高峰与共识
心跳同进程的耦合,3 台即可组网。
存储介质选型
| 介质 | spec | 定位 |
|---|---|---|
| virtual(虚拟文件系统) | virtual:///路径/config.tier |
生产缺省推荐——单工件卷(.tier 文件/块设备),自持崩溃一致性(不委托 OS),数据损坏面不依赖 OS 文件系统;既是活卷又是存档(dd 快道迁移) |
| local(本地文件系统) | local:///路径 |
仅当运维需要可视化目录树(直接浏览数据文件)时使用 |
| memory | memory: |
开发/验证——重启即清,无需 resourceKey |
装配规则速记
raft.role限learner|voter|witness|none(缺省 none=Standalone 本地卷);- role≠none 时
nodeId/listen/members必配,缺任一=启动拒绝(退出码 10); dataPlaneOnly/controlOnly两个布尔开关对应纯数据/纯控制形态(互斥);- 所有端口显式配置,无默认值;
- 非 memory 卷必须配
resourceKey(资源加密密钥——缺失=启动拒绝)。