SyncBridge 网关同步
SyncBridge 用于让一个公网 Hub 通过单个 mTLS 监听端口汇聚多个边缘 Gateway。边缘端主动连接 Hub,不需要在现场网络开放入站端口;Hub 可以请求单个或全部 Edge 同步变量配置,并持续接收实时变量值。
运行角色
| 角色 | 作用 | 地址配置 |
|---|---|---|
HubServer | 在公网或中心网络监听,接收多个已授权 Edge | 填写 ListenUri,例如 0.0.0.0:7777 |
EdgePublisher | 主动连接唯一 Hub,发布当前转发组中的配置和实时值 | 填写 RemoteUri 和 TransportTargetHost |
每个目标都必须配置稳定且唯一的 LocalPeerId。Hub 和每个 Edge 使用独立证书,所有节点使用同一私有 CA 建立双向 TLS;VerifyToken 是 TLS 之后的第二层握手密钥,不能使用公开默认值。
配置前准备
- 在“系统管理 → 证书管理”中导入私有 CA、Hub 服务端证书和每个 Edge 的独立客户端证书。
- 规划 Hub 监听端口,并在防火墙中只开放该端口。
- 为 Hub 和每个 Edge 分配稳定
LocalPeerId,例如public-hub、edge-01、edge-02。 - 确定每个 Edge 数据转发组的变量范围。SyncBridge 只同步转发组范围内的设备和变量。
- 需要从 Hub 反向写入 Edge 变量时,先确认现场控制权限和维护窗口。
配置 Hub
进入“开发配置 → 数据转发”,新建转发组并设置变量范围,再新增 SyncBridge 转发目标。
| 参数 | 建议填写 |
|---|---|
| Role | 选择 HubServer。 |
| LocalPeerId | 填写 Hub 的稳定标识,例如 public-hub。 |
| ListenUri | 填写监听地址,例如 0.0.0.0:7777。 |
| VerifyToken | 填写随机强密钥,并通过安全方式提供给 Edge。 |
| TransportCertificateName | 选择 Hub 服务端证书。 |
| TransportCaCertificateName | 选择验证 Edge 客户端证书的私有 CA。 |
| HeartbeatIntervalMs | 默认 5000,范围 1000 至 60000。 |
| MaxConcurrentConfigurationSyncPeers | Hub 同时请求多个 Edge 配置时的并发数,默认 4。 |
| AllowRemoteRpc | 默认关闭;确认需要反向控制且变量权限已配置后再开启。 |
配置 Edge
在每台边缘 Gateway 的“数据转发”中新增 SyncBridge 目标,并让转发组只包含需要同步到 Hub 的变量。
| 参数 | 建议填写 |
|---|---|
| Role | 选择 EdgePublisher。 |
| LocalPeerId | 填写当前 Edge 的稳定标识,每台设备必须不同。 |
| RemoteUri | 填写 Hub 可访问地址,例如 sync.example.com:7777。 |
| VerifyToken | 与 Hub 完全一致。 |
| TransportCertificateName | 选择当前 Edge 独立客户端证书。 |
| TransportCaCertificateName | 选择验证 Hub 证书的私有 CA。 |
| TransportTargetHost | 填写 Hub 证书中的目标主机名。 |
| ConfigSyncMode | OnReconnect 只在重连或 Hub 请求时比较配置;OnChangeAndReconnect 还会在转发范围变化后同步。 |
| RealtimeFlushIntervalMs | 实时值合并窗口,默认 20 毫秒。 |
| MaxRealtimeBatchVariables | 单批实时变量上限,默认 2000。 |
| MaxRealtimeBatchBytes | 单批实时载荷上限,默认 262144 字节。 |
| RealtimeAckTimeoutMs | 等待 Hub 应用确认的超时,默认 3000 毫秒。 |
| MaxConfigChunkBytes | 单个配置块上限,默认 524288 字节。 |
TransportSslProtocols 通常保持系统安全默认值。SSL 3.0、TLS 1.0 和 TLS 1.1 不允许使用;CheckCertificateRevocation 默认开启,部署环境需要能够完成证书吊销检查。
配置和实时值规则
- Hub 可从专用调试页请求单个 Edge 或全部 Edge 同步配置。
- 配置通过修订、校验和、分块和单次提交应用;中途失败不会留下半批配置。
- 已有镜像变量只更新数据类型、单位和描述;名称、表达式、报警、历史和写权限保留 Hub 本地设置。
- Edge 删除变量或把变量移出转发范围后,Hub 保留本地镜像并标记来源缺失,不会自动删除。
- 实时值按 Epoch、Sequence 和配置修订校验;Hub 应用后返回确认,迟到旧值不会覆盖新状态。
- 断线重连后先校验配置,再恢复完整最新值,最后继续实时增量。
专用调试页
进入“开发配置 → 数据转发”,选择 SyncBridge 转发组和目标,再打开“调试”标签。Hub 页面会显示传输状态、对等端数量、逐 Peer 配置修订、序号、待发/确认中/入站数量、延迟、拒绝和最近接收时间。

移动端会把每个 Peer 转换为纵向记录,适合现场用手机核对连接、修订和最近接收时间。

| 操作 | 说明 |
|---|---|
| 同步全部边缘配置 | Hub 请求所有已知 Edge 比较并提交配置,离线 Edge 会显示明确失败,不会把部分成功报告为全部成功。 |
| 同步单个 Peer | 只处理选中的 Edge,适合新增点位或单站维护。 |
| 请求全量值 | 请求 Edge 重新发送当前完整最新值。 |
| 重连 / 断开 Peer | 用于维护指定会话,不会重启整个 Gateway。执行前确认不会影响现场数据。 |
| 导出诊断 | 导出脱敏状态、修订、计数和错误,不包含令牌、私钥或完整变量载荷。 |
Hub 目标在线表示监听就绪且至少有一个已认证 Peer;镜像设备在线由对应 Peer 会话、配置就绪状态和镜像变量状态共同决定。Edge 会通过认证心跳保持空闲会话,正常空闲不应被误判为断线。
常见问题
| 现象 | 处理方法 |
|---|---|
| Hub 传输未就绪 | 检查 ListenUri、证书、CA、端口占用和防火墙。 |
| Edge 无法连接 | 检查 RemoteUri、TransportTargetHost、客户端证书、CA、VerifyToken 和系统时间。 |
| PeerId 冲突或认证失败 | 每个 Edge 必须使用独立 LocalPeerId 和独立客户端证书,不要复制其它 Edge 的身份。 |
| Peer 已连接但镜像设备离线 | 查看配置是否已经提交、镜像变量是否在线,以及最近全量值是否成功应用。 |
| 配置同步显示 Unchanged | 当前修订和校验和一致,不需要重复写入。 |
| 本地名称或报警没有被覆盖 | 这是预期行为,这些字段归 Hub 本地所有。 |
| 反向写入被拒绝 | 检查 Hub 目标 AllowRemoteRpc、变量 RPC 写入开关、写入检查和用户权限。 |
| 延迟高于预期 | 查看 RTT、待发和确认中数量;降低批量、减少变化率或改善公网链路。公网延迟不能仅靠调小发送间隔保证。 |