2013-05-30 2 views
4

Я пытался использовать RabbitMQ и столкнулся с следующим вопросом (очень похожим на этот: Topic Exchange vs Direct Exchange in RabbitMQ).RabbitMQ: Direct Exchange vs Fanout Exchange

мне нужно интенсивно вещать что-то около 800 типов сообщений (так что будет много потребителей для каждого типа сообщения) и мне интересно, какие из следующих подходов лучше:

  1. Создать один прямой обмен где сообщения будут отправляться с ключом маршрутизации (имя типа сообщения), и каждый потребитель будет подключен к нему с временной привязкой к очереди с соответствующим ключом маршрутизации. (Поскольку нет сложных ключей маршрутизации, таких как «key1.key2. *», Я решил не использовать обмен темы).

  2. Создайте обмен фанатов для каждого типа сообщений.

Я прочитал очень хорошую статью о проблемах с производительностью - ROUTING TOPOLOGIES FOR PERFORMANCE AND SCALABILITY WITH RABBITMQ, но я новичок в RabbitMQ и просто хочу получить более лучшие советы практики.

ответ

-2

Пойдите с ключом маршрутизации, это будет проще и эффективнее :)

+0

Я не понимаю, почему это более эффективно или проще. Если у вас есть какие-либо аргументы, я буду рад их узнать. Мои собственные исследования показали, что разветвители работают немного быстрее. –

+0

Разветвитель - прочная конструкция. Если у вас 800 типов сообщений, я предполагаю, что некоторые из них появляются, некоторые исчезают. Вам нужно будет очистить вручную неиспользуемые вентиляторы и создать новые, когда это произойдет. С другой стороны, с привязкой прямых очередей, каждый клиент отвечает за знание того, какие сообщения он интересует, а создаваемые очереди могут жить только тогда, когда клиент жив, что обеспечивает создание только полезных элементов на кролике. – C4stor

+0

Спасибо за ваш ответ. В моем случае я точно знаю, что все типы сообщений постоянно используются, поэтому нет необходимости удалять обмены разветвления (кстати, я не заметил, что количество существующих неиспользуемых обменов делает любую нагрузку на сервере). И временные очереди, созданные клиентами, убиты в обоих случаях. –

Смежные вопросы