В RabbitMQ можно создать обмен, а затем привязать его к нескольким очередям, каждый с ключом маршрутизации. Это позволяет создавать такие архитектуры обмена сообщениями, как это:
message_x
/ | \
foo-msg_q bar-msg_q msg-logger_q
Клиенты публикуют сообщения на обмен message_x
, который направляет сообщения только с ключом маршрутизации "foo" в очередь foo-msg_q
, только с ключом маршрутизации "bar" в очередь bar-msg_q
и все сообщения в очередь msg-logger_q
.
Мне сложно понять, как это сделать в AWS. Моя первая мысль заключалась в том, чтобы установить разрешения для отдельных очередей для приема сообщений на основе темы, но единственными доступными полями для условий разрешения являются:
- AWS: CurrentTime
- AWS: EpochTime
- AWS: MultiFactorAuthAge
- AWS: principaltype
- AWS: SecureTransport
- AWS: SourceArn
- AWS: SourceIP
- AWS: UserAgent
- AWS: идентификатор пользователя
- AWS: имя пользователя
Ни одно из них не похоже, что на них может повлиять любое сообщение, которое я публикую в теме message_x
.
Можно ли сделать что-то подобное при использовании Amazon Simple Notification Service, чтобы развернуть несколько очередей очереди очереди, причем каждая очередь получает подмножество сообщений, опубликованных в теме?