[英]Connection pool for dynamic database connections
问题设置基于Web服务(Spring / Java,Tomcat7和MySql),其中每个用户都有自己的数据库,因此每个请求都需要自己的连接。 由于所有数据库都是在运行时动态创建的,因此在启动之前静态配置它们不是一种选择。
为了优化数据库连接使用,数据库连接池的实现会很棒,对吧?
使用Java / Spring:如何为动态数据库创建连接池? 我对这里缺乏干净的选择感到震惊!
问题 : Tomcat的连接池 (据我所知也理解为C3P0 )将每个新的DataSource实例视为一个完整的新连接池 - > stack-reference
编辑
我相信HikariCP无需指定单个数据库即可运行。
在运行时创建数据库后,您还必须在运行时创建池。 我担心弹簧基础设施在这里没有给你任何帮助,因为它是针对通常的静态用例进行调整的。
我有一张泳池地图:
映射<connectionUrlString,List <c3poPool >> map
这是一个低级解决方案。 如果您想更进一步,可以将此逻辑包装到数据库连接提供程序中,并将其注册为“驱动程序”。 这样,应用程序的任何部分都会请求新连接,您只需从现有池返回一个连接(如果请求了一个全新的连接,则为此创建一个新池)。
首先,对不起我的英语,我每天都在进步。
根据我的经验,我有一个类似的情况,它是春天框架的决心。 让我解释一下你是如何解决这个问题的。
制作具有以下特征的spring配置文件:a)资源加载器:这一个负责从配置文件或数据库加载属性,这些属性将适合建立数据库连接。 b)使用您要加载的属性参数化的池数据库配置。
创建一个定位器类:在这个类中,你需要一个HashMap
使用spring的多上下文功能:想法是为您建立的每个连接分配一个代码,然后像使用spring的应用程序上下文一样加载该连接,然后在locator类中,将该上下文放入映射并将其作为频繁使用如你所愿。
我认为您按照这些步骤操作,可以根据需要创建动态池或数据库连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.