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