zoukankan      html  css  js  c++  java
  • 多租户平台是什么?数据库如何设计?

    多租户平台是什么?

    多租户技术(Multi-TenancyTechnology)又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下 (此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性

    简单讲: 在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租户是一种架 构,目的是为了让多用户环境下使用同一套程序,且保证用户间数据隔离。那么重点就很浅显易懂了,多租户的重 点就是同一套程序下实现多用户数据的隔离

    我们来分析一下传统软件行业和多租户的区别

    传统行业

    ​ 比如我们大力公司需要一个CRM客户关系管理系统,那么我们就去找外包,外包做好后来到我们公司部署到我们公司的内网上,这种呢就是传统的软件行业。因为是将软件部署到公司内部,不同的公司需要将自己的软件都部署到公司的内部,这样对于开发方来说,维护困难,对于使用方来说,成本也变高了。

    多租户

    ​ 比如我们现在开发了一套多租户的CRM系统,然后大力公司刚好需要一套CRM系统,那么它就可以在我们平台上租用这一套系统,然后只需要定时缴纳固定费用后,就可以直接使用该系统,而不需要去考虑维护、服务器等问题。注意:多个租户之间的数据是相互隔离不相通的

    一图胜千言

    数据库如何设计?

    这种模式看着感觉很科学,但是你可能也会想到,这种模式的数据库设计应该是个大麻烦,对不错,这种模式的数据库确实是个大问题。

    现在基于多租户的数据库设计方案通常有三种:

    ​ 1、独立数据库

    ​ 2、共享数据库,独立Schema

    ​ 3、共享数据库、共享表

    独立数据库

    这是最吊的,一个租户一个实际的数据库系统

    ​ 优点:对于业务方面来说更加简单,可以满足不同租户的奇葩需求,数据也很安全,与其他租户的数据隔离性很高。

    ​ 缺点:增加数据库成本、硬件成本、统计数据困难、扩展比较麻烦。

    共享数据库、独立Schema

    Schema这个比较特殊,

    比如Oracle:

    ​ 一个数据库可以有多个用户,那么一般一个用户对应一个Schema,那么我们就可以一个租户代表一个数据库的用户,那么他们的数据也就隔离开了。

    比如MySQL:

    ​ 可以理解为一个单独的数据库,多个租户多个数据库(一个数据库系统可以有多个数据库)。

    ​ 优点:数据隔离性较高。

    ​ 缺点:出现故障后数据恢复很困难、统计数据也很困难等。

    共享数据库、共享表

    也就是所有租户共享一个数据库,然后可以通过id等字段来区分不同租户的数据。

    ​ 优点:成本低

    ​ 缺点:增加业务复杂度、隔离级别低、故障后数据恢复基本gg。

    三种方式的对比

    来自黑马的一张图一图胜千言

  • 相关阅读:
    SpringBoot 部署 docker 打包镜像
    Android上dip、dp、px、sp等单位说明(转)
    mac下svn问题——“.a”(静态库)文件无法上传解决
    Mac OS X 访问 Windows 共享文件夹
    svn不能添加.a文件的解决方法
    UIView的剖析(转)
    mac 下真机调试 android 手机
    IOS-synthesize和dynamic的异同(转)
    IOS学习笔记之关键词@dynamic
    【转】APNs消息推送完整讲解
  • 原文地址:https://www.cnblogs.com/daihang2366/p/13434162.html
Copyright © 2011-2022 走看看