높은 처리량으로 다수의 클라이언트 (동시 500K 이상)에 분산 된 Comet 기반 서버를 구축해야한다는 요구 사항이 있습니다. 나는 현재 Tornado를 사용하여 긴 폴링 요청 수가 많아 높은 효율을 낼 수 있는지 조사하고 있습니다.Distributed Tornado 기반 채팅 서버
내 관심사는 단일 Tornado 서버가 많은 수의 긴 폴링 클라이언트를 처리 할 수 있는지 여부입니다. 실험으로 토네이도 채팅 데모 (https://github.com/facebook/tornado/tree/master/demos/chat)를 분산 환경으로 확장하고 싶습니다. 나는. 병렬로 실행되는 수많은 토네이도 채팅 서버를 가지고 있습니다. 각 서버는 변화하는 클라이언트 세트를 담당합니다.
나는 이러한 계획을 구현하는 것과 관련하여 귀하가 갖고있는 생각이나 관련 자료에 대한 참고 사항을 고맙게 생각합니다.
감사합니다.
이반,이 경우에 rabbitmq가 어떻게 유용할까요? – securecurve
RabbitMQ는 하나의 토네이도 인스턴스 (chat.services.com:8001)가 제공하는 클라이언트의 메시지를 다른 토네이도 인스턴스 (chat.services.com:8002)가 서비스하는 다른 클라이언트에게 전달하는 것을 도와줍니다. 주요 도전 과제는 온라인, 오프라인, 유휴 여부와 같은 각 온라인 사용자 (상태)를 유지하는 것입니다. 예를 들어, Facebook은 유휴 전략 알고리즘을 개발했습니다. 사용자 활동을 1, 2, 5, 8, 11 초 동안 유휴 상태로 결정합니다. 네트워크로드를 크게 줄이고 뛰어난 처리량을 달성하는 데 도움이됩니다. –