2013-08-20 2 views
3

nginx는 이벤트 기반이므로 1 명의 단일 작업자가 여러 요청 (예 : 100 요청/초)을 취할 수 있다고 생각합니다. 이러한 요청은 uwsgi로 전달되어 프로세스가되고 나면 결과가 nginx로 되돌아 가고 nginx는 http 요청을하는 사용자에게 결과를 푸시합니다.Comet (Long Polling)을 사용할 때 uwsgi 프로세스가 멈추었습니까?

난 단지 내 uwsgi 1 개 작업자 (NO 스레드)를 사용하고 가정, uwsgi이 100 요구 한 권리 하나를 처리 할 것인가? 따라서 전체 요청을 완료하려면 100 개의 프로세스를 수행해야합니다. 내 프런트 엔드에 빠른 업데이 트를 얻기 위해 긴 폴링을 사용할 계획입니다 경우 지금 무슨 일이 일어날 나는 그것이 (긴 폴링 과정) 하나의 요청을 처리하고 중단 할 수 uwsgi을 강제로 생각 How does facebook, gmail send the real time notification?

모든 다른 요청으로 인해 전체 시스템이 고장났습니다.

내가 어떻게 uwsgi 작업의 오해가 있습니까, 또는 긴 폴링을 구현하는 다른 솔루션이 있습니까?

+1

이것은 흥미로운 질문이지만 나쁜 제목입니다. 이것을 "Comet을 사용할 때 uwsgi 프로세스가 유휴 상태로 유지됩니까?" 그리고 아마도 "혜성"을 태그에 추가하십시오. 이 질문은 아마도 http://serverfault.com/에 더 적합 할 것입니다. –

+0

제안에 감사드립니다 –

답변

1

귀하의 분석 (비용의 관점에서) 오른쪽 긴 폴링 multiprocesses 또는 멀티 스레드 모드에 적합하지 않는 것입니다 감사합니다. 각 프로세스/스레드는 단일 요청을 관리 할 수 ​​있습니다. 앱이이 패턴에 적응 (이것은 노 뇌의 일이 아니다, 그렇게 될 수 있다면 운이 충분히 uWSGI는 비 차단/evented/microthreads 기반 기술의 수십 (gevent처럼, 또는 낮은 수준의 greenlets)를 지원 원하지 않는 원숭이 - 패치가 충분합니다) 당신이 이길 것입니다. 당신은/좋아하는 콜백 기반의 프로그래밍을 허용하고 uWSGI 특정 기능이 필요하지 않은 경우

이 외에도, 나는 토네이도 문제에 대한 좋은 해결책을 찾을 수 있습니다.

+0

나는 토네이도를 직접 달리거나 nginx의 뒤에 토네이도를 달리기를 제안합니까? 내가 지금까지 발견 한 것은 http://www.quora.com/Tornado-web-framework/If-Tornado-has-to-be-backed-up-by-Apache-or-nginx-why-does-it-입니다 have-a-web-server 동의하십니까? 덕분에 –

+0

일반 규칙으로 공개 네트워크에 직접 노출 된 응용 프로그램 서버를 실행하지 마십시오. 그래, 나는 그 소식에 동의한다. – roberto

관련 문제