Мы намерены создать одностороннюю сеть привязок обмена к обмену. Наше требование заключается в том, чтобы прикрепить маршрут сообщения к его заголовку, но, похоже, нет никакого способа выяснить, какой обмен обработал сообщение последним.
Я уже пытался найти информацию, используя функцию трассировки, и также существует плагин , который подписывается на внутреннее событие basic.publish
. Тем не менее, все эти способы просто дают мне обмен первой записи .
Я даже взглянул на исходный код rabbitmq-server, и кажется, что внутрифункция маршрутизации (см., например, обмен маршрутизацией заголовков ). Я не разработчик Erlang, поэтому, может быть, есть способ Эрланга для перехвата / расширения функций, которые нужно вызвать?
Пример
+---------+
| |
| POE |
| |
+--+--+---+
| |
+-------+ | | +-------+
| | | | | |
| EX1 +---+ +----+ EX2 |
| | | |
+--+----+ +---+---+
| |
| |
| |
+--+----+ +---+---+
| | | |
| QU1 | | QU2 |
| | | |
+-------+ +-------+
Для сообщения, которое заканчиваетсяв QU2
мы хотели бы иметь поле заголовка вроде этого:
{...
x-route, ["POE", "EX2"]
}