Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hystrix和连接池_Java_Apache_Connection Pooling_Apache Httpclient 4.x_Hystrix - Fatal编程技术网

Java Hystrix和连接池

Java Hystrix和连接池,java,apache,connection-pooling,apache-httpclient-4.x,hystrix,Java,Apache,Connection Pooling,Apache Httpclient 4.x,Hystrix,请原谅,这很可能是一个愚蠢的新手问题 我们使用Hystrix作为两个服务之间的断路器。为了提高性能,我们使用了连接池。我们使用ApacheHttpClient中的PoolighttpClientConnectionManager来处理连接池 我们还使用Hystrix的“TimeoutInMissels”属性来捕获问题 我们遇到的“问题”是,在正常操作中,创建一个新的HTTPS连接需要c130ms,但一旦合并,这些连接上的读取时间是c12ms 因此,我们必须将“timeoutinmillizes”

请原谅,这很可能是一个愚蠢的新手问题

我们使用Hystrix作为两个服务之间的断路器。为了提高性能,我们使用了连接池。我们使用ApacheHttpClient中的PoolighttpClientConnectionManager来处理连接池

我们还使用Hystrix的“TimeoutInMissels”属性来捕获问题

我们遇到的“问题”是,在正常操作中,创建一个新的HTTPS连接需要c130ms,但一旦合并,这些连接上的读取时间是c12ms

因此,我们必须将“timeoutinmillizes”阈值设置为高于我们希望的值,以便在连接池决定创建新连接时,Hystrix不会启动。我们的非功能性需求希望服务的延迟比130ms更接近12ms

我们是否正确使用Hystrix?在使用Hystrix和连接池时,还有其他模式可以遵循吗

非常感谢,


Mike

您应该根据TP99+缓冲区延迟将Hystrix配置为超时。在您的情况下,TP99延迟为130毫秒。添加~20毫秒的平均延迟,并将Hystrix配置为150毫秒超时。

您可以在执行服务期间为特定命令调整Hystrix超时。但是,您需要观察该命令的延迟度量,并编写非功能性req。我喜欢它。
这可能会有帮助。因此,您可以调整此连接池预热或错误。

您必须记住的经验法则是,在正常/例行连接时间内,将超时保持在稍高的可接受值。将hystrix超时时间保持在150ms左右(略高于常规连接时间130ms),这样它就可以在应用程序启动时处理常规连接,然后继续以更高的速度从池中为客户端提供服务

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