1.多租户概念
什么是多租户?多租户是一种概念,也是一种解决方案,在saas平台化中,我们所做的功能已经不是针对甲方而言了,而是在自己运营之内,产生的一种提供服务的项目,俗称产品,互联网公司,从电商平台,各种app等等这些主要为用户提供体验的产品概念,衍生到企业级项目中时出现的一种软件化平台,saas化,saas化让原本的甲方转变成了用户,saas化最重要之一就是用户在使用服务时的数据隔离问题,多租户的使用实际上也是一种经济的解决方案,由于共享开发的服务和维护的成本,导致一个平台在多租户的情况下可以多个人使用,大大减少了人力和物力。
2.多租户的三种模式
第一种,每个租户都拥有自己独立的程序和独立的数据库。
第二种,每个租户共享程序,确拥有独立的数据库。
第三种,共享程序,确拥有分片式多租户数据库。
数据库的三种多租户架构:
第一种: 共享数据库,共享schma、数据表。
第二种:共享数据库、独立schma。
第三种:独立数据库。
这三种数据库架构模式从1到3,逻辑复杂度越来越低,数据共享度也越来越低,然而相对的成本和隔离值越来越高。(其实相对于其他而言我中意第二种)
一般来说多租户的讨论着重于数据层,但是在考虑数据层的时候,不要忘记结合应用层,在某些场景下,将多租户考虑覆盖全面点的时候,相应的数据层的多租户也会随之发生改变,使之多租户解决方案更贴切于自己的使用场景。
3.实现方式
多租户的使用方式,在一般的情况下,Hibernate和JPA对其提供了很好的解决方案。大多数都会为了便利和快捷,而使用这一套方式。
追加:mybatis也提供了解决方案
结语:
有些坑不得不踩,有些事不得不做,希望能通过分享互相进步,走过这段平凡的路。