一 我的错误想法
poolMaximumIdleConnections 最大活跃连接数
poolMaximumActiveConnections 最大空闲连接数
我一直以为
空闲是一直存在的。没请求的时候,活跃回收,空闲连接保持。请求多的时候空闲直接变为活跃,然后生成新的连接直到最大活跃连接数,最大空闲连接数,活跃不断的处理请求,处理完自动销毁。其实是错的。
二 正确想法和源码分析
正确的情况是
没请求的时候,空闲连接每隔一段时间判断其有没有在使用,随时保证空闲的连接健壮性。至于活跃连接会回收,并在回收的时候判断,空闲有没有满,没有就新建个连接给空闲连接,然后设置成不可用,满则直接设置成不可用。
有请求的时候,空闲连接取出到活跃连接,取完空闲就新建连接到活跃连接。而且此时活跃连接完成就会变成空闲连接,再从空闲连接取出到活跃连接执行操作。
我们要知道连接取出来使用popConnection,连接使用完的处理pushConnection。
代码语言:javascript复制pushConnection分析