【课程背景】
随着互联网时代的到来,数据量急剧增加,并发量也越来越大,传统的单体应用访问起来变得越来越缓慢?企业如何快速的找到应用缓慢的根源并进行快速的优化?企业如何重新规划和设计高可用高并发的分布式系统的架构,而微服务架构已然成为分布式系统架构最主流的实现方案。
本课程首先从软件架构的演变历程开始分析,分析传统的单体架构是如何演变为微服务架构的?探讨了基于微服务架构对团队技能以及团队组织架构的要求,深入剖析了什么类型的项目适合采用微服务架构?微服务架构的技术选型以及如何选择?
接着从微服务架构所涉及到的各种组件,基于原理+实战的模式。让学员对其有全盘和深入的理解和应用,并掌握在日常工作中的最佳实践。
课程将通过实例演示和动手实践相结合的方式来强化学员对课程知识的掌握,并快速的转化为实战技能应用到企业的日常工作当中。
【课程收益】
Ø 了解企业微服务架构落地的全流程
Ø 掌握微服务架构对团队和人才的要求
Ø 掌握微服务架构的基础设施和实现方案
Ø 掌握微服务架构的最佳实践
【课程对象】CTO、技术总监、研发负责人、架构师、研发工程师、售前技术工程师
【课程时间】2天
【课程大纲】
一、微服务架构背景
1、从传统单体架构到分布式微服务架构演变历程
案例:淘宝
2、微服务架构相关概念
Ø 微服务架构定义
Ø 微服务架构面临哪些挑战?
Ø 微服务生命周期与交付流程
Ø 微服务技术选型
Ø 微服务架构常用组件
Ø 微服务对于团队要求
二、如何进行微服务设计与拆分?
1、微服务设计和拆分原则
Ø 微服务设计、开发和运维流程剖析
Ø 微服务拆分维度有哪些?
Ø 微服务拆分原则有哪些?
2、微服务拆分后面临问题?如何解决?
Ø 如何快速定位故障?
Ø 如何进行系统间调用链路分析?
Ø 如何高效的实现服务治理?
Ø 如何确保服务上下游调用的稳定性?
三、微服务开发框架利器之SpringBoot?
1、SpringBoot前世今生
Ø SpringBoot诞生背景
Ø SpringBoot优势
2、SpringBoot开发特性
Ø SpringBoot包版本管理
Ø SpringBoot自动配置
Ø SpringBoot常用注解
Ø SpringBoot自定义配置参数
Ø SpringBoot外部化配置
3、SpringBoot生产级特性
Ø SpringBoot多环境配置
Ø SpringBoot部署与运维
四、微服务案例分析
1、微服务按业务拆分
2、框架搭建
Ø 微服务整体工程架构搭建
Ø 各微服务模块开发
五、微服务之远程调用
1、远程调用
Ø 如何实现跨服务间的远程调用?
Ø 跨服务间远程调用的几种方式对比
Ø 跨服务间远程调用需要考虑的因素有哪些?
2、负载均衡
Ø 如何实现跨服务间调用的负载均衡?
Ø 服务端负载均衡方案
Ø 客户端负载均衡方案
六、微服务之注册中心
1、服务治理
Ø 服务治理的定义与作用
Ø 微服务调用端和微服务提供端之间透明通信
Ø 微服务动态注册与发现
2、注册中心实现方案
Ø Zookeeper底层原理剖析
Ø Eureka底层原理剖析
Ø Nacos底层原理剖析
Ø Nacos服务分级存储模型
Ø 如何基于Nacos实现跨区域集群的调用
Ø 如何基于namespace实现环境隔离
3、注册中心应用实战
Ø 基于Eureka实现服务注册与发现,上下游调用
Ø 基于Nacos实现服务注册与发现,上下游调用
七、微服务之远程同步调用?
1、RestTemplate实现远程调用
Ø 负载均衡原理
Ø 基于RestTemplate的直连远程同步调用
Ø 使用RestTemplate如何与Eureka、Nacos实现服务发现及负载均衡
2、Feign实现远程调用
Ø 基于Feign实现的远程负载均衡调用
Ø Feign客户端工程结构最佳实践
3、自定义负载均衡
Ø 负载均衡策略IRule
Ø 如何指定负载均衡策略、自定义负载均衡策略?
八、微服务之远程异步调用?
1、异步调用
Ø 微服务间异步调用的实现方式
Ø 微服务间异步调用如何确保异步成功执行?
Ø 基于MQ实现微服务异步调用
Ø MQ的异步通知模型
Ø MQ的异步通知模型下服务的幂等性要求
2、异步调用实现
Ø 消息中间件选型与对比
Ø 消息队列编程模型之点对点
Ø 消息队列编程模型之发布/订阅
Ø 基于RabbitMQ实现的远程异步调用
Ø 基于Kafka实现的远程异步调用
3、总结:基于MQ实现异步调用注意事项
九、微服务之容错处理
1、微服务容错处理
Ø 雪崩效应场景分析
Ø 如何应对雪崩效应下的容错处理
Ø 微服务的5种容错方案:超时处理、舱壁模式、断路器、限流、降级
Ø 微服务间调用超时如何处理?
Ø 如何实现微服务的服务降级与熔断
Ø 如何对服务提供者实现限流?
2、微服务容错处理方案之Hystrix
Ø Spring Cloud体系下之容错处理解决方案断路器Hystrix
Ø 基于Hystrix实现方法级的服务降级与熔断
Ø 基于Hystrix服务降级与熔断策略的配置
Ø 如何正确设置服务的超时时间?应遵循什么原则?
Ø 基于Hystrix Dashboard实现服务的流量与熔断监控
3、微服务容错处理方案之Sentinel
Ø SCA服务限流降级之Sentinel
Ø Sentinel的基本概念:资源、规则
Ø Sentinel的工作流程与原理剖析
Ø Sentinel对流量控制、熔断降级的实现机制
Ø Sentinel实时监控和规则管理的控制台
Ø Sentinel流控模式:关联模式、链路模式
Ø Sentinel留空效果:warm up、排队等待
Ø Sentinel热点参数限流:全局参数限流、热点参数限流
Ø Sentinel隔离:线程隔离与信号量隔离模式
Ø 基于FeignClient整合Sentinel实现隔离和降级逻辑
Ø Sentinel熔断降级:慢调用、异常比例
Ø Sentinel与开源框架的快速适配
Ø Spring Cloud体系下之容错处理解决方案断路器Hystrix
Ø Sentinel与Spring Cloud Hystrix对比
十、微服务之网关
1、微服务网关
Ø 微服务网关定义
Ø 服务网关的应用场景有哪些?
Ø 网关的实现原理
2、微服务网关实现之zuul
Ø SpringCloud之微服务网关zuul
Ø 编写zuul微服务网关的流程
Ø zuul过滤器的应用
Ø zuul的容错与回退处理
Ø zuul如何自定义服务的中转策略
3、微服务网关实现之gateway
Ø spring cloud gateway网关
Ø spring cloud gateway之断言工厂
Ø spring cloud gateway之过滤器工厂
Ø spring cloud gateway之全局过滤器
Ø 如何解决网关跨域的问题
十一、微服务之配置中心
1、微服务配置中心
Ø 服务配置中心介绍与应用场景分析
Ø 如何管理微服务中的配置
Ø 如何实现配置端点的刷新
Ø 如何确保配置中心内容的安全性?
Ø 如何实现配置刷新后自动下发?
2、微服务配置中心实现之Nacos
Ø Nacos下配置的多项目分组管理
Ø SCA下Nacos实现的配置管理与动态刷新
十二、微服务监控
1、微服务监控
Ø Spring Boot自带的开源监控系统Spring Boot Admin
Ø 自主搭建系统监控中心
2、微服务调用链跟踪
Ø 分布式调用链中心
Ø 开源调用链中心Zipkin
Ø 微服务调用链追踪
Ø Spring Cloud Sleuth简介
Ø Spring Cloud Sleuth与Zipkin结合应用
十三、微服务之分布式事务
1、分布式事务原理
Ø CAP定理:一致性、可用性、分区容忍性
Ø BASE理论
Ø 数据库事务的ACID特性分析
Ø 本地事务 VS 分布式事务
Ø 如何解决跨服务间同步调用的数据一致性?
Ø 本地事务定义以及事务的ACID特性分析
Ø 什么是分布式事务?
Ø 分布式事务的应用场景有哪些?
Ø 分布式事务的原理
Ø 分布式事务XA协议、两阶段提交与三阶段提交的流程与原理剖析
2、分布式事务实现之SeataØ
Ø SCA下Seata对事务模式的支持
Ø Seata AT模式下的应用实战
十四、微服务日志
1、微服务日志
Ø 传统日志管理方式痛点分析
Ø 为什么需要搭建应用日志中心
2、微服务日志实现之ELKØ
Ø 开源日志中心ELK介绍
Ø 日志存储系统之Elasticsearch
Ø 日志收集系统之Logstash
Ø 日志查询系统之Kibana
Ø ELK日志中心搭建访问日志的分析