适用于 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.json 中 LoadBalancerBase64EncodedCredentials 设置的值相匹配。
• 负载均衡器应每隔 15-20 秒向每个 ThingWorx 主导节点发送一次此调用。
• ThingWorx 主导节点健康响应的响应代码为 200。
◦ 当主导节点发送响应代码 200 时,备用结点服务器应返回 400、401 或 503 响应代码。
• 如果主导节点发送三个并非响应代码 200 的响应代码,则:
◦ 负载均衡器应检查备用 ThingWorx 服务器是否在发送响应代码 200。
◦ 正在发送响应代码 200 的备用服务器应被视为新的 ThingWorx 主导节点。
◦ 所有通信都应定向至新的 ThingWorx 主导节点。