多节点集群(TsgcWSCluster) — sgcWebSockets | eSeGeCe

多节点集群

TsgcWSCluster — 让您的 sgcWebSockets 服务器跨多个节点扩展。任意节点上的发布或 Presence 事件都能触达连接到其他每个节点的订阅者,通过零基础设施的 mesh 网格背板或 Redis 发布/订阅背板实现。您现有的 Publish、channel 和 Presence 代码无需任何改动。

TsgcWSCluster

将两台或更多 WebSocket 服务器置于负载均衡器之后,在一个节点上发布的消息仍能触达连接到其他节点的订阅者。把组件放在服务器旁边,让各节点相互指向,频道、广播和 Presence 即可在整个集群范围内工作。

组件类

TsgcWSCluster

背板

Mesh 网格(零基础设施)或 Redis 发布/订阅

支持平台

Delphi 7–13(Win32/Win64、Linux64、macOS、Android、iOS)及 .NET

版本

Enterprise

放置组件,让各节点相互指向,即可开始

将 sgc 协议附加到集群并启动。一个节点上的客户端可以向某个频道发布消息,其他节点上的客户端都能收到,且无需粘性会话。

uses
  sgcWebSocket, sgcWebSocket_Protocols, sgcWebSocket_Cluster;

var
  Server: TsgcWebSocketServer;
  Protocol: TsgcWSPServer_sgc;
  Cluster: TsgcWSCluster;
begin
  Server := TsgcWebSocketServer.Create(nil);
  Server.Port := 8080;

  Protocol := TsgcWSPServer_sgc.Create(nil);
  Protocol.Server := Server;

  Cluster := TsgcWSCluster.Create(nil);
  Cluster.EngineType  := clusterMesh;                // 零基础设施背板
  Cluster.ClusterPort := 5410;                       // 本节点的 mesh 网格监听端口
  Cluster.Peers.Add('192.168.1.101:5410');          // 其他节点
  Cluster.Peers.Add('192.168.1.102:5410');
  Cluster.Attach(Protocol);                          // 对该协议的发布/订阅进行集群化
  Cluster.Start;

  Server.Active := True;
end;
var server = new TsgcWSServer { Port = 8080 };
var protocol = new TsgcWSPServer_sgc { Server = server };

var cluster = new TsgcWSCluster {
    EngineType  = ClusterEngineType.Mesh,   // 零基础设施背板
    ClusterPort = 5414,
    Protocol    = protocol
};
cluster.Peers.Add("192.168.1.101:5414");
cluster.Peers.Add("192.168.1.102:5414");
cluster.Start();

server.Active = true;

内部功能

两种背板引擎、即插即用的 Attach,以及覆盖整个集群的 Presence — 摘自组件参考文档。

背板引擎

已发布属性 EngineTypeclusterMesh(无需外部基础设施)或 clusterRedis(Redis 发布/订阅)。

Mesh 网格

属性:ClusterPortPeers。每个节点直接监听并连接到其对等节点 — 无需安装任何额外组件。

Redis

属性:RedisHostRedisPortRedisChannel,适用于更大规模的部署。

Attach

方法:AttachDetachStartStop。各用一次调用即可对 sgc 协议和 Presence 进行集群化。

覆盖整个集群的 Presence

成员名单成为所有节点的并集;某个节点掉线后其成员会被清除,因此不会出现幽灵成员。

健康状态

属性 ReadyConnectedPeerCount,以及事件 OnPeerConnectedOnPeerDisconnectedOnClusterMessage

规范与参考

本组件所构建背板的权威来源。

文档与演示

直接访问组件参考文档,获取即用型演示项目,并下载试用版。

演示项目 — 02.WebSocket_Protocols\14.MultiNode_Clustering 即用型双节点示例。随 sgcWebSockets 包提供——请在下方下载试用版。
技术文档 (PDF) 本组件的功能介绍、快速入门、Delphi & C++ Builder 代码示例及主要来源参考。
用户手册 (PDF) 涵盖库中所有组件的综合手册。

让您的 WebSocket 服务器跨节点扩展

下载免费试用版,使用 mesh 网格或 Redis 背板对您的 sgcWebSockets 部署进行集群化。