Vulcan Stream提供从Vulcan Persistence到Vulcan Agents的单向通信通道。Vulcan Persistence需要与Vulcan Agents进行广播通信,以管理Agent池和控制执行中的检查。由于Agent可能无法从互联网访问,Stream提供Websocket流,供Agent连接以接收来自Persistence的输入。
!通信流程图
Vulcan Stream基于两个主要服务运行:
Vulcan Stream利用Postgres的NOTIFY/LISTEN功能将实时消息发布到Websocket流。
我们曾考虑使用AWS SNS和/或SQS接收Vulcan Persistence的通知并向Websocket流发布消息。但由于AWS SNS/SQS的特性、实现的简洁性,以及Vulcan基础设施中已将Postgres作为需求,我们认为NOTIFY/LISTEN功能是实现实时广播通知的最佳方案,具备适当的弹性和可扩展性。
适用于Vulcan生态系统中,当Vulcan Agents可能无法从互联网访问时,需Vulcan Persistence向多个Agent广播控制信息(如管理Agent池、控制检查执行)的场景,提供可靠的单向实时通信。
提供两个二进制文件:
假设您的机器上已安装Docker,且端口5432和8080没有服务监听。
bashgo get -x github.com/adevinta/vulcan-stream/cmd/vulcan-stream docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_DB=stream postgres vulcan-stream ${GOPATH}/src/github.com/adevinta/vulcan-stream/_resources/config/local.toml
bashgo get -x github.com/adevinta/vulcan-stream/cmd/vulcan-stream-test-client vulcan-stream-test-client ${GOPATH}/src/github.com/adevinta/vulcan-stream/_resources/config/local.toml
bashcurl --include --no-buffer --header "Connection: Upgrade" --header "Upgrade: websocket" \ --header "Host: localhost:8080" --header "Origin: http://localhost:8080" \ --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" --header "Sec-WebSocket-Version: 13" \ "http://localhost:8080/stream" & psql -c "NOTIFY events, '{\"action\":\"test\", \"check_id\":\"00000000-0000-0000-0000-000000000000\"}';" \ -U postgres -h localhost stream
可查看和修改Vulcan Stream配置文件:
_resources/config/local.toml
| 变量 | 描述 | 示例 |
|---|---|---|
| PORT | HTTP监听端口 | 8080 |
| LOG_LEVEL | 日志级别 | DEBUG |
| PG_(HOST|DB|USER|PWD|PORT) | PostgreSQL相关变量 | |
| STREAM | 流名称 | stream |
bash# 构建镜像 docker build . -t vs # 使用默认配置文件并通过环境变量自定义 docker run --env-file ./local.env vs # 使用自定义配置文件 docker run -v `pwd`/custom.toml:/app/config.toml vs


来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429