AMQP에 nmew이고 RabbitMQ 시스템의 알림 아키텍처를 해결하려고합니다.RabbitMQ - 주제 교환 - 두 명 이상의 소비자가 같은 주제
토픽 교환 (NotificationsExchange, 추측 해 봅시다)을 원합니다. 특히 토픽 교환과 함께 제공되는 라우팅 키 및 대기열과 향후 확장을위한 옵션에 대한 유연성이 필요하기 때문입니다. 왜냐하면 나는 틀릴 수도 있습니다. 왜냐하면 ...
두 명 이상의 소비자가 각 알림을 사용하기를 원합니다. 기준선으로 게시 된 각 알림을 데이터베이스에 저장하려고합니다. 또한 각 알림을 클라이언트 응용 프로그램 (예 : 웹 응용 프로그램이 DB 폴링없이 즉각적인 사용자 알림을 사용하고 소켓을 통해 밀어 넣을 수 있음)에 의해 소비되기를 원합니다.
이것은 실제로 다양한 아웃 (AMQP에 익숙하지 않고 내 감싸기를 시도하는 것 같아요.)라고 생각합니다. 머리 주위에).
두 명의 소비자가 같은 대기열에서 (일관되게) 알리도록 할 수 있습니까?
예를 들어다음 NotificationExchange 통해
- 밀어
Notif.NotifGroup.User.ThisUser
- 가지고
dbListener
바인드Notif.#
에 - 또한
Notif.#
결합 (추가 사용자가 온라인인지 확인하고 소켓을 통해 다운 스트림 밀어)mvcClientListener
되세요
나는 올바른 길을 가고 있는지 잘 모르겠다. 이자형. 나는 "동일한 대기열에있는 여러 소비자가로드 로빈 방식으로 균형을 이룬다"는 것을 읽고 있으며 솔직히 말해서 그 의미가 무엇인지 알지 못합니다.
2 명의 소비자가 동일한 대기열 (예 : 동일한 라우팅 키)에서 동일한 메시지를 일관되게 읽을 수있는 주제 교환을 할 수 있습니까? 아니면이를 위해 팬 아웃 교환을해야합니까?
감사합니다.
감사합니다 - 난 '을 한게 t는 동일한 "푸시 기준 (push term)"에 기반하여 두 개의 완전히 별개의 대기열을 만들 수있는 경우 (정확한 용어가 부족하여이 세부 정보를 조금 더 자세히보아야 함) 알려졌다. 부수적으로, 나는 오늘 아침에 RabbitMQ를 파기 시작 했으므로 AMQP를 일반적으로 사용하기 시작했습니다. 그리고 이것은 네 번째 게시물입니다. SO (그리고 아마도 하나 또는 두 개의 블로그 게시물 일 수도 있습니다.)에서 주제를 보았습니다. 몇 시간 전에 전자 책을 읽었습니다. 도움이됩니다. – jleach
BTW, 우연히 이러한 개별 대기열을 만드는 방법에 대한 간단한 예제를 던질 수 있다면 좋을 것입니다. 그렇지 않다면 나는 결국 그것을 발견 할 것이다. 그러나 나는 아직 그것을 보지 못했고, RabbitMQ의 사람들은 그 시나리오를 다루지 않는 것으로 보인다. 덕분에 다시 – jleach
내 작품이 도움이되고 다행입니다! :) 여러 큐의 경우 단일 큐를 만들고이를 교환에 바인딩하는 것과 같은 방식으로 작동합니다. 1) 응용 프로그램 인스턴스 당 1 개의 RMQ 연결 만 있고 2) 각 소비자에 대해 새 채널을 사용하는 것이 좋습니다. 1 연결, 그 연결 내의 많은 채널. 연결 비용이 많이 들고 제한적입니다. 채널은 저렴하고 거의 무제한입니다. 모든 실제 작업은 채널에서 수행되며, 1 채널을 1 가지 전용으로 사용하는 것이 가장 쉽습니다. 도움이되는 희망! –