zuul网关

62 阅读2分钟

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

作用

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

架构

Zuul网关的架构是怎样的?

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

路由

怎么进行路由的呢?

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

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

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