拨号服务器做网站nat123,开发大型网站的最主流语言,百度快照优化排名,企业网站建设费未付款怎样挂账原文链接#xff1a;https://blog.csdn.net/haponchang/article/details/104246317#xff0c;感谢作者提供这么好的总结#xff01;1.具体的SaaS架构必须1.先仔细选择最适合应用程序需求的租户模型#xff0c;2.需要根据租户模型来选定最终的架构#xff0c;即应用程序设… 原文链接https://blog.csdn.net/haponchang/article/details/104246317感谢作者提供这么好的总结1.具体的SaaS架构必须1.先仔细选择最适合应用程序需求的租户模型2.需要根据租户模型来选定最终的架构即应用程序设计和管理、每个租户的数据如何映射到存储等等。避免因租户模型的切换而付出昂贵的代价。租户模型 --》 应用程序设计 数据设计方案2.影响租户模型的相关因素包括2.1可扩展性(Scalability)租户的数量级每个租户的存储级别整体存储工作负载2.2租户隔离性(Tenant isolation)数据隔离和性能(是否一个租户的负载会影响到其他租户)2.3单租户成本(Per-tenant cost)数据库成本2.4 开发复杂度(Development complexity)数据结构的变化查询语句的变化2.5运维复杂度(Operational complexity)性能监控数据结构schema管理租户数据恢复灾备2.4可定制化程度(Customizability)根据租户的需求自定义架构的容易程度 这个租户的讨论集中在数据层。但考虑一下应用层。应用程序层被视为一个整体实体。如果将应用程序划分为许多小型组件您的租户模型选择可能会发生变化。对于租户和存储技术或使用的平台您可以对其他组件进行不同的处理。3 常见的架构模式有以下几种3.1独立服务独立数据库这个模型中应用层和数据层都是隔离的。应用程序的每个实例都是独立实例。租户拥有自己独立的数据库每个应用程序实例只需要一个数据库。对租户的管理独立于系统之外对于每一个租户整个应用程序需要重复安装一次。供应商都可以为租户管理软件。每个应用程序实例都配置为连接到其相应的数据库。优点为不同的租户提供独立的应用实例和数据库有助于简化数据模型和业务模型的扩展设计满足不同租户的独特需求如果出现故障恢复系统或数据均比较简单系统间也不会相互影响。问题数据库层面每个租户数据库都作为独立数据库进行部署。该模型提供了最大的数据库隔离。但隔离需要为每个数据库分配足够的资源来处理其高峰负载。这里重要的是 弹性池不能用于部署在不同资源组或不同订阅中的数据库。这种限制使得这种独立的单租户应用程序模型成为从整体数据库成本角度来看最昂贵的解决方案应用层面每个租户若存在个性化定制则需要对项目进行横向扩展扩展时务必需要保证与主干版本的兼容性问题。运维层面应用和数据库的安装数量会随租户的数量线性递增随之带来维护成本和购置成本的增加。3.2一套服务独立数据库这个模型中应用层是共享的数据层都是隔离的。应用程序仅部署一套所有租户实例共享。租户仍拥有自己独立的数据库应用程序需对接多个租户的数据库。对租户的管理由配置中心(Config Server)管理配置中心提供了配置监视和管理共享所需的功能供应商使用这些工具为租户管理软件。对于每一个租户整个应用程序仅需要安装一次应用程序实际请求结合配置中心请求相应的数据库。优点为不同的租户提供独立数据库有助于简化数据模型扩展设计满足不同租户的独特需求如果出现故障数据恢复均比较简单也可以自动将单个租户恢复到较早的时间点。因为恢复只需要恢复存储租户的一个单租户数据库。这种恢复对其他租户没有影响这证实了管理运营处于每个租户的细粒度级别。应用层面的维护成本和购置成本有所减少。问题数据库层面同模型一应用层面每个租户若存在个性化定制则需要对项目进行横向扩展扩展时务必需要保证与主干版本的兼容性问题。运维层面数据库的运维问题同模式一应用层面的运维在版本控制的问题上难度有所增加。3.3 一套服务一套数据库(不同schema)这个模型中应用层是共享的数据库共享但数据是隔离的。应用程序和数据库仅部署一套所有租户共享。多个或所有租户共享Database也就是说共同使用一个数据库但是每个租户一个Schema(也可叫做一个user)使用表进行数据隔离数据库。底层库比如是DB2、ORACLE等一个数据库下可以有多个SCHEMA。应用程序需对接多个租户的数据库。对租户的管理由配置中心(Config Server)管理同模式二。优点为安全性要求较高的租户提供了一定程度的逻辑数据隔离并不是完全隔离每个数据库可支持更多的租户数量。问题数据库层面如果出现故障数据恢复比较困难因为恢复数据库将牵涉到其他租户的数据应用层面配置中心需要对租户信息进行完整且合理的分配和维护。3.4 一套服务一套数据库(相同schema)模型与模型三的差别在于共享数据库共享 Schema共享数据表。也就是说共同使用一个数据库一个表使用字段进行数据隔离。如表中增加TenantID多租户的数据字段。这是共享程度最高、隔离级别最低的模式。简单来讲即每插入一条数据时都需要有一个客户的标识。这样才能在同一张表中区分出不同客户的数据这也是我们系统目前用到的(tenant_id)。优点方案的维护和购置成本低允许每个数据库支持的租户数量最多。问题隔离级别最低安全性最低需要在设计开发时加大对安全的开发量数据备份和恢复最困难需要逐表逐条备份和还原。3.5网关前台中台数据存储模式五与之前的模式的最大区别是在原有的web Service进行细化拆分优化成 网关前台中台数据存储的模式。网关用于接收租户的请求并发送给前台。前台的数量与租户一致每一个租户对应一个前台服务方便针对租户进行个性化定制。中台负责提供处理所有的业务请求中台不关心租户是谁将重心关注在业务的处理上。配置中心用于配置租户的接口权限、流程定制等相关配置信息。结合业务逻辑返回给前台特定租户的相关信息。数据库模式参考模式四。优点有利于定制不同租户的个性化需求。例如交互界面不同、工作流不同等等。服务只需要根据用户需求在前台做相应的横向扩展即可 不同租户间服务相互独立互不影响。问题模块划分需要做好划分重点注重业务之间的低耦合调用链路变长需要做一定的优化处理模块纵向拆分后后期研发和运维难度均会有所增加好文收集不易请转发或在看谢谢