2014-10-14 3 views
1

우리는 앱 개발을 위해 NSB (NServiceBus)를 사용하고자합니다. 우리는 NSB에 푹 빠져 나가고 게시/구독 패턴이 완벽한 의미를 갖는 여러 가지 서비스를 제공합니다 (~ 6 개). 그러나 로컬 DB와 중앙 원격 DB 서버 중 하나에서 구성 데이터 (설정, 사용 권한 등)를 가져 오는 간단한 요청/응답 (전이중) 패턴이 필요한 구성 서비스도 있습니다.NServiceBus에서 Pub/Sub 메시징과 Full Duplex를 동시에 사용할 수 있습니까?

따라서 클라이언트는 설정 데이터를 요청하고 즉시 결과를 얻습니다. NSB를 pub/sub 설정으로 사용할 때 (설명서에 따라) 잘못된 결과가 반환됩니다.

SLR 및 내결함성, 오류 대기열 등과 같은 멋진 기능을 잃지 않고 NSB를 사용하여이 작업을 수행 할 수있는 방법이 있습니까? 아니면 NSB를 완전히 회피하고 간단한 WCF 서비스를 대신 만들어야합니까?

고맙습니다.

+0

"불법 (설명서에 따라)"? 해당 정보에 대한 링크를 공유하는 데주의해야합니까? 우리가 point-to-point (편도 + 요청/답장)와 pub/sub를 결합한 작업을하고 어떤 문제도 일으키지 않은 설치 프로그램을 실행하기 때문에 매우 놀랍습니다. –

+0

@Damien_The_Unbeliever 만약 당신이 내가 당신을 믿는 같은 버스에서 둘 다 사용한다고 말한다면. 지금 당장 해당 단락을 찾을 수 없습니다. 그래서 내가 하나의 버스를 사용할 때, 나는 그것을 사용할 수 있다고 말하고있다. - Pub/Sub & Send/Replay, 뭐든간에? – John

+0

일반적으로 서비스 버스를 통한 쿼리는 피해야합니다. 가능하다면 가능합니다 :) --- 서비스 버스가 비동기식으로 집중되기 때문에 시스템은 응답을 기다리지 않고 곧 도착할 것이라는 기대를 갖지 않아야합니다. 만약 당신이 * 할 * * 동기 응답을 필요로 뭔가 더 직접 (Udi 언급 한 바와 같이). –

답변

3

예, 특정 솔루션에서 게시/가입 및 전이중 요청/응답 메시징을 함께 사용할 수 있습니다. 괜찮습니다.

내가 말했던 모든 구체적인 예를 들어, 내가 다르게 모델을 만들거야.

구성 과정을 사용할 수있는 구성 요소 ("서비스"라기보다는)을 사용하는 것이 좋습니다. 이 DLL은 데이터베이스를 호출 할 것이고 실제로 원격 호출을 처리하는 유일한 방법은 연결 문자열이 로컬 시스템이나 원격 시스템을 가리키는 지 여부입니다.

+0

감사합니다! 나는 그 "구성 요소"모델을 따르는 지 잘 모르겠습니다. 나는 NSB에서 원격 연결 문자열 같은 것이 없다고 기대했다. 데이터는 항상 발신자 (클라이언트 시스템)에서 서비스 버스를 통해 이동하고 데이터베이스가 로컬 인 어 쨌든 다른 쪽 (= 원격 시스템 또는 설치에 따라 로컬 로컬)에서 처리됩니다. 또는 구성 요소가 서비스 버스의 이점을 얻는 방법은 무엇입니까? – John

+0

구성 구성 요소는 NServiceBus를 사용하지 않습니다. 정규 ADO.NET 만 데이터베이스에 액세스합니다. 모든 것이 NServiceBus를 사용해야합니다. :) –

관련 문제