SaaS&多租户场景下数据库的逻辑架构设计

前言

如果在正常的多租户的应用中,你想要去使用分布式数据库,那么你会考虑哪些重要需求呢?

答案不言而喻:性能、安全性、可管理性,可扩展性。这四个需求无非是所有的多租户应用中的共通需求且重要。 

为什么?

基本原则

  • 性能保证:不跨数据库操作,避免跨节点操作。

  • 安全性:用户之间隔离性。

  • 可管理性:支持应用的灵活性,业务调整,数据迁移,备份恢复。

  • 可扩展性:支持业务弹性扩容。

KunlunBase在SaaS中的逻辑架构

KunlunBase作为云原生分布式数据库,非常适合用在SaaS的应用场景中,下图是某SaaS软件服务上采用KunlunBase的逻辑架构。 

SaaS&多租户场景下数据库的逻辑架构设计_第1张图片

设计该逻辑架构的主要环节如下:

1.为每个客户创建一个数据库用户和数据库schema, 数据库用户是应用程序连接数据库的用户名,该用户具有访问对应数据库schema的权限 (案例中数据库用户SCH1 和数据库schema SCH1 是一个组合, 用户SCH2 和数据库schema SCH2 是另一个业务用户的组合),这样设计保证不同用户之间的隔离性。

2.数据库集群内,为每个应用创建一个数据库,保证同一个应用使用同一个数据库,每个数据库内创建不同的schema服务不同的客户。

3.为每个schema设计表,业务表分为三类:普通表、分片表、复制表。数据量小于10k行的表不做分片,此类表固定存储在某一个存储SD里。所有的大表根据数据量及查询的场景,选择基于(范围、列表、hash值或相关表参考字段)分片,将频繁使用到的数据量非常小的表创建为复制表, 在存储集群的每个节点上都存储一份拷贝。

结论

正因为昆仑分布式数据库的独特架构(昆仑分布式数据库架构介绍可点击查看),使得KunlunBase在SaaS应用构建中可以起到很好的作用,俩者是非常契合的。

KunlunBase项目已开源

【GitHub:】
https://github.com/zettadb

【Gitee:】
https://gitee.com/zettadb

原文链接:

SaaS & 多租户场景下数据库的逻辑架构设计 - Powered by MinDoc (kunlunbase.com)icon-default.png?t=M666http://www.kunlunbase.com:8181/docs/b/b-1dnboqc9vt97v

推荐阅读:

KunlunBase架构介绍 - Powered by MinDoc (kunlunbase.com)icon-default.png?t=M666http://www.kunlunbase.com:8181/docs/b/b-1dnl0ff08vm42KunlunBase技术优势介绍 - Powered by MinDoc (kunlunbase.com)icon-default.png?t=M666http://www.kunlunbase.com:8181/docs/b/b-1dnl0hidnehicKunlunBase技术特点介绍 - Powered by MinDoc (kunlunbase.com)icon-default.png?t=M666http://www.kunlunbase.com:8181/docs/b/b-1dnl0gmd9l44gKunlun-Storage vs PostgreSQL OLTP 测试 - Powered by MinDoc (kunlunbase.com)icon-default.png?t=M666http://www.kunlunbase.com:8181/docs/b/b-1dq86ad4auj8ePostgreSQL vs MySQL TPC-H 测试 - Powered by MinDoc (kunlunbase.com)icon-default.png?t=M666http://www.kunlunbase.com:8181/docs/b/b-1dp6drao3djef

END

你可能感兴趣的:(KunlunBase,数据库,database,saas)