Spring Boot 与 Kubernetes 云原生微服务实践
杨波
前携程 / 拍拍贷技术总监,微服务技术专家
28227 人已学习
新⼈⾸单¥98
课程目录
已完结/共 94 讲
第一章:课程介绍和案例需求 (5讲)
第十章:项⽬复盘、应用和扩展环节 (2讲)
第十一章:附录 Staffjoy 项目源代码解析 (8讲)
时长 14:53
时长 10:29
时长 10:52
时长 05:09
时长 15:06
时长 16:17
Spring Boot 与 Kubernetes 云原生微服务实践
登录|注册
留言
10
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 30 | Faraday网关代码解析(下)
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 课程介绍
02 | 背景说明
03 | 课程目标和主要内容
04 | 课程案例需求
05 | 课程补充说明
06 | 为何采用微服务架构?
07 | 架构设计和技术栈选型
08 | 数据和接口模型设计:账户服务
09 | 数据和接口模型设计:业务服务
10 | Dubbo、Spring Cloud和Kubernetes该如何选型(上)
11 | Dubbo、Spring Cloud和Kubernetes该如何选型(中)
12 | Dubbo、Spring Cloud和Kubernetes该如何选型(下)
13 | 技术中台到底讲什么?
14 | Staffjoy项目结构组织
15 | 谷歌为何采用单体仓库(Mono-Repo)?
16 | 微服务接口参数校验为何重要?
17 | 如何实现统一异常处理?
18 | DTO和DMO为什么要互转?
19 | 如何实现基于Feign的强类型接口?
20 | 为什么框架层就要考虑分环境配置?
21 | 异步处理为何要复制线程上下文信息?
22 | 为你的接口添加Swagger文档
23 | 主流微服务框架概览
24 | 网关和BFF是如何演化出来的(上)
25 | 网关和BFF是如何演化出来的(下)
26 | 网关和反向代理是什么关系?
27 | 网关需要分集群部署吗?
28 | 如何设计一个最简网关?
29 | Faraday网关代码解析(上)
30 | Faraday网关代码解析(下)
31 | 生产级网关需要考虑哪些环节?
32 | 主流开源网关概览
33 | 安全认证架构演进:单块阶段(上)
34 | 安全认证架构演进:单块阶段(下)
35 | 安全认证架构演进:微服务阶段
36 | 基于JWT令牌的安全认证架构
37 | JWT的原理是什么?
38 | JWT有哪两种主要流程?
39 | Staffjoy安全认证架构和SSO
40 | 用户认证代码剖析
41 | 服务调用鉴权代码剖析
42 | 如何设计用户角色鉴权?
43 | Spring Boot微服务测试该如何分类?
44 | 什么是契约驱动测试?
45 | 什么是测试金字塔?
46 | 单元测试案例分析
47 | 集成测试案例分析
48 | 组件测试案例分析
49 | Mock vs Spy
50 | 何谓生产就绪(Production Ready)?
51 | Spring Boot如何实现分环境配置
52 | Apollo vs SpringCloudConfig vs K8s ConfigMap
53 | CAT vs Zipkin vs Skywalking(上)
54 | CAT vs Zipkin vs Skywalking(下)
55 | 结构化日志和业务审计日志
56 | 集中异常监控和Sentry
57 | EFK & Prometheus & Skywalking + Kubernetes 集成架构
58 | 本地开发部署架构和软件需求
59 | 手工服务部署和测试(上)
60 | 手工服务部署和测试(中)
61 | 手工服务部署和测试(下)
62 | SkyWalking调用链监控实验
63 | Docker和Docker Compose简介
64 | 容器镜像构建Dockerfile解析
65 | Docker Compose服务部署文件剖析
66 | 将Staffjoy部署到本地Docker Compose环境(上)
67 | 将Staffjoy部署到本地Docker Compose环境(下)
68 | 到底什么是云原生架构?
69 | Kubernetes背景和架构
70 | Kubernetes有哪些基本概念(上)
71 | Kubernetes有哪些基本概念(下)
72 | 理解Kubernetes节点网络和Pod网络
73 | 深入理解Service和ServiceDiscovery
74 | NodePort vs LoadBalancer vs Ingress
75 | 本地测试Kubernetes部署文件剖析
76 | 本地测试Kubernetes环境搭建
77 | 将Staffjoy部署到本地Kubernetes环境(上)
78 | 将Staffjoy部署到本地Kubernetes环境(下)
79 | 生产环境Kubernetes部署文件剖析
80 | 阿里云Kubernetes环境创建
81 | 将Staffjoy部署到阿里云Kubernetes环境
82 | Kubernetes应用动态配置实验
83 | Kubernetes应用金丝雀发布实验
84 | 阿里云资源释放
85 | 课程复盘
86 | 项目扩展和应用
87 | Account服务
88 | Company服务
89 | Mail、SMS和Bot服务
90 | Faraday服务
91 | WhoAmI服务
92 | WWW服务
93 | 前端应用
94 | 结课测试&结束语
登录 后留言

全部留言(10)

  • 最新
  • 精选
pedro
波波老师请教一下,既然k8s自带了云原生级别的网关,staffjoy又为什么需要项目级别的Faraday网关呢

作者回复: k8s支持类似网关的功能,叫ingress。我在Staffjoy中引入了一个轻量级的自研的网关,主要有两个目的:1)教学目的,让大家理解网关是怎么工作的,同时在k8s中,让大家理解ingress原理(Faraday类似一个自研的Ingress);2)Faraday是一个SpringBoot应用,可编程的比较灵活,要开发一些网关逻辑(比如路由,安全)比较灵活方便,另外Faraday的代码和其它微服务代码是一套统一管理的,如果引入一个其它网关,还要单独配置、管理和部署,反而麻烦。

2019-07-25
3
6
大维
波波老师,能再给出一个采用springcloud gateway的配置来完全实现 法拉第 网关的功能的 源码 及 所有配置文件(application.yml k8s config)不?就当是另外一个网关的实现?

作者回复: 用spring cloud gateway实现faraday的功能,完全可以做到,而且可能比faraday还要简单,建议学员自己动手实现,作为对课程学习成果的一个检验。如果学员理解了网关的原理和faraday的源码实现,完全可以用spring cloud gateway或者zuul替换faraday,如果能做到,这门课程可以打80分以上了。

2019-08-29
3
John
如果respond和request的body是reactive的stream

作者回复: Faraday网关使用简单的同步处理方式,如果要实现reactive stream的方式,建议参考spring cloud gateway的做法,它是基于Spring WebFlux实现的异步模式。

2019-08-03
2
王皓月
波波老师您好,我在工作中会涉及到通过Socket接收IoT设备数据、通过调用第三方服务器接口获取IoT设备数据等等类似操作,开发的多个web应用中经常会重复调用这些数据,现在的做法是将这些操作IoT设备及数据库的代码在多个web应用中重用,但这样操作(多个Web应用中重复出现相关代码)部署在同一台服务器上会对服务器的性能产生影响,并且开发也不是很便利,现在的想法是将这些代码拆分为微服务,web应用或SPA/无线原生应用通过统一网关访问这些服务,进而开发一个位于网关中或位于网关后的鉴权认证服务提供登陆和鉴权访问功能。请问这种想法是否可行,波波老师可否传授一个比较好的架构设计使以后的开发更方便快捷,同时提供可扩展性和可配置性。谢谢老师~

作者回复: 拆分成微服务方式可以考虑,具体看你的业务复杂性和团队规模。关于微服务+网关安全认证架构,可以继续看课程第5章内容,里头有详细的架构分析,看看对你是否有启发,如果还有问题,也可以加我微信进一步交流(bulldog2015),说明来自极客时间。

2019-07-31
2
arch
服务添加网关多了层跳转,基于HTTP是否性能会受影响,是否可以考虑基于TCP去实现提升网关性能

作者回复: 网关一般是工作在7层的,例如网关路由需要识别http header或者path信息。 7层网关有一点性能开销,但是网关无状态可以水平扩,之前携程经验,每日百亿请求通过网关,平均增加延迟约20ms左右。 也有用TCP做网关的,之前携程的无线网关就是基于TCP,但是反而把事情搞复杂,还要定制通讯协议,开发调试都不方便,后来我们迁移到HTTP了。

2020-03-22
1
许凯
还有想请问下老师,对于有自定义各种角色,用户组的情况,进行细粒度的权限控制是不是只能在每个接口的地方分别写业务逻辑代码进行处理

作者回复: 你好,如果采用jwt令牌,里头可以包含用户角色/组等信息,在网关层可以做初步的权限控制,然后网关将用户角色/组信息向后传递,这样后台服务接口层可以进一步做细粒度权限控制,一般做法是在控制器上添加权限控制标注Annotation,Spring可以通过定制截获器标注实现。本课程第5章会进一步讲解Staffjoy项目的安全认证方案,有比较简单的权限控制实现,请继续关注课程。后面我还会在开发一个微服务电商案例,会展示比较复杂的微服务权限控制方案,可以关注我的github.com/spring2go。

2019-07-27
2
1
许凯
嗯,感谢老师,对于中小系统,如果直接用token+redis的方案,在成功登陆时把所有权限信息存到redis,在网关处进行身份认证,在微服务的接口处取出权限信息进行权限控制,不知道这样有没有问题

作者回复: 这个是一种采用集中状态(redis)校验做法,原则上没有问题,需要监控流量做好扩容。关于微服务安全认证的原理和做法,请关注课程第5章,有详细剖析。

2019-07-28
许凯
盼着赶紧更新

作者回复: 你好,课程更新由极客时间统一安排,目前节奏是每周更新10小节课,预计8月底前会全部更新完,请耐心等待,也可以等全部更新完后再统一学习,谢谢支持!

2019-07-26
杨智晓 ✟
老师,请教一个问题,这个Faraday是SpringBoot自带的嵌入Tomcat,也就是BIO的,如果换成Jetty,会不会更好一点?

作者回复: 这个不好说,脱离测试和实际生产情况,单纯谈论性能意义不大。要实际做性能测试得出数据才知道。在生产的话,还要看实际用户流量模式和后台服务性能情况,一般需要监控数据才清楚。

2019-07-24
Geek_c559a0
麻烦问一下 为什么我在exchange时候一直有io报错 提示broken pipe
2023-02-02
收起评论