目录
(1)三种过滤器 Inbound、Endpoint 、Outbound
一.使用缘由
公司需要在springcloudgateway和zuul2间做一次较为完整的调研对比,选取其一作为满足我们需求的网关,我接到的任务是搭建自己本地的zuul2项目。
本文目的不在于网关的对比,而在于zuul2 sample项目的简略使用介绍(后面有可供使用的代码地址)。
此外,网络上zuul2的正确文档少之又少,希望能帮助有需要的人少走弯路。
二.项目介绍
1.核心内容
(1)三种过滤器 Inbound、Endpoint 、Outbound
描述:
- Inbound Filters :在路由到源之前执行
- Endpoint Filters :可用于返回静态响应
- Outbound Filters :在来源获取响应后执行
重点:
- 它的filter使用的语言不是java,而是groovy
- 它的filter是可以动态更新的,也就是说,你编辑或新增filter不需要重启服务器。
(2)配置文件application.properties
application.properties是他提供的默认配置文件,项目的启动和使用都基于它。
重点:
- 主要功能:请求的转发。是基于配置中的ribbon和虚拟路由vip实现的(详见文件内容)
- 它提供两种启用方式,可以选择注册到eureka或者直接通过自身启用。两种的使用差别在于,是通过端口去调用,还是通过serviceId去调用。
- 使用条件:项目http://localhost:8091/users、http://localhost:8093/test 能被post请求并成功响应。
- 若使用eureka,则此处配置的eureka地址为:http://localhost:8111/eureka/
- 上面两个条件的参数可以自己配置
(3)动态配置application.properties
通过集成Netflix Archaius用于动态属性管理。
本项目的具体实现是:以轮询的方式,隔一段时间从网络上获取properties配置,同时更新项目中的properties配置。
这是它的实现过程:
这些配置完成后,首先会在启动项目时获取一次配置文件,此后会根据定义的轮询时间获取一次配置文件。
2.参考文档
若有些不清晰的内容,可以通过这些参考文档详细了解zuul2。
官网:https://github.com/Netflix/zuul/wiki
指导示例:https://github.com/dashprateek/zuul2-sample
指导博客:https://thebackendguy.com/netflix-zuul-2-api-gateway-sample/
动态配置指导 博客:https://blog.csdn.net/upupuptp/article/details/74003901