Java连接池中非常关键的两个参数是什么

本篇内容主要讲解“Java连接池中非常关键的两个参数是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java连接池中非常关键的两个参数是什么”吧!

创新互联是一家专注于成都做网站、网站制作与策划设计,泰来网站建设哪家好?创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:泰来等地区。泰来做网站价格咨询:028-86922220

分析过程

maxTotalConnections,很好理解。既然是一个连接池,那么一个池子最大能放多少呢?这个参数默认是20。当然这个参数,在不同的连接池实现中可能是不一样,这不是我关注的重点。

Java连接池中非常关键的两个参数是什么

maxConnectionsPerHost,表示一个连接池中,每条路由,池化的最大连接个数。这个值,默认是2,我看过不少故障是没有设置此值导致的。这个不是我关注的重点,我的疑问是,什么是路由?什么是连接?路由和连接的关系是啥?

首先连接是什么?这个概念很清晰,连接就是源ip:源端口加目的ip:目的端口,以及相关信息形成的逻辑概念。

那什么是路由呢?我的脑袋,一团混乱。网上也没有比较好的文章,能解答我的疑问。我的猜测是,目的host+port端口就是路由。比如你的项目中需要访问百度。那么baidu.com+80就是一条路由。同时也需要访问csdn,那么csdn.net+80也是一条路由。可是这只是我的猜测。

那看看源码吧。不同版本的http  client实现方式是不一样的。我手头的项目有3.x,也有4.x的。我都简单看了下,但是源码都有一个问题是,route的实现类中,既有host,也有localAddress。

Java连接池中非常关键的两个参数是什么

为了继续解答我的疑问,还是直接debug。简单写了一个单元测试,类似这样。

Java连接池中非常关键的两个参数是什么

然后我看到了这样的信息,以3.x源码为例子,4.x原理是一致的。

Java连接池中非常关键的两个参数是什么

获取连接的过程,HostConfiguration 虽然其中有本地的地址信息的,但是值是空的。因此route真正起作用的是host。

Java连接池中非常关键的两个参数是什么

获取好连接后,检查下连接是不是打开了,如果没有打开,执行open方法,此时会设置localAddress。也就是一条真正的连接才算创建完成。

接下来我们看下Http的连接池,有数据的情况是啥样。

Java连接池中非常关键的两个参数是什么

至此我们就清晰了,连接池是以host(远端的服务,例如baidu.com)为组,来建立连接池。maxConnectionsPerHost  用来控制一组中连接池的个数,也就是有些同学提到的,用来控制访问某个服务并发的个数。

到此,相信大家对“Java连接池中非常关键的两个参数是什么”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

网站题目:Java连接池中非常关键的两个参数是什么
本文网址:https://www.cdcxhl.com/article26/iijicg.html

成都网站建设公司_创新互联,为您提供虚拟主机静态网站网站改版手机网站建设企业建站品牌网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站