# mts
**Repository Path**: wh-aling/mts
## Basic Information
- **Project Name**: mts
- **Description**: 微服务项目模板,基于Spring Cloud Alibaba搭建,包括Nacos(Nginx代理3台Nacos)、Sentinel降级熔断与限流、Gateway网关、OpenFeign服务调用、Ribbon负载均衡、Seata分布式事务、Redis分布式锁、Snowflake分布式全局id、MySQL一主一备两从高可用(MyCat)、Redis哨兵模式一主两从、Spring Security OAuth2.0、MyBatisPlus、Swagger文档等功能
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 4
- **Created**: 2021-08-05
- **Last Updated**: 2021-08-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 说明文档
## 一、简介
### 1.1、技术现状
由于Spring Cloud Netflix公司的相关组件大部分进入维护状态(意味着这些组件将不再投入精力开发和维护),故本文新项目采用当前比较流行的技术选型,具体现状如下图:

### 1.2、设计思路
大致如图:

### 1.3、项目版本及功能
Spring Boot :2.2.5.RELEASE
Spring Cloud:Hoxton.SR3
Spring Cloud Alibaba:2.2.1.RELEASE
:point_right: **已实现以下功能:**
1、使用Nacos 1.2.1做服务注册、配置中心、消息总线(Nginx代理3台Nacos,由于每台Nacos默认内存2g,注意适当修改)。
2、负载均衡:网关使用Sentinel自带的Ribbon,服务间调用使用OpenFeign自带的Ribbon。
3、使用Spring Cloud Gateway作为网关,网关主要用作路由、鉴权、限流、降级、熔断、接口文档聚合等作用。
4、服务降级、熔断、限流使用的是Sentinel 1.7.1,动态读取Nacos中的网关规则
5、权限框架使用的是Spring Security OAuth2.0 基于JWT令牌方式。
6、分布式事务:Seata 1.1.0。
7、分布式ID:SnowFlake。
8、接口文档:Swagger,通过网关聚合所有微服务。
9、持久层框架采用MyBatis Plus 3.3.1,简便开发,提高效率。
10、数据库采用高可用一主一备两从的方案,使用MyCat中间件来集成:MySQL 5.7.25,连接池:HikariCP。
11、缓存使用高可用的Redis哨兵模式:一主两从。
12、消息队列集成RabbitMQ。
### 1.4、模块介绍
```txt
|--mts 父模块
|----mts-api :api模块集合
|--------mts-api-sys :系统API
|----mts-auth :认证授权模块
|----mts-business :业务模块集合
|--------mts-business-sys :系统业务
|----mts-common :公共模块集合
|--------mts-common-base :基础
|--------mts-common-datasource :数据源,分布式事务,mybatis
|--------mts-common-redis :缓存Redis
|--------mts-common-rabbit :消息队列
|----mts-gateway :网关
```
### 1.5、截图









## 二、联系与赞助
联系QQ:184377902
邮箱:haifeng_personal@aliyun.com
