当前位置: 首页 > 知识库问答 >
问题:

Apache HTTPClient不允许超过1500个可重用连接

蒯安平
2023-03-14

我正在使用ApacheHttpClient(4.2.2)/Java7打开许多到Tomcat7服务器的可重用连接(以模拟许多用户反复点击该服务)。Ubuntu 12上的客户端和服务器(但不同的机器)。我确保了systctl。形态和限制。我们允许这种情况。

这在多达1500个模拟用户/连接的情况下运行良好。这些连接按预期得到重用。然而,在1500到1600个模拟用户之间,连接不再被重复使用,并且一直处于关闭/重新打开状态。为什么会这样?

我不认为问题出在服务器端,因为当我在不同的机器上针对同一台服务器启动多个模拟客户端时,只要每个客户端不超过1500个连接,服务器重用连接就没有问题。

共有2个答案

蓬兴国
2023-03-14

您可能需要增加可用工作人员的数量,至少在连接耗尽时,通过转到服务器状态检查是否有空闲工作人员

江高飞
2023-03-14

根据连接管理器或服务器端配置的配置,连接不再被重用的原因可能有多种。找出原因的最简单方法是使用上下文日志运行HttpClient,如日志指南中的“用于连接管理/请求执行的上下文日志记录”示例中所述

 类似资料:
  • 我只是在我的服务器上实现了一个简单的Websocket系统。我试图测试最大连接数,我做了以下代码: 每次我运行它时,前200个用户会被连接,之后,所有请求都被调用onclose()。在web控制台中,我得到以下错误: Mozilla:加载页面时,与ws://localhost:8080/myapp/websocket的连接中断 Chrome:WebSocket握手时出错:“Connection”标

  • 我在AWS中有三个Kubernetes集群--这些集群都是由脚本构建的,所以应该是完全相同的。生成的K8配置允许Kubernetes仪表板连接和kubectl命令没有任何问题。 然而,对其中一个集群进行编程连接并不起作用,我也不知道为什么。 有什么方法可以获得更多关于为什么API不能连接的信息吗?谢谢

  • 所以我正在寻找根据对象中的字段对对象的数组列表进行排序,但我收到一个错误“无法解析方法compareTo(int)”

  • 在通过HTTPS访问REST api时,我希望使用Spring RestTemplate使用持久http连接。我不能使它工作;为每个请求创建一个新的连接,并且每次都进行SSL握手。有没有可能通过https使用RestTemplate进行可重用连接,如果有的话,如何配置它? 我设置了一个RestTemplate来通过HTTPS发出请求。那是正确的。然而,我在日志中注意到,每个请求都会发生一次新的SS

  • 我正在检查< code>HashSet的< code>add方法。有人提到 如果该集合已经包含元素,则调用保持集合不变,并返回false。 但是方法在内部保存中的值 的方法声明 将指定值与该映射中的指定键相关联。如果映射先前包含该键的映射,则旧值将被替换。 那么,如果 的 方法替换了旧值,那么 方法如何在元素重复的情况下保持集合不变?

  • 问题内容: 我似乎无法使实例正常工作。我使用的代码如下: 子类 该代码输出 问题答案: 您需要覆盖。而不是这样做,您实现了一个带有signature 的方法。因此,您使用的是为相等性测试定义的默认方法。 默认实现基于对象标识,因此,该集合“允许”您添加两个在语义上相等的不同对象。