我們使用Grpc(C#庫)和protobuf在本地網絡中執行內部RPC。我正在使用HAProxy執行Roundrobin平衡,以便將負載分配到2臺服務器中的一臺。由於我創建了一個Singleton
通道並使用它來執行所有RPC調用,因此負載均衡不會發生。當我在創建GRPC Channel
時將代理IP作爲服務器列表提供時,IP不會解析爲實際的物理IP,而只會在Channel對象的ResolvedTarget
字段中顯示代理IP。我的問題是,我怎樣纔能有Singleton
對象的每個服務器,仍然使用HAproxy做負載平衡?或者不可能使用HAProxy並且同時將通道用作Singleton對象?如何在HAProxy與Grpc一起使用時實現IP地址的負載均衡?
1
A
回答
0
您沒有看到任何負載平衡,因爲只要有可能,gRPC就會使用單個持久性TCP連接向服務器發送請求。所以,當你打開一個到HAProxy的連接時,它會「負載均衡」到單個連接到其中一臺服務器。然後,只要應用程序運行,該連接就會保持打開狀態,因此負載均衡功能再也不會被重複使用。
您將連接的IP地址看作代理的IP地址,因爲您實際上已連接到代理。 HAProxy將您的數據包轉發到後端服務器。
這意味着無論單通道還是單通道,HAProxy都不會將多個gRPC請求從單個客戶端發送到不同的服務器。但是,對於gRPC,HAProxy仍然有用,因爲它仍然會將來自不同客戶端的連接負載均衡到不同的後端。
相關問題
- 1. HAProxy的,負載均衡
- 2. HAProxy的負載均衡
- 3. 使用haproxy進行percona負載均衡
- 4. 如何與負載均衡
- 5. 與負載均衡
- 6. 綁定地理負載均衡vs Nginx地理負載均衡
- 7. 如何使用負載均衡器實現SignalR冗餘?
- 8. 負載均衡在localhost UDP由源IP
- 9. 通過https與Rackspace Cloud負載均衡器的客戶端IP問題地址
- 10. 通過聊天室爲聊天室應用程序實現HAProxy負載均衡
- 11. 基於IP的Nginx負載均衡
- 12. 如何在nginx中實現新的負載均衡算法?
- 13. 使用負載均衡器
- 14. 使用nginx負載均衡
- 15. 使用負載均衡器與m
- 16. 負載均衡
- 17. 使用HAProxy負載均衡與Tornado應用程序的WebSocket連接?
- 18. ASP.NET負載均衡器IP檢測
- 19. 如何在mule中實現負載均衡器Http端點
- 20. 如何在java中實現負載均衡器
- 21. pgpool2負載均衡不起作用
- 22. 使用AWS負載均衡器在瀏覽器中顯示EC2實例的IP地址
- 23. 來自Env的Kubernetes中的服務/負載均衡器的公共IP地址
- 24. Tomcat負載均衡
- 25. MongoDB負載均衡
- 26. 如何實現GCE HTTP跨區域負載均衡
- 27. GCE +負載均衡器+沒有公共IP的實例
- 28. 無法使用Microsoft Azure負載平衡器負載均衡tomcats
- 29. activemq負載均衡使用彈性負載平衡器?
- 30. HAProxy - 基於URL的負載均衡路由
_但是,HAProxy對於gRPC仍然有用,因爲它仍然會將來自不同客戶端的連接負載均衡到不同的後端。我有相同的假設,但是當我創建單身通道時並沒有發生這種情況。來自所有客戶端的所有請求只發送到一臺服務器。我知道,因爲我正在將通道請求記錄到graylog。 – GawdePrasad