簡體   English   中英

本地Azure Service Fabric Cluster的負載平衡器

[英]Load balancer for Azure Service Fabric Cluster on-premises

作為開發人員,我們在Azure Service Fabric上編寫了微服務,我們可以在Azure中以某種PaaS概念為許多客戶運行它們。 但是我們的一些客戶不希望在雲中運行,因為數據庫是本地的,而不是從外部可用,甚至不是通過DMZ。 沒關系,我們承諾支持它,因為Azure Service Fabric可以作為集群安裝在本地。

我們在每個虛擬機上運行一個API網關微服務,它使用名稱解析器,並相應地路由和分發請求,但API網關微服務提供的API是另一個客戶端軟件的入口。客戶使用,該軟件在集群外部運行,並且必須向API發送請求。

我建議在客戶端軟件發送請求的單獨機器(或機器)上使用HA-Proxy或Nginx等負載均衡器,然后反向代理將其轉發到集群內的可用機器。

這似乎不是我們客戶想要的,另一台機器作為負載均衡器不是一種選擇。 他們建議:讓客戶端軟件變得更聰明,找出要去哪個主機,換句話說:我們應該在客戶端軟件中編寫自己的故障轉移/負載均衡器。

我們還有其他選擇嗎?

PS:客戶端應用程序每秒發送的請求數不多,可能每分鍾發送一次。

非常類似的問題,我們有許多服務和服務結構集群在本地運行。 在使用負載均衡器的時候,我們在運行Service Fabric集群的同一台機器上安裝IIS。 由於IIS是一個很好的負載均衡器,我們使用IIS作為API網關的反向代理。 Kestrel托管用於通過HTTP進行通信的其他服務。 API網關微服務是所有客戶端的單一入口點,並且在SF內部始終具有靜態URI,我們使用該URI來配置IIS

如果您沒有可能使用IIS,請查看使用nginx作為HTTP負載均衡器

您不需要另一台機器只用於HTTP轉發。 只需將其作為群集上的服務使用/運行即可。

您是否考慮過使用內置的Service Fabric 反向代理 它在所有節點上運行,它將http調用轉發到集群內的服務。

您還可以將nginx作為來賓可執行文件運行,或者在集群中的Container中運行。

在開始使用服務結構集群時,我們也遇到了同樣的情況。 我們將Application Gateway配置為Proxy,但它不提供HTTP到HTTPS重定向等功能。

為此,我們將Nginx而不是Azure應用程序網關配置為服務結構應用程序的代理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM