2015-06-10 137 views
1

许多应用程序都将连接池用于HTTP和JDBC调用以实现永续性。但是使用和配置这两种类型的池是非常不同的。这复制了实现两者共有的弹性模式的复杂性 - 例如超时,重试,缓存/警报后备,断路和监视。Hystrix应该替换现有的JDBC/HTTP连接池还是委托给它们?

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

我的问题是:

  1. 能猬理论上取代现有的HTTP和完全JDBC 连接池?
  2. 如果是这样,这样做的优缺点是什么?

更换他们完全减少围绕这些连接池复杂的世界 - 与他们的乘务员超时和验证查询性能等,但是我朦胧约猬怎么能“保持” JDBC/HTTP连接 - 从而避免昂贵的连接设置成本 - 无需委托专门用于这些任务的现有库。

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

回答

1

不,Hystrix无法替换您的连接池。

豪猪”的主要特点是:

  1. 通过使用有限的线程池或信号限制通话的号码的服务。
  2. 可能会超时调用服务以避免应用程序线程被锁定等待缓慢/挂起的服务。
  3. 添加舱壁使得一个缓慢的服务对应用程序的其余部分影响最小。
  4. 电路中断缓慢/挂起的服务。

不支持池连接。

我想你可以争辩说,第一点与连接池有点相关,因为Hystrix和连接池都可以限制其他系统的负载。但是,拥有连接池的主要原因是池连接的性能提升。这种负载限制行为基本上是连接池的好处。

但是,如您在问题中所建议的,Hystrix可以通过提供快速超时行为和隔板(如果在连接池前添加)来补充连接池。

相关问题