前段时间第一次看到多租户,觉得很有意思,就想了解一下。我在搜索资料的时候,结合公司的研发,公司的产品在架构上进行了升级,构建了很多多租户架构的案例,让我对多租户有了更深的理解。过年的时候一直在想这件事,但是只知道一点点。
好了,开始吧,我们从提问的角度来说明问题。
一、什么是多租户?
多租户技术或多租约技术,简称SaaS,是一种软件架构技术,实现了在多用户环境下如何共享同一个系统或程序组件,并能保证用户之间的数据隔离。
简单描述:多租户是一种架构,强调在同一个程序下实现多用户数据的隔离。
在阅读了多租户的信息后,我进一步了解了:
在多租户结构下,应用程序都在同一台或一组服务器下运行。这种结构被称为“单实例”架构,以及单实例多租户。多个租户的数据存储在同一个地方,通过对数据库进行分区来实现隔离操作。
由于所有用户都在运行同一个应用实例,而服务是在服务提供者的服务器上运行的,因此用户无法进行定制化操作,因此这不能应用于对产品定制有特殊需求的客户,因此多租户适用于一般类需求的客户。
第二,因为是数据隔离,所以多租户有几种方案。
在当前云计算时代,多租户技术在共享数据中心以单一的系统架构和服务为大多数客户端提供相同甚至可定制的服务,仍然可以保证客户的数据隔离。目前各种云计算服务都是这样的技术类别,比如阿里云数据库服务(RDS)、阿里云服务器、华为云数据库GaussDB等等。
多租户数据存储有三种主要方案:
举个简单的例子:
三个方案就像学生分宿舍,孤立的数据库就像10个学生各一个宿舍。每个人都拿着自己宿舍的钥匙,学生肯定是土豪。
共享数据库隔离数据架构就像10个学生的宿舍,每个学生都有一个宿舍钥匙,普通家庭的学生都可以使用。
共享数据库和共享数据架构是家里条件不好的学生。十个学生一个宿舍,连宿舍钥匙都配不上。每个人只有一把钥匙。
三种方案各有利弊,所以要根据实际情况选择合适的方案。在SaaS实施的过程中,有一个重大的考虑,那就是如何设计应用数据来支持多租户,而这个设计的思路就是在数据共享、安全隔离和性能之间取得平衡。
第三,选择合理的实施模式。
衡量这三种模式的主要考虑因素是隔离还是共享。
成本因素:隔离越好,设计和实现的难度和成本越高,初始成本越高。共享越好,在相同运营成本下支持的用户越多,运营成本越低。
安全系数:考虑业务和客户的安全要求。安全要求越高,它们就越孤立。
考虑到租户数量:
系统将支持多少租户?几百?几千还是几万?租户越多,他们就越有可能分享。
每个租户存储数据所需的平均空间。存储的数据越多,就越孤立。
每个租户同时访问系统的最终用户数量。你需要的支持越多,你就越容易被孤立。
您是否希望为每个租户提供额外的服务,如数据备份和恢复?这个领域的需求越多,它就越孤立。
技术储备:共享程度越高,对技术的要求越高。
随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,ShopSuite为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。