Apache Servicemix возможным решением? Это достаточно быстро?
-
26-10-2019 - |
Вопрос
Я работаю над заявлением, которое асинхронно отправило бы запрос нескольким поставщикам услуг, сопоставляю ответы и предоставит результатам пользователю.
Я намерен создать компонент для обработки каждого поставщика услуг. Компонент будет свободно связан, и поэтому его должно быть очень легко добавить или удалить поставщиков услуг.
Компонент будет
- Обработайте запрос, полученный с веб -уровня и обработайте его, чтобы перевести его в формате, требуемом поставщиком сервисов.
- Отправить запрос поставщику услуг
- Обработайте ответ, полученный от поставщика услуг, чтобы перевести его в формат, требуемый для нашей заявки.
Можем ли мы использовать сервисную смесь Apache? Достаточно ли быстро обрабатывать цикл запроса-ответа менее чем за 5 секунд (при условии, что поставщики услуг отправляют ответы менее чем за секунду).
ИЛИ ЖЕ
Можем ли мы использовать какой -либо другой ESB и достаточно быстрой, чтобы удовлетворить наши требования?
Заранее спасибо.
Шардул.
Решение
Servicemix должен иметь возможность справиться с этим. Основной вопрос заключается в том, что вам даже нужно Servicemix.
Если вы хотите, чтобы ваши компоненты работали на OSGI, вы можете использовать ServiceMix или Caraf + Camel (что является чем -то вроде света ServiceMix).
Чтобы общаться между веб -фронтом и компонентом, я использовал бы JMS и для реализации компонента, который я предлагаю с помощью Camel + Pojos.
Если вам нужна дополнительная помощь с этим, не стесняйтесь связаться со мной снова. Кажется, вы уже нашли меня на IRC :-) имя пользователя: Cschneide или Cschneider
Другие советы
Что касается скорости: в проектах интеграции сама инфраструктура обмена сообщениями/обработкой редко является узким местом, но вместо этого точки касания с внешними службами.
Таким образом, единственный ответ Re: «Servicemix достаточно быстро» для вашего сценария - «да», потому что большую часть времени будет потрачена на взаимодействие с вашими поставщиками услуг (т.е. ожидание ответа сети), а не в собственном коде обработки сообщений SM.
На версии FuseESB 4.2 я достигал 15 000 звонков в секунду на ноутбуке DualCore с 2 ГБ оперативной памяти. Звонки были сделаны в сервис CXF, выявленную ServiceMix. Внутренне был вызван один весенний боб, вводимый OSGI, который просто возвращал случайные данные. И Servicemix можно сгруппировать. Поэтому я думаю, что это достаточно быстро, как контейнер с Java.
Относительно "достаточно быстро?" факт, вы можете посмотреть на http://esbperformance.org Для сравнения производительности 8 ESB с открытым исходным кодом. В то время как большинство ESB в наши дни очень хорошо работают, Ультрасб считается лучшим показателем ESB.
Глядя на ваши требования, это типичный вариант использования для любого ESB. Вы должны использовать возможности фильтрации и преобразования для реализации этого.
Фильтр будет решать, какой поток будет вызвать на основе содержимого сообщений или свойств, таких как входящий URL и т. Д., И направлено на желаемый поток. Каждый поток должен быть приготовлен с необходимой логикой преобразования, чтобы вызвать поставщика услуг. Точно так же обратный ответ будет отправлен на правильный поток, чтобы сделать обратное преобразование.
Отказ от ответственности: я работаю для AdroItlogic компании, поддерживающей UltraESB.
Для получения последней информации ESB, вы можете посмотреть ESB производительность - создание самого быстрого ESB
WSO2 ESB - еще одна классная альтернатива. WSO2 ESB основан на углеродной платформе WSO2 на базе OSGI, а также на 100% бесплатно и открыт и предлагает Количество образцов что вы можете попробовать из коробки. Кроме того, WSO2 - это не просто ESB, но и Комплексная платформа SOA В тех случаях, когда у нас есть ESB, сервер идентификации, сервер данных, сервер бизнес -процессов и т. Д. Работает сверху углеродной платформы на основе OSGI. Попробуйте.