웹 소켓의 부하를 분산하는 방법에 대한 질문이 있습니다.
웹 소켓을 지원하는 서버가 있습니다. 브라우저는 내 사이트에 연결되고 각 브라우저는 www.mydomain.com
. 이렇게하면 내 소셜 네트워크 앱이 클라이언트에게 메시지를 푸시 할 수 있습니다.
전통적으로 HTTP 요청 만 사용하여 두 웹 서버 앞에 두 번째 서버와로드 밸런서를 추가하여 확장했습니다.
웹 소켓을 사용하는 경우 연결은로드 밸런서가 아닌 웹 서버와 직접 연결되어야합니다. 머신의 물리적 제한이 64k 개방 포트라고 말하고 클라이언트가로드 밸런서에 연결하는 경우 지원할 수 없기 때문입니다. 64k 명 이상의 동시 사용자.
그래서 어떻게-
페이지가로드 될 때 클라이언트가로드 밸런서가 아닌 웹 서버에 직접 연결하도록 하시겠습니까? 노드에서 JavaScript를로드하면 페이지가 처음 요청 될 때마다로드 밸런서 (또는 기타)가 스크립트의 URL을 임의로 수정합니까?
잔물결 시작 처리? 브라우저는 웹 서버가 종료됨에 따라 연결이 종료되었음을 알 수 있습니다. 연결을 다시 시도하는 JavaScript 코드를 작성할 수 있지만 노드는 잠시 사라질 것입니다. 그래서 사용할 다음 노드의 주소를 쿼리하려면로드 밸런서로 돌아 가야한다고 생각합니다.
브라우저가 처음에 요청
www.mydomain.com
하고www34.mydomain.com
. 노드가 다운 될 때까지 꽤 잘 작동합니다. 페이스 북과 같은 사이트는 그렇게하지 않습니다. 그들은 그걸 어떻게 햇어?