Druid配置參數(shù)詳解-maxActive
Druid是一個(gè)由阿里開源的數(shù)據(jù)庫連接池竿音,Druid的配置非常豐富,但是設(shè)置不當(dāng)會(huì)對(duì)生產(chǎn)環(huán)境造成嚴(yán)重影響拴驮,網(wǎng)上Druid的資料雖多春瞬,但大部分都是互相復(fù)制粘貼,有很多不準(zhǔn)確甚至完全錯(cuò)誤的描述套啤,Druid已經(jīng)開源很久宽气,而且作者WenShao的工作重心也已經(jīng)不在Druid上,有些功能估計(jì)他自己都不太了解了潜沦。本系列將從源代碼的角度分析Druid目前的最新版本(1.1.21)各個(gè)常用的配置項(xiàng)的具體含義以及是怎么起作用的萄涯。
畫外音:目前Druid在開源中國舉辦的2019年度最受歡迎中國開源軟件中排名第7名,支持Druid的朋友可以去投票哇止潮。2019年度最受歡迎中國開源軟件
maxActive是什么意思窃判?
maxActive:連接池中的最大連接數(shù)钞楼,連接池中的連接包含3部分:
- activeCount:正在使用的連接喇闸;
- poolingCount:連接池中的空閑連接;
- createTaskCount:正在生成的連接询件;
這三部分的連接總和不能超過maxActive燃乍;
為什么要設(shè)置這個(gè)參數(shù)?
數(shù)據(jù)庫的連接總數(shù)是有限制的宛琅,有時(shí)候僧多粥少刻蟹,只能限制每個(gè)應(yīng)用的連接數(shù)了。
maxActive是怎么起作用的嘿辟?
maxActive在Druid中有多處使用舆瘪,最主要的一處是在CreateConnectionTask中
// 防止創(chuàng)建超過maxActive數(shù)量的連接
if (activeCount + poolingCount >= maxActive) {
clearCreateTask(taskId);
return;
}