• 主页
  • 架构
  • 编程语言
  • 数据存储
  • 网络
  • VMware
  • 服务器
  • 组网
  • AI
  • 算法系列
  • 设计模式
  • 读书笔记
  • 思考
  • 工具
  • 其它技术

  • 主页
  • 架构
  • 编程语言
  • 数据存储
  • 网络
  • VMware
  • 服务器
  • 组网
  • AI
  • 算法系列
  • 设计模式
  • 读书笔记
  • 思考
  • 工具
  • 其它技术

zuul网关

2024-11-24

对网关了解比较少,极客时间上有《微服务架构实战160讲》,正好学习一下。

作用

网关作为服务入口,一般要实现如下目标:

image-20241020183236844

而且网关是微服务系统中的重要组成部分浅谈微服务、微服务之服务框架和注册中心

image-20241020165814626

公司用网关实现了很多功能,如开发者测试分支、压力测试等,其实还可以实现蓝绿部署、埋点测试、金丝雀测试、粘性金丝雀、失败注入测试、降级测试等。

image-20241020184845201

架构

Zuul网关的架构是怎样的?

整体流程上,Filter Loader能够加载过滤器,当请求来的时候,会根据过滤器执行一些操作。

image-20241026174947576

过滤器的设计很巧妙,包含如下几个关键概念:

image-20241026175050282

简单来说,就是过滤器在某个阶段被调用,在这个阶段是第几个被执行,执行前要判断是否要被执行,如果执行的话按照制定的动作进行执行。过滤器可拔插。

image-20241026175126591

一个简单过滤器的样式,这个过滤器在pre阶段执行,排行第五,如果deviceType的值是BrokenDevice才被执行,执行sleep。

image-20241026175350444

路由

怎么进行路由的呢?

  • 在pre层,构建路由表,根据path找对应的服务,构建成对应服务的请求url

  • 执行调用过滤器:在routing层,做连接管理,真的请求对应服务

构建路由表的方式有很多,简单的可以直接写配置文件,或者将配置写到Apollo或者服务治理中心进行读取,也可以通过ribbon获取eureka上的对应的微服务。

扫一扫,分享到微信

微信分享二维码
如何画出优秀的软件系统架构图?
对Switch的看法
© 2025 John Doe
Hexo Theme Yilia by Litten