目前是否有任何JDBC连接池实现,它可以处理不同用户的请求。即查询应该由将要发送它的用户修改 - 并且池为该特定用户找到合适的空闲连接,或者创建新的连接(可能丢弃一段时间之前为其他用户创建的一些空闲连接)。
可能问题已经以某种形式提出,但似乎没有积极的结果......至少我找不到它们(见multi-user jdbc connection pool ( Spring-jdbc ))
更全面的解释:
问题是我们有一个java rest-service,用于向数据库发送请求(请求本身来自各种小脚本)。需要该服务作为连接池的包装器(因此脚本执行得更快)。 另一个要求是正在执行的连接数不应超过某个限制(几十个) - 因此服务通过异步处理查询来确保此类行为。
但是最近似乎组织中存在安全限制,并且应该使用不同的用户访问此源中的少数表/数据库。
直接的解决方案是拥有两个服务(或具有两个池的单个服务)。然而,就总连接限制而言,这很难提高效率。例如。我们可以创建两个具有半限制的池,但是它会以给定用户的最大半速处理数据(即使其他用户现在处于空闲状态)。
所以我正在寻找准备好的池实现或关于临时实现的提示。这看起来并不是很难,但如果存在一些方便的数据结构,重新发明轮子就不好了。
因此,总而言之,我确实理解使用不同用户的单一来源并不是最好的想法 - 但似乎我们受到特定基础设施要求的限制。