设置游泳池的最佳方法是: -
你什么时候建立联系?
你什么时候关闭连接,你会关闭它们吗?
你测试连接是否仍然很好.何时以及如何?
你怎么知道最大连接数的好数字?
您有什么样的监控来确保池的用户表现良好?你能阻止一段不好的代码取出所有东西吗?
您是否已编写自己的池或使用第三方库?
我认为这是一个不可知的问题,但欢迎对特定数据库/语言的"特征"发表评论.例如,在某些数据库上连接可能比其他数据库更慢或更昂贵.
为了澄清,我不打算从头开始编写池,这个问题更多的是关于如何配置实现池的现有库.
我在Java中为数据库编写了一个连接池,它只是一个设计模式,而不是一个公共库.现在我使用Tomcat内置的那个.
我使用一个线程来监视池的几个方面以及控制其行为的几个参数......
minimumInPool ="3"......前三个是在发布时创建的.游泳池永远不会低于三.
maximumIdleTimeBeforeRemoval ="60"...如果连接空闲一小时,则将其删除并创建一个新连接.空闲时间可能意味着池中只有至少三个.
maximumInUseTimeBeforeRemoval ="30"...如果一个给定的连接已被检出超过30分钟,那么可能是错误的.回想一下,并终止连接.
maximumTimeBeforeRemoval ="60"...如果超过60分钟,请将其删除.
maximumUsageBeforeRemoval ="1000"...如果已经超过1000次检出,则将其删除.
monitorInterval ="15"...每15分钟检查一次上述参数.
几年来,这对我很有帮助.我见过的最高的游泳池是疯狂偷看的151个连接.通常情况下,在大量使用期间,游泳池大约有十几个,并且在凌晨时间闲置至最少三个.
我使用了Oracle的JDBC瘦驱动程序并连接到Oracle数据库.