Skip to content

Latest commit

 

History

History
69 lines (49 loc) · 1.87 KB

README_zh_Hans.md

File metadata and controls

69 lines (49 loc) · 1.87 KB

go-saas

English | 中文文档

无头(无UI)的go语言的多租户框架。 本项目适合于简单的/单体(Web)项目,完整版本(支持微服务)可以看看go-saas-kit

概览

功能

  • 不同的数据储存方式

    • 每个租户各有数据库:

      img.png

    • 各个租户共享数据库: (数据访问层提供隔离)

      img.png

    • 混合模式

    • 实现自己的Resolver来自定义,比如说像分片啥的

  • 支持多种Web框架

  • 共享数据库下,支持自动数据隔离的Orm, 包括Orm所支持的数据库

  • 自定义租户解析

    • Query String
    • Form parameters
    • Header
    • Cookie
    • Domain format
  • 初始化和数据库迁移

    • 租户创建后初始化/迁移 数据库,或者以后升级到新的版本
  • 和网关集成

安装

go get github.com/go-saas/saas

设计

graph TD
    A(InComming Request) -->|cookie,domain,form,header,query...|B(TenantResolver)
    B --> C(Tenant Context)  --> D(ConnectionString Resolver)
    D --> E(Tenant 1) --> J(Data Filter) -->  H(Shared Database)
    D --> F(Tenant 2) --> J
    D --> G(Tenant 3) --> I(Tenant 3 Database)
Loading

示例

  • example 使用 go-saas,gin,gorm(sqlite/mysql)
  • go-saas-kit golang多租户微服务解决方案

文档

wiki

参考

https://docs.microsoft.com/zh-cn/azure/azure-sql/database/saas-tenancy-app-design-patterns