Когда использовать rabbitMQ в узле REST API? - PullRequest
0 голосов
/ 16 мая 2019

Я разработал узел sdk, который имеет определенные REST API. Эти API взаимодействуют с каркасной цепью для операций чтения и записи. Могут быть определенные ситуации, когда на узел sdk поступает много запросов. Так что для балансировки нагрузки я использовал NGNIX с еще одной репликой sdk в другом экземпляре. Все это хорошо работает.

Также предлагается использовать rabbitMQ для балансировки нагрузки. Но в моем API есть несколько простых операций чтения и записи по API, и не выполняется тяжелая обработка.

Я прочитал, что rabbitMQ следует использовать для следующих целей.

  • Интеграция нескольких микросервисов
  • Выполнение сложных задач, таких как обработка изображений, загрузка изображений и т. Д.

Так как и когда я должен использовать rabbitMQ?

Ответы [ 2 ]

1 голос
/ 19 мая 2019

Я думаю, что ваш дизайн в порядке.Проще говоря, вашей системе пришлось управлять большей нагрузкой, и вы добавили больше реплик своих сервисов с балансировщиком нагрузки спереди, который может распределять входящую нагрузку между репликами.Если ваш «sdk» полностью не имеет состояния (не запоминает данные клиента, собранные из предыдущих запросов, но делегирует все состояния в DB / BC), вы сделали свою работу.Технология очередей сообщений может помочь в других сценариях

  1. , когда ваше приложение выполняет действия чисто асинхронно
  2. , когда вам приходится управлять большими скачками нагрузки
  3. , когданекоторые компоненты вашей архитектуры реагируют на события (например, получение сигнала тревоги от устройства, отправка электронного письма, когда вы получаете 1 миллион кликов и т. д.)
  4. , когда вы используете источник событий
  5. , когдав некотором смысле существуют службы с отслеживанием состояния, которые используют данные из одной и той же партии запросов (например, все данные от пользователя с идентификатором 1sw023)
  6. различные и возможные

Большое значение имеет принятие MQ.и требует некоторых усилий для интеграции управления ею.Не делайте этого, если вы не уверены, что сможете полностью использовать его преимущества

1 голос
/ 16 мая 2019

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

То, как оно работает, заключается в том, что очередь хранит входящие сообщения до тех пор, пока они не будут обработаны рабочими узлами (например, вашим SDK).Рабочие узлы обычно выполняют некоторую работу (обычно тяжелую обработку), и когда они завершают работу, они извлекают новое сообщение из очереди, обрабатывают его, выполняют работу и т. Д. И т. Д.

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

...