ThingWorx 高可用性 > ThingWorx 高可用性負載平衡器
ThingWorx 高可用性負載平衡器
ThingWorx HA 組態需要一個或兩個負載平衡器。
一個負載平衡器用於將流量導向 ThingWorx Connection Server。只有當 ThingWorx Connection Server 是部署的一部份時才需要它。
一個負載平衡器將流量導向目前作爲前置節點的 ThingWorx 伺服器。所有 ThingWorx HA 組態都需要此負載平衡器。
一般負載平衡器需求
負載平衡器應該在其自己的高可用性組態內運作。
其可以路由網路通訊端流量。
其可以管理靜態 (或固定) 工作階段。
(選用) 其可以管理 SSL 終止。
ThingWorx Connection Server 的負載平衡器
如果需要連線伺服器負載平衡器,其應該接收所有 ThingWorx 流量並根據下列規則分送:
負載平衡器應該僅將網路通訊端流量導向「連線伺服器」。使用者流量和其他非網路通訊端流量應導向其他負載平衡器,將流量路由至 ThingWorx 前置節點。
為求最佳效能,資產的網路通訊端流量應始終轉至使用固定工作階段的相同「連線伺服器」。
如果該「連線伺服器」離線,該資產流量應導向另一個「連線伺服器」。
如果資產與「連線伺服器」之間的工作階段變為非使用中,則可以利用任何可用的「連線伺服器」建立新的工作階段。
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 前置節點。
可以符合上述要求的任何負載平衡器都可用於 ThingWorx HA 部署。 HAProxy 範例會提供負載平衡器的範例組態。此範例基於 HAProxy ( http://www.haproxy.org)。