作爲開發人員,我們在Azure服務架構上編寫了微服務,並且我們可以爲許多客戶在Azure中以某種PaaS概念運行它們。但是我們的一些客戶不想在雲中運行,因爲數據庫是內部部署的,並且不會從外部獲得,甚至無法通過DMZ獲得。沒關係,我們承諾會支持它,因爲Azure Service Fabric可以作爲羣集內部部署來安裝。本地Azure服務Fabric羣集的負載平衡器
我們在每個虛擬機上運行一個API網關微服務,每個虛擬機使用名稱解析器,並且相應地路由和分發請求,但API網關微服務提供的API是另一塊客戶使用的客戶端軟件,該軟件在羣集之外運行,並且必須向API發送請求。
我建議在單獨的一臺或多臺機器上使用像HA代理或Nginx一樣的負載均衡器,客戶端軟件將其請求發送給客戶端,然後反向代理將其轉發給羣集內的可用計算機。
看來,這不是我們的客戶想要的,另一臺機器作爲負載平衡器不是一個選項。他們建議:使客戶端軟件變得更加智能,以便弄清楚應該使用哪個主機,換句話說:我們應該在客戶端軟件中編寫我們自己的故障切換/負載均衡器。
我們還有什麼其他選擇?
在每臺虛擬機上安裝網絡負載平衡器功能以給羣集一個IP地址,這甚至有可能嗎?像https://www.poweradmin.com/blog/configuring-network-load-balancing-in-windows-server/
一些建議集羣外的API網關,像KONG https://getkong.org/
別的東西嗎?
PS:客戶端應用程序不會每秒發送很多請求,也許每分鐘幾個請求。
不清楚哪些軟件在哪裏發送請求。軟件如何按層分離,以及這些層中的SF,客戶端軟件和數據庫在哪裏。 – cassandrad
有一個託管web api服務的機器集羣,所以10.0.0.1:8100,10.0.0.2:8100和10.0.0.3:8100都是相同的web api入口。客戶端位於集羣外部,必須前往其中一個入口。 – rfcdejong
在這種情況下實現的最終解決方案是什麼? @rfcdejong – Aravind