itsource

socket.io 을 확장하려면 어떻게 해야 합니까?

mycopycode 2023. 8. 25. 23:33
반응형

socket.io 을 확장하려면 어떻게 해야 합니까?

서버가 socket.io 를 통해 10,000개의 동시 연결을 얻었다고 가정해 보겠습니다.그 정도면 충분합니다. 더 이상 처리할 수 없다면 다른 서버를 가동시켜야 합니다.

두 서버를 socket.io 과 동기화하려면 어떻게 해야 합니까?

클러스터를 사용하여 소켓의 크기를 조정하지 않습니다.IO. 소켓.IO 0.6은 단일 프로세스 서버로 설계되었으며 긴 수명 연결 또는 폴링 연결을 사용하여 서버와 클라이언트 간의 실시간 연결을 달성합니다.

socket.io 클라이언트 앞에 클러스터를 배치하면 클라이언트를 모르는 다른 서버 간에 폴링 전송이 기본적으로 분산됩니다.이로 인해 연결이 끊어집니다.그러나 모든 클라이언트가 서로 다른 서버에 분산되어 있고 그 사이에 IPC가 없기 때문에 모든 클라이언트에 브로드캐스트하는 것도 번거로울 수 있습니다.

따라서 웹 소켓 및 플래시 소켓 연결만 사용하고 브로드캐스트 기능을 사용할 필요가 없는 경우에만 클러스터를 사용하는 것이 좋습니다.

그래서 당신은 무엇을 해야 합니까?

처음부터 여러 프로세스에서 사용하도록 설계된 socket.io 0.7이 출시될 때까지 기다릴 수 있습니다.

또는 pub/sub를 사용하여 다른 서버 간에 메시지를 보낼 수 있습니다.

를 들어 클러스터 모듈을 사용하여 로드를 여러 코어(멀티 코어 CPU가 있는 경우)로 분산할 수 있습니다.이것으로 충분하지 않은 경우, 여러 서버에 요청을 배포하기 위해 역방향 프록시를 사용하고 시나리오에서 가능한 경우 중앙 세션 데이터 저장소로 redis를 사용할 수 있습니다.

언급URL : https://stackoverflow.com/questions/5944714/how-can-i-scale-socket-io

반응형