`

第3章 构建 Multi-Tenant 应用

阅读更多

 

SAAS 产品演变

 

项目 -> 产品 -> 多租户 -> 高性能的多租户 -> 可配置的多租户 ->可伸缩的多租户

 

1.       开发项目 4+1 视图

 

 

 

逻辑视图:逻辑视图关注功能,不仅包括用户可见的功能,还包括为实现用户功能而必须提供的"辅助功能模块";它们可能是逻辑层、功能模块等。

开发视图:开发视图关注程序包,不仅包括要编写的源程序,还包括可以直接使用的第三方SDK和现成框架、类库,以及开发的系统将运行于其上的系统软件或中间件。开发视图和逻辑视图之间可能存在一定的映射关系:比如逻辑层一般会映射到多个程序包等。

处理视图:处理视图关注进程、线程、对象等运行时概念,以及相关的并发、同步、通信等问题。处理视图和开发视图的关系:开发视图一般偏重程序包在编译时期的静态依赖关系,而这些程序运行起来之后会表现为对象、线程、进程,处理视图比较关注的正是这些运行时单元的交互问题。

物理视图:物理视图关注"目标程序及其依赖的运行库和系统软件"最终如何安装或部署到物理机器,以及如何部署机器和网络来配合软件系统的可靠性、可伸缩性等要求。物理视图和处理视图的关系:处理视图特别关注目标程序的动态执行情况,而物理视图重视目标程序的静态位置问题;物理视图是综合考虑软件系统和整个IT系统相互影响的架构视图。

 

2.  作产品 可配置化

采用:MDA (Model Driven Architecture) 模型驱动架构,设计产品来提高产品的灵活配置性。

 

3.       产品转到多租户

a:独立数据库

b: 共享数据库-隔离数据架构:采用schema 方式,在同一个数据库中隔离数据。

c:共享数据库-共享数据架构:采用同一个schema方式,在表上增加tenant字段。

 

读后感: 该章节最好部分,应该是作者采用郭靖与杨康两位人物,形式说明SAAS的开发过程,与SAAS软件成熟框架,过程中碰见的问题,个人认为 “共享数据库-隔离数据架构”的意义很大,但是当前对于该框架的性能,还有待提高,但是从数据的安全性来考虑,数据管理方面考虑,该方案还是比较理想的。

    我认为对于中小客户,应该采用“共享数据库-共享数据架构”模型设计数据库结构,对于大客户或安全级别要求,较高的客户,应该采用 “共享数据库-隔离数据架构”模型设计数据库结构。

分享到:
评论

相关推荐

    第5章 Multi-Tenant 应用的可配置性

    在实际开发中,我们可能会使用Java Spring框架来构建Multi-Tenant应用。Spring提供了一些内置的支持,如`@PreAuthorize`注解进行权限控制,以及Spring Cloud Config作为配置中心。此外,可以结合Spring Boot的...

    第4章 高性能的Multi-Tenant最佳实践

    在IT行业中,多租户(Multi-Tenant)架构是一种广泛应用于云计算、SaaS(Software as a Service)等领域的设计模式。这种模式允许单个应用程序实例为多个客户提供服务,每个客户(或租户)都有自己的独立数据和配置...

    Microsoft.Press.Developing.Applications.for.the.Cloud.on.the.Microsoft.Windows.Azure.Platform

    - **使用 .NET 提供程序和第三方组件(Using .NET Providers and Third-Party Components)**:介绍了一些常用的技术工具和组件,以及它们如何集成到 Azure 应用中。 - **为试用和新客户配置(Provisioning for ...

    Laravel开发-tenancy

    Laravel 提供了一些第三方库,如 `hyn/multi-tenant`,来帮助开发者实现 Tenancy。这个库提供了完整的解决方案,包括中间件、事件驱动机制以及数据库和文件系统的分离。 **3. 数据库租户管理** - 数据库分离:每个...

    MybatisPlus 多租户架构(Multi-tenancy)实现详解

    在本文中,我们将重点讨论第三种方案,通过在每个数据表中添加租户ID字段来实现多租户。例如,用户表`user`会包含`provider_id`字段,用于区分不同服务商的用户。查询时,需要在SQL语句中添加`WHERE provider_id = ?...

    Azure入门指南

    - **多租户 (Multi-Tenant)**: 在同一物理或逻辑资源(如服务器、存储设备等)上为多个用户提供服务的技术,每个用户都有独立的操作环境。 #### 四、Azure基础知识 - **为什么选择Azure**: Azure是微软提供的全面的...

    java 北向接口

    在电信行业中,例如Mtosi(Multi-Tenant Operation Support System Interface)是典型的北向接口,用于连接业务支持系统(OSS)与客户或第三方服务提供商。 2. **Mtosi接口技术** Mtosi是多租户运营支撑系统接口,...

    PICMG 3.0 ATCA specification chapter 3

    ### PICMG 3.0 ATCA 规范第三章知识点详解 #### 一、概述 **PICMG 3.0**(即Advanced Telecommunications Computing Architecture,简称ATCA)规范是针对电信行业的一种开放标准,旨在定义一个通用的硬件平台,以...

Global site tag (gtag.js) - Google Analytics