2014-07-17 4 views
-1

masstransit을 사용할 때 불안정하고 느린 네트워크 링크 (사용자가 동일한 WAN에 있지만 느리고 값 비싼 휴대 링크를 사용하는 경우) 끝에 선택적으로 메시지를 보낼 필요가 있습니다. .라운드 트립을하지 않는 MassTransit 선택 소비자

내가 인접 해 소비자가

내가 살펴 보았다 볼 1 메시지의 가장 낮은 볼륨과 신뢰도가/가장 비싼 링크 사이트가 메시지 트래픽의 가능성이 높은 금액을 무시해야하는 200의 팬 아웃을 기대하고

선택적 소비자 인터페이스를 사용하지만 메시지는 항상 모든 소비자에게 전송 된 다음 술어와 일치하지 않으면 삭제됩니다. 이 오버 헤드는 허용되지 않습니다.

엔드 포인트 팩토리를 사용하지 않고 Send()를 수행하기 위해 수동으로 URI 끝점을 관리하지 않으면 구독을 사용하여 좋은 방법이 있습니까?

답변

0

간단한 답 : nope.

몇 가지 옵션이 있습니다. 로드/프로세싱을 기반으로하는 라우팅입니까? 경쟁 소비자를 사용하여로드 균형 조정을 수행 할 수 있습니다. 모든 엔드 포인트는 동일한 대기열을 읽지 만 대기열에서 읽는 모든 프로세스에서 동일한 사용자 여야하며 다음 대기열을 선택합니다. 속도가 느린 경우 더 적은 수의 메시지 만 선택하면됩니다. (경쟁 소비자는 RabbitMQ에서만 사용할 수 있습니다).

MSMQ의 경우 부하 분산을 위해 만들어진 배포자가 있습니다. 그것이 RabbitMQ의 위에 재건축하는 것을 볼 수 있습니다. 그것은 매우 복잡하지는 않지만 어떤 노력이 필요합니다.

그 외에도 처음부터 무언가를 쓸 가능성이 높습니다. 더 이상 pub/sub가 아닙니다. 그래서 MT의 조타실 밖에 떨어집니다.