### Spring Boot版本与Spring Cloud对应关系 ![](https://img.kancloud.cn/74/f9/74f90b0d207663c999daa7a35e4e6989_1271x636.png) ### 系统介绍 * 支持CI/CD多环境部署 * 前后端分离的企业级微服务架构,适合学习和企业中使用 * 服务发现、配置和管理:`Spring Cloud Alibaba Nacos`(**注意0.8才是生产可用状态**) * 分布式系统套件版本:`Spring Boot 2.2.8.RELEASE`、`Spring Cloud Hoxton.SR5`、`Spring Cloud Alibaba 2.2.1.RELEASE` * 安全认证:重写`Spring Security`实现基于`RBAC`、`jwt`和`oauth2`的无状态统一权限认证的解决方案,提供应用管理,方便第三方系统接入,**支持多租户(应用隔离)** * 服务降级、熔断和限流:`Alibaba Sentinel` * 网关路由代理调用:`Spring Cloud Gateway`/`Netflix Zuul` * 声明式服务调用:`Spring Cloud OpenFeign` * 服务负载均衡:`Spring Cloud Netflix Ribbon` * ORM:`Mybatis-Plus` * 分库分表:`Sharding-JDBC` * 分布式事务:`txlcn-tm`/`Alibaba Seata`(**注意1.0才是生产可用状态**) * 服务应用监控:`Spring Cloud Admin` * 服务调用链路追踪:`Zipkin`/`Skywalking` * 分布式任务调度:`XXL-JOB` * 全文搜索引擎:`Elasticsearch` * 日志系统:`ELK+ Filebeat` * 容器管理平台:`Rancher` ### pigframe系统架构 ![](https://img.kancloud.cn/d0/f5/d0f5b56d712bdc7857a66a7b21f4016c_3528x1779.png) ### 微服务总体分层架构图 ![](https://img.kancloud.cn/6b/a5/6ba582243b09167f411f50b02e1d61cc_1729x1636.png) ## 组件对比 ### 服务注册发现 * Nacos 对比 Eureka * eureka闭源了,所以不作考虑 * nacos支持多机房部署;同时无缝对接与支持dubbo、spring cloud和kubernates云原生体系 ### 配置中心 * Nacos 对比 Apollo * Nacos缺点:目前的版本在功能上还是比apollo要少点,主要体现在发布审计等功能。 * Nacos优点:支持yml格式,并且和注册中心是同一套中间件,方便管理运维 ### 服务降级、熔断和限流 * Sentinel 对比 Hystrix * hystrix停止更新了 * sentinel 的功能比hystrix要多,主要为以下几点 * 支持动态配置规则(业务无入侵) * 支持系统负载保护(根据自定义规则总体保护,不限于某个接口) * 完善的控制台(开箱即用、可配置规则、秒级监控、机器发现等) ## 核心功能 > * **统一认证功能** > * 网关统一认证 > * url级权限控制 > * 支持oauth2的四种模式登录 > * 支持用户名、密码加图形验证码登录 > * 支持手机号加密码登录 > * 支持openId登录 > * 支持第三方系统单点登录 > * **分布式系统基础支撑** > * 服务注册发现、路由与负载均衡 > * 服务降级与熔断 > * 服务限流(url/方法级别) > * 统一配置中心 > * 统一日志中心 > * 统一搜索中心 > * 统一分布式缓存操作类、cacheManager配置扩展 > * 分布式锁 > * 分布式任务调度器 > * 支持CI/CD持续集成(包括前端和后端) > * 分布式Id生成器 > * 分布式事务(强一致性/最终一致性) > * 日志链路追踪 > * **系统监控功能** > * 服务调用链监控 > * 应用拓扑图 > * 应用统一日志查询 > * 慢查询SQL监控 > * 应用吞吐量监控(qps、rt) > * 服务降级、熔断监控 > * 服务限流监控 > * 微服务服务监控 > * 服务器监控 > * redis监控 > * mysql监控 > * elasticSearch监控 > * nacos监控 > * prometheus监控 > * **业务基础功能支撑** > * 多租户(应用隔离) > * 高性能方法级幂等性支持 > * RBAC权限管理,实现细粒度控制(方法、url级别) > * 快速实现导入、导出功能 > * 数据库访问层自动实现crud操作 > * 代码生成器 > * 基于Hutool的各种便利开发工具 > * 网关聚合所有Swagger接口文档 > * 统一跨域处理 > * 统一异常处理