API网关基本功能
- 单点入口
- 路由转发
- 限流熔断
- 日志监控
- 安全认证
zuul网关的使用场景
- 红绿部署
- 开发者测试分支(开发人员到线上做测试,不使用生产的流量)
- 埋点测试(调用链埋点,metircs埋点)
- 压力测试(复制生产流量打到测试服务,返回的数据会丢掉)
- 调试路由
- 金丝雀测试(分一些流量到V2版本,如果正常就全部切换)
- 失败注入测试(输入一些错误的信息,去测试有没有问题)
zuul网关架构剖析
- 绿色:网关过滤器存储模块(管理过滤器,可以通过管理界面将过滤器上传,并存储到数据库中)
- 粉红色:网关过滤器加载模块(定时从数据库中判断有没有新的过滤器,并判断过滤器是否有变更)
- 蓝色:核心运行时模块(经过zuul filter runner 会判断要调用哪些过滤器,并按1,2,3执行过滤器的方法)
请求处理生命周期
- 请求进来会先经过前置过滤器 pre filters
- 第二步到达routing filters 这个时候会去执行具体的服务
- 拿到返回数据会执行 post filters 这个时候就拿到了返回数据返回到客户端
- 在执行的过程中若出现错误则会到 error filters
过滤器类型:
- pre filters
- routing filters
- post filters
- error filters