gpt4 book ai didi

java - 有没有办法保持与静态 Web 服务的连接?

转载 作者:行者123 更新时间:2023-12-02 13:05:02 24 4
gpt4 key购买 nike

我正在开发一个整体应用程序。我们的路线图中有一些功能,我认为这些功能适合微服务架构,并且正在尝试构建它们。

我的问题:应用程序在高峰时段每秒处理约 150 个请求。这些请求来自原始 TCP/IP 连接,这些连接始终保持 Activity 状态。我们有非常严格的延迟要求(我们的大多数请求都会在 25-50 毫秒内得到响应)。每个请求需要消耗 1 到多个微服务。我担心的是,使用多个 Restful Web 服务(特别是每次使用服务以及 TLS 握手时创建/销毁连接)将导致处理这些请求时出现过多的延迟。

我的问题:当多个线程使用该 Web 服务时,是否可以(并且是否有最佳实践)维持与静态 Web 服务的连接状态?每个使用 Web 服务的请求都是独立的,但我们只需保持物理连接处于 Activity 状态即可。

最佳答案

JVM 自然地为 HttpURLConnection 池化 HTTP 连接(通过 http://docs.oracle.com/javase/8/docs/technotes/guides/net/http-keepalive.html )。因此,对于开箱即用的 JAX-WS 和 JAX-RS 应该会发生这种情况。通常,其他非基于 HttpURLConnection 的框架(如 netty)也支持 http 连接池。因此,您很可能不需要在代码中自己担心这一点。您需要计算需要池化多少个连接,但这是一种配置。

您可以通过 tcpdumpWireshark 嗅探来自应用程序的流量,并检查是否没有发生 TCP FIN,从而在获得 HTTP 响应后检查 TCP 连接是否未关闭得到结果后。

关于java - 有没有办法保持与静态 Web 服务的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44167052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com