문제

메시지 흐름의 아래 단계와 유사하게 작동하는 멀티 서버 클러스터 프레임 워크를 개발하고 싶습니다.

클라이언트로부터

  • 게이트웨이 서버는 메시지를받습니다
  • 게이트웨이 서버는 ACK 메시지 (UDP)를 보냅니다.
  • 메시지는 이진에서 공장을 통해 물체로 구체화 된 사용자 정의입니다.
  • 그런 다음 메시지가 클러스터의 보조 서버로 라우팅되고 (구성 기반) WCF를 통해 객체를 보조 서버로 보냅니다.
  • 메시지는 보조 서버에서 처리됩니다.

서버에서

  • 보조 서버는 메시지를 빌드하고 게이트웨이 서버로 보냅니다.
  • 게이트웨이 서버 이진은 메시지를 직렬화합니다
  • 게이트웨이 서버는 바이너리를 클라이언트로 보내고 ACK 메시지 (UDP)를 기다립니다.

서버는 .config 파일을 통해 서비스를 가리키기 위해 구성됩니다. 동일한 응용 프로그램 (WCF가 초기화) 또는 기타 시스템의 로컬로 서비스를 포인트합니다.

누구든지 이와 같은 유형의 아키텍처를 만들기 위해 노력한 적이 있습니까? 그렇다면, 당신이 겪은 문제는 무엇입니까?


편집하다
이 시스템은 이미 기존 프로토콜의 서버 측면이 될 것이므로 모든 클라이언트 대 서버 프로토콜은 본질적으로 손길 수 없지만 상태 관리 (클라이언트는 모든 통화와 함께 세션을 전송), 암호화, 서버 라우팅 및 패킷 보호.


편집하다
누군가가 .NET에서 클러스터링을 사용하는 오픈 소스 프로젝트에 대한 링크를 제공 할 수 있습니까?

도움이 되었습니까?

해결책

편집.

확인하다 이 샘플 응용 프로그램 밖으로. 사이트에 따르면 ...

기술은 ASP.NET 및 WCF를 사용하여 서비스 지향적 인 N-Tier 디자인을 시연했습니다.

  • UI, 비즈니스 서비스 및 DB 액세스의 깨끗한 분리
  • 성능을위한 디자인 및 튜닝
  • 동적 클러스터링을 통해 수평으로 확장 가능
  • 클러스터 된 서비스 노드의 중앙 구성 관리

다른 팁

장기적인 거래에서 세션 상태를 유지하는 것은 큰 장애물이 될 수 있습니다. 로드 밸런싱 솔루션이 한 서버에서 시작하여 다른 서버에서 완료하는 세션을 고려하거나 수용 할 수 있는지 확인해야합니다. 이는 브라우저/클라이언트의 쿠키와 같은 외부 소스 또는 공통 데이터베이스 서버의 항목과 같은 외부 소스를 통해 상태를 공유하여 달성 할 수 있습니다. 또는 많은 하드웨어로드 밸런싱 솔루션은 "스티커 세션"을 사용하여 클라이언트가 항상 동일한 서버로 돌아갈 수 있도록합니다 (예 : IP 주소에 따라)

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