简介
学习本课程,学员将会对微服务、Spring Cloud有一个系统、全面的认识。通过学习,学员将能掌握相关的知识体系,并能够投入到项目实战中去。
本课程采用实战优先的原则,讲解如何从0开始编写基于Spring Boot/Cloud开发的微服务,并逐步解决项目中的问题,最终实现一个高可用的微服务架构;随后,讲解如何将应用容器化、如何实现资源的合理分配、并将应用部署到Kubernetes平台。
本课程使用目前最新的Spring Cloud Edgware SR3进行讲解,各种新特性一览无余!如时间富余,还将介绍Spring Boot 2.0以及Spring Cloud Finchley,让大家了解Spring Cloud的发展趋势及未来的新特性!
需要安装:
JDK1.8
Maven
IntelliJ IDEA(或Spring Tool Suite,不建议原生Eclipse)
目标
使学员理解微服务是什么、有什么好处、设计原则、拆分原则
深入理解Spring Cloud核心组件及相关扩展钩子,能够使用Spring Cloud开发微服务,并具备二次开发Spring Cloud的能力
课程时长
2天(12H)
受众人群
l 对Spring Boot感兴趣的Java开发人员
l 对Spring Cloud感兴趣的Java开发人员
l 对微服务感兴趣的架构师
l 了解Java,否则动手实战会有一些困难
l 了解分布式应用,或对分布式架构感兴趣
l 熟悉Maven
分享提纲
方向 | 内容安排 | 讲解案例 | 练习安排 |
微服务架构及概述 | l 架构的演进史 l 微服务诞生背景 l 微服务架构的优点与挑战 | ||
Spring Boot概述 | l Spring Boot简介、诞生背景、特点 l 使用SpringInitialzr快速创建应用 l 编写第一个SpringBoot应用 l Spring Boot配置方式、profile、健康检查 | 手把手编写Spring Boot应用 | |
Spring Boot进阶 | l Spring Boot整合Spring Data JPA l Spring Boot整合Mybatis l Spring Boot整合ELK l Spring Boot可视化监控 | ||
Spring Cloud概述 | l Spring Cloud简介、核心功能、特点 l Spring Cloud版本简介及与Spring Boot的兼容性 l Spring Cloud子项目与提供的能力 l 服务提供者与服务消费者 | 编写一个分布式的应用,包含2个微服务 | |
服务注册与服务发现-Eureka | l 服务注册与服务发现作用与原理剖析 l 编写Eureka Server l 高可用Eureka l 用户认证 l 元数据【重要的扩展钩子】 l RESTful API【重要的能力钩子】 l 自我保护模式【重要特性】 l 指定网卡 l 健康检查【作用、存在的坑以及总结】 | 将前面的微服务注册到Eureka Server上 | |
客户端侧负载均衡-Ribbon | l 负载均衡原理剖析 l 原生Ribbon API l 编写第一个Ribbon Client l 使用代码自定义Ribbon的配置 l 使用配置自定义Ribbon的配置 l Eager Load | 手写客户端侧负载均衡器 | |
声明式的HTTP客户端-Feign | l Feign简介 l 编写第一个Feign Client l 使用代码自定义Feign的配置 l 使用配置自定义Feign的配置 l 压缩 l 日志 l 构造多参数请求 | 使用Feign改造之前编写的微服务 | |
断路器-Hystrix | l 浅谈雪崩效应及危害 l 如何容错 l Hystrix简介 l 整合Hystrix l Feign使用Hystrix l 使用FallbackFactory检查回退原因 l Feign启用/禁用Hystrix l Hystrix监控 l Hystrix Dashboard可视化监控数据 l Turbine简介 l 编写Turbine Server l 消息中间件模式 | 为之前编写的微服务整合Hystrix | |
API Gateway-Zuul | l 网关的必要性 l 简介 l 入门示例:编写一个API Gateway l /routes端点 l 路由配置详解 l Zuul的安全与Header传递 l 文件上传 l 过滤器详解 l 容错与回退 l 整合异构平台-Sidecar l Debug Zuul | 使用Zuul代理所有微服务 | |
配置中心-SpringCloud Config
| l Spring Cloud Config简介 l 编写ConfigServer l 集成ConfigClient l Git仓库配置详解 l 配置属性加解密 l 配置手动刷新 l 自动刷新-SpringCloud Bus l Config Server与Eureka配合使用 l 安全 l 高可用 | l 业界常用的配置中心Disconf、Apollo、Diamond等于Spring Cloud Config的对比与取舍; l Kubernetes ConfigMap/Secret与Spring Cloud Config的取舍 | 使用Config Server管理微服务配置 |
调用链监控-SpringCloud Sleuth | l 为什么要实现调用链跟踪 l 简介 l 基本概念 l 入门示例:整合Sleuth l Sleuth配合ELK l Zipkin简介 l Zipkin Server编写 l Zipkin UI l 微服务整合Zipkin l 消息中间件模式整合Zipkin l 使用Elasticsearch作为Zipkin Server的后端存储 l 生成依赖关系图 | 为应用整合Sleuth,并使用Zipkin展示调用链 | |
微服务安全 | l 微服务安全的原则 l Spring Cloud Security方案 l Zuul上统一控制方案 l Session共享方案 l 外部无状态,内部有状态方案 l 我司方案 | 注:着重讲解我司使用Keycloak(开源、易用)管理微服务安全。 Spring Cloud Security不打算细讲,有兴趣可以看我博客。 | 采用其中一种方案,为微服务实现安全管理 |
最佳实践总结 | l Spring Cloud最佳实践总结 l 性能优化 l 坑的总结(如何避免常见问题) l 解决问题的思路总结 l 生产可用的快速开发平台 l 【看时间】与遗留技术栈的共存、割接方案 | 快速开发平台助力快速落地 |
Lee Zhou
百林哲咨询(北京)有限公司专家团队成员
Lee Zhou
百林哲咨询(北京)有限公司专家团队成员
Lee Zhou
百林哲咨询(北京)有限公司专家团队成员
Lee Zhou
百林哲咨询(北京)有限公司专家团队成员
Lee Zhou
百林哲咨询(北京)有限公司专家团队成员