Hystrix和连接池

4
请原谅我,这可能是一个愚蠢的新手问题。
我们在两个服务之间使用Hystrix作为断路器。为了提高性能,我们正在使用连接池。我们使用Apache HttpClient的PoolingHttpClientConnectionManager来处理连接池。
我们还使用Hystrix的'timeoutInMilliseconds'属性来捕捉问题。
我们遇到的“问题”是,在正常操作中,创建新的HTTPS连接需要大约130毫秒,但一旦池化,这些连接的读取时间只有约12毫秒。
因此,我们不得不将我们的“timeoutInMilliseconds”阈值设置得比我们希望的更高,以便当我们的连接池决定创建新的连接时,Hystrix不会启动。我们的非功能要求要求服务的延迟接近于12ms而不是130ms。
我们是否正确使用了Hystrix?在使用Hystrix和连接池时是否有其他模式可供选择?
非常感谢,
Mike
3个回答

1

1

您应该根据TP99 +缓冲延迟来配置Hystrix的超时时间。在您的情况下,TP99延迟为130毫秒。加上中位数延迟约为20毫秒,并将Hystrix配置为在150毫秒超时。


是的,它必须是150毫秒,但在这种情况下TP99仍然为13毫秒。130毫秒用于初始连接池,仍需要在配置中进行调整。 - Spear A1

0
你需要记住的经验法则是将超时时间保持在略高于正常/例行连接时间的可接受值。将Hystrix超时时间设置为大约150毫秒(略高于正常连接时间130毫秒),以便它可以处理应用程序启动时的常规连接,然后以更高的速度从池中为客户提供服务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接