2010-06-17 5 views
1

최근에 서버가 '최근 활동'상자와 같이 모든 수신기에 대해 똑같은 데이터를 포함하는 이벤트 스트림을 배포하는 몇 가지 사례가 발생했습니다.빠른 단일 스레드 혜성 서버가 가능합니까?

아파치와 같은 서버에서 스레드 처리를 실행하고 동일한 데이터가 포함 된 모든 단일 혜성 스트림에 대해 데이터베이스를 쿼리하는 것은 상당히 이상하고 비효율적입니다.

전역 (사용자가 아님) 스트림에 대해 데이터를 지속적으로 방출하는 단일 스레드와 헤더를 출력 한 다음 주 (main)로 병합하는 새로운 요청에 대한 새로운 (녹색) 스레드가 실행됩니다 실.

하나의 스레드가 여러 소켓을 처리하거나 여러 클라이언트가 동일한 소켓을 수신 할 수 있습니까?

O = 이벤트

 # threads received 
| a b # 3 
o// # 3  - 
|/_/ 
|  # 1 
o c # 2  a, b 
|/
o/  # 2  a, b 
o  # 1  a, b, c 
|  #     connection b closed 
o  # 1  a, c 

이런 식으로 뭔가가 존재 하는가? 작동할까요? 할 수 있습니까?

면책 조항 : 나는 서버 전문가가 아닙니다.

답변

1

단일 스레드 이벤트 구동 서버 인 node.js를 확인하십시오. 자바 스크립트를 보너스로 사용합니다. 당신은 ASP.NET을 사용하는 경우

+0

멋진데 :) 트위스티드가 똑같이할까요? 그들은 어딘가에서 그것을 언급합니다. – Pepijn

1

, 다음 게시물 그런데

http://beta.codeproject.com/KB/aspnet/CometAsync.aspx

유용합니다, 스레드 당 하나 이상의 클라이언트,하지만 하나 개의 스레드를 제공하기 위해 혜성을 구현하는 것이 가능하다 모든 클라이언트가 충분하지 않은 것 같아요?

+0

나는 Python과 Clojure에 더 관심이있다. – Pepijn

0

"비동기 웹 요청"이 "비동기 혜성"과 같은 Comet에 적용됩니다.

요즘 인기가있는이 접근법은 deeply flawed입니다.