사람들이 일반적으로 SocketIO 및 Node로 빌드하는 첫 번째 앱은 일반적으로 채팅 앱입니다. 이 채팅 앱에는 기본적으로 여러 개의 클라이언트로 브로드 캐스팅 할 1 개의 노드 서버가 있습니다. 노드 코드에서, 당신은 비슷한 것을 가질 것입니다.NodeJS + SocketIO : 단일 실패 지점 조정 및 방지
//Psuedocode
for(client in clients){
if(client != messageSender){
user.send(message);
}
}
소수의 사용자에게 적합하지만이 문제가 있습니다. 우선, 노드 서버 인 단일 실패 지점이 있습니다. 둘째로, 클라이언트의 수가 증가함에 따라 앱이 느려질 것입니다. 우리가 병목에 이르렀을 때 무엇을해야합니까? 이 문제를 완화하는 데 사용할 수있는 아키텍처 (수평/수직 스케일링)가 있습니까?
서버에 얼마나 많은 클라이언트가 연결 되길 기대합니까? 그 루프가 눈에 띄게 느려지려면 수만 명이 아니라면 수천 명이 필요하다고 말할 수 있습니다. –
수백만 명의 사용자가 있다면 잘되지 않습니까? – denniss