我有一個聊天應用程序,我想在泊塢羣中進行擴展。我也在使用redis來管理應用程序。州。如何加載平衡WebSocket應用程序。在Docker Swarm中?
我已經創建了3個節點
docker-machine create --driver virtualbox node1 // master
docker-machine create --driver virtualbox node2 // worker
docker-machine create --driver virtualbox node3 // worker
一個覆蓋網絡(服務對服務的通信)
docker network create --driver overlay webnet
兩個服務
docker service create --name redis --network webnet --replicas 1 redis:alpine
docker service create --name chatapp --replicas=4 --network webnet --publish 80:3000 anandkr/chatapp-prod
問題的一個集羣
Swarm負載平衡器使用循環法技術將端口80上的請求分發到使用websockets進行客戶端通信的4個chatapp容器之間。正因爲如此,websocket握手會破裂,因爲一個客戶端容器之間沒有粘性。
即使我使用外部負載均衡器,它仍然會將責任卸載到羣集負載平衡器以進行服務發現。
如何處理這種情況?我在這裏做錯了什麼?