Многие приложения используют пулы соединений для вызовов HTTP и JDBC для обеспечения отказоустойчивости. Но использование и настройка этих двух типов пулов очень разные. Это дублирует сложность реализации шаблонов отказоустойчивости, которые являются общими для обоих - такие как тайм-ауты, повторные попытки, резервные копии кэширования/оповещения, прерывание цепи и мониторинг.Должен ли Hystrix заменить существующие пулы соединений JDBC/HTTP или делегировать их?
На мой взгляд, Hystrix предлагает общие подходы к настройке и реализации этих одинаковых шаблонов отказоустойчивости для вызовов HTTP и JDBC.
Мои вопросы:
- Может Hystrix теоретически заменить существующий HTTP и JDBC пулов соединений целиком?
- Если да, то каковы плюсы и минусы этого?
Замена их целиком сводится мир сложности, которая окружает эти пулы соединений - с сопровождающими их тайм-аут и проверки свойств запроса и т.д. Однако я туманно о том, как Hystrix мог «сохранить в живых» JDBC/HTTP соединения - и, следовательно, избежать дорогостоящие затраты на установку соединения - без делегирования существующим библиотекам, специализированным для этих задач.
Для контекста У меня есть приложение DropWizard, которое использует Tomcat DBCP для своего пула соединений JDBC и Apache HttpClient для своих пулов соединений HTTP.