多租户(数据层的多租户)架构相关资料
2016-02-16 15:16
197 查看
多租户(Multi Tenancy/Tenant)是一种软件架构,其定义是:
在一台服务器上运行单个应用实例,它为多个租户提供服务。
在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以支持多租户,而这种设计的思路,是要在数据的共享、安全隔离和性能间取得平衡。
主流的方案是:
独立数据库
共享数据库、独立 Schema
共享数据库、共享 Schema、共享数据表
比较简单的做法是,分客户,在业务层使用tenantid来区分客户。
详情参考:http://www.ibm.com/developerworks/cn/java/j-lo-dataMultitenant/
文中提到的第二种模式,共享database,scheme分离,就是一种多租户的解决方案:所有的租户共享一个数据库实例,但是他们拥有独立的
Schema 或 Catalog,使用hibernate.multiTenancy 相关属性,指定了
ConnectionProvider,即 Hibernate 需要知道如何以租户特有的方式获取数据连接,根据 tenantIdentifier 获得相应的连接。
如此,客户的DBA,也可以自行通过租户ID来进行数据库的管理,他只能管理属于这个租户的数据。其他租户数据,逻辑不可见。
在一台服务器上运行单个应用实例,它为多个租户提供服务。
在SaaS实施过程中,有一个显著的考量点,就是如何对应用数据进行设计,以支持多租户,而这种设计的思路,是要在数据的共享、安全隔离和性能间取得平衡。
主流的方案是:
独立数据库
共享数据库、独立 Schema
共享数据库、共享 Schema、共享数据表
比较简单的做法是,分客户,在业务层使用tenantid来区分客户。
详情参考:http://www.ibm.com/developerworks/cn/java/j-lo-dataMultitenant/
文中提到的第二种模式,共享database,scheme分离,就是一种多租户的解决方案:所有的租户共享一个数据库实例,但是他们拥有独立的
Schema 或 Catalog,使用hibernate.multiTenancy 相关属性,指定了
ConnectionProvider,即 Hibernate 需要知道如何以租户特有的方式获取数据连接,根据 tenantIdentifier 获得相应的连接。
如此,客户的DBA,也可以自行通过租户ID来进行数据库的管理,他只能管理属于这个租户的数据。其他租户数据,逻辑不可见。
相关文章推荐
- 三层架构与MVC & 设计模式的较量
- 架构师主要工作
- 发布漏洞的一些网站
- linux下的php网站放到Windows服务器IIS下导入 .htaccess文件伪静态规则转换 (wordpress)
- 网站的价格,数量的加减
- SonarQube架构及使用介绍
- 三层架构初学
- 网站访问统计系统Piwik安装使用
- java OA ERP CMS 项目源码 网站源码
- 高并发量网站解决方案
- C/S架构和B/S架构的概念和区别
- 网站安全扫描工具--Netsparker的使用
- 手机平板架构
- 网页标题栏出现图标的方法
- corosync+pacemaker高可用
- 【shiro进阶】--- shiro架构
- Java集群优化——dubbo+zookeeper构建高可用分布式集群
- 使用Jsoup爬取网站信息(以天猫为例)
- 搭建分布式架构4--ZooKeeper注册中心安装
- 网站性能优化方式整理