Разница между системой RPC и Enterprise Service Bus - PullRequest
5 голосов
/ 24 августа 2011

В чем разница между системой RPC, такой как Twitter Finagle, и Enterprise Service Bus, такой как Mule?Какие проблемы хороши в решении каждой из них?

Ответы [ 3 ]

4 голосов
/ 13 января 2012

Я постараюсь ответить на это как на мягкое объяснение, а не на техническую разбивку функций:

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

с веб-сайта Finagle :

Finagle - сетевой стек для JVM, который вы можете использоватьсоздавать асинхронные клиенты и серверы удаленного вызова процедур (RPC) на Java, Scala или на любом языке JVM.Finagle предоставляет богатый набор независимых от протокола инструментов.

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

Обычно вы обнаружите, что Finagle используется где-то между веб-сайтом и внутренними службами.Но вы, как правило, найдете ESB внутри большой корпорации, где он отвечает за интеграцию таких систем, как финансы, поддержка, продажи и т. Д.

Оба решения предлагают асинхронный обмен сообщениями и буферизацию для различных областей, но не предназначены длярешить ту же проблему.Для ESB вы, вероятно, считаете «строгим, корпоративным», но для Finagle вы, вероятно, думаете, «гибким, веб».

Надеюсь, это поможет

Обновление:

Не совсем связано, но если вы исследуете это пространство, я бы посмотрел на Кафку в эти дни.

3 голосов
/ 09 сентября 2011

RPC и ESB - это два архитектурных паттерна.Хотя RPC обычно является запросом-ответом и синхронным по своей природе, ESB работает над концепцией обмена сообщениями (упрощенное объяснение) и асинхронной по своей природе.ESB является основой для любой реализации SOA.ESB обеспечивает слабую связь, тем самым способствуя истинной маневренности.Упрощенный пример с точки зрения реализации выглядит следующим образом:

Веб-сервис - это типичный RPC.Потребитель тесно связан с производителем, и любое изменение в контракте на стороне производителя потребует изменений на стороне потребителя.

В ESB потребитель сервиса не вызывает напрямую поставщика сервиса.Он просто помещает сообщение в шину и, основываясь на правилах (посредник), обрабатывает соответствующий поставщик услуг.Если потребитель услуг и производитель услуг общаются в разных форматах, ESB предоставляет средство для преобразования (например, форматирование почтового индекса в формате xxxxx-xxxx, разделение имени на имя и фамилию и т. Д.).

Это просто упрощенное объяснение.Для получения дополнительной информации, пожалуйста, проверьте следующие ссылки:

Зачем разработчикам нужна Enterprise Service Bus?

Enterprise Service Bus

2 голосов
/ 24 августа 2011

Оба решают совершенно разные задачи:

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