
:
bashgo test -race -short ./...
要连接MongoDB实例,请使用环境变量MONGO_TEST_URL,例如export MONGO_TEST_URL=localhost:27017。要连接Etcd实例,请使用环境变量ETCD_TEST_URL,例如export ETCD_TEST_URL=http://localhost:2379。
服务的动态环境配置可以从etcd或文件系统获取。
要从etcd读取这些配置,请将ETCD_PEERS环境变量设置为etcd节点。
对于基于文件系统的环境配置,ETCD_PEERS必须设置为值:NOT_AVAILABLE。
无论是etcd还是基于文件的选项,都支持配置的动态更新。
根据配置选项,需要etcd或配置文件 - 参见配置来源和动态更新
要在本地运行Carousel,请使用以下命令查看需要设置的命令行参数:
bash./publish-carousel --help
请注意,如果连接到UPP集群,必须连接到主Mongo实例。
Publish Carousel在优雅关闭时会向S3写入元数据文件。此功能(执行关闭钩子)在Windows的Git Bash中无法工作,但在命令提示符中可以正常工作。在Mac上可正常工作。
以下包的职责明确:
cms包:负责以所需格式向cms-notifier发出POST请求。etcd包:负责检索和监视etcd中的键。native包:负责从Mongo中的native-store查找和读取文档。resources包:提供服务的HTTP端点。s3包:提供用于读写Amazon S3文件的高级(可重用)包。scheduler和tasks包负责Carousel的整体操作:
tasks包:提供从native-store加载原生内容并POST到cms-notifier的抽象,便于扩展支持其他需要Mongo UUID的任务。scheduler包:负责Carousel的运行管理。代码核心概念包括调度器(Scheduler)、周期(Cycle) 和周期元数据(CycleMetadata)。每个周期可处于多种状态之一。
调度器管理所有配置的周期,提供添加、删除、启停、重置单个周期及关闭所有周期的功能。
周期负责持续迭代native-store中的部分原生内容,完成一次内容子集的重新发布即完成一次迭代。
迭代整个native-store集合(如methode、wordpress),按配置的节流间隔(如每15秒)重新发布内容。
迭代配置时间窗口内(如过去一小时)的所有结果,动态调整节流以在窗口结束前完成发布。有最小节流限制,若无法在窗口内完成,将延长下一个窗口以避免遗漏。
示例:最小节流为1分钟,需发布65个项目时,将花费1小时5分钟,下一个窗口延长5分钟。
类似FixedWindow,但同时有最小和最大节流限制。周期完成后,下一次迭代从上次结束位置开始,可能导致极短的时间窗口。若窗口无内容,将进入冷却期(如5分钟)。
示例:最大节流为1分钟,5个项目需5分钟完成发布。
周期迭代过程中收集的元数据包括:
total:迭代项目总数completed:已完成数量progress:进度百分比errors:错误总数iteration:当前迭代次数currentUuid:当前发布的UUIDwindowStart/windowEnd:时间窗口起止(仅时间窗口类型)states:周期状态数组停止时,元数据(目前仅ThrottledWholeCollection类型)保存到S3;重启时尝试恢复,恢复后将跳过已完成项目继续发布。
在Active/Passive发布集群中运行,默认在被动区域禁用。通过etcd键/ft/config/publish-carousel/enable(或文件配置的/configs/toggle)控制模式,切换时将相应启停。故障转移时不会自动启动,避免集群过载。
toggle:布尔值,启用/禁用carousel,默认trueactive-cluster:布尔值,指示是否在主动集群运行,默认truename:周期名称type:类型(ThrottledWholeCollection/ScalingWindow/FixedWindow)origin:POST到cms-notifier的源系统IDcollection:native-store集合名称coolDown:迭代间隔时间throttle(每次发布间隔)timeWindow(时间窗口)、minimumThrottle(最小节流)maximumThrottle(最大节流)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务