gpt4 book ai didi

java - HttpClient 向本地主机请求的性能和生命周期

转载 作者:行者123 更新时间:2023-12-01 12:52:42 26 4
gpt4 key购买 nike

我们有一个名为 Solr 的服务,它提供 http-api。有一个 Java 客户端使用它。目前,它们(服务和客户端)还不够大,因此我们可以将它们部署在同一台计算机上以避免任何网络延迟。我们仍然希望使用http-api来消费服务,这样 future 的解耦将是无缝的。

我不是计算机网络专家,但试图弄清楚 http 请求的生命周期。但这适用于真正的 Web http 请求。如果您能在下面进行验证,那就太好了。

  • 请求从应用层开始,并被包装几次,直到到达物理层
  • 联系 DNS 获取 IP 地址
  • 通过 TCP 将请求发送到目标 IP。
  • 沿着最短/最智能的路径到达目的地。
  • 目标监听端口号并将传入内容转发到正确的应用程序。
  • 应用程序返回响应,然后以类似的方式将其发送回源。

问题

  1. 如果请求发送到 url“localhost:8983”,它与实际 Web 请求的性能相比如何。默认删除上述哪一个步骤。

    如果重要的话,请注意我正在使用 Apache HttpClient (4.3) 与同一台计算机上托管的 Solr 服务进行通信。

  2. 它们是否是同一个 JVM 的一部分重要吗?

    感谢任何帮助。

最佳答案

1.) 没有任何改变。所有请求都将遵循您在问题中概述的相同路径。唯一的区别是从客户端到服务器 (localhost) 只有一跳。

2.) 不,没关系。仍然必须有一个http请求。该 http 请求不会关心消息是否发送到同一个 jvm。它仍然会遵循您在问题中概述的步骤。

在同一台机器上通过 http 对 solr jvm 的请求应该非常快,我不会太担心。但是,您应该尝试使用线程连接管理器与默认的单线程管理器来确保正确配置 http 客户端。您可能还需要根据负载确定连接池的大小,但请求应该非常快。

关于java - HttpClient 向本地主机请求的性能和生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24103190/

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