Spring Cloud与Kubernetes构建微服务架构
Ink Zhou 查看讲师
百林哲咨询(北京)有限公司专家团队成员
现就职于一家大型互联网公司,8年软件系统开发经验,对Spring Cloud、微服务、持续集成、持续交付、容器生态圈常用组件均有涉猎。
浏览:7934次
详情 DETAILS

简介

学习本课程,学员将会对微服务、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简介与架构剖析

l 编写Eureka Server

l 高可用Eureka

l 用户认证

l 元数据【重要的扩展钩子】

l RESTful API【重要的能力钩子】

l 自我保护模式【重要特性】

l 指定网卡

l 健康检查【作用、存在的坑以及总结】


将前面的微服务注册到Eureka Server上
客户端侧负载均衡-Ribbon

l 负载均衡原理剖析

l Ribbon简介

l 原生Ribbon API

l 引入Ribbon后的架构演进

l 编写第一个Ribbon Client

l 使用代码自定义Ribbon的配置

l 使用配置自定义Ribbon的配置

l Eager Load


手写客户端侧负载均衡器
声明式的HTTP客户端-Feign

l Feign简介

l 编写第一个Feign Client

l 使用代码自定义Feign的配置

l 使用配置自定义Feign的配置

l 继承特性

l 压缩

l 日志

l 构造多参数请求


使用Feign改造之前编写的微服务
断路器-Hystrix

l 浅谈雪崩效应及危害

l 如何容错

l Hystrix简介

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 /filters端点

l Zuul的安全与Header传递

l 文件上传

l 过滤器详解

l 容错与回退

l 高可用Zuul

l 整合异构平台-Sidecar

l Debug Zuul


使用Zuul代理所有微服务

配置中心-SpringCloud Config

 

l 为什么要使用配置中心

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 【看时间】与遗留技术栈的共存、割接方案


快速开发平台助力快速落地



企业服务热线:400-106-2080
电话:18519192882
投诉建议邮箱:venus@bailinzhe.com
合作邮箱:service@bailinzhe.com
总部地址:
北京市-丰台区-汽车博物馆东路6号3号楼1单元902-B73(园区)
全国客户服务中心:
天津市-南开区-桂苑路15号鑫茂集团鑫茂军民园1号楼A座802-803
公众号
百林哲咨询(北京)有限公司 京ICP备2022035414号-1