`
flatcsun
  • 浏览: 7083 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

连接池学习笔记

 
阅读更多

资源池(Resource Pool)

针对共享资源,为了解决资源的频繁分配和释放所产生的问题。

 

连接池基本思想

是为数据库连接建立一个缓存池。预先在缓冲池放入一定数量的连接,当需要建立数据库连接时,只需从缓存池从取出一个连接,使用完毕之后放回去。

 

 

连接池关键问题
1. 并发问题

2. 多数据库服务器和多用户

    建立单例模式的连接池管理类,用Map<连接池名称, 连接池对象>管理。

3. 事务处理 

    ALL-ALL-NOTHING 原则,即对一组sql要么全做,要么全不做。

4. 连接池的分配和释放

    空闲池,提供连接给需要连接的程序,存放未被使用的连接,回收被使用完的连接。

    超过最大连接数要等待一定时间timeout.

5. 连接池的配置和维护

    最小连接数是系统启动时所创建的连接数。如果创建过多,则系统启动就慢,但创建后系统的响应速度会很快;

    如果创建过少,则系统启动的很快,响应起来就慢。最小连接数在开发时设小一点,服务器启动比较快。

 

 

连接池实现模型

连接池类(DBConnectionPool)

1. 从连接池获取或创建可用连接

2. 使用完毕后,把连接返还给连接池

3. 在系统关闭前,断开所有连接并释放连接占用的系统资源 

4. 处理无效连接(原来标记为可用,由于某种原因不可用,如超时、通讯等)

5. 限制连接池的连接总数不低于预置的最低连接数和不高于最高连接数

连接池管理类(DBConnectionPoolManager)

1. 是连接池的包装类(wrapper)符合单例模式,即一个系统只有一个连接池管理类实例

2. 装载并注册特定数据库的JDBC驱动程序

3. 根据配置文件信息创建连接池对象

4. 为方便管理多个连接池对象,为每个连接池对象取一个名字,建立<名称,对象>Map映射

5. 跟踪客户的使用连接情况,以便需要时关闭连接释放资源

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics