SpringBoot与Kubernetes云原生微服务实战
Posted wei198621
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot与Kubernetes云原生微服务实战相关的知识,希望对你有一定的参考价值。
视频地址 --JK时间
https://www.bilibili.com/video/BV1gf4y1s769/?p=5
git 代码 地址
https://github.com/spring2go/staffjoy
P01 课程介绍-----------------03:35
P02 背景说明----------------09:11
P03 课程目标和主要内容----------------10:16
P04 课程案例需求----------------04:44
P05 课程补充说明----------------07:48
P06 为何采用微服务架构?----------------08:59
P07 架构设计和技术栈选型----------------10:08
P08 数据和接口模型设计:账户服务----------------02:56
P09 数据和接口模型设计:业务服务----------------04:09
P10 Dubbo、Spring Cloud和Kubernetes该如何选型(上)----------------13:04
P11 Dubbo、Spring Cloud和Kubernetes该如何选型(中)----------------04:25
P12 Dubbo、Spring Cloud和Kubernetes该如何选型(下)----------------09:04
P13 技术中台到底讲什么?----------------06:39
P14 Staffjoy项目结构组织----------------06:20
P15 谷歌为何采用单体仓库----------------05:52
P16 微服务接口参数校验为何重?----------------04:20
P17 如何实现统一异常处理?----------------07:32
P18 DTO和DMO为什么要互转?----------------04:41
P19 如何实现基于Feign的强类?----------------15:34
P20 为什么框架层就要考虑分环?----------------06:03
P21 异步处理为何要复制线程上?----------------06:21
P22 为你的接口添加Swagger文档----------------03:34
P23 主流微服务框架概览----------------05:26
P24 网关和BFF是如何演化出来(上)----------------10:36
P25 网关和BFF是如何演化出来(下)----------------08:09
P26 网关和反向代理是什么关系?----------------04:24
P27 网关需要分集群部署吗?----------------04:17
P28 如何设计一个最简网关?----------------08:53
P29 Faraday网关代码解析(上)----------------08:33
P30 Faraday网关代码解析(下)----------------06:36
P31 生产级网关需要考虑哪些?----------------07:24
P32 主流开源网关概览----------------07:29
P33 安全认证架构演进(上)----------------08:07
P34 安全认证架构演进(下)----------------08:38
P35 安全认证架构演进:微服务阶段----------------12:45
P36 基于JWT令牌的安全认证架----------------03:16
P37 JWT的原理是什么?----------------08:01
P38 JWT有哪两种主要流程?----------------07:16
P39 Staffjoy安全认证架构和SSO----------------05:47
P40 用户认证代码剖析----------------17:12
P41 服务调用鉴权代码剖析----------------13:37
P42 如何设计用户角色鉴权?----------------05:30
P43 SpringBoot微服务测试该如何分类?----------------14:34
P44 什么是契约驱动测试?----------------08:21
P45 什么是测试金字塔?----------------06:40
P46 单元测试案例分析----------------10:53
P47 集成测试案例分析----------------11:05
P48 组件测试案例分析----------------06:53
P49 Mock vs Spy----------------06:35
P50 何谓生产就绪(Production Ready)?----------------09:13
P51 SpringBoot如何实现分环境配置----------------08:38
P52 Apollo vs SpringCloudConfig vs K8s ConfigMap----------------11:19
P53 CAT vs Zipkin vs Skywalking(上)----------------11:27
P54 CAT vs Zipkin vs Skywalking(下)----------------10:06
P55 结构化日志和业务审计日志----------------11:59
P56 集中异常监控和Sentry(1)----------------06:39
P56 集中异常监控和Sentry----------------06:39
P57 EFK & Prometheus & Skywalking + K8s 集成架构----------------09:10
P58 本地开发部署架构和软件需求----------------10:14
P59 手工服务部署和测试(上)----------------12:38
P60 手工服务部署和测试(中)----------------18:02
P61手工服务部署和测试(下)----------------14:32
P62 SkyWalking调用链监控实验----------------09:54
P63 Docker和Docker Compose简介----------------12:45
P64 容器镜像构建Dockerfile解析----------------08:45
P65 Docker Compose服务部署文件剖析----------------12:14
P66 将Staffjoy部署到本地Docker Compose环境(上)----------------14:01
P67 将Staffjoy部署到本地Docker Compose环境(下)----------------12:41
P68 到底什么是云原生架构?----------------07:59
P69 Kubernetes背景和架构----------------11:04
P70 Kubernetes有哪些基本概念?(上)----------------08:04
P71 Kubernetes有哪些基本概念?(下)----------------09:09
P72 理解Kubernetes节点网络和Pod网络----------------08:53
P73 深入理解Service和ServiceDiscovery----------------10:40
P74 NodePort-vs-LoadBalancer-vs-Ingress----------------09:55
P75 本地测试Kubernetes部署文件剖析----------------13:10
P76 本地测试Kubernetes环境搭建----------------09:56
P77 将Staffjoy部署到本地Kubernetes环境(上)----------------11:39
P78 将Staffjoy部署到本地Kubernetes环境(下)----------------08:09
P79 生产环境Kubernetes部署文件剖析----------------12:38
P80 阿里云Kubernetes环境创建----------------21:17
P81 将Staffjoy部署到阿里云Kubernetes环境----------------11:37
P82 Kubernetes应用动态配置实验----------------05:19
P83 Kubernetes应用金丝雀发布实验----------------09:36
P84 阿里云资源释放----------------04:06
P85 课程复盘----------------10:01
P86 项目扩展和应用----------------08:15
P87 Account服务CodeReview----------------14:54
P88 Company服务CodeReview----------------10:30
P89 Mail_SMS_Bot服务CodeReview----------------10:23
P90 Faraday服务CodeReview----------------10:53
P91 WhoAmI服务CodeReview----------------05:10
P92 WWW服务CodeReview----------------15:07
P93 前端应用CodeReview----------------16:18
P94结束语----------------06:11
P01 课程介绍-----------------03:35
P02 背景说明----------------09:11
P03 课程目标和主要内容----------------10:16
P04 课程案例需求----------------04:44
P05 课程补充说明----------------07:48
https://github.com/spring2go/staffjoy
P06 为何采用微服务架构?----------------08:59
P07 架构设计和技术栈选型----------------10:08
P08 数据和接口模型设计:账户服务----------------02:56
P09 数据和接口模型设计:业务服务----------------04:09
P10 Dubbo、Spring Cloud和Kubernetes该如何选型(上)----------------13:04
P11 Dubbo、Spring Cloud和Kubernetes该如何选型(中)----------------04:25
P12 Dubbo、Spring Cloud和Kubernetes该如何选型(下)----------------09:04
P13 技术中台到底讲什么?----------------06:39
P14 Staffjoy项目结构组织----------------06:20
P15 谷歌为何采用单体仓库----------------05:52
P16 微服务接口参数校验为何重?----------------04:20
public class AccountController {
// @PhoneNumber
public GenericAccountResponse getAccountByPhonenumber(@RequestParam @PhoneNumber String phoneNumber) {
AccountDto accountDto = accountService.getAccountByPhoneNumber(phoneNumber);
GenericAccountResponse genericAccountResponse = new GenericAccountResponse(accountDto);
return genericAccountResponse;
}
//@Min(0)
public ListAccountResponse listAccounts(@RequestParam int offset, @RequestParam @Min(0) int limit) {
AccountList accountList = accountService.list(offset, limit);
ListAccountResponse listAccountResponse = new ListAccountResponse(accountList);
return listAccountResponse;
}
//@NotBlank
public GenericAccountResponse getAccount(@RequestParam @NotBlank String userId) {
this.validateAuthenticatedUser(userId);
this.validateEnv();
AccountDto accountDto = accountService.get(userId);
GenericAccountResponse genericAccountResponse = new GenericAccountResponse(accountDto);
return genericAccountResponse;
}
}
P17 如何实现统一异常处理?----------------07:32
RestControllerAdvice --- 统一异常处理
------- 处理 mvc 异常
public class GlobalErrorController implements ErrorController {
-------处理 rest 异常
@RestControllerAdvice
public class GlobalExceptionTranslator {
P18 DTO和DMO为什么要互转?----------------04:41
https://github.com/modelmapper/modelmapper
P19 如何实现基于Feign的强类?----------------15:34
P20 为什么框架层就要考虑分环?----------------06:03
P21 异步处理为何要复制线程上?----------------06:21
听不懂 20210711
P22 为你的接口添加Swagger文档----------------03:34
P23 主流微服务框架概览----------------05:26
P24 网关和BFF是如何演化出来(上)----------------10:36
P25 网关和BFF是如何演化出来(下)----------------08:09
P26 网关和反向代理是什么关系?----------------04:24
P27 网关需要分集群部署吗?----------------04:17
P28 如何设计一个最简网关?----------------08:53
P29 Faraday网关代码解析(上)----------------08:33
P30 Faraday网关代码解析(下)----------------06:36
没有听懂!!! 20210711
P31 生产级网关需要考虑哪些?----------------07:24
P32 主流开源网关概览----------------07:29
P33 安全认证架构演进(上)----------------08:07
P34 安全认证架构演进(下)----------------08:38
认证: authentication
授权: authorization
会话未超时,用户退出登录
解决方案:
1. 会话同步复制,所有server 都持有所有session
2.无状态会话, 会话放在浏览器的cookie 中。有安全问题。
3. 集中状态会话,见下图 ,session 放到实时数据库(Redis)中
P35 安全认证架构演进:微服务阶段----------------12:45
P36 基于JWT令牌的安全认证架----------------03:16
P37 JWT的原理是什么?----------------08:01
P38 JWT有哪两种主要流程?----------------07:16
P39 Staffjoy安全认证架构和SSO----------------05:47
P40 用户认证代码剖析----------------17:12
P41 服务调用鉴权代码剖析----------------13:37
听不懂 20210711
P42 如何设计用户角色鉴权?----------------05:30
P43 SpringBoot微服务测试该如何分类?----------------14:34
胖领域模型
瘦领域模型
https://junit.org/junit5
https://site.mockito.org
http://wiremock.org
https://www.baeldung.com/java-spring-mockito-mock-mockbean
P44 什么是契约驱动测试?----------------08:21
P45 什么是测试金字塔?----------------06:40
P46 单元测试案例分析----------------10:53
P47 集成测试案例分析----------------11:05
P48 组件测试案例分析----------------06:53
P49 Mock vs Spy----------------06:35
P50 何谓生产就绪(Production Ready)?----------------09:13
P51 SpringBoot如何实现分环境配置----------------08:38
P52 Apollo vs SpringCloudConfig vs K8s ConfigMap----------------11:19
P53 CAT vs Zipkin vs Skywalking(上)----------------11:27
P54 CAT vs Zipkin vs Skywalking(下)----------------10:06
P55 结构化日志和业务审计日志----------------11:59
P56 集中异常监控和Sentry(1)----------------06:39
P56 集中异常监控和Sentry----------------06:39
P57 EFK & Prometheus & Skywalking + K8s 集成架构----------------09:10
P58 本地开发部署架构和软件需求----------------10:14
P59 手工服务部署和测试(上)----------------12:38
P60 手工服务部署和测试(中)----------------18:02
P61手工服务部署和测试(下)----------------14:32
P62 SkyWalking调用链监控实验----------------09:54
P63 Docker和Docker Compose简介----------------12:45
P64 容器镜像构建Dockerfile解析----------------08:45
P65 Docker Compose服务部署文件剖析----------------12:14
P66 将Staffjoy部署到本地Docker Compose环境(上)----------------14:01
P67 将Staffjoy部署到本地Docker Compose环境(下)----------------12:41
P68 到底什么是云原生架构?----------------07:59
P69 Kubernetes背景和架构----------------11:04
P70 Kubernetes有哪些基本概念?(上)----------------08:04
P71 Kubernetes有哪些基本概念?(下)----------------09:09
P72 理解Kubernetes节点网络和Pod网络----------------08:53
P73 深入理解Service和ServiceDiscovery----------------10:40
P74 NodePort-vs-LoadBalancer-vs-Ingress----------------09:55
P75 本地测试Kubernetes部署文件剖析----------------13:10
P76 本地测试Kubernetes环境搭建----------------09:56
P77 将Staffjoy部署到本地Kubernetes环境(上)----------------11:39
P78 将Staffjoy部署到本地Kubernetes环境(下)----------------08:09
P79 生产环境Kubernetes部署文件剖析----------------12:38
P80 阿里云Kubernetes环境创建----------------21:17
P81 将Staffjoy部署到阿里云Kubernetes环境----------------11:37
P82 Kubernetes应用动态配置实验----------------05:19
P83 Kubernetes应用金丝雀发布实验----------------09:36
P84 阿里云资源释放----------------04:06
P85 课程复盘----------------10:01
P86 项目扩展和应用----------------08:15
P87 Account服务CodeReview----------------14:54
P88 Company服务CodeReview----------------10:30
P89 Mail_SMS_Bot服务CodeReview----------------10:23
P90 Faraday服务CodeReview----------------10:53
P91 WhoAmI服务CodeReview----------------05:10
P92 WWW服务CodeReview----------------15:07
P93 前端应用CodeReview----------------16:18
P94结束语----------------06:11
以上是关于SpringBoot与Kubernetes云原生微服务实战的主要内容,如果未能解决你的问题,请参考以下文章