对网关了解比较少,极客时间上有《微服务架构实战160讲》,正好学习一下。
作用
网关作为服务入口,一般要实现如下目标:
而且网关是微服务系统中的重要组成部分浅谈微服务、微服务之服务框架和注册中心
公司用网关实现了很多功能,如开发者测试分支、压力测试等,其实还可以实现蓝绿部署、埋点测试、金丝雀测试、粘性金丝雀、失败注入测试、降级测试等。
架构
Zuul网关的架构是怎样的?
整体流程上,Filter Loader能够加载过滤器,当请求来的时候,会根据过滤器执行一些操作。
过滤器的设计很巧妙,包含如下几个关键概念:
简单来说,就是过滤器在某个阶段被调用,在这个阶段是第几个被执行,执行前要判断是否要被执行,如果执行的话按照制定的动作进行执行。过滤器可拔插。
一个简单过滤器的样式,这个过滤器在pre阶段执行,排行第五,如果deviceType的值是BrokenDevice才被执行,执行sleep。
路由
怎么进行路由的呢?
在pre层,构建路由表,根据path找对应的服务,构建成对应服务的请求url
执行调用过滤器:在routing层,做连接管理,真的请求对应服务
构建路由表的方式有很多,简单的可以直接写配置文件,或者将配置写到Apollo或者服务治理中心进行读取,也可以通过ribbon获取eureka上的对应的微服务。