Hystrix应该替换现有的JDBC/HTTP连接池,还是委托给它们?

Hystrix应该替换现有的JDBC/HTTP连接池,还是委托给它们?,jdbc,httpclient,connection-pooling,hystrix,resiliency,Jdbc,Httpclient,Connection Pooling,Hystrix,Resiliency,许多应用程序将连接池用于HTTP和JDBC调用以实现弹性。但是使用和配置这两种类型的池是非常不同的。这重复了实现两者通用的弹性模式的复杂性,例如超时、重试、缓存/警报回退、电路中断和监视 在我看来,为HTTP和JDBC调用提供了配置和实现这些相同弹性模式的常用方法 我的问题是: Hystrix理论上能取代现有的HTTP和JDBC吗 完全连接池 如果是,这样做的利弊是什么 替换它们完全降低了围绕这些连接池的复杂性,包括它们的伴随超时和验证查询属性等。但是我不清楚Hystrix如何“保持活力”JDB

许多应用程序将连接池用于HTTP和JDBC调用以实现弹性。但是使用和配置这两种类型的池是非常不同的。这重复了实现两者通用的弹性模式的复杂性,例如超时、重试、缓存/警报回退、电路中断和监视

在我看来,为HTTP和JDBC调用提供了配置和实现这些相同弹性模式的常用方法

我的问题是:

  • Hystrix理论上能取代现有的HTTP和JDBC吗 完全连接池
  • 如果是,这样做的利弊是什么
  • 替换它们完全降低了围绕这些连接池的复杂性,包括它们的伴随超时和验证查询属性等。但是我不清楚Hystrix如何“保持活力”JDBC/HTTP连接—从而避免了昂贵的连接设置成本—无需委托给专门用于这些任务的现有库


    对于上下文,我有一个DropWizard应用程序,它使用Tomcat DBCP作为JDBC连接池,使用Apache HttpClient作为HTTP连接池

    否,Hystrix无法替换您的连接池

    Hystrix的主要特点是:

  • 通过使用有限的线程池或信号量限制对服务的调用次数
  • 暂停对服务的调用以避免应用程序线程被锁定等待慢/挂起的服务的可能性
  • 添加舱壁,使一个缓慢的服务对应用程序的其余部分影响最小
  • 断路慢/挂起服务
  • 不支持池连接

    我想你可以说第一点与连接池有点关联,因为Hystrix和连接池都可以限制其他系统的负载。然而,拥有连接池的主要原因是连接池的性能提高。这种负载限制行为基本上是连接池的额外功能

    然而,正如您在问题中所建议的,如果在连接池前面添加了故障快速超时行为和隔板,那么Hystrix可以对连接池进行补充