问题标签 [tcp-keepalive]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
25 浏览

tcp-keepalive - 在另一个程序打开的端口上启用 TCP keepalive

在 Debian 机器上,我使用的是 OPCUA 服务器https://github.com/FreeOpcUa/opcua-asyncio。服务器不提供在服务器打开的端口上启用 TCP keepalive 的可能性。

基本上,我想知道是否可以在另一个脚本中启动服务器,然后在该端口上启用 tcp keepalive。

我还从 Redhat https://access.redhat.com/solutions/19029https://access.redhat.com/solutions/25773找到了一些其他信息(需要您注册才能看到文章)。但是我仍然不知道该怎么做。

我会继续阅读这个,但到目前为止,我已经花了大约 10 个小时试图弄清楚它是否可能。所以我想我应该寻求帮助。

欢迎任何建议,谢谢!

0 投票
0 回答
53 浏览

tcp-keepalive - postgres hikari 池活动连接(+备用连接)在 Docker 中的启动请求 5-8 分钟后断开连接

使用 docker (mac os) 在主机上运行应用程序时没有错误,当在 docker 中启动应用程序时,连接在请求开始后约 5-8 分钟内断开,更改 hikari.max-lifetime <= 350_000 解决了问题

  1. hikari.max-lifetime 如何影响活动连接(等待服务器响应〜 10 分钟)?
  2. 什么设置 docker 替换 hikari.max-lifetime?

更改 net.ipv4.tcp_keepalive 设置并不能解决问题(

0 投票
0 回答
26 浏览

nginx - 如何在带有 Nginx 的 Centos 中使用 keep-alive 来减少没有缓存的 API 响应?

如何使用 keep-alive 来减少 API 响应,而无需使用 fastcgi 等缓存过程?在我的 Ubuntu 上第一次请求(500 毫秒)后,随后返回快速响应(150 毫秒),但在我的 Centos 中没有。我的猜测是使用keep-alive,但我不知道如何?(我的网络服务器是 Nginx 并在端口 3000 上工作)。

0 投票
0 回答
13 浏览

android - 如何在 android 中使用超时、间隔和计数设置 TCP 保持活动套接字?

我在android中创建了一个Socket。有一种方法叫

但不幸的是,没有设置间隔、超时和重试计数的选项。

如何使用 keep-alive 套接字实现这一点。

0 投票
0 回答
130 浏览

python - python requests.get 挂起,直到长 http 请求超时

我遇到一个重复的情况,当请求“足够长”时,http 请求无限期挂起(或直到超时)。没有测试阈值是多少,但我的请求大约需要 18 分钟。

我验证了服务器响应并完成了对请求的处理。还netstat验证服务器端没有打开的套接字。

客户端代码:

它挂在以下堆栈上:

也转载自urllib

如您所见,这是 python 3.9.4 ,尽管我怀疑它不会在早期版本中重现。

我知道长 http 请求是一种不好的做法,但这不是我关心的问题。

0 投票
1 回答
333 浏览

kubernetes - 如何更改 Kubernetes pod tcp_keepalive

我想更改 Kubernetes pod 中的默认 tcp keep alive 值,推荐的方法是什么?

0 投票
0 回答
979 浏览

.net - 现有连接被远程主机强行关闭。将内容复制到流时出错

.NET HttpClient 并行 API 调用并随机抛出异常:现有连接被远程主机强行关闭。将内容复制到流时出错。

远程服务:Springboot。

客户端环境:.NET Framework 4.8,控制台应用程序。

问题是随机抛出的,但如果设置

httpClient.DefaultRequestHeaders.ConnectionClose = true;

问题消失了,但单次调用性能下降,无法利用 TCP 连接。如何解决这个问题?这似乎是一个库级别的错误。

0 投票
1 回答
104 浏览

linux - 在 CONTAINER 上设置 TCP keepalive

我正在使用 Azure Kubernetes,并尝试在容器的基础上设置 TCP_Keepalive。有没有实现这一目标?

0 投票
0 回答
124 浏览

linux - 具有 keepalive 和 tcp_user_timeout 的 TCP 套接字在等于 keepalive_intvl 的时间后重置

我正面临一个问题,即启用了 keepalive 的 TCP 套接字在没有明显原因的情况下被重置。

定义的保活设置如下:

RST 数据包在最后一次 keepalive ACK 探测(时间等于 tcp_keepalive_intvl)后 3 秒被传输,如下所示:

检查相关代码(tcp_keepalive_timer()函数)我无法找到导致这种情况的路径。

预计在等于 tcp_keepalive_intvl 的时间之后发送数据包的唯一情况是重新传输之前没有收到 ACK 的 keepalive 探测,这在这种情况下不适用。

另一方面,根据上述代码,如果满足以下条件,则预期 RST 数据包:

在这种情况下,这似乎也不成立。

为了描述的完整性,这两个节点运行在不同的、地理上分开的 ESXi 主机上。

任何关于可能导致上述行为的想法都将不胜感激。

0 投票
0 回答
16 浏览

tcp-keepalive - 使用 Spring Webflux 端点保持活动数据包配置

我有一个用例,其中客户端通过负载均衡器调用 Rest 端点,而负载均衡器又调用了响应速度非常慢的第三方端点。第三方端点需要超过 1 分钟才能开始发送响应。因此,由于连接空闲超过 60 秒,客户端会收到 504 网关超时。我们不想改变负载均衡器保持活动超时的配置,而是希望 Rest 端点定期发送一些保持活动数据包,直到来自第三方端点的数据可用,以确保连接不会长时间处于空闲状态。

我可以通过生成一个 Flux 来实现这一点,该 Flux 会定期检查数据可用性并返回一个虚拟数据包,直到来自第三方端点的数据可用。想知道是否可以通过一些开箱即用的配置来实现相同的目标。目标是确保连接不会保持空闲,直到我们从第三方端点获得数据