集群架构

多机协作,横向扩展

管理端下发、部署端拉取、服务端上线、数据端汇聚——四端组成一张可横向扩展的集群网,靠多进程部署与 Gossip 协议自动组网、自动收敛状态。

Web 管理端 统一调度 · 任务下发
RESTful API · 部署指令
数据端 数据汇聚
SSH 服务端 多进程 · Gossip
部署端 自动部署
横向扩展 · 节点冗余
三线 BGP 全国低延迟接入
心跳监控 状态上报 · 故障自愈

四端如何组成集群

各端独立部署、独立伸缩,通过 API 与心跳协作,任何一端扩容都不影响其它端

协作链路

管理端下发 Management
部署端拉取 Deploy Agent
服务端上线 SSH Server
数据端汇聚 Data Service
监控告警 Monitoring

Web 管理端

集群的统一入口,负责设备管理、隧道自动分配与访问策略下发,向各端输出部署指令与业务配置。

Python · Django Redis · PostgreSQL MinIO Agent API

数据端

独立的数据服务,集中汇聚各节点的隧道与端口数据,向其它端提供查询接口,并以可视化面板呈现运行状态。

Go ClickHouse 数据查询接口 Grafana

SSH 服务端

隧道接入与转发的核心,单机多进程部署、多机组成集群,节点间通过 Gossip 同步状态。

Go 自研协议栈 Memberlist Prometheus

部署端

常驻心跳、自动拉取部署任务,完成服务的安装、升级与失败回滚,无需人工登录服务器。

Go Shell MinIO 心跳任务拉取

多进程与集群

多进程部署 + Gossip协议集群,横向扩展

多进程部署

同一台服务器启动多个进程,各监听不同端口,由上游负载均衡分发SSH连接。

根据服务器配置自动适配进程数量
多核性能充分利用
各进程独立运行互不干扰
支持横向扩展

Gossip集群

基于hashicorp/memberlist实现gossip协议,各进程间通过TCP通信同步状态。

用户上线/下线广播,跨节点踢掉同名用户
端口冲突检测,跨节点自动关闭旧隧道
AES加密通信,安全密钥配置
集群端口自动分配(SSH端口+5800偏移)

サーバーノード

全部采用阿里云、腾讯云三线BGP服务器,保障全国低延迟接入

知名云服务商 阿里云 + 腾讯云
三线BGP 网络线路
< 50ms 全国平均延迟
99.9% 可用性保障

阿里云

主力节点,覆盖华北、华东、华南核心区域。三线BGP接入电信、联通、移动三大运营商,智能路由选择最优路径。

电信 联通 移动 BGP

腾讯云

补充节点,华南及港澳台方向优化。同样采用三线BGP,与阿里云节点互为冗余,提升整体可用性。

电信 联通 移动 BGP

三线BGP的优势

智能路由

自动选择最优运营商线路,无需用户手动切换

全网覆盖

电信、联通、移动用户均可获得低延迟体验

故障自愈

单线路故障时自动切换到其他可用线路

低延迟

全国主要城市平均延迟低于50ms

编译 · 部署 · 测试

从代码提交到服务上线,全流程自动化

代码提交
Git Push
自动测试
CI Pipeline
多平台编译
Cross-Platform
版本发布
Artifact Publish
一键部署
CD Pipeline

自动化测试

CI 单元测试 + 端到端冒烟测试 + 压力测试,多层覆盖保障质量。

单元测试 冒烟测试 压力测试 跨设备认证

多平台交叉编译

Go 交叉编译,一次构建覆盖全部目标平台,含 Docker 多架构镜像。

Linux amd64/arm64 macOS amd64/arm64 FreeBSD Docker multi-arch

自动部署

部署端通过心跳自动拉取任务,执行服务端部署,支持自动更新部署端自身。

心跳拉取 自动更新 配置下发

为什么这样做集群

每一项技术选型都有明确的工程理由

为什么服务端用 Go?
Go原生goroutine模型天然适合高并发网络编程,单进程可管理数千并发连接,内存占用低(~140KB/worker),无需外部依赖的协程调度。
为什么用 Gossip 而不是Redis做集群通信?
Gossip协议去中心化,无单点故障,节点间直接TCP通信延迟低。用户上线/下线消息需要毫秒级同步到所有节点,Gossip比轮询Redis更实时。

体验自研集群

注册免费试用,亲身感受自研技术带来的速度与稳定。

免费注册