ThingWorx 高可用性 > 适用于 ThingWorx 高可用性的负载均衡器
适用于 ThingWorx 高可用性的负载均衡器
ThingWorx HA 配置需要具有一到两个负载均衡器。
一个负载均衡器用于将通信定向至 ThingWorx Connection Server。仅当 ThingWorx Connection Server是部署的一部分时才需要使用。
一个负载均衡器用于将通信定向至作为当前主导节点的 ThingWorx 服务器。所有 ThingWorx HA 配置中都需要此负载均衡器。
负载均衡器常规要求
负载均衡器应在其自身的高可用性配置中运行。
它可以路由 web 套接字通信。
它可以管理静态 (或粘滞) 会话。
(可选) 它可以管理 SSL 终止。
ThingWorx Connection Server的负载均衡器
如果连接服务器需要使用负载均衡器,则应接收所有 ThingWorx 通信并根据以下规则进行分发:
负载均衡器应仅将 web 套接字通信定向至连接服务器。应将用户通信和其他非 web 套接字通信定向至可将通信路由到 ThingWorx 主导节点的其他负载均衡器。
为获得最佳性能,资产的 web 套接字通信应始终使用粘滞会话转向连接服务器。
如果该连接服务器处于离线状态,则应将该资产的通信定向至另一个连接服务器。
如果资产和连接服务器之间的会话变为非活动状态,则可以使用任何可用的连接服务器建立新会话。
ThingWorx 服务器的负载均衡器
ThingWorx 服务器 (用户、资产、连接服务器等) 的所有通信都应通过此负载均衡器进行路由,以确保将其定向至 ThingWorx 当前主导节点。
负载均衡器会定期调用每个 ThingWorx 服务器上的服务。此服务会以其主导节点状态进行响应。将主导节点代码返回到负载均衡器的 ThingWorx 服务器用于接收用户和资产通信。返回备用节点代码的 ThingWorx 服务器不应接收通信。
可以使用符合以下条件的任何负载平衡器:
负载均衡器可定期将以下 GET 语句发送至 ThingWorx 主导节点,并根据响应进行操作。
GET /Thingworx/Admin/HA/LeaderCheck
HTTP/1.0\r\nAuthorization:\ Basic\ <base64-encoded-string>
其中,<base64-encoded-string> 是以 base64 进行编码的 user:password 字符串,该字符串与 platform-settings.jsonLoadBalancerBase64EncodedCredentials 设置的值相匹配。
负载均衡器应每隔 15-20 秒向每个 ThingWorx 主导节点发送一次此调用。
ThingWorx 主导节点健康响应的响应代码为 200。
当主导节点发送响应代码 200 时,备用结点服务器应返回 400、401 或 503 响应代码。
如果主导节点发送三个并非响应代码 200 的响应代码,则:
负载均衡器应检查备用 ThingWorx 服务器是否在发送响应代码 200。
正在发送响应代码 200 的备用服务器应被视为新的 ThingWorx 主导节点。
所有通信都应定向至新的 ThingWorx 主导节点。
满足上述要求的负载均衡器均可在 ThingWorx HA 部署中使用。 HAProxy 示例中提供了一个负载均衡器的配置示例。该示例基于 HAProxy ( http://www.haproxy.org)。