:::info
学习目标:
服务网关:Zuul
- 服务注册发现:Eureka
- 负载均衡:Ribbon
- 声明式 REST 调用:Feign
- 限流熔断:Hystrix
- 认证授权:Spring Security + OAuth2 + JWT
- 消息中间件:RabbitMQ + Spring Cloud Stream
- 分布式协调:Spring Cloud ZooKeeper
- 开发框架:Spring Boot + Spring Web MVC + Spring Core + MyBatis
- 服务文档:SwaggerUI
- 消费者驱动式契约:Spring Cloud Contract
2. 分布式系统架构
传统的单块系统,变成微服务分布式系统后,此时会带来新的问题:分布式事务、分布式锁、分布式会话、单点登录、分布式一致性、分布式接口幂等性,等等技术问题。
3. 微服务高可用架构
基于微服务架构的系统,需要保证系统基本的可用性、可靠性,避免服务雪崩等问题。
4. 容器技术
微服务化了之后,就会导致1个系统由几十个服务组成,每个服务可能由多个实例组成。
如何管理大量的微服务成为新的问题,如使用 docker+k8s 技术。
5. DevOps+CI/CD
jenkins + 自动化测试 + 自动化部署
打包 -> 单元测试 -> 运行静态代码检测
-> 自动部署到集成测试环境 -> 运行自动化的集成测试
-> 自动部署到系统测试环境 -> 运行自动化的系统测试
-> 自动部署到预发布环境 -> 运行自动化的压力测试/可用性测试
手动控制生产部署:
全自动化部署到线上生产环境,部署之后,自动化检查日志、监控项、线上验证测试