나는 새로운 Rabbit MQ 클라이언트를 사용하여 RabbitMQ 메시지를 소비 할 두 개의 동일한 사이트가 함께 RoutingKey을 사용하는 방법. 생산자는 이상적으로 대기열 이름 또는 라우팅 키로 사이트를 지정할 수 있어야합니다. 전자는 Publish 매개 변수로 할 수 있지만 후자는 액세스 할 수 없습니다. 또한 서비스 측면에서 소비자는 컨벤션 기반 큐 이름 (예 : mq.myrequest.inq) 만 구독 할 수있는 것으로 나타나며 라우팅 키를 활용할 수없는 것 같습니다.ServiceStack 및 RabbitMQ
내가 즉 mq.myrequest.site1.inq 명시 적 큐 이름에 따라 핸들러를 게시하고 구독 내 자신의 라우팅 키를 사용하거나 등록 할 수있는 방법이 있나요?
지금은 정적 QueueNames.SetQueuePrefix ("site1 :")를 사용하여 문제를 해결했지만 제안은 QueueNames와 QueueNames의 하위 클래스를 허용하여 대기열 이름 지정에 대한 제어권을 가질 수 있습니다. 큐 서버 생성자에 삽입 된 팩토리? 사용자가 QueueNames를 구현하면 큐 이름의 구성 요소 부분에 액세스 할 수 있으므로 같은 호스트에서 동일한 요청 유형이 사용되는 상황을 피할 수있는 mq.subpart.MyType.ext.inq와 같은 조합을 사용할 수 있습니다. –
@NeilDobson 확인 [이 커밋 (https://github.com/ServiceStack/ServiceStack/commit/1b86fa3df6b40fa85520090f69d48e7f05d32f46) 도움이 될 것입니다. – mythz
대단한 것 같습니다. 이 방법을 다르게 적용하여 코드를 포크했지만 솔루션은 훨씬 더 우아합니다. 나는 지금 살펴볼 것이다. –