Routing key в RabbitMQ
Ключ маршрутизации (routing key) нужен для маршрутизации сообщений из обменника (exchange) в подписанные очереди. В простейшем варианте используют обменник по умолчанию (пустая строка), а в качестве ключа — имя очереди. Этот же способ можно использовать для прямой публикации в нужную очередь, в обход всех маршрутизаций.
Ключ маршрутизации проставляется при публикации сообщения в обменник. Какой-то смысл он имеет только для обменников с типом direct и topic. Для типа direct маршрутизация осуществляется по точному совпадению ключа маршрутизации: если очередь подписана на ключ маршрутизации memes
, то в нее будут попадать только сообщения с ключом маршрутизацией memes
.
Для обменников с типом topic можно читать сообщения по шаблону ключа маршрутизации, но сам ключ должен состоять из слов, разделенных точкой. Например, если очередь подписана на memes.dank.pepe.*
, то в нее попадут сообщения с ключом memes.dank.pepe.peepo
и memes.dank.pepe.monka
, но не попадут memes.dank.doge
и memes.dank
. Однако *
замещает ровно одно слово, поэтому в нее не попадут и сообщения с ключом memes.dank.pepe
или memes.dank.pepe.feels.good.man
. Чтобы получать все мемы про Пепе, нужно использовать #
, которая замещает 0 или более слов: memes.dank.pepe.#
.
P.S. Спонсор сегодняшней минутки — Саша :)