# Multienty **Repository Path**: kutasms/multienty ## Basic Information - **Project Name**: Multienty - **Description**: SaaS多租户微服务框架底座 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://kutashop.cn - **GVP Project**: No ## Statistics - **Stars**: 27 - **Forks**: 6 - **Created**: 2024-02-25 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# SAAS多租户解决方案 (Spring微服务版) [English](./README.md) | 简体中文 ![Static Badge](https://img.shields.io/badge/springboot-2.6.13-blue) ![Static Badge](https://img.shields.io/badge/webflux-2.6.13-orange) ![Static Badge](https://img.shields.io/badge/dubbo-3.0.8-red) ![Static Badge](https://img.shields.io/badge/nacos-2.2.0-brightgreen) ![Static Badge](https://img.shields.io/badge/seata-1.8.0-fedcba) ![Static Badge](https://img.shields.io/badge/shardingsphere-5.2.1-yellow) ![Static Badge](https://img.shields.io/badge/sentinel-1.8.6-8A2BE2) ![Static Badge](https://img.shields.io/badge/mybatis_plus-3.5.5-blue)
Multienty集成了多个优秀的中间件,为您提供一站式多租户SAAS平台开发解决方案。 本项目基于Springboot***2.6.13***. 在接入之前请确认您的开发环境可支持, 请参考如下架构图: ![](./doc/images/architecture.png) ## 特性 - 支持数据库自动部署和迁移 - 集成远程配置 - 集成流式网关和OAuth授权 - 支持节点间PRC通信 - 支持分布式数据库事务 - 全栈代码生成(前端+后端) - 支持数据分片、读写分离 - 支持访问链路熔断 - 支持动态数据源 - 集成消息队列(+延迟队列) - 支持热插拔式插件开发 - 集成基础数据库 - 集成工作流引擎 - 集成数据大屏 - 集成微信第三方平台 ## 案例 本项目已用于商业项目,项目提供测试帐号可前往-> ## [在线DEMO传送门](https://kutashop.cn) ![数据大屏](./doc/images/bigscreen.png) ![数据仪表盘](./doc/images/stat.png) ![快速发布小程序](./doc/images/quick-publish.png) ![工作流引擎](./doc/images/workflow.png) 大神跳过, 小白可前往以下传送门看入门教程: [传送门 CSDN - SaaS平台开发实战专栏](https://blog.csdn.net/baiyinianhua/category_12585918.html) ## 依赖缺失 由于Multienty对mybatis-plus、数据大屏等项目源码进行过改造,所以版本跟公网版本有所差异,我们提供了百度网盘压缩包 链接:https://pan.baidu.com/s/1LYhPHkOmO7s7cM013fzHFA?pwd=u1pa 提取码:u1pa ## 网关 & OAuth鉴权 Multienty已实现网关和OAuth鉴权模块,包括用户名+密码, 手机号+短信验证码, 微信小程序鉴权三种模式。 - multienty-gateway **网关服务** 默认端口9999 - multienty-oauth **授权服务** 默认端口9998 ## 数据库 Multienty 集成了 ***Shardingsphere***, ***DynamicDatasource***以及***Flyway***, 可提供稳定的数据分片, 数据加密, 数据迁移, 多数据源, 以及读写分离等能力. ### 关联查询 ***mybatis-plus-join-boot-starter*** 继承自 mybatis-plus,扩展了关联查询.在此基础上,我们对其进行了进一步封装,以便您可以轻松地在代码中执行关联查询。 例: ``` List list = selectJoinList(OrderDTO.class, MTJoinWrappers.lambda(Order.class) .selectAll(Order.class) .selectAssociation(OrderDetail.class, OrderDTO::getDetail) .leftJoin(OrderDetail.class, OrderDetail::getOrderId, Order::getOrderId) .eq(Order::getTenantId, tenantId) .eq(Order::getTradeId, tradeId) .ge(Order::getCreateTime, TimeUtil.minTime(createTime.toLocalDate())) .le(Order::getCreateTime, TimeUtil.maxTime(createTime.toLocalDate())) ); ``` ## 代码生成 在基础库的Controller中, 我们封装了 ***/code/generate*** 接口. 普通的CURD操作可以通过调用这个接口,只需点击一下就可以生成代码。代码生成规则可以在Nacos中配置,并支持热更新,而无需重新启动应用程序。 Multienty可以识别***shardingsphere***中配置的分片规则,并自动生成基于分片的源代码。 此外,我们还为后端管理UI提供各种页面代码生成。更多详情请月度 ***/vue/code/generate***接口相关信息,并且我们提供了vue代码生成配置文件示例。 ## Nacos配置中心 Multienty已经实现了nacos配置的获取和更新。请开发您自己的UI界面。建议与ShardingArgorithTool合作,实现独立租户的动态创建和更新。 ## 服务监听 spring-boot-admin可以提供服务监控功能,并可以在服务异常时发送电子邮件,**multienty admin**集成了spring-boot-admin并简化了配置。 ![spring boot admin](./doc/images/spring_boot_admin.png) ## 基础数据表 multienty-core-mysql-resource 模块提供了一些基础数据库表配置,您可以在自己的项目Maven pom文件中引用, 然后在nacos配置中开启如下设置,flyway将自动完成基础数据表的生成。基础数据表的pojo,mapper,service, serviceImpl, controller已在multienty-core模块中加入,您不用再次生成。 ``` spring.multienty.base-module-enabled = true ``` ## 策略实现 - 文件上传 - 已实现本地和阿里云oss方式上传。 - 支付 - 已实现微信支付v3接口. - 短信发送 - 已实现阿里云短信发送. ## 更多特性 如您想了解更多特性,可咨询本项目作者或自行阅读源代码 ``` wx: kutasms email:7437280@qq.com ``` ## 第三方组件列表 - redis 3.7.1 - druid 1.2.9 - dubbo 3.0.8 - dynamic datasource 4.2.0 - mybatis-plus 3.5.5 - redisson 3.9.1 - flyway 7.15.0 - nacos 2.2.0 - shardingsphere 5.2.1 - sentinel 1.8.6 - seata 1.6.1 - jjwt 0.11.1 - amqp 2.4.9 ## 贡献者 如果您对此项目有兴趣,可联系作者一起开发,欢迎各位的加入。