跳到主要内容
架构与设计

系统架构

STX 服务端、Web UI 与 Agent 的进程模型、端口与协作关系。

先看 STX 安装在哪台机器,再看 SeaTunnel 跑在哪台机器。这两种角色可以在同一台机器上,也可以分开。

角色是什么上面跑什么
STX 安装机你一键安装 / 部署 STX 的那台(或那套)机器STX Server、Web UI、元数据库
被纳管主机Web UI「主机管理」里登记的机器,用来跑 SeaTunnelstx-agent,以及 SeaTunnel / stx-java-proxy

Web UI 与元数据在 STX 安装机一侧;对 SeaTunnel 的操作由被纳管主机上的 Agent 执行并上报。

一个三台机器的例子​

假设机房里有 3 台机器:

机器IP角色
stx-ops10.0.0.10STX 安装机:执行一键安装,浏览器打开 http://10.0.0.10:17880
data-110.0.0.21被纳管主机:在 Web UI 登记后装 Agent,再跑 SeaTunnel Master
data-210.0.0.22被纳管主机:同样装 Agent,跑 SeaTunnel Worker

你平时登录的是 10.0.0.10 的 Web UI;点「启动集群」时,指令从 10.0.0.10 经 gRPC 发到 10.0.0.21 / 10.0.0.22 上的 Agent,由它们在本机拉起 SeaTunnel。

网络上也按这个理解:

  • data-1 / data-2 要能访问 10.0.0.10:17800、17890(装 Agent、注册、收指令)
  • 10.0.0.10 要能访问各被纳管主机上的 18080(stx-java-proxy,可改)

小规模体验时,也可以 三台合成一台:同一台机器既装 STX,又登记为自己、再装 Agent 跑 SeaTunnel——角色仍是上面两套,只是落在同一台物理机上。

整体结构​

浏览器与 CLI 访问 STX Server;对被纳管主机的操作由 Agent 经 gRPC 执行。需要调用 SeaTunnel Java 能力时,由同一台被纳管主机上的 stx-java-proxy 完成。

进程与职责​

进程怎么起职责
STX Server(stx server)一键安装后随服务启动HTTP API、鉴权、元数据;同时提供 Agent 所需的 gRPC 服务
Web UI一键安装后随服务启动网页界面(主机、集群、安装包、插件、监控等)
stx-agent在被纳管主机上执行安装命令注册与心跳;预检、安装、启停、配置推送、进程发现等
stx-java-proxy由平台在节点上托管启停独立 Java 辅助进程,复用已安装的 SeaTunnel 运行时做配置解析与存储探测等
元数据库SQLite(默认)或 MySQL / PostgreSQL主机、集群、节点、配置版本、审计等

监控可对接 Prometheus / Grafana / Alertmanager:一键安装可附带本地三件套,也支持接入已有监控栈(需改配置)。

stx-java-proxy​

stx-java-proxy 跑在已安装 SeaTunnel 的节点上,作为独立进程复用引擎运行时能力,不嵌进 Master / Worker 进程。默认监听 18080(安装或启动参数可改)。

主要能力包括:配置级 DAG 解析、Catalog 元数据探测、Checkpoint / IMAP 存储探测、source / transform 预览。默认堆内存上限约 512MB。

Web UI 可在集群维度查看其状态、日志,并执行启停 / 重启;安装与运行时探测会优先使用该服务。STX Server 要通过 Agent(或可达的 proxy 地址)访问节点上的 18080,网络需要连通。

分工可以简单记:Agent 管主机与进程编排;proxy 负责需要 SeaTunnel Java 能力的解析与探测。

默认端口​

端口用途
17880Web UI
17800STX Server HTTP API(含 Agent 安装脚本等)
17890Agent gRPC
18080节点上 stx-java-proxy(可改)

被纳管主机要能访问 STX 安装机上的 17800 与 17890(拉 Agent、注册、收指令);STX Server 也要能访问被纳管主机上的 18080(经 Agent 探测 / 调用 stx-java-proxy)。

app.external_url 怎么填​

config.yaml 里的 app.external_url 会写进 Agent 安装命令(类似 curl http://…:17800/api/v1/agent/install.sh | bash)。
命令是在被纳管主机上执行的,所以这里的地址必须是那台机器也能访问到的 STX API,一般是 STX 安装机的局域网 IP + 17800。

接上例:

app.external_urldata-1 执行安装命令时实际访问结果
http://10.0.0.10:17800STX 安装机正确
http://127.0.0.1:17800data-1 自己装不上 / 连不上

你本机浏览器打开 Web UI 用的是 http://10.0.0.10:17880;external_url 管的是 Agent 怎么找到 STX API(17800),不是 Web UI 地址。

能力分层​

能力说明
主机与 Agent登记主机、安装 Agent、心跳与容量
集群与安装集群定义、进程发现、一键安装与节点启停
配置 / 插件 / 安装包配置版本与推送、连接器、SeaTunnel 安装包
监控与诊断监控配置、事件与诊断入口
认证与审计登录、用户管理、审计日志

Agent 协作​

Agent 接入后会:

  1. 注册:向 STX Server 报到,可携带预绑定的主机 ID 与本机地址
  2. 心跳:默认约 10s 一次;超过约 30s 未上报则判离线
  3. 执行指令:STX Server 下发预检、安装、启停、配置更新、进程发现等,Agent 回传结果
  4. 日志与诊断:按需上报日志,并配合诊断采集

主机与集群操作见 主机管理 与 集群管理。作业配置与调试见 调试工作台。命令行如何登录、确认写操作见 CLI 设计。

部署形态​

形态说明
Linux 一键安装推荐路径;systemd 拉起 STX Server 与 Web UI
Docker / Compose适合快速体验或容器化部署
本地开发启动分别启动 API 与 Web UI 进程

说明:用 Docker 跑 STX 安装机上的组件,与把 Docker / Kubernetes 当作 被纳管主机环境 不是一回事;后者当前版本尚未适配。