2012-03-14 2 views
2

우리의 응용 프로그램에서는 WCF 서비스를 통해 여러 응용 프로그램에서 액세스 할 수있는 중앙 데이터 저장소가 필요합니다. 데이터가 하나의 응용 프로그램에서 변경하고 저장 그렇지 않으면 응용 프로그램이 동기화되지 않은 것 때문에, 다른 모든 응용 프로그램이 변경 통보해야한다. 이 알림에는 변경된 데이터 유형과 고유 ID 만 포함됩니다. 그런 다음 응용 프로그램은 데이터베이스에 업데이트 된 데이터를 요청합니다. 그래서, 그것은 꽤 간단한 시나리오 인 것 같습니다.프로세스 간 이벤트/알림에 어떤 기술을 사용해야합니까?

내 질문 : 해당 알림에 어떤 기술을 사용해야합니까?

나는 다음과 같은 기술을 발견했다,하지만 난 시나리오에 가장 적합한 그들 중 어느 확실치 :

  • Microsoft 메시지 대기열 (MSMQ)
  • NServiceBus
  • 콜백 채널
+0

얼마나 자주 해당 db 업데이트가 있습니까? 많은 트래픽이있을 때 MQ가 잘 수행됩니다 (트위터가 Rabbit MQ를 사용한다고 생각합니다). – Adrian

+0

DB 업데이트는 자주 발생하지 않습니다. 일반적으로 하나 또는 두 개의 PC (각각 한 명의 사용자) 만 데이터베이스에 액세스 할 수 있습니다 (웹 액세스 없음, 로컬 네트워크 만). 업데이트는 일반적으로 사용자가 수동으로 수행합니다. – gehho

+0

그 중 하나가 귀하의 요구 사항을 충족시키는 것 같습니다. 더 이상 요구 사항이 없다면, 우리는 이들 사이를 결정할 방법이 없습니다. "최고"란 무엇을 의미합니까? –

답변

2

MS SQL Server의 경우 SqlDependency을 살펴보십시오. 인용 :

"SqlDependency는 ASP.NET 응용 프로그램 또는 중간 계층 서비스에서 특정 정보를 메모리에 캐시해야하는 캐싱 시나리오에 이상적입니다 .SqlDependency를 사용하면 데이터베이스의 원본 데이터가 변경 될 때 알림을받을 수 있습니다. 캐시를 새로 고칠 수 있습니다. "

이 응용 프로그램 인스턴스 사이의 특별한 동기화를 필요로하지 않고, 직접 데이터베이스 레벨에서 변경을들을 수있다. 추가 보너스로 데이터베이스가 응용 프로그램 이외의 다른 것으로 변경된 경우에도 작동합니다.

3

매우 도움이 발견이 개 실시간 메시징 제품/I가 사용하고있는 기술이 있습니다

  • SignalR

  • FrozenMountian의 WebSync

    • 이 종류의 고가 -하지만 무료 버전은 최대 10 개의 연결을 허용합니다.
    • 절약 시간은 모든 페니 가치가 있습니다.

나는 이것이 당신이 필요에 대한 과잉으로 간주 될 수 추측 -하지만 그들은 매우 유용한 도구입니다.

관련 문제