暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 KunlunBase 昆仑数据库 2022-04-14
1829

前言

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

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

为什么?

基本原则:

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

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

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

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

KunlunBase在SaaS中的逻辑架构

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

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

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

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

  3. 为每个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

最后修改时间:2022-11-29 11:12:30
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论