Lattice Hub 文档
使用指南控制台使用

配置中心

配置分组、文件编辑、全量/多灰度发布、四态发布记录、停灰度与订阅查询的操作说明。

对应菜单:配置管理 → 配置分组。配置中心把编辑态和发布态分开;客户端通过长轮询/SSE 消费的是发布结果。

关键能力:同一配置文件可同时存在多条 active 灰度版本,彼此独立生效;全量发布不会自动结束这些灰度。

配置分组界面

配置文件列表

配置文件详情

配置分组

路径:/configuration/group

  1. 用命名空间、发布状态(「待发布」/「无待发布」)和名称搜索定位分组。
  2. 「新建配置分组」:命名空间、分组名、描述、部门、业务、标签。
  3. 列表可看文件数、加密数、待发布标记(「有变更」/「无」)。
  4. 操作:查看文件、授权、删除。
    • 分组下仍有文件时不能删,提示「请先删除 N 个配置文件」。

配置文件

进入分组后打开具体文件:

按钮 / Tab作用
编辑 / 保存草稿改正文后保存为正式草稿(编辑态)
撤销放弃未保存修改
发布配置打开发布向导
交给 Agent跳到 Agent 工作台并带上该文件上下文
授权对该文件做资源授权
Tab「文件内容」编辑或只读预览
Tab「基本信息」描述、是否加密、算法、文件标签
Tab「发布记录」四态发布记录(见下)
Tab「订阅查询」查看订阅客户端及灰度命中情况

约束:单文件内容最大 20,000 字符;列表分页最大 100。

状态常见文案:编辑待发布、灰度发布中、发布成功、发布失败、未发布。

发布配置(两步)

点「发布配置」打开抽屉「发布配置」:

发布配置向导

选择灰度发布

  1. 版本对比 → 下一步
  2. 发布信息
    • 版本名称(必填,≤64;重名会提示将重新发布)
    • 发布说明(≤255)
    • 发布类型:
      • 全量发布:替换当前全量基线。提示原文:「全量发布会替换当前全量基线,不结束正在生效的灰度版本。」
      • 灰度发布:需至少一条灰度规则;可设灰度优先级(1–9999,默认 100)。单条灰度内,客户端需同时满足全部灰度规则(AND)。

确认后点「确认发布」。

多灰度版本(必须理解)

配置中心不是「一个文件同一时间只能有一条灰度」。模型是:

维度语义
全量(normal)同一文件最多 1 条 active 全量基线
灰度(gray)同一文件可有 多条 active 灰度,按 releaseName 区分
全量 vs 灰度发全量不阻塞、也不结束已有 active 灰度
灰度 vs 灰度新灰度不会挤掉其他仍 active 的灰度

页面「灰度发布」Tab 文案:多条 active gray release 独立生效,可提交为正式草稿或删除灰度。

关键能力要用客户端拉配置验证,而不是只看 Console 列表:同一文件、不同 tags,会返回不同的 active 灰度内容;未命中则回落正式全量。

客户端 curl 拉配置:无标签 / gray-a / gray-b / 未命中回落全量

灰度发布列表(两条 active 灰度并存)

客户端 OpenAPI:curl 拉到不同版本

客户端接口(HTTP API,默认 http://127.0.0.1:8090,路径是 /v1/...,不是 Console 的 /config/v1/...):

# 正式全量(无 tags / 未命中灰度)
curl -sS "$CLIENT/v1/GetConfigFile?namespace=default&group=docs-multi-gray&fileName=app.yaml&version=0" \
  | jq '{name:.file.name, release_type:.file.release_type, content:.file.content}'

# 命中灰度 A
curl -sS "$CLIENT/v1/GetConfigFile?namespace=default&group=docs-multi-gray&fileName=app.yaml&version=0&tags=env%3Dgray-a" \
  | jq '{name:.file.name, release_type:.file.release_type, content:.file.content}'

# 命中灰度 B
curl -sS "$CLIENT/v1/GetConfigFile?namespace=default&group=docs-multi-gray&fileName=app.yaml&version=0&tags=env%3Dgray-b" \
  | jq '{name:.file.name, release_type:.file.release_type, content:.file.content}'

tags 格式为 key=value(可重复传多个 tags)。期望结果示例:

客户端 tagsrelease_type内容特征
(无)或 env=othernormalmode: baseline
env=gray-agraymode: gray-a
env=gray-bgraymode: gray-b

一键造数 + 客户端断言:

./scripts/demo-config-multi-gray.sh

脚本会:Console 登录发布 1 条全量 + 2 条灰度,再分别用无标签 / env=gray-a / env=gray-b / env=other 调用 GetConfigFile,校验内容与类型。

客户端如何命中

  1. 未命中任一灰度规则 → 回落当前全量。
  2. 只命中一条灰度 → 拿到该灰度内容。
  3. 同时命中多条灰度 → 控制面在命中集合中按 version 新 → mtime 新 选择一条返回。
  4. Console 展示的「灰度优先级」用于发布与列表标识;多灰度冲突时的最终选择以上述 version/mtime 规则为准(不要把它理解成百分比流量分流)。

推荐用法

  • 用不同 releaseName / 灰度规则覆盖不同客户端标签集合(例如环境、集群、语言、自定义标签)。
  • 验证通过后,对目标灰度执行「提交为正式草稿」,再发布全量;其它灰度可继续保留或单独「删除灰度」。
  • 停灰度是按版本操作:停 A 不影响仍 active 的 B。

发布记录四态

在文件「发布记录」Tab:

发布记录

Tab含义
正式发布当前全量基线;正式发布不会结束 active 灰度
灰度发布可有多条 active 灰度独立生效
正式草稿由灰度转正或手工编辑生成,尚未影响线上客户端
历史记录已归档、回滚生成或删除后的记录

常见操作

场景操作结果
停灰度灰度中版本 →「删除灰度」命中该灰度的客户端回落当前全量;其它 active 灰度不受影响
灰度转正准备灰度中 →「提交为正式草稿」生成正式草稿,再对其「发布正式草稿」做全量;不会自动停灰度
回滚历史/非当前版本 →「回滚至此版本」生成新的当前全量;不会自动停止 active 灰度
删除当前全量删除确认未命中灰度的客户端可能拿不到配置,需谨慎

与 Pole Agent 的衔接

Agent 确认后的写操作只保存草稿。你仍须回到本页执行「发布配置」。见 Pole Agent 工作台

下一步

On this page