首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多用户jdbc连接池( Spring-jdbc )

多用户jdbc连接池( Spring-jdbc )
EN

Stack Overflow用户
提问于 2014-05-14 00:20:33
回答 1查看 1.6K关注 0票数 1

我们使用MS SQL Server 2012,并为我们的基于云的解决方案提供了多租户DB体系结构。多租户的设计如下

1.我们在DB表上创建了视图,并在应用程序中注册了新组织。2.我们创建一个数据库用户,并向该用户授予查看权限。

这里的问题是,我们应该支持5000个组织。现在我们有了spring-jdbc和c3p0连接池。

每个JVM创建组织级的数据源,每个数据源池最少5个连接,最多20个连接。

假设我们加入了所有5000个组织,我们最终可能会缺少连接或打开太多到SQL服务器的连接。

一种可能的解决方案是不基于组织用户的连接池。

但c3p0在内部存储基于用户的池。我还查看了UserCredentialsDataSourceAdapter,但这不能满足我的需要。

请分享您的想法和解决方案

提前感谢!!

EN

回答 1

Stack Overflow用户

发布于 2014-05-14 02:37:06

就我个人而言,我不太喜欢为每个组织创建数据库用户。你不可能对不同的数据库用户使用相同的连接(至少在我的opn中是这样)。在这种情况下,你显然失去了共享连接的能力。

相反,我会为所有组织创建一个通用用户,因为您对所有组织都使用相同的表,并在其上创建包装器(视图)来分隔组织之间的数据。

我希望您在所有表中都有userid列,并且应该按userid对其进行索引/分区(因为您正在使用该列创建视图)。

我最终会创建主用户表,并创建与所有由userId分区的基表的外部关系。

并且将在来自应用程序的所有查询中隐式地将用户in过滤条件与其他条件一起添加。

或者,如果您仍然希望拥有View,那么最终将在应用程序堆栈(任何表单属性/数据库表)中维护view - userid组合,并在触发查询之前选择合适的视图

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23636594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档