
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
WAL-Listener是一个用于实现事件驱动架构(Event-driven Architecture)的服务镜像。其核心功能是通过PostgreSQL数据库的逻辑解码(Logical Decoding)能力,实时订阅数据库变更事件,并将这些事件可靠地发布到NATS Streaming服务器。该服务支持事务性消息发布,确保数据库模型变更与事件发布在同一事务中完成,从而维持系统数据一致性。
wal_level=logical(启用逻辑解码),并创建具有REPLICATION权限的用户通过挂载本地配置文件启动容器,命令示例:
bash# 假设本地配置文件路径为 ./config.yml docker run -v $(pwd)/config.yml:/app/config.yml docker.xuanyuan.run/ihippik/wal-listener:latest
参数说明:
-v $(pwd)/config.yml:/app/config.yml:将本地配置文件挂载到容器内默认配置路径/app/config.yml,服务启动时自动加载该配置4.3.1 部署清单示例
yamlapiVersion: apps/v1 kind: Deployment metadata: name: wal-listener namespace: dev # 部署命名空间,需提前创建 spec: replicas: 1 # 单副本部署(根据业务需求调整) strategy: rollingUpdate: maxSurge: 1 # 滚动更新时允许超出期望副本数的最大Pod数量 maxUnavailable: 0 # 滚动更新时允许不可用的最大Pod数量(保证服务不中断) type: RollingUpdate # 采用滚动更新策略 selector: matchLabels: app: wal-listener # 匹配标签为"app: wal-listener"的Pod template: metadata: name: wal-listener labels: app: wal-listener # Pod标签 spec: containers: - name: app image: docker.xuanyuan.run/ihippik/wal-listener:latest imagePullPolicy: IfNotPresent # 本地存在镜像时不拉取 command: ["./app"] # 启动命令 args: ["--config", "/var/configuration/config.configmap.yml"] # 指定配置文件路径 volumeMounts: - name: "config" # 挂载配置卷 mountPath: "/var/configuration" # 容器内配置文件目录 readOnly: true # 配置文件只读 resources: requests: # 资源请求 memory: "64Mi" cpu: "100m" limits: # 资源限制 memory: "64Mi" cpu: "100m" volumes: - name: "config" # 定义配置卷(基于ConfigMap) configMap: name: "wal-listener" # 引用的ConfigMap名称(需提前创建) items: - key: "config.configmap.yml" # ConfigMap中的配置文件key path: "config.configmap.yml" # 卷内文件名
4.3.2 部署步骤
wal-listener)kubectl apply -f wal-listener-deployment.yamlkubectl logs -f <pod-name> -n dev查看服务日志,确认连接正常WAL-Listener的行为完全由配置文件驱动,需在启动时通过挂载方式将配置文件传入容器。配置文件需包含PostgreSQL连接信息、NATS Streaming连接信息、监听规则等核心参数。
官方示例配置文件可参考:https://github.com/ihippik/wal-listener/blob/master/config_example.yml
--config指定(如--config /var/configuration/config.yml)readOnly: true)wal_level=logical,且监听用户具有REPLICATION和目标数据库的SELECT权限您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务