문제

나는이 질문이 전에 조금 묻는 것을 알고있다. 그러나 주위를 둘러 보면 여전히 내려 가야 할 길을 떠날 수 없습니다. 내 시나리오는 다음과 같습니다. 도와 드릴 수 있기를 바랍니다.

우리는 수백 개의 모바일 애플리케이션에 의해 예정된 일련의 웹 서비스를 제공 할 것입니다. 이 서비스는 장치로 이동하여 장치로 돌아 오는 새로운 정보가있는 장치에 데이터를 데이터로 데이터로 데이터로 데이터로 데이터를 데이터로 가져옵니다. 장치에서 반환 된 데이터는 여러 데스크탑 응용 프로그램과 웹 사이트를 공급하는 단일 중앙 SQL Server 데이터베이스를 업데이트해야합니다.

이러한 서비스의 요청/응답 시간을 줄이기 위해 MSMQ 인스턴스에 고착하거나 직렬화 된 객체를 임시 데이터 저장소에 저장하여 장치에서 나오는 데이터를 처리하기로 결정했습니다. Windows 서비스는 나중에 처리합니다.

그래서 내 선택이 있지만, 이것을 제외하고는 여기에 여러분들에게 조언하는 데 도움이 될만한 몇 가지가 있습니다.

  • 장치에서 반환 된 데이터는 서버 쪽 주문 해야하는 작은 메시지 패킷으로 반환되지 않습니다.
  • MSMQ에 대해서는 아무것도 모르지만 전에 Windows 서비스를 작성했습니다. MSMQ가 필요한 경우 수거하는 데 문제가 없습니다.
  • 데이터로 인해 발생하는 이유가있는 경우 처리가 실패한 경우 장치에서 응답을 유지하고 싶습니다. 이런 식으로 데이터를 조사하고 문제가 있는지 확인할 수 있습니다. 즉 장치를 통해 사용자는 서버 측 데이터베이스에서 관련 필드의 길이를 확장하는 주석을 추가 할 수 있습니다.

이 정보를 사용하면 MSMQ를 배우는 것이 가치가 있다고 생각합니까, 아니면 더 간단한 솔루션을 고수해야합니까?

크리스.

도움이 되었습니까?

해결책

MSMQ는 나쁜 선택이 아니며 배우기가 어렵지 않지만, 알아야 할 몇 가지 제약이 있음을 명심하십시오.

단점 :

  • 각 대기열은 2GB 일 수 있습니다.
  • 각 메시지 4MB (4MB 제한은 WCF와 함께 MSMQ를 사용하여 고정 될 수 있음).
  • Windows의 경우에만 COM 지원 환경에 .NET, C/C ++ 또는 COM 라이브러리와 함께 사용하도록 제한됩니다.

장점 :

  • Windows 네트워크로드 밸런서를 지원합니다.
  • Microsoft 클러스터 서비스를 지원합니다.
  • Active Directory와 통합.
  • 창문이있는 배.
  • 거래를 지원합니다.
  • MSMQ 메시지는 Windows 이벤트 로그의 감사 메시지로 추적 할 수 있습니다.
  • 메시지는 전송시 자동 인증 (서명) 또는 암호화 및 리셉션시 확인 및 해독 될 수 있습니다.

고려해야 할 또 다른 접근법은 데이터를 준비 테이블에 작성하는 것입니다. 메시지 뒤로 로그를 원하기 때문에 이것은 좋은 생각 일 수 있습니다.

시스템 아키텍처의 나머지 부분을 모르면 조언을하는 것은 어렵지만이 답변이 조금 도움이되기를 바랍니다.

유용한 링크

.NET에서 MSMQ 프로그래밍 - 1 부
WCF와 함께 MSMQ 사용

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