单机部署
Standalone = 一个 worker 进程承载全部角色(配置权威+流量+管理面),无 raft (存储走本地卷或内存卷)。适合开发、边缘与单机生产。
1. 准备 worker.json
{
"volume": "virtual:///var/lib/traffic/config.tier",
"resourceKey": "file:///etc/traffic/resource.key",
"listen": { "port": 5010 },
"admin": { "listen": "127.0.0.1:7901" }
}
| 字段 | 说明 |
|---|---|
volume |
存储卷(TierFs)。生产推荐 virtual:// 虚拟文件系统——单工件卷(.tier 文件或块设备),自持崩溃一致性(superblock 双份轮写+循环日志+可达性对账),数据损坏面不依赖 OS 文件系统,且一卷既是活卷又是存档(导出/迁移走 dd 快道);memory: 仅开发(重启即清)。local:// 仅在运维需要可视化目录树(直接浏览磁盘上的数据文件)时使用 |
resourceKey |
资源加密密钥——非 memory 卷强制(缺失=启动拒绝)。64 hex 字符或 env:/file: 引用;密钥文件权限收紧(Unix 0600) |
listen.port |
数据口 |
admin.listen |
管理口(ip:port);省略=单口兼容模式(管理面与数据面同口) |
四介质对比与虚拟卷的完整语义见 Tier 文档(virtual-file-system.md——功能最全/稳定性
最高/快速迁移)。
生产强烈建议严格分离(数据口对外、管理口绑内网/本机)——网络面规则见端口模型。
2. 管理口鉴权
管理口无密钥时仅限本机匿名面(开发够用);生产必须配 Bearer 密钥集:
{
"admin": {
"listen": "127.0.0.1:7901",
"keys": ["env:TRAFFIC_ADMIN_KEY_1", "file:///etc/traffic/admin.key"]
}
}
keys 数组每项是一个密钥引用:env: 读环境变量、file: 读文件——
明文字面量会被装载器警告(生产形态 fail-fast 随硬化批次推进)。
密钥文件的权限收紧(Unix 0600)由 TierFs 文件原语保证。
之后所有管理请求携带 Authorization: Bearer <key>;TUI 族从 TRAFFIC_ADMIN_KEY
环境变量取密钥自动附带。
3. 干跑 → 启动
traffic-worker validate --config worker.json # {"ok":true,"exitCode":0,"warnings":[]}
traffic-worker run --config worker.json # traffic-worker 就绪:data=… admin=…
配置三源合并(文件 < 环境变量 < 旗标):
# 环境变量覆盖(TRAFFIC_ 前缀,__ 分隔路径)
TRAFFIC_LISTEN__PORT=5020 traffic-worker run --config worker.json
# 旗标覆盖
traffic-worker run --config worker.json --port 5020 --admin-listen 127.0.0.1:7902
未知字段=装载拒绝(防拼错静默走缺省);数据口被占=退出码 11; 配置非法=退出码 10。全部退出码见故障排查。
4. 首批配置
按五分钟跑起来的流程写入实体并发布。 单机也走完整的 draft→publish 流水线——没有"简单模式"旁路,生产行为与开发一致。
5. 常驻运行
裸跑 traffic-worker run 没有(崩溃后)自愈能力。单机生产建议
guardian+worker 双进程常驻——崩溃自动拉起、系统服务安装、配置版本仓:
traffic-guardian service install --exe /opt/traffic/traffic-guardian
systemd(Linux)/Windows SCM(Windows)双形态,Restart=always 系统级兜底。
详见Guardian 守护进程。
升级到集群
单机形态的数据可以随 guardian 迁移通道整体搬迁到集群;或者直接以
集群部署的 DP 装配加入既有集群(配置由 raft 复制,无需搬家)。
虚拟卷形态下,搬迁=迁移 .tier 工件本身。