Skip to content

pjjwpc/MultiTenancyDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

多租户Demo

基于MySql 实现的一个简单的多租户Demo ,算是多租户设计的一个演示。

技术栈:

asp.net core 、EFCore、Apollo、Redis、Dapper。

用到的Apollo配置中心(作用很简单,就是项目启动时加载数据库连接字符串,因为配置中心也要调研所以就直接用了)。

Redis发布订阅(有新的使用独立数据库租户创建则发布事件,客户端程序进行数据库初始化,在租户表中创建一条对应的记录)。

使用Dapper主要的想法是统计查询,这里还没有使用。

Demo后期会抽离成组件,暂时只支持EfCore。后续会添加Dapper,Entityframework,其他ORM框架各自开发人员自行调整,不做实现

多租户识别逻辑

使用中间件根据域名进行租户识别,这里识别肯定是多样话的,Demo中只演示了根据域名识别,后期会添加登录用户、Cookie等

多租户实现逻辑

项目初始化时从租户表中加载租户信息,并将加载到的租户信息放入缓存中。

识别租户的方式采用的是url的方式,不同的域名对应不同的租户。

识别出租户信息后,判断租户类型,如果是独立数据库则更改DbContext的连接字符串,如果是共享数据库则为创建的实体赋值租户ID。

About

多租户Demo基于mySql 实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published