WCF는 다수의 클라이언트 사용자에게 얼마나 잘 확장됩니까?

StackOverflow https://stackoverflow.com/questions/43823

  •  09-06-2019
  •  | 
  •  

문제

Microsoft의 WCF로 구축된 웹 서비스가 다수의 사용자에게 얼마나 잘 확장되는지 경험해 본 사람이 있습니까?

제가 생각하는 수준은 1000명 이상의 클라이언트 사용자가 응용 프로그램에 대한 비즈니스 논리를 제공하는 WCF 서비스 컬렉션에 연결하고 이들이 데이터베이스와 통신하는 영역입니다. 이는 전통적인 3계층 아키텍처와 유사합니다.

성능을 저하시키는 특별한 문제가 있거나 이러한 수준의 확장성을 가능하게 하는 설계 교훈이 있습니까?

도움이 되었습니까?

해결책

WCF 애플리케이션이 원하는 수준으로 확장될 수 있도록 하려면 서비스가 충족해야 하는 통계에 대한 생각을 조정해야 할 수도 있습니다.

"1000명 이상의 클라이언트 사용자"에 대한 서비스를 언급했지만 서비스가 해당 수준에서 수행될 수 있는지 측정하려면 예상 사용량 수치도 필요합니다. 이는 앱의 초당 요청 수와 같은 몇 가지 간단한 통계를 계산하는 데 도움이 됩니다. 처리해야 합니다.

WCF 프로젝트 작업을 마친 후 우리는 테스트 하드웨어에서 초당 400개의 요청을 받았습니다. 이는 각 사용자가 하루에 300개의 요청을 하는 예상 사용 패턴과 결합하여 하루 평균 100,000명의 사용자를 처리할 수 있음을 나타냅니다. 하루 동안의 균일한 사용량 그래프).

또한 WCF 서비스 코드를 상태 비저장으로 만드는 것이 매우 일반적이므로 상자를 추가하여 실제 WCF 코드를 확장하는 것이 매우 쉽습니다. 즉, 시스템의 전체 성능이 비즈니스 논리 및 WCF보다 지속성 계층이 더 좋습니다.

다른 팁

아마도 처음에 살펴보기 시작할 수 있는 가장 큰 4가지 사항(좋은 서비스 코드를 갖는 것 외에)은 다음과 관련된 항목일 것입니다.

  • 바인딩 - 일부 바인딩과 해당 프로토콜이 실행되는 프로토콜은 다른 바인딩보다 빠르며 tcp는 http 바인딩보다 빠릅니다.
  • 인스턴스 모드 - 세션 호출자에 대해 클래스를 할당하는 방법을 결정합니다.
  • 단방향 및 양방향 작동 - 클라이언트에게 다시 응답이 필요하지 않은 경우 단방향으로 수행합니다.
  • 조절 - 최대 세션/동시 호출 및 인스턴스

그들은 기본적으로 WCF를 안전하게 설계했으므로 기본값은 매우 제한적입니다.

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