### Spring Boot版本与Spring Cloud对应关系

### 系统介绍
* 支持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系统架构

### 微服务总体分层架构图

## 组件对比
### 服务注册发现
* 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接口文档
> * 统一跨域处理
> * 统一异常处理
- 微服务介绍
- 软件架构设计
- 系统简介
- 运行环境
- 模块介绍
- 启动部署命令参数
- 打包说明
- 开发说明
- Java8
- 认证理论
- 有网络隔离
- 无网络隔离
- token自动续签设计
- url级权限控制
- 单点登录
- 登录
- 用户名密码(+验证码)登录
- 通过openId获取token
- 通过手机号获取token
- 第三方系统接口对接
- 第三方系统单点登录
- 通用刷新token
- 账号登出接口
- 统一异常处理
- 日志埋点工具
- 审计日志
- yml自定义配置自动提示
- Redis使用
- CacheManager集成
- 搜索中心
- 网关zuul动态路由
- swagger
- 解决开发环境的服务冲突和实例乱窜
- 多租户理论
- 多租户实现
- 分布式锁
- 分布式id生成器
- 分布式事务
- 分库分表sharding-sphere
- 消息队列
- 系统幂等性
- X 实时搜索系统设计
- Spring Cloud性能调优
- 链路跟踪
- JWT的RSA非对称密钥生成
- jdk
- Oracle
- OpenJDK
- Dragonwell
- JVM介绍
- 常见JVM内存错误及解决方案
- JVM分析工具详解
- nexus
- docker
- 安装
- docker-compose安装
- 私有仓库搭建
- 指定数据储存目录
- 添加私有仓库
- 提交拉取镜像
- X 免Dockerfile文件构建项目镜像
- 持续集成部署CI/CD
- Confluence知识管理
- JIRA事务与项目跟踪软件
- Gitlab代码仓库
- Jenkins自动化部署
- SonarQube代码检测
- Rancher容器管理平台
- nacos
- 部署
- Rancher部署nacos
- 注册中心
- 配置中心
- 多环境
- 生产部署方案
- X 通过Nginx来实现环境隔离
- Sentinel详解
- 动态规则扩展
- 在生产环境中使用 Sentinel
- 启动配置项
- X 网关流控
- ELK日志系统和慢查询SQL
- docker安装
- 普通安装
- Filebeat安装部署
- ES数据定期删除
- 没数据问题排查思路
- X Logstash的grok语法调试
- 慢查询sql
- 审计日志
- Elasticsearch性能优化
- APM监控
- SkyWalking介绍
- Zipkin,Pinpoint,SkyWalking三种服务链路监控组件分析
- 服务端部署
- 客户端部署
- 日志清理
- Metrics监控
- 二进制包部署
- docker部署
- docker安装各组件监控
- Grafana仪表盘和告警配置
- JMeter压力测试工具
- 使用说明
- 分布式事务
- TX-LCN(同步)
- X SEATA(同步)
- X RocketMQ(异步)
- 消息队列
- RocketMQ
- RocketMQ安装部署
- RocketMQ常见异常处理
- SpringCloud-Stream
- RabbitMQ
- Redis
- 单机安装
- 主从复制
- 主从复制+哨兵
- cluster集群
- 持久化方案
- MySQL
- 单机安装
- 主从复制
- 主从切换
- 主主复制
- 高可用
- 分表分库
- Canal数据库日志解析消费
- Canal安装
- 实时同步数据到ElasticSearch
- FastDFS
- docker安装
- centos安装
- 项目管理系统
- 禅道
- 111