前言
如果在正常的多租户的应用中,你想要去使用分布式数据库,那么你会考虑哪些重要需求呢?
答案不言而喻:性能、安全性、可管理性,可扩展性。这四个需求无非是所有的多租户应用中的共通需求且重要。
为什么?
基本原则:
-
性能保证:不跨数据库操作,避免跨节点操作。
-
安全性:用户之间隔离性。
-
可管理性:支持应用的灵活性,业务调整,数据迁移,备份恢复。
-
可扩展性:支持业务弹性扩容。
KunlunBase在SaaS中的逻辑架构
KunlunBase作为云原生分布式数据库,非常适合用在SaaS的应用场景中,下图是某SaaS软件服务上采用KunlunBase的逻辑架构。
设计该逻辑架构的主要环节如下:
-
为每个客户创建一个数据库用户和数据库schema, 数据库用户是应用程序连接数据库的用户名,该用户具有访问对应数据库schema的权限 (案例中数据库用户SCH1 和数据库schema SCH1 是一个组合, 用户SCH2 和数据库schema SCH2 是另一个业务用户的组合),这样设计保证不同用户之间的隔离性。
-
数据库集群内,为每个应用创建一个数据库,保证同一个应用使用同一个数据库,每个数据库内创建不同的schema服务不同的客户。
-
为每个schema设计表,业务表分为三类:普通表、分片表、复制表。数据量小于10k行的表不做分片,此类表固定存储在某一个存储SD里。所有的大表根据数据量及查询的场景,选择基于(范围、列表、hash值或相关表参考字段)分片,将频繁使用到的数据量非常小的表创建为复制表, 在存储集群的每个节点上都存储一份拷贝。
结论
正因为昆仑分布式数据库的独特架构(昆仑分布式数据库架构介绍可点击查看),使得KunlunBase在SaaS应用构建中可以起到很好的作用,俩者是非常契合的。
推荐阅读
KunlunBase架构介绍
KunlunBase技术优势介绍
KunlunBase技术特点介绍
KunlunBase集群基本概念介绍
END
昆仑数据库是一个HTAP NewSQL分布式数据库管理系统,可以满足用户对海量关系数据的存储管理和利用的全方位需求。
应用开发者和DBA的使用昆仑数据库的体验与单机MySQL和单机PostgreSQL几乎完全相同,因为首先昆仑数据库支持PostgreSQL和MySQL双协议,支持标准SQL:2011的 DML 语法和功能以及PostgreSQL和MySQL对标准 SQL的扩展。同时,昆仑数据库集群支持水平弹性扩容,数据自动拆分,分布式事务处理和分布式查询处理,健壮的容错容灾能力,完善直观的监测分析告警能力,集群数据备份和恢复等 常用的DBA 数据管理和操作。所有这些功能无需任何应用系统侧的编码工作,也无需DBA人工介入,不停服不影响业务正常运行。
昆仑数据库具备全面的OLAP 数据分析能力,通过了TPC-H和TPC-DS标准测试集,可以实时分析最新的业务数据,帮助用户发掘出数据的价值。昆仑数据库支持公有云和私有云环境的部署,可以与docker,k8s等云基础设施无缝协作,可以轻松搭建云数据库服务。
请访问 http://www.kunlunbase.com/ 获取更多信息并且下载昆仑数据库软件、文档和资料。
KunlunBase项目已开源
【GitHub:】
https://github.com/zettadb
【Gitee:】
https://gitee.com/zettadb