Central Dogma 配置同步实战:CD-to-CD 镜像跨集群同步完整教程
2026/9/6 9:48:38 网站建设 项目流程

Central Dogma 配置同步实战:CD-to-CD 镜像跨集群同步完整教程

【免费下载链接】centraldogmaHighly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2项目地址: https://gitcode.com/gh_mirrors/ce/centraldogma

如果你正在管理多个环境(如开发、预发、生产)或跨地域机房的微服务集群,一定遇到过这样的痛点:一份服务配置改了,却要在每个集群里手工重复修改,既容易漏改,又难以保证一致性。Central Dogma 提供的高可用配置仓库,加上它独有的CD-to-CD 镜像能力,可以让你像同步代码一样自动同步配置,一个集群改了配置,其余集群自动跟上。本文将用零代码的方式,带你从零完成 Central Dogma 跨集群配置同步的完整配置。

上图即 Central Dogma 的镜像(Mirror)配置界面,CD-to-CD 镜像与 Git 镜像共用同一套表单,只需把远程协议换成dogma即可。

为什么需要 CD-to-CD 镜像:跨集群配置同步的三种典型场景

Central Dogma 本身就是一个高可用的版本化配置仓库,但单个集群往往无法覆盖所有场景,常见的配置同步需求包括:

  • 多区域部署:同一套配置需要在多个机房同步生效,保证用户无论访问哪个区域,行为一致。
  • 环境隔离:预发环境先验证配置,验证通过后自动同步到生产集群,避免人工复制出错。
  • 主备容灾:主集群故障时,备集群必须拥有与主集群一致的配置,才能无缝接管流量。

与其用脚本或人工在多个集群间搬运配置,不如让 Central Dogma 自己完成同步——这正是CD-to-CD 镜像的价值所在:它把"配置同步"变成一项可定时、可审计、可回滚的自动化任务。

前置准备:安装 Central Dogma 与创建访问凭证

开始配置镜像前,你需要准备以下两样东西:

  1. 两个 Central Dogma 集群(或两个独立仓库),一个作为配置源,一个作为目标。如果还没有集群,可以用官方发行包在本地快速起两个实例进行演练。
  2. 一个 Access Token 访问令牌:CD-to-CD 镜像要求使用访问令牌(Access Token)作为凭证,因为它本质上是两个 Central Dogma 服务之间的 API 调用,不支持 SSH 密钥。

创建令牌的入口在项目设置的 "Tokens" 区域,创建后记得给令牌分配目标仓库的读写权限——同步方向不同,需要的权限也不同(拉取需要读权限,推送需要写权限):

上图是仓库的权限管理界面,可以为 Token 分别勾选 Read / Write 权限,CD-to-CD 镜像任务会以该令牌的身份操作远端仓库。

配置 CD-to-CD 镜像的完整步骤

整个配置过程在 Web 控制台的仓库设置中进行,路径为项目 > 仓库 > Settings > Mirrors > New Mirror,具体步骤如下:

第一步:填写 Mirror ID 与调度时间

  • Mirror ID:镜像任务的唯一标识,仅允许字母、数字、短横线、下划线和句点,例如cd-to-cd-prod-sync
  • Schedule:使用 Quartz cron 表达式定义同步频率,例如0 * * * * ?表示每分钟执行一次,0 0/30 * * * ?表示每 30 分钟一次。如果你希望手动触发,也可以关闭调度开关。

第二步:选择同步方向(Direction)

这是 CD-to-CD 镜像最关键的选择,决定配置流动的方向:

方向说明典型用途
REMOTE_TO_LOCAL从远端 Central Dogma 仓库拉取配置到本地仓库订阅上游集群的配置,本地只读消费
LOCAL_TO_REMOTE将本地仓库的配置推送到远端 Central Dogma 仓库本地作为配置源,向其他集群分发

比如"预发验证后同步到生产",就是LOCAL_TO_REMOTE:预发集群是配置源,把变更推给生产集群。

第三步:配置远程仓库地址(Remote)

这是 CD-to-CD 镜像与 Git 镜像最大的区别,需要注意三个要点:

  1. 协议 Scheme选择dogma(HTTP)或dogma+https(HTTPS)。生产环境务必使用dogma+https加密传输。
  2. 仓库 URI 格式<主机>[:<端口>]/<项目>/<仓库>.dogma,例如prod-cd.example.com:36462/app-config/app.dogma。注意仓库路径必须以.dogma结尾,默认端口为 36462。
  3. 没有 Branch 字段:Central Dogma 没有 Git 分支的概念,镜像的是整个仓库的某个路径,因此无需填写分支。

远程路径(Remote Path)可以指定仓库内的某个子目录;留空则同步整个仓库内容。这些 scheme 的定义可以在 MirrorForm.tsx 中直接看到。

第四步:绑定凭证(Credential)

选择第一步创建好的 Access Token 凭证即可。凭证可以在项目级或仓库级创建,镜像表单会自动列出当前项目与仓库下的全部凭证供你选择。

第五步:按需配置 gitignore 与启用镜像

  • gitignore:支持填写排除规则,指定哪些文件不参与同步,例如*.local.yamlsecrets/。这在你只想同步部分配置时非常有用。
  • Enable mirror:默认关闭,确认以上配置无误后再打开,避免误同步。

以上步骤的完整参数说明可在官方文档 mirroring.rst 中查阅。

4 个必须了解的注意事项

1. 镜像任务有数量和大小上限

为保证集群稳定,Central Dogma 对单次镜像的文件数和总大小做了限制:默认单个镜像最多8192 个文件、总大小不超过32 MiB,镜像线程数默认为 16。如果你的配置仓库较大,需要在服务端配置中调高maxNumFilesPerMirrormaxNumBytesPerMirror,详见 setup-configuration.rst。

2. 同步不是"双向实时"的

镜像本质是周期性单向复制,而非双向实时同步。两边的仓库仍然是独立的版本历史,同步发生冲突时,以执行时刻的源端内容为准。建议把同步频率与配置变更频率匹配好,并始终遵循"单边为源"的原则,避免两边同时修改造成覆盖。

3. 镜像变更可回滚、可审计

得益于 Central Dogma 的版本化能力,镜像写入的每一次变更都会产生提交记录,出现问题时可以直接回滚到任意历史版本,这也是相比手工脚本同步的一大优势。

4. 利用 Zone 实现就近同步

如果你的集群配置了多 Zone 部署,可以为镜像指定 Zone,让同步任务在指定的区域执行,进一步优化跨地域场景下的同步效率与稳定性。

结语:把配置同步变成自动化的一部分

通过 CD-to-CD 镜像,Central Dogma 将跨集群配置同步从"人工搬运"升级为"自动复制",配合版本历史、访问控制与调度能力,让多集群配置管理变得简单、可靠、可追溯。配置即代码,同步即自动——这正是高可用配置仓库应有的姿态。现在就打开你的第二个集群,用dogma+https建立第一条同步通道吧!

【免费下载链接】centraldogmaHighly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2项目地址: https://gitcode.com/gh_mirrors/ce/centraldogma

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询