Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 8397|Ответ: 0

Введение в три режима обмена (фанаут, прямой и тематический) RabbitMQ

[Скопировать ссылку]
Опубликовано 29.03.2018 14:30:45 | | | |
Знакомство:
В RabbitMQ все сообщения, отправленные производителями, принимаются Exchange, которая затем пересылает их в очередь для хранения согласно определённой политике
RabbitMQ предлагает четыре типа обменов: развернутый, прямой, тематический и заголовок
Режим заголовка на практике используется реже, и в этой статье сравниваются только первые три режима.

1. Прямой обмен


Любые сообщения, отправленные в Direct Exchange, пересылаются в очередь, указанную в RouteKey.

1. В целом вы можете использовать Exchange, который идёт в комплекте с rabbitMQ:" (название Exchange — пустая строка, далее — стандартная Exchange).

2. В этом режиме нет необходимости выполнять какие-либо операции связывания на Exchange

3. Для обмена сообщениями требуется «RouteKey», который можно просто понять как название очереди, куда отправляется.

4. Если имя очереди, указанное в RouteKey, отсутствует в vhost, сообщение отбрасывается.

2. Обмен Fanout


Любые сообщения, отправленные в Fanout Exchange, пересылаются во все очереди, связанные с этой биржей.

1. Её можно понимать как шаблон таблицы маршрутизации

2. В этом режиме не требуется RouteKey

3. В этом режиме необходимо заранее привязать Exchange к Queue, одна Exchange может привязывать несколько Queue, а одна Queue — к нескольким Exchange.

4. Если Биржа, получившая сообщение, не привязана к какой-либо очереди, оно отбрасывается.

3. Обмен темами


Любые сообщения, отправленные в Topic Exchange, пересылаются во все очереди, которые занимаются темами, указанными в RouteKey

1. Этот шаблон более сложный, проще говоря: каждая очередь имеет свою тему, все сообщения имеют «заголовок» (RouteKey), и Exchange пересылает сообщение во все очереди, которые могут фугально совпасть с RouteKey соответствующей темы.

2. Для этого режима требуется RouteKey, возможно, заранее привязанный к Exchange и Queue.

3. При привязке укажите тему, которая интересна очереди, например «#.log.#», чтобы показать, что очередь заботится обо всех сообщениях, связанных с журналами (сообщение с RouteKey «MQ.log.error» будет переадресовано в очередь).

4. «#» означает 0 или несколько ключевых слов, а «» — одно ключевое слово. Например, «log». Он может совпадать с «log.warn», но не может совпадать с «log.warn.timeout»; Но «log.#» совпадает с вышеописанным.

5. Аналогично, если Exchange не найдёт очередь, соответствующую RouteKey, он отбросит это сообщение.




Предыдущий:Используйте XPosed, чтобы обойти сильную валидацию SSL-сертификатов Android
Следующий:.net/c# Отключение соединения RabbitMQ — отключение и повторное подключение
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com