许多应用程序将连接池用于 HTTP 和 JDBC 调用以实现弹性。但是使用和配置这两种类型的池是非常不同的。这复制了实现两者共有的弹性模式的复杂性——例如超时、重试、缓存/警报回退、断路和监控。
在我看来, Hystrix为 HTTP 和 JDBC 调用提供了配置和实现这些相同弹性模式的通用方法。
我的问题是:
- Hystrix 理论上可以完全替代现有的 HTTP 和 JDBC 连接池吗?
- 如果是这样,这样做的利弊是什么?
完全替换它们可以减少围绕这些连接池的复杂性 - 以及它们伴随的超时和验证查询属性等。但是我对 Hystrix 如何“保持活动” JDBC / HTTP 连接 - 从而避免昂贵的连接设置成本 - 没有委派给专门用于这些任务的现有图书馆。
对于上下文,我有一个 DropWizard 应用程序,它使用 Tomcat DBCP 作为其 JDBC 连接池,使用 Apache HttpClient 作为其 HTTP 连接池。