簡體   English   中英

在ECS上負載均衡websocket?

[英]Load balancing websockets on ECS?

我才剛剛開始理解和解決這個問題。

Node.js的Socket.io或Go的Gorilla Websocket解決方案每個實例都有一個連接池。 因此,在每個實例中,我可以說“向客戶端xxx發送消息”。

但是,當我嘗試水平擴展(通過生成其他實例)時,每個實例都有自己的客戶端連接池,因此嘗試向連接到另一個實例的特定客戶端發送消息失敗。 我認為這是因為當前實例無權訪問該實例的連接/內存池。

我了解ECS會自動水平擴展docker容器,如果我要在ECS上擴展WS服務器項目並將其擴展到服務的另一個實例,AWS是否神奇地處理套接字服務器實例之間的對話-還是我必須處理?

根據MDN

WebSockets是一項高級技術,可以打開用戶瀏覽器和服務器之間的交互式通信會話。

這意味着每個websocket是到特定服務器的持久連接。 為了向其他服務器中的套接字發出事件,您需要一個適配器。 例如,如果您使用的是Socket.io,則可以看看SocketIO Redis

另一方面,要平衡負載,您可以使用應用程序負載平衡器(ALB),該負載平衡器支持ECS中的WebSocket和容器化應用程序。

暫無
暫無

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

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