2015-02-12 3 views
0

У нас есть веб-страница, реализованная с использованием SpringMVC + JSP. Чтобы получить необходимые данные на каждой странице, мы вызываем внешний API. Краткое изложение шагов: - Запрос поступает на контроллер - Выполняется вызов API для получения данных - Данные добавляются в модель представления JSP и возвращаются пользователю.Hystrix vs MultiThreadedHttpConnectionManager

Для вызова API мы используем RestTemplate с использованием MultiThreadedHttpConnectionManager, инициализированного соединением и таймаутом чтения. Если API недоступен, RestTemplate выдает исключения, которые обрабатываются контроллером веб-страницы.

В последнее время я читал о Hytrix и, кажется, используется для запросов среди систем. Прошу пояснить, как Hytrix может помочь в нашей системе и как ее интегрировать.

Кроме того, реализация API извлекает данные из разных источников, одна из которых - база данных. Может ли Hytrix также помочь в сценарии, когда база данных не работает?

Заранее спасибо.

ответ

1

Короткий ответ

Hystrix не делает запросы между системами. Он обертывает ваш код запроса, чтобы получить (тайм-ауты, количество ошибок) и предоставляет автоматический выключатель, чтобы ваше приложение снова создавало вызовы «мертвых» систем (удаленная служба или даже база данных).

Чуть больше ответить

Hystrix тонкая обертка между службой и сохранением/удаленным слоем обслуживания (теперь только упорством) (я думаю, что это наиболее распространенный случай использования). Вместо того, чтобы напрямую называть упорство из службы, вы создаете новый HystrixCommand, который содержит вызов acutal persistence. Эта команда очень настраивается и предоставляет механизмы для тайм-аутов и автоматических выключателей из коробки. Если ваш вызов истекает или генерируется для многих исключений, он переключается на резервную реализацию, которую вы можете (и должны) реализовать. Таким образом, это зависит от вашего варианта использования, если резервное копирование также может помочь в случае простоя базы данных (возможно, что-то вроде использования кэшированных данных). В качестве побочного эффекта вы получите статистику ваших звонков: Количество ошибок, процент, количество звонков ...

Месяц назад я начал использовать HystrixCommands (и Collapsers) и made a blog post о Hystrix и интерфейса связи в целом, что может дать вам дополнительную информацию (или путаницы;))

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