分享

「开发」基于微服务架构,多租户的低代码平台,Saas平台开发套件

 风声之家 2022-07-23 发布于江苏

一飞开源,介绍创意、新奇、有趣、实用的免费开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

MateCloud是一款基于Spring Cloud Alibaba的微服务架构。旨在为大家提供技术框架的基础能力的封装,减少开发工作,让您只关注业务。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

部分截图




图片

图片

图片

图片

图片

图片

四、功能概述

功能特点

  • 主体框架:采用最新的Spring Cloud 2021.0.3, Spring Boot 2.7.1, Spring Cloud Alibaba 2021.0.1.0版本进行系统设计;

  • 统一注册:支持Nacos作为注册中心,实现多配置、分群组、分命名空间、多业务模块的注册和发现功能;

  • 统一认证:统一Oauth2认证协议,采用jwt的方式,实现统一认证,并支持自定义grant_type实现手机号码登录,第三方登录集成JustAuth实现微信、支付宝等多种登录模式;

  • 业务监控:利用Spring Boot Admin来监控各个独立Service的运行状态。

  • 内部调用:集成了Feign和Dubbo两种模式支持内部调用,并且可以实现无缝切换,适合新老程序员,快速熟悉项目;

  • 业务熔断:采用Sentinel实现业务熔断处理,避免服务之间出现雪崩;

  • 身份注入:通过注解的方式,实现用户登录信息的快速注入;

  • 在线文档:通过接入Knife4j,实现在线API文档的查看与调试;

  • 代码生成:基于Mybatis-plus-generator自动生成代码,提升开发效率,生成模式不断优化中,暂不支持前端代码生成;

  • 消息中心:集成消息中间件RocketMQ和Kafka,对业务进行异步处理;

  • 业务分离:采用前后端分离的框架设计,前端采用vue-element-admin,商业版采用antd-pro-vue

  • 链路追踪:自定义traceId的方式,实现简单的链路追踪功能

  • 多租户功能:集成Mybatis Plus,实现SAAS多租户功能

五、技术选型

技术架构

版本演进

核心中间件

2.5.8及以下

当前:4.4.9

Spring Boot

2.3.*.RELEASE

图片

Spring Cloud

Hoxton SR*

图片

Spring Cloud Alibaba

2.2.*.RELEASE

图片

Nacos

1.4.*及以下

图片

Sentinel

1.8.1

图片

文件结构














































matecloud -- 父项目,各模块分离,方便集成和微服务│  ├─mate-core -- 核心通用模块,主模块│  │  ├─mate-starter-common -- 封装通用模块│  │  ├─mate-starter-cloud -- 封装微服务模块│  │  ├─mate-starter-auth -- 封装token验证模块│  │  ├─mate-starter-security -- 封装OAuth2基础模块│  │  ├─mate-starter-web -- 封装WEB服务基础模块│  │  ├─mate-starter-database -- 封装Mybatis及数据库基础模块│  │  ├─mate-starter-dependencies -- 封装所有依赖模块,可作为父项目独立引用│  │  ├─mate-starter-dubbo -- 封装dubbo基础模块│  │  ├─mate-starter-feign -- 封装feign基础模块│  │  ├─mate-starter-jetcache -- 封装JetCache阿里缓存基础模块│  │  ├─mate-starter-rocketmq -- 封装RocketMQ基础模块│  │  ├─mate-starter-gray -- 封装灰度发布基础模块│  │  ├─mate-starter-elasticsearch -- 封装ElasticSearch模块│  │  ├─mate-starter-oss -- 封装oss存储基础模块,支持阿里云、七牛云、minio等│  │  ├─mate-starter-log -- 封装日志基础模块│  │  ├─mate-starter-sharding -- 封装多数据库基础模块│  │  ├─mate-starter-sms -- 封装短信基础模块│  │  ├─mate-starter-mail -- 封装邮件模块│  │  ├─mate-starter-kafka -- 封装kafka基础模块│  │  ├─mate-starter-rule -- 封装黑名单基础模块│  │  ├─mate-starter-idempotent -- 封装幂等基础模块│  │  ├─mate-starter-lock -- 封装分布式锁基础模块│  │  ├─mate-starter-encrypt -- 封装报文加密模块,支持AES和RSA│  │  ├─mate-starter-mongodb -- 封装mongodb数据库模块│  │  ├─mate-starter-strategy -- 封装策略模块│  │  ├─mate-starter-job -- 封装定时任务基础模块│  │  ├─mate-starter-validator -- 封装统一检验基础模块│  │─mate-gateway -- 统一网关模块 [10001]│  │─mate-uaa -- 统一认证中心模块 [20001]│  │─mate-platform -- 平台模块项目,目前包含系统子模块│  │  ├─mate-system-api -- 系统模块的通用模块,供其他模块引用│  │  ├─mate-system -- 系统模块核心功能 [20002]│  │  ├─mate-component-api -- 组件模块核心功能,供其他模块引用│  │  ├─mate-component -- 组件模块核心功能 [20003]│  │─mate-support -- 支持中心项目,目前包括代码生成、admin模块│  │  ├─mate-code -- 封装代码生成逻辑 [30002]│  │  ├─mate-admin -- 封装spring-boot-admin逻辑 [30001]│  │  ├─mate-job -- xxl-jog定时任务模块│  │  ├─mate-job-admin -- 定时任务管理平台模块│  │─mate-mq -- 消息中心项目,支持kafka、RocketMQ等多种消息中间件│  │  ├─mate-log-producer -- 日志消息生产者,集成kafka [40001]│  │  ├─mate-message-consumer -- 消息服务消费者 [40002]│  │  ├─mate-message-producer -- 消息服务生产者 [40003]

核心模块提交至中央仓库

如何引入依赖

<dependencyManagement>
<dependencies>
<dependency>
<groupId>vip.mate</groupId>
<artifactId>mate-starter-dependencies</artifactId>
<version>4.4.8</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies></dependencyManagement>

然后在 dependencies 中添加自己所需使用的依赖即可使用。

前端重大更新

前端采用Vue 3.2.12、Vite 2.5.8、 Ant-Design-Vue 2.2.8、TypeScript 的大型中后台解决方案。

技术栈

  • Vue 3.2.12

  • Pinia 2.0.0-rc.8

  • vue-i18n 9.1.7

  • typescript 4.4.2

  • ant-design-vue 2.2.6

  • axios 0.21.3

  • vue-router 4.3.8

  • vite 2.5.8

版本发布

4.0.8-M3版本已经发布,完善了系统管理的基础功能,主要包括菜单管理、用户管理、角色管理、部门管理、日志管理、客户端管理等功能。后续功能正在加紧开发中,欢迎体验。

六、源码地址

访问一飞开源:https://code./

收录于合集 #开源项目

 170



确定


  • 不看此公众号

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多