微服务架构实战 160 讲
杨波
拍拍贷研发总监、资深架构师、微服务技术专家
48728 人已学习
新⼈⾸单¥98
课程目录
已完结/共 171 讲
微服务架构实战 160 讲
登录|注册
留言
9
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 50 | Zuul网关和基本应用场景
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | 第一模块课程介绍
02 | 微服务安全要解决什么问题
03 | 白话 OAuth2
04 | OAuth2 的正式定义
05 | OAuth2 有哪些典型模式
06 | OAuth2 模式该如何选型
07 | Spring Security OAuth2 架构简介
08 |【实验】授权码模式授权服务器
09 |【实验】简化模式授权服务器
10 |【实验】密码模式授权服务器
11 |【实验】客户端模式授权服务器
12 | 实验一扩展环节
13 |【实验】Web 应用接入授权服务器
14 | 实验二扩展环节
15 | 什么是 JWT 令牌
16 |【实验】授权服务器支持 JWT 令牌
17 | 实验三扩展环节
18 |【实验】Android 无线应用接入授权服务器
19 |【实验】AngularJS 单页应用实验和课后扩展
20 |【实验】GitHub社交登录实验和课后扩展
21 | 【实验】OAuth2安全风险CSRF实验
22 | OpenId Connect简介
23 | 下一代微服务安全架构
24 | 参考资源和后续课程预览
25 | Apollo作者的产品介绍
26 | 第二模块课程介绍
27 | 课程概述
28 | 业务需求
29 | 配置定义和场景
30 | 开关驱动开发原理
31 | 携程 Apollo 配置中心介绍
32 | Apollo核心概念
33 | Apollo快速起步(Lab01)
34 | Apollo快速起步扩展实验
35 | Apollo架构设计之服务器端
36 | Apollo架构设计之客户端
37 | Apollo架构设计之高可用和监控
38 | Apollo分布式部署指南
39 | Apollo Java客户端和多语言接入
40 | Apollo Client API实操(Lab02)
41 | Apollo Client和Spring集成~XML方式(Lab03)
42 | Apollo Client和Spring集成~代码方式(Lab04)
43 | Apollo Client和Spring Boot集成(Lab05)
44 | Apollo开放平台接入实操(Lab06)
45 | Spring Cloud Config简介
46 | Apollo vs Spring Cloud Config
47 | Apollo FAQ和开发常见问题
48 | 参考资源和后续课程预览
49 | 第三模块课程介绍
50 | Zuul网关和基本应用场景
51 | Zuul网关高级应用场景
52 | Zuul网关架构剖析
53 | Zuul网关代码剖析(Code Review)
54 | Zuul网关过滤器管理工具(Code Review)
55 | 前置过滤器实验(Lab01)
56 | 路由过滤器实验(Lab02)
57 | 后置过滤器实验(Lab03)
58 | Zuul网关对接Apollo(Lab04)
59 | Zuul网关生产部署实践
60 | Zuul网关路由管理实践
61 | 基于网关的两层路由体系
62 | Spring Cloud Zuul(Lab05)
63 | Zuul2.0简介
64 | Zuul网关生产最佳实践
65 | 参考资源和后续课程预览
66 | 第四模块课程介绍
67 | 调用链监控业务需求
68 | 调用链监控原理
69 | 调用链监控产品和比较
70 | 点评 CAT 背景介绍
71 | CAT 典型报表
72 | CAT 告警简介
73 | CAT 架构设计
74 |【实验】CAT 本地部署
75 | CAT 埋点案例和代码剖析(Code Review)
76 |【实验】CAT 埋点案例
77 | Zuul 网关集成 CAT 代码剖析(Code Review)
78 |【实验】Zuul 网关集成 CAT
79 | CAT 生产埋点实践
80 | CAT 生产部署实践
81 | CAT 生产治理实践
82 | Spring Cloud Sleuth 简介
83 |【实验】Spring Cloud Sleuth
84 | 参考资源和后续课程预览
85 | 第五模块课程介绍
86 | 容错限流需求
87 | 容错限流原理
88 | Netflix Hystrix 背景介绍
89 | Hystrix 设计原理
90 | Hystrix 主要概念
91 | 信号量 vs 线程池隔离
92 | Hystrix 主要配置项
93 |【实验】Hystrix 基础实验
94 | Hystrix 模拟案例分析 (Code Review)
95 |【实验】Hystrix + Dashboard 实验(上)
96 |【实验】Hystrix + Dashboard 实验(下)
97 | 网关集成 Hystrix (Code Review)
98 |【实验】Spring Cloud Hystrix 实验
99 | Netflix Turbine 简介
100 | Hystrix 生产最佳实践
101 | 参考资源和后续课程预览
102 | 第六模块课程介绍
103 | 服务发现需求和模式(上)
104 | 服务发现需求和模式(下)
105 | Netflix Eureka 和 Ribbon 背景介绍
106 | Eureka 和 Ribbon 架构设计原理
107 |【实验】Spring Cloud Eureka 和 Ribbon 基础实战
108 |【实验】Spring Cloud Eureka 和 Ribbon 高级实验
109 | Spring Cloud Eureka 和 Ribbon 主要配置项
110 | Eureka进阶:自保护模式
111 | Eureka进阶:健康检查和蓝绿部署
112 |【实验】Spring Cloud Zuul、Eureka 和 Ribbon 集成实验(上)
113 |【实验】Spring Cloud Zuul、Eureka 和 Ribbon 集成实验(下)
114 | 常用服务发现组件比较
115 | ServiceMesh 和 Istio 简介
116 | 基于 Eureka、Zuul 和容器云的持续交付架构
117 | 参考资源和后续课程预览
118 | 第七模块课程介绍
119 | 监控模式分类
120 | BusDevOps 和测量驱动开发 MDD
121 | Prometheus 简介
122 | Prometheus 架构设计
123 | Prometheus 基本概念
124 |【实验】Prometheus 起步查询实验(上)
125 |【实验】Prometheus起步查询实验(中)
126 |【实验】Prometheus起步查询实验(下)
127 |【实验】Prometheus + Grafana 展示实验(上)
128 |【实验】Prometheus + Grafana 展示实验(下)
129 |【实验】Prometheus + Alertmanager 告警实验(上)
130 |【实验】Prometheus + Alertmanager 告警实验(下)
131 |【实验】Java 应用埋点和监控实验
132 |【实验】NodeExporter 系统监控实验
133 |【实验】Spring Boot Actuator 监控实验
134 | Prometheus 监控最佳实践
135 | 主流开源时序数据库比较
136 | 开源分布式监控平台 ZMon 简介
137 | 微服务监控体系总结
138 | 参考资源和后续课程预览
139 | 课程概述和背景
140 | 架构和设计
141 | 开发环境搭建
142 | 基础代码(code review)
143 | 数据访问模块(code review)
144 | OAuth2服务模块(code review)
145 | Web服务模块(code review)
146 | 启动流程(code review)
147 | 起步准备实验(lab02)
148 | OAuth2授权码模式实验(lab03)
149 | OAuth2简化模式实验(lab04)
150 | OAuth2用户名密码模式实验(lab05)
151 | OAuth2客户端模式实验(lab06)
152 | OAuth2令牌校验实验(lab07)
153 | OAuth2令牌刷新实验(lab08)
154 | 项目复盘和扩展环节
155 | 参考资源和后续课程预览
156 | 课程概述和背景
157 | 需求和架构设计
158 | 开发环境搭建(lab01)(上)
159 | 开发环境搭建(lab01)(下)
160 | 项目业务代码(Code Review)
161 | Apollo配置中心集成(lab02)
162 | Zuul-Eureka-Ribbon-Hystrix集成(Code Review)
163 | Gravitee OAuth2集成(lab03)
164 | Zuul网关集中令牌校验(Code Review)
165 | CAT调用链集成(lab04)(上)
166 | CAT调用链集成(lab04)(下)
167 | Demo展示(lab05)(上)
168 | Demo展示(lab05)(下)
169 | Prometheus监控集成(Code Review)
170 | 生产扩展环节
171 | 课程复盘总结&结课测试
登录 后留言

全部留言(9)

  • 最新
  • 精选
郭嵩阳
波波老师您好,想问一下,zuul在后续所有的请求都经过,后续网关会不会存在性能问题,您使用zuul 部署了多少个实例

作者回复: 网关主要是请求路由转发,开销有一点,但是一般不是很大,我们观察生产一般网关损耗只有大约10ms左右;另外网关上需要做好限流熔断,防止后端慢服务影响网关。具体部署多少个zuul实例,要看你的访问量规模,我之前公司有部署上百个的,也有10~20个的,你需要自己评估,做好监控和容量规划。

2018-09-14
2
loris
波波老师好,您能简单说明一下,什么样的服务归类为Edge Service 和 Base Service

作者回复: Base Service都是基础服务,例如电商网站的产品/分类/库存/购物车/支付/客服等等。基础服务一般不直接对外暴露,而是通过Edge Service聚合后间接对外暴露。Edge Service也称聚合服务,对基础服务进行适当聚合裁剪,适配各种不同的前端展示(Web/SPA/无线/第三方开放平台...),也就是聚合出适合不同前端展示的API视图(View)。

2020-02-28
1
约书亚
波波老师,之前看过您的关于BFF的讲解。我觉得我们目前的架构也是有一系列的BFF。但我一直有个困惑,也体现在您的架构图上——网关(我们是基于spring cloud zuul)和BFF之间的功能是不是有重合的部分? 或者说详细些,假如我有A,B,C三个大的业务块,分别对外暴露三个不同的域名,A.xxx.com, B.xxx.com, C.xxx.com。 此时我是应该做一“套”网关,网关路由到A,B,C三个不同的BFF,然后在这一“套”网关上,区别对待A,B,C,做不同的身份验证,限流,熔断规则呢? 还是做三“套”不同的网关,网关路由到各自的一个或多个BFF,自然,安全和限流的工作也各做个的?但这样我们大多数时候,网关和BFF是不是可以合二为一? 这就是我一直的困惑,到底网关和BFF是不是可以合并。有的微服务课程会把聚合功能算到网关头上,但又说网关不应该包含业务逻辑,感觉自相矛盾。 另外,您能否推荐一个能给简化BFF做聚合工作的框架,开源的。或者是最佳实践标准? 希望得到您的指点,我也在您的微信群,您也可以把解惑发到那里。

作者回复: 你好,你的问题很长很多,这里回复不全,建议参考我的文章《BFF和网关是如何演化出来》https://blog.csdn.net/yang75108/article/details/86987404,应该能够找到答案,如果还有疑问,可以直接在群里向我提问。

2019-02-21
1
王盛武
zuul权限控制是基于URL的形式,各个微服务的方法级控制是提供zuul分发的jwt权限控制? 如果微服务a依赖微服务b,那a请求b的时候也要带上jwt这种授权详情集合? 还是a通过传递类似userId的标识给b,b再从共享redis里取出授权集合?

作者回复: zuul可以做细粒度权限控制,可开发定制过滤器filter,权限逻辑根据业务需求灵活定制实现。jwt带权限往后传可以,userid往后传再到集中服务验权也可以,两种架构风格,各有利弊。

2018-12-16
1
loris
波波老师好,请问一般对部署多少个zuul实例做容量规划 需要考虑的因素有哪些

作者回复: Zuul容量规划主要依赖测试环境的压测数据+生产环境监控数据,综合评估得到。刚开始可以根据压测数据预估一个容量(需要一些经验),然后按照预估容量的x1.5或x2倍先到生产上去试,之后再根据生产监控数据再不断优化调整。完善的压测体系+监控体系+开发人员经验是要素。

2020-02-28
💢 星星💢
既然网办能做跨横切面的事情,那是否也可以做分布式事务,分布式锁?

作者回复: 能做和该不该它做是两码事,网关适合做反向路由,负载均衡,安全,监控,和限流熔断这些基础功能。 分布式事务一般和业务相关,建议不要耦合在网关上。分布式锁简单的采用DB锁或者复杂点的采用Zookeeper做,一般不要放在网关上。

2019-12-02
东东
波波老师您好,想问你一下您在实践zuul网关时针对Edge Services 服务依赖 Base Service 时是通过zuul网关实现吗?还是RPC与网关两种方式的结合实现?如果用RPC方式的话,你们的Base Services之音是不是也容忍依赖的网状结构, 另外针对Edge Services 之间的相互依赖是只走网关的吗? 谢谢,期待您的回答!

作者回复: 我之前公司实践,Edge Service依赖Base Service走内部nginx代理,Edge Service之间或Base Service之间如有依然(网状结构有时也合理)也走内部nginx代理。内部服务(Edge或Base Service)对外暴露时才走zuul网关。当然,内部服务用rpc直连,不走内部nginx代理,也是可以,是另一种架构风格。

2018-10-08
枯枯草
老师您好,请问一般架构上,页面资源的请求也会打到zuul么,例如js/css等,我的理解是elb下面是不是还有一层nginx,做前后分离,其中的后端请求全部跳转到zuul层,同时nginx帮助zuul做负载均衡

作者回复: 两种做法都可以,是两种架构风格,静态资源可以躲在网关zuul后面,这样就没有跨域问题;也可以前面加nginx,做动静分别转发,动态api转网关zuul,静态转资源服务器,这种方式需要考虑跨域问题。我们目前用第二种,但是在考虑简化采用第一种,但是zuul网关需要优化改造,改造成同时适合处理api和静态资源。

2018-09-09
🎸祥子
老师,zuul和Spring Cloud Gateway哪个好?生产环境用哪个?

作者回复: 我只用过zuul,spring cloud gateway还没用,不好做建议,你需要自己调研测试。总体我认为zuul比较成熟,在netflix有大规模落地,但是同步模型(zuul2是异步),spring cloud gateway比较新,实际落地案例还不多,你用的话要实测下。

2018-08-24
收起评论