4006-998-758
3000+课程任你选择
使用Spring Cloud与Kubernetes构建微服务架构
研发学院 开课时间:2021-07-03
王志远

对Spring Cloud、微服务、持续集成、持续交付、容器生态圈常用组件均有涉猎。 目前的研究重心:Spring Cloud、Docker、Kubernetes,及其相关生态的技术,并总结项目落地过程中遇到的坑。 出版著作 著有《Spring Cloud与Docker微服务架构实战》一书,是2017年十佳畅销书之一,也是国内第一本Spring Cloud相关书籍。 历任Java高级开发、架构师、高级架构师、技术专家。热爱技术交流,曾代表公司参加全球微服务架构高峰论坛、QCon等技术沙龙。拥抱开源,多个项目开源在Github与Git@OSC上,并有个人Side Project微信小程序,分享干货。 


查看老师详情
课程内容


课程概要


学习本课程,学员将会对微服务、Spring Cloud、Docker、Kubernetes有一个系统、全面的认识。通过学习,学员将能掌握相关的知识体系,并能够投入到项目实战中去。

本课程采用实战优先的原则,讲解如何从0开始编写基于Spring Boot/Cloud开发的微服务,并逐步解决项目中的问题,最终实现一个高可用的微服务架构;随后,讲解如何将应用容器化、如何实现资源的合理分配、并将应用部署到Kubernetes平台。

本课程使用目前最新的Spring Cloud Hoxton SR6、Docker 20.03、Kubernetes 1.14进行讲解。

 

课程目标 


理解微服务是什么、解决了什么问题、设计原则、拆分原则、最佳实践

深入理解Spring Cloud核心组件常见用法及扩展钩子,能够使用Spring Cloud开发微服务,并具备二次开发Spring Cloud的能力

深入理解Docker的核心概念及常用知识点,能够使用Docker常用命令、构建Docker容器,并将应用部署在Docker中

深入理解Kubernetes核心概念及常用知识点,能够在Kubernetes中部署应用,并具备解决问题的能力

传统设计微服务、开发微服务、部署微服务、交付微服务全流程

 

课程大纲

 

方向

内容安排

 

微服务架构及概述

架构的演进历程

微服务诞生背景

微服务架构的优点与挑战

微服务设计原则

微服务架构通览

 

 

Spring Boot必知必会

Spring Boot是什么

使用Spring Initialzr快速创建应用

编写第一个Spring Boot应用

Spring Boot配置管理

Spring Boot Actuator

方向

内容安排

 

Spring Cloud是什么

Spring Cloud是什么

Spring Cloud版本与选择

服务提供者与服务消费者

 

 

 

服务注册与服务发现-Nacos

什么是服务发现?

Nacos简介与架构剖析

搭建Nacos Server

Nacos领域模型

Nacos高可用

指定网卡

健康检

方向

内容安排

 

 

 

 

 

客户端侧负载均衡-Ribbon

Ribbon是什么

Ribbon组件详解

引入Ribbon后的架构演进

编写第一个Ribbon Client

使用代码自定义Ribbon的配置

使用配置自定义Ribbon的配置

Eager Load

Ribbon扩展:筛选节点、控制流量

第二代客户端侧负载均衡器:Spring Cloud LoadBalancer

 

 

声明式的HTTP客户端-Feign

 

Feign简介

编写第一个Feign Client

Feign组件详解

使用代码自定义Feign的配置

使用配置自定义Feign的配置

构造多参数请求

方向

内容安排

 

 

 

 

断路器-Hystrix

雪崩效应是什么?

常用容错手段

Hystrix是什么

为项目整合Hystrix

Feign使用Hystrix

使用FallbackFactory检查回退原因

启用/禁用Hystrix

Hystrix监控

Hystrix Dashboard可视化监控数据

Turbine是什么

使用Turbine聚合监控数据

消息中间件模式

其他容错组件对比与选择

如何切换到其他容错组件?

 

 

API Gateway-Zuul

网关的必要性

Zuul是什么

编写Zuul Server

路由配置详解

文件上传

过滤器详解

Zuul监控与排错

容错与回退

高可用Zuul

 

 

 

API Gateway-Spring Cloud Gateway

Spring Cloud Gateway是什么?

Spring Cloud Gateway上手

Spring Cloud Gateway核心概念

Spring Cloud Gateway架构剖析

路由谓词工厂详解

过滤器工厂详解

全局过滤器详解

扩展Spring Cloud Gateway

 

如何自研网关

网关基本能力分析

实现方案

编码

 

 

 

 

配置中心-Spring Cloud Config

 

为什么要使用配置中心

Spring Boot配置管理

Spring Cloud Config简介

编写ConfigServer

集成ConfigClient

Git仓库配置详解

配置属性加解密

配置手动刷新

自动刷新-SpringCloud Bus

Config Server与Eureka配合使用

安全

高可用

 

 

 

配置中心-Nacos

为什么要使用配置中心

使用Nacos管理配置

如何实现配置回滚与配置刷新

引导上下文

如何实现应用配置共享

Nacos数据持久化

配置管理最佳实践

Nacos配置管理剖析

 

 

微服务拆分方法

领域驱动设计是什么?

使用领域驱动设计拆分微服务

领域驱动设计代码展示

By name.拆分方法

By verb.拆分方法

如何衡量拆分是否合理?

 

 

如何从传统架构迁移到微服务?

迁移如何规划?

如何寻找可拆分的模块

绞杀者模式

修葺者模式

如何验证迁移成果?

如何拆分数据库

 

 

 

调用链监控-Spring Cloud Sleuth

为什么要实现调用链跟踪

简介

基本概念

入门示例:整合Sleuth

Sleuth配合ELK

Zipkin简介

Zipkin Server编写

Zipkin UI

微服务整合Zipkin

使用Elasticsearch作为Zipkin Server的后端存储

 

Docker安装

Docker简介

安装Docker

镜像加速器

Docker常用命令

Dockerfile详解

lDockerfile指令详解

Dockerfile最佳实践

 

镜像管理

Docker Hub

Docker Registry

第三方Docker Registry:Nexus/Habor

Docker工具

使用Maven构建Docker镜像

可视化管理工具

 

 

 

Docker Compose

安装Compose

快速入门

docker-compose.yml常用命令

docker-compose常用命令

在生产环境中使用Docker Compose

使用Docker Compose快速伸缩应用

实战:将Spring Boot快速以容器形式交付

 

Kubernetes入门

容器编排是什么?为什么要使用Kubernetes?

安装Kubernetes

Kubernetes架构与基本组件

Kubernetes命令详解

 

 

Kubernetes详解

Pod详解

RC详解

RS详解

Deployment详解

ReplicaSet详解

Job详解

Secret详解

Service详解

存储详解

StatefulSet

每个模型都会以:是什么、解决什么问题、如何使用、最佳实践的形式进行讲解

 

 

Kubernetes资源调度

资源分配

扩容与缩容:手动方式(kubectl scale)、HPA方式等

亲和性调度

污点与容忍

升级和回滚

Kubernetes周边设施

 

Produce-Ready

基于Spring Cloud快速开发脚手架

将应用部署到Kubernetes

更加傻瓜化的操作

最佳实践总结


返回上一级