连接池参数配置

问题:

1、我们应该打开多少个连接?

2、每个连接多久有效?

3、如果连接出问题了,怎么办?

4、如果从当前连接池中获取更多的连接,怎么办?

5、如果忘记将连接返回到连接池,怎么办?

1、基本参数:

  • min size (任何时候,至少有 minSize个连接被打开)
  • initial size (当应用启动的时候,连接池中打开多少个连接。)
  • max size (连接池中最大的连接数)

默认值:

 

c3p0

HikariCP

druid

min size

3

10

0(minIdle)

initial size

3

10

0(initialSize)

max size

15

10

8(maxActive)

2、从连接池中获取一个连接需要多久?

          

默认值:

c3p0: checkoutTimeout

HikariCP: connectionTimeout

druid: maxWait

c3p0

HikariCP

druid

推荐

maxWait

30s

-1

1ms

为什么推荐1ms?

一般情况下,从连接池获取一个连接少于1秒。但是如果达到了maxActive后,需要等待30秒,后边的请求堆积的越来越多,很可能内存溢出,并发性不高。

未完。。。。

来自:https://www.javacodegeeks.com/2018/12/wtf-connection-pools.html?utm_source=Notification&utm_medium=Web-Push&utm_campaign=Notifications-Java-Code-Geeks

猜你喜欢

转载自www.cnblogs.com/yaoyuan2/p/10173513.html