2015-01-17 2 views
3

오늘 NServiceBus와 동일한 매우 간단한 문제와 종일 종일 싸워 왔습니다. 문제는 구성을 변경하는 방법에 대한 많은 문서가 있지만 필요한 구성이 무엇인지 알 수있는 거의 아무것도 없다는 것입니다.NServiceBus 엔드 포인트 이름이 pub/sub와 어떻게 작동합니까?

예제 응용 프로그램이 있으며 작동하지만 작동 방식, 제한 사항 또는 예제와 조금 다른 방법을 설명하지는 않습니다. 샘플 응용 프로그램은 "Hello world"유형의 단순성을 제공하며 실제 응용 프로그램에서는 샘플 응용 프로그램과 다른 것을 필요로하지만 이러한 변경을 수행하는 방법이나 구성 선택의 의미에 대해서는 도움이되지 않습니다.

문서에서 추측하기 어려운 모든 것부터, 지금은 가장 불만을 야기하는 엔드 포인트 이름, UnicastBusConfig 매핑 및 pub/sub persistence 간의 관계입니다.

끝점 이름은 MSMQ 대기열의 이름입니까? 모든 응용 프로그램이 모든 메시지 유형에 대해 하나의 입력 대기열 만 가지고 있다는 것을 의미합니까? UnicastBusConfig에서 매핑을 추가하면 게시자에게 구독 메시지가 전송되거나 구독 데이터베이스에 구독 레코드가 추가됩니까? UnicastBusConfig에 동일한 메시지 유형을 두 번 이상 추가 할 수없는 이유는 무엇입니까? 특정 유형의 메시지를 구독하지 않아도 어떤 서버에서 온 것인지 알 필요가 없습니다.

NServiceBus를 이해하는 사람이라면 문서화 할 가치가없는 것처럼 보일 수도 있지만, 처음으로이 기능을 사용하는 사람은 저레벨의 상태에서 추측하기가 가장 간단한 간단한 항목입니다. 세부 묘사.

답변

4

엔드 포인트 이름은 MSMQ 대기열의 이름입니까?

예.

모든 응용 프로그램에 모든 메시지 유형에 대해 입력 대기열이 하나만 있다는 것을 의미합니까?

예. 각 엔드 포인트에는 연관된 하나의 큐가 있으므로 해당 엔드 포인트의 모든 메시지는 동일한 큐를 통과합니다.

UnicastBusConfig에서 매핑을 추가하면 게시자에게 구독 메시지가 전송되거나 구독 데이터베이스에 구독 레코드가 추가됩니까?

아니요. UnicastBusConfig 섹션은 유형 (또는 어셈블리)과 엔드 포인트 사이의 관계를 설정하기위한 것입니다. 따라서 구독 자체가 실제로 설정되지는 않지만 메시지가 어디에서 오는 것인지 (따라서 구독하는 방법) 프레임 워크에 알려줍니다.

시스템이 시작될 때 실제 구독이 만들어지고 NSB는 UnicastBusConfig의 섹션과 일치하는 특정 유형의 메시지에 대한 처리기를 찾습니다 (자동 구독이 켜져 있다고 가정).

이것은 명령 전송에도 사용됩니다. config 섹션은 프레임 워크가 Send() 명령의 끝점을 알 수 있도록합니다.

동일한 메시지 유형을 UnicastBusConfig에 두 번 이상 추가 할 수없는 이유는 무엇입니까?

명령에는이를 처리하는 하나의 (논리적 인) 엔드 포인트 만있을 수 있으며 이벤트에는이를 게시하는 하나의 (논리적) 엔드 포인트 만있을 수 있기 때문에.

어떤 유형의 메시지를 구독하지 않아도 어떤 종류의 메시지를 구독 할 수없는 이유는 무엇입니까?

이 질문은 중개자 (허브 및 스포크) 대 버스 스타일 아키텍처를 사용한다는 철학에 들어 맞기 때문에 좀 더 대답하기가 어렵습니다.

하지만 간단히 말해서, 게시자를 구독하려면 게시자를 찾는 방법을 알아야합니다. NServiceBus에는 중앙 브로커 또는 라우팅 테이블이 없기 때문에 클라이언트가 소비하는 끝점 정보를 사용하여 구성해야합니다.

+0

고맙습니다. 매우 도움이됩니다. 불행히도 NServiceBus가 저에게 적합한 솔루션이 아니라는 것을 의미하는 것으로 생각합니다. 어쩌면 이것이 내가 너무 많은 좌절감을 느낀 이유입니다. – bikeman868

+0

메일 링리스트에 자유롭게 게시 할 수 있습니다. 특정 상황에 대한 도움을 얻는 것은 SO가 제공 할 수있는 것보다 앞뒤로 많은 대화에서 도움이 될 수 있습니다. –

0

NServiceBus 설명서는 http://docs.particular.net/nservicebus/에서 확인하실 수 있습니다.이 설명서는 매우 포괄적이며 대부분의 질문에 대한 답변을 제공해야합니다.

+0

이게 당신이 찾고있는 http://docs.particular.net/nservicebus/how-pub-sub-works입니까? –

+1

나는이 문서를 읽고 코드를 실험하는 데 대부분 하루를 보냈다. 이것은 원래의 질문에서 언급 한 "세부 묘사"입니다. 문서의 문제점은 모든 기사가 이미 다른 모든 기사를 읽었다 고 가정하므로 루프를 돌아 다니면서 점진적으로 문맥을 구성하고 점진적으로 이해해야 만하는 기본 원칙에 도달 할 수 있습니다. 소개 또는 시작하기 유형 기사에서 쉽게 덮을 수 있습니다. – bikeman868

+0

나는 똑같은 일로 어려움을 겪어 왔습니다. 그리고 나는 Azure와도 통합되어있어, 당신의 고통을 느낍니다. – willem