什么是多租户 维基百科:"软件多租户是指一种软件架构,在这种软件架构中,软件的一个实例运行在服务器上并且为多个租户服务".一个租户是一组共享该软件实例特定权限的用户.有了多租户架构,软件应用被设计成为每个租户提供一个 专用的实例包括该实例的数据的共享,还可以共享配置,用户管理,租户自己的功能和非功能属性.多租户和多实例架构相比,多租户分离了代表不同的租户操作的多个实例. 多租户用于创建Saas(Software as-a service)应用(云处理). 前言 最近几乎每天38度,气温…
看到一篇比较多租户数据隔离方案的文章,总结挺不错.其实大部分内容在我前几年写的文章都有. 文章翻译自: https://blog.arkency.com/comparison-of-approaches-to-multitenancy-in-rails-apps/ 多租户意味着同一个应用上有不用的用户隔离.这是非常典型的saas模型.你可以用不同的隔离级别来实现多租户. 1. 行级别: 在每个数据库表里添加tenat_id字段,然后在每个查询语句也添加相应的tenant_id 2. schema…
1.数据库设计 常用的Saas分库分为2种类型的库 1.1 基础信息库 主要存组织架构 .权限.字典.用户等 公共信息 性能优化:因为基础信息库是共享的,所以我们可以使用 读写分离,或者二级缓存来进行性能上的优化 2.2 业务库 我们要进行的分库都基于业务库进行分库,例如 A集团使用 A01库 ,B集团使用B01库 ,也可以多个小集团使用一个 数据库 如下: 业务库1   :集团A 业务库2  :    集团B, 集团F 业务库3 :     集团C, 集团D, 集团E 性能优先:因为合理的进行…
0. 前言 前几天跟朋友聚会的时候,朋友说他们公司准备自己搞一套saas系统,以实现多个第三方平台的业务接入需求.聊完以后,实在手痒难耐,于是花了两天时间自己实现了两个saas系统多租户数据隔离实现方案.俗话说“独乐乐不如众乐乐”,所以我把我的“研究成果”写出来,让大家乐呵乐呵. 在分享我的研究成果之前,我们先了解一下相关的定义吧.如果对这部分内容熟悉的同学,可以直接略过. 1. 什么是saas系统 引用百度百科上面的描述, “SaaS平台是运营saas软件的平台.SaaS提供商为企业搭建信息化…
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,在一些人眼里属于重复造轮子:不看也罢.就像昨天有位朋友截图某培训直播发给我看,内容为:"FreeSQL(个人产品),自己玩可以,不要商用.ORM框架:1.安全.稳定(更新稳定.有BUG有人修复,有人升级)". 这突出其来的"关爱",让我的内心毫无波澜,确实是毫无波澜,比起当初 FreeSql 初出茅庐之时的讽刺友好得多.写在开头的这些内容并不祈求这部分人改变观念,该黑的请继续黑,黑总比没有关注好,是…
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白).今天带点干货和湿货给大家,先说下湿货. 认识我的人,知道 CSRedisCore 是我写的另外一个开源组件,这个项目是 2016 年从 ctstone/csredis 项目 clone 到自己工作的项目中,修改源码经过一年多生产考虑于 2017 年发布开源于 https://github.com/2881099/csredis ctstone/csredis 项目于 2014…
前言 FreeSql 目前版本号 0.5.5,预计明年元旦发布 1.0.0,切莫小看了版本号,目前单元测试方法1350+,并且每个方法内的涵盖面又比较广(不信的话见下图),每一次版本发布都作了较多的测试工作. 最近的一段时间,关注我们的人时不时会看见扩展包发布,今天振奋人心的功能主要是核心部分实现(扩展包今天当配角).就不多啰嗦了,咱们直接入主题. 功能一:MapType 类型映射 使用 codefirst 时序列化 json 或 jsonb 数据类型报错 使用 postgresql + ef…
前言 这是一篇纯技术干货的分享文章,FreeSql 已经基本完成 .NETCore 最方便的 ORM 使命,我们正在筹备生态的建立,比如 ABP 中如何使用 FreeSql 的实现,需要各种各样的扩展包,好多好多工作量.有没有大神愿意无偿参与做这件事情,好吧..应该没有人!! 大约是在三天前,因为使用 FreeSql 的某项目需要做一个简单的后台功能,以便录入或管理数据.在实施的过程中好怀念当初 dotnetGen 生成器的味道,用它产生 curd 基本功能几乎是秒做: 然后今天发表的 Free…
FreeSql是一个功能强大的 .NET ORM 功能库,支持 .NetFramework 4.0+..NetCore 2.1+.Xamarin 等支持 NetStandard 所有运行平台. 以 MIT 开源协议托管于 github:https://github.com/2881099/FreeSql FreeSql 插入数据的方式有多种,这篇文章教你用最优的方案做数据插入功能. static IFreeSql fsql = new FreeSql.FreeSqlBuilder() .UseC…
前言 SaaS模式是什么? 传统的软件模式是在开发出软件产品后,需要去客户现场进行实施,通常部署在局域网,这样开发.部署及维护的成本都是比较高的. 现在随着云服务技术的蓬勃发展,就出现了SaaS模式. 所谓SaaS模式即是把产品部署在云服务器上,从前的客户变成了“租户”,我们按照功能和租用时间对租户进行收费. 这样的好处是,用户可以按自己的需求来购买功能和时间,同时自己不需要维护服务器,而我们作为SaaS提供商也免去了跑到客户现场实施的麻烦,运维的风险则主要由IaaS提供商来承担. SaaS多租…