最近我发现Oracle提供的Java属性http.maxConnections有两种略微不同的定义。
这里 定义为:
如果启用HTTP keepalive,此值确定每个目标同时保持活动状态的最大空闲连接数。
而这里则定义为:
我困惑的是第一个定义中提到的 "idle" 这个词。考虑到第一个定义,我的理解是这个属性仅限制连接池中存在但未使用的连接数量。这意味着,无论如何配置,我都可以同时向同一端点运行无限数量的活动连接。如果考虑上面第二个定义,Oracle 删除了关键字 idle。在最后一个定义中,似乎这个属性旨在限制对端点的总连接数,因此如果我将 http.maxConnections=10 配置为最大值,则可以同时向同一端点发出最多 10 个并发调用。表示在任何给定时间保持活动状态的每个目标的最大连接数。
有人能解决我的疑惑吗?
谢谢!
(附:为了完整起见,我对 Java8 行为感兴趣)