首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置连接keepAlive时间

设置连接keepAlive时间
EN

Stack Overflow用户
提问于 2018-11-09 17:23:45
回答 1查看 9.3K关注 0票数 1

刚刚开始使用,只是想知道Http连接的默认KeepAlive时间是多少?有增加keepAlive时间的方法吗?在我们的Rest服务中,我们可能每5分钟收到一个请求,处理.It需要很长时间,时间在500秒-10秒之间。然而,在负载测试中,如果我发送频繁的请求,处理时间少于250 is。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-09 20:07:55

Spring WebClient是一个HTTP,它封装了实际的HTTP库--因此连接管理、超时等配置直接在库级别进行配置,并且行为可能会根据所选库的不同而改变。

WebClient的默认库是反应堆Netty

许多HTTP客户端(反应堆Netty就是这种情况)在连接池中维护HTTP连接以重用它们。客户端通常获得到远程主机的新连接,使用它发送/接收信息,然后将其放入连接池中。这是非常有用的,因为有时获得一个新的连接可能是昂贵的。在你的情况下这似乎是非常昂贵的。

HTTP客户端将那些未使用的连接保留在池中,但是keepAlive时间呢?

大多数客户端尽可能长时间地将这些连接留在池中,并在获取它们之前对它们进行测试,以确定它们是否仍然有效,或者异步地侦听服务器事件以将它们从池中删除(我相信反应堆Netty会这样做)。因此,最终,服务器是控制的,并决定何时关闭连接,如果它们是不活动的。

现在,您的问题描述可能表明,连接到远程主机非常昂贵,但它也可能是远程主机,需要很长时间才能响应您的请求(例如,它可能运行在一个空缓存上,需要计算很多事情)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53230557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档