Автобусы и REST сервисы с быстрым ответом на развязку? - PullRequest
2 голосов
/ 28 февраля 2012

Имея несколько внутренних модулей, представляющих REST API, один из модулей должен вызывать другие модули через их API и получать немедленный ответ.

Решение состоит в том, чтобы напрямую вызывать REST API из этого «верхнего» модуля.Проблема заключается в том, что он создает соединение, не поддерживает масштабирование или аварийное переключение изначально.

Тип шины (JMS, ESB) позволяет разъединять модули, избегая необходимости в конечных точках, известных модулям.Они только «общаются» с шиной.

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

Также разумно ли по-прежнему полагаться на REST API или JMS-слушатель будет лучше?Я думал о JMS, Camel, ESB.Знаете ли вы о компаниях, использующих такую ​​архитектуру?

ps: модуль может быть войной Java, запущенной, например, на экземпляре tomcat.

1 Ответ

3 голосов
/ 29 февраля 2012

Если ваш верхний модуль «знает», как вызывать другие модули, тогда да, у вас есть связь, что может быть нежелательно.Если вместо этого ваш верхний модуль направляется к другим модулям через ссылки, формы и / или перенаправления из ответов от среднего модуля, то у вас будет такое же количество связей, которое даст вам решение JMS.

Когда требуется масштабируемость и отработка отказа (не ранее), добавьте обратный прокси-сервер для кэширования, например F5 или Varnish .Это будет более масштабируемым и устойчивым, чем любое решение на основе JMS.

Udpate

В ситуациях, когда вы хотите объединить и / или преобразовать ответы от других модулей,вы просто создаете составленный сервис .Верхний модуль вызывает средний модуль, который выполняет один или несколько вызовов для внутренних модулей, составляет результаты и отправляет соответствующий ответ.Использование HTTP-кэша между каждым переходом (т. Е. Top -> Varnish -> Middle -> Varnish -> Backend) - гораздо более простой и эффективный способ кэширования данных по сравнению с индивидуальным решением на основе JMS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...