2012-09-20 2 views
0

메시지가있어서이를 가변 개수의 큐로 처리해야합니다. 대기열은 전자 메일, 감사, Webhook 처리, s3 저장과 같은 다른 목적을 처리합니다. 각 메시지는 해당 주제의 일부 또는 전체를 대상으로 가질 수 있습니다.RabbitMQ 주제 교환 1, 일부 또는 모든 주제에 대한 메시지 - 어떻게 구조화할까요?

  • 메시지 1 : 예를 들어, 나는 다음과 같은 메시지가있을 수
  • 메시지 3으로 webhook :
  • 메시지 2 audit.webhook

주 email.audit.webhook.s3을 그 4 가지 주제를 시연했지만 잠재적으로 100 가지가 될 수 있습니다. 주제 교환에 의해 처리 될 수 있습니까? 예를 들어, .webhook를 주제로합니다. 메시지 2가 누락 되었습니까? 대기열 webhook. *, .webhook에 세 가지 주제를 추가 할 수 있습니까? 및 * .webhook을 사용하여 모든 잠재적 메시지를 처리하거나 웹 후크가 어디서 발생할지 정확한 위치를 알아야합니다 (예 : ). .webhook. .. * 또는 .webhook. 메시지 1과 메시지 3 모두를 캡처하는 데 충분합니까? 주제 교환을 통해 전혀 처리 할 수 ​​있습니까? 아니면이 모든 것을 잘못보고 있습니까? 그것은 그 경로를 표시 추가 테스트

편집 내가 기대했다만큼 유연하지 않습니다. 달성하려는 작업을 수행하기 위해 웹 후크 대기열에 대한 바인딩 (예 : )이 있어야합니다.. *. webhook 및 메시지는 항상 네 번째 위치에 webhook을 유지해야하므로 webhook에만 연결되는 메시지의 라우팅 키는 예를 들어 "null, null, null, webhook, ?, NULL, NULL 등

이것이 바로 보이지 않기 때문에 내가 물어 내 테스트를 정확 좀 더 유연성, 즉 있다고 생각합니다 :.. 내가 달성하기 위해 원하는 것을 달성하기 위해 더 나은 방법이

답변

1

나는 당신이 하나의 키보다 더 가질 수로 # 도움이 될 것이라고 생각 예를 들면 다음과 같습니다.

webhook.# 

가 해당 될 수있다 :

webhook.* 

또는

webhook.*.*.*.*.* 

또는 아무것도 inbetween 이상. 나는 열쇠 전에 그것을 결코 시도하지 않았다 :

#.webhook.# 

그러나 그것은 당신이 조사해야하는 것이어야한다.

또한 라우팅/바인딩 키의보다 나은 디자인으로 문제를 해결할 수 있다고 생각합니다. 이 메시지들은 모두 동일한 교환기로 전송되므로 동일한 라우팅 키 패턴을 가져야합니다.

+0

# .webhook. #은 내가 찾고있는 해결책이었습니다. 더 나은 디자인을 제안 할 수 있습니까? 나는 메시지 배포의 패턴이 완전히 무작위 적이기 때문에 (메시지 당 사용하고자하는 큐까지 클라이언트에 따라) 성취 할만한 것을 생각할 수 없었다. – AlexGad

+0

주요 변경 사항은 라우팅 키의 형식을 권장하는 것입니다.예를 들어 webhook은 항상 먼저 감사가 수행되고 필요한 경우 다른 것이됩니다. 그래서 당신은 webhook, webhook.audit과 webhook.audit.email.s3을 가질 것입니다. – robthewolf

관련 문제