2014-02-10 7 views
1

Может ли Akka обеспечить регулирование веб-запроса для распределенного приложения (Java/JEE)?Могу ли я использовать Akka для дросселирования запросов веб-сервисов в распределенной системе?

Мое приложение потребляет несколько веб-сервисов, каждый из которых допускает максимальное количество одновременных запросов. Я посмотрел

  • TimerBasedThrottle - подходит для приложений с одним узлом, но не может управлять количеством или запросами, отправленными в распределенной настройке.
  • Балансировка диспетчеру - акции одного почтового ящика между Актеров отправки сообщения на холостом ходу Актеры, но не обеспечивает ограничение в секунду/минуту, и т.д.

Что является лучшим способом для достижения этой цели с Акки?

ответ

2

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

+0

спасибо @ Роланд Кун. С вариантами, доступными в мире Akka, что вы рекомендуете для центрального актера (например, диспетчер балансировки настроен на запуск remotley)? – cduggan

+0

Один актер может легко обрабатывать несколько миллионов сообщений в секунду, поэтому я начал беспокоиться о том, как настроить этот, когда это окажется проблемой. –

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

  • Нет связанных вопросов^_^