문제

스트리밍이 실행 가능한 옵션인가요?내가 선택하는 것에 따라 서버측에서 성능 차이가 있습니까?이 경우에는 하나가 다른 것보다 낫습니까?

저는 서버 측에서 Tomcat을 실행하는 GWT 애플리케이션을 작업 중입니다.내 요구 사항을 이해하려면 여러 주식의 주가를 동시에 업데이트한다고 상상해 보세요.

도움이 되었습니까?

해결책

프로세스가 클라이언트 또는 서버 중심이되기를 원하십니까? 다시 말해, 새로운 데이터를 사용할 수있는 즉시 고객에게 새로운 데이터를 푸시 하시겠습니까, 아니면 한 번/초가 아니더라도 고객이 적합하다고 생각할 때마다 고객이 새로운 데이터를 요청 하시겠습니까? 고객이 답을 기다리기 위해 고집 할 가능성은 무엇입니까? 이벤트가 한 번/초가 발생할 것으로 예상 되더라도 클라이언트의 요청과 서버의 수익 사이에 얼마나 걸립니까? 1 초 이상이라면 이벤트를 고객에게 밀어내는 데 의존 할 것으로 기대합니다. 응답이 간격보다 오래 걸리면 클라이언트가 마지막을 수신 할 때까지 새로운 이벤트가 준비되기 때문에 본질적으로 스트리밍 중이므로 클라이언트는 본질적으로 지속적으로 투표 할 수 있으며 항상 이벤트를 수신 할 수 있습니다. 프로세스에서 연결/협상 오버 헤드를 제거하기 때문에 데이터는 실제로 더 가벼워집니다.

클라이언트가 연결을 열어 두는 대신 매번 연결을 다시 협상해야하지만 각 열린 연결이 발생하기 때문에 스트리밍 구성 대신 클라이언트 기반 (PULL) 구독에 대해 서버로드가 더 높다고 생각합니다. 스트리밍 모델에서는 서버 리소스도 필요합니다. 협상 프로세스가 얼마나 공격적인 지와 각 열린 연결에 필요한 메모리/처리의 양 사이의 상충 관계에 달려 있습니다. 그래도 전문가는 아니므로 다른 요인이있을 수 있습니다.

업데이트: 이 남자 긴 폴링과 스트리밍 사이의 상충 관계에 대해 이야기하며, HTTP/1.1을 사용하면 연결 재 협착 프로세스가 사소한 것이므로 문제가되지 않습니다.

다른 팁

정말 중요하지 않습니다. 연결 재 협착 오버 헤드는 HTTP1.1에서 너무 얇으므로 어떤 식 으로든 상당한 성능 차이를 알 수 없습니다.

장난감의 장기 이점은 호환성과 신뢰성입니다. 프록시, 포트, 연결 해제 감지 등에는 문제가 없습니다.

"진정한"스트리밍의 이점은 잠재적으로 오버 헤드를 줄일 수 있지만, 이미 언급했듯이,이 혜택은 그보다 훨씬 적습니다.

개인적으로, 잘 설계된 혜성 서버가 많은 수의 업데이트 및/또는 서버 푸시에 가장 적합한 솔루션이라고 생각합니다.

확실히 데이터를 푸시하려는 경우 서버가 예상되는 연속 연결 수를 처리할 수 있다면 스트리밍이 더 나은 성능을 제공하는 것처럼 보입니다.그러나 해결하지 못한 또 다른 문제가 있습니다.인터넷인가요 인트라넷인가요?스트리밍은 예상한 대로 프록시 전반에 걸쳐 몇 가지 문제가 있는 것으로 보고되었습니다.따라서 범용 솔루션의 경우 긴 폴링을 사용하는 것이 더 나을 것입니다. 네트워크 인프라를 이해하는 인트라넷의 경우 스트리밍이 더 간단하고 성능이 뛰어난 솔루션일 가능성이 높습니다.

그만큼 Streamhub GWT 혜성 어댑터 이 스트리밍 스톡 견적 시나리오를 위해 정확히 설계되었습니다. 여기서 예 : GWT 스트리밍 스톡 견적. 여러 주식의 주가를 동시에 업데이트합니다. 아래의 구현은 본질적으로 HTTP를 통해 스트리밍되는 혜성이라고 생각합니다.

편집 : 각 브라우저마다 다른 기술을 사용합니다. 웹 사이트를 인용 할 :

숨겨진 iframe, xmlhttprequest/script Long Polling 및 Flash와 같은 임베디드 플러그인을 포함하여 혜성을 구현하는 데 사용되는 몇 가지 다른 기본 기술이 있습니다. 미래의 브라우저에 HTML 5 Websockets를 도입하면 HTTP 스트리밍을위한 대안 메커니즘이 제공됩니다. StreamHub는 각 브라우저에서 가장 성능이 뛰어나고 신뢰할 수있는 기술을 사용하여 "가장 적합한"접근 방식을 사용합니다.

데이터가 전선을 한쪽으로 가로 지르기 때문에 스트리밍이 더 빠릅니다. 폴링을 통해 대기 시간은 적어도 두 번입니다.

폴링은 연결이 열려있는 상태에 의존하지 않기 때문에 네트워크 정전에 더 탄력적입니다.

나는 견고성을 위해서만 투표하기 위해 갈 것입니다.

라이브 주가의 경우 연결을 계속 열어두고 분리에 대한 사용자 경고/재 연결을 보장합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top