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 云原生微服务实践
登录|注册
留言
11
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 29 | 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 | 结课测试&结束语
登录 后留言

全部留言(11)

  • 最新
  • 精选
面朝大海
请问Faraday网关,代码启动流程是怎样,ReverseProxyFilter怎么被调用?

作者回复: ReverseProxyFilter通过FilterRegistrationBean注册到Spring容器环境中,Spring会自动将这个Filter注册到Web容器中。参考faraday项目源码中的config/FaradayConfiguration这个Bean配置文件。

2019-07-26
1
Geek_da9deb
老师您好,请问这几个final属性是怎么被初始化的,项目中咩有找到实列化或者配置FaradayConfiguration bean的代码呀? public class FaradayConfiguration { protected final FaradayProperties faradayProperties; protected final ServerProperties serverProperties; protected final StaffjoyPropreties staffjoyPropreties; protected final AssetLoader assetLoader; public FaradayConfiguration(FaradayProperties faradayProperties, ServerProperties serverProperties, StaffjoyPropreties staffjoyPropreties, AssetLoader assetLoader) { this.faradayProperties = faradayProperties; this.serverProperties = serverProperties; this.staffjoyPropreties = staffjoyPropreties; this.assetLoader = assetLoader; } }

作者回复: 这些final是通过Spring依赖注入促使化的,Spring容器会识别这些final,然后容器会用已经初始化好的其它bean(比如FaradayProperties/ServerProperties等),通过调用构造函数来初始化FaradayConfiguration这个Bean,同时也初始化这些final属性。

2020-06-12
2
jatham
跟波波老师多学习学习

作者回复: 加油!

2020-03-19
陆劲
想问下老师,github源码中根目录的pom文件没有 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> </parent> 那springboot的核心包有引进去吗?现在我看IDE里面一片红呀。

作者回复: Intellij IDE? 根pom中不需要再引入springboot核心包,因为dependencyManagement中已经有spring-boot-dependencies pom的导入。 你导入项目不成功,估计是环境问题,建议换个环境再试。

2020-02-07
spencerfeng
波波老师您好,请问这个微服务的入口是在哪里?谢谢

作者回复: staffjoy由若干个微服务(Account/Company/Bot/WhoAmI/Web/MyAccount/App等)共同组成,Faraday网关是所有微服务的统一转发入口。

2020-02-02
Rule30
老师您好,我已经把程序跑起来了,switchhost也已经部署好了,但是跳转的时候没有按照网关路由转发的端口号进行跳转,在注册的时候跳转一直是80端口,请问需要检查哪方面的配置呢

作者回复: 你好,staffjoy项目通过域名访问的话,端口都是默认80,faraday网关在收到来自不同子域(比如myaccount/www等)的请求后,会根据路由表进行转发,换句话说faraday网关屏蔽了底层服务的不同端口,对外统一呈现80。 建议先采用dev环境,也就是本地ide环境里头进行调试,可以跟踪到faraday网关,还有www服务的代码里头去(代码不多),看看为何跳转不成功。如果还有问题,可加我微信解决(bulldog2015,说明来自极客时间的用户)。

2019-11-29
jshadow
老师您好,请问项目里全局格式化处理BaseResponse Json格式的地方在哪里了?因为按照您的视频里,我这边返回的Json格式不太对,谢谢老师!

作者回复: 从你描述我没有看出具体什么问题,可以加我微信(bulldog2015,说明来自极客时间),进一步了解细节。

2019-09-24
飞翔
老师 求教 话说我单独启动faraday 出现 这个错误 22-08-2019 15:12:10.391 [restartedMain] ERROR io.sentry.SentryClientFactory.resolveDsn - Error creating valid DSN from: '${SENTRY_DSN}'. java.lang.IllegalArgumentException: Illegal character in path at index 1: ${SENTRY_DSN} at java.net.URI.create(URI.java:852)

作者回复: faraday依赖于一个sentry_dsn的配置,否则会启动失败(sentry是集中异常日志监控云服务),你可以启用下面这个本地集中配置(注意修改文件名把.example去掉), https://github.com/spring2go/staffjoy/blob/master/config/application.yml.example 你也可以先看后面第8章本地部署视频,里头有讲如何在本地ide里头运行fraday和staffjoy应用,包括需要先做哪些配置。

2019-08-23
3
威威
老师您好,源码下来在Idea里会报错,在AccountService中private final AccountRepo accountRepo 会提示 “variable accountRepo might not have been initialized”,另外在 下面的代码中也会提示“cannot resolve method build”,应该怎么解呢?您有微信吗?或者其他的渠道方便请教问题的,谢谢。 Account account = Account.builder() .email(email).name(name).phoneNumber(phoneNumber) .build();

作者回复: 你好,Idea里头报错是因为没有启用lombok,请启用一下,方法可以在网上搜一下。我的微信号:bulldog2015,加微信说明来自极客时间。

2019-07-28
Geek9285
老师您好,httpclient为什么要根据路由创建不同实例,我看httpclient exchange接口是需要完整的url参数的,也就是需要把目标服务host传进去,感觉一个实例也可以做这件事,创建多个httpclient的好处是什么
2022-09-17
1
收起评论