# 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公司的相关组件大部分进入维护状态(意味着这些组件将不再投入精力开发和维护),故本文新项目采用当前比较流行的技术选型,具体现状如下图: ![输入图片说明](https://images.gitee.com/uploads/images/2020/0501/182514_a2bfe0e8_7468166.png "image-20200501174320252.png") ### 1.2、设计思路 大致如图: ![输入图片说明](https://images.gitee.com/uploads/images/2020/0502/110800_9b68fbb9_7468166.png "TIM截图20200502110714.png") ### 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、截图 ![nacos集群](https://images.gitee.com/uploads/images/2020/0507/105712_8749957c_7468166.png "Nacos集群.png") ![nacos动态配置中心](https://images.gitee.com/uploads/images/2020/0507/105724_e32c95ff_7468166.png "nacos配置.png") ![从nacos动态同步的API分组](https://images.gitee.com/uploads/images/2020/0507/105736_c51a1588_7468166.png "nacos同步的API分组.png") ![从nacos动态同步的限流规则](https://images.gitee.com/uploads/images/2020/0507/105747_5ae608ff_7468166.png "nacos同步的限流规则.png") ![限流效果](https://images.gitee.com/uploads/images/2020/0507/105825_b93ec4d3_7468166.png "限流效果.png") ![没有权限](https://images.gitee.com/uploads/images/2020/0507/105806_07786a75_7468166.png "没有权限.png") ![获取Token](https://images.gitee.com/uploads/images/2020/0507/105948_244412d7_7468166.png "获取token.png") ![有权限访问资源](https://images.gitee.com/uploads/images/2020/0507/110005_3550089a_7468166.png "有权限访问.png") ![Token过期](https://images.gitee.com/uploads/images/2020/0507/110032_8aa32706_7468166.png "token过期.png") ## 二、联系与赞助 联系QQ:184377902 邮箱:haifeng_personal@aliyun.com