Zuul(1、简介)

1.网关简介

在微服务框架中,每个对外服务都是独立部署的,对外的api或者服务地址都不是不尽相同的。对于内部而言,通过注册中心服务拉取即可获取。那么外部调用呢?
微服务可能是不同的技术栈实现的,http或websocket等等,也会进一步加大客户端的调用难度。
所以,出现了API网关,根据请求的URL不同,路由到不同的服务上去,同时统一了入口,还能进行统一的身份鉴权、日志记录、分流等操作。

2.网关的作用

  • 提供一个单独且统一的API入口用于访问内部一个或多个API。简单来说就是一个统一入口,比如现在的支付宝或者微信的相关api服务一样,都有一个统一的api地址,统一的请求参数,统一的鉴权。
  • 屏蔽内部微服务的微小变动,保持整个系统的稳定性。
    Zuul(1、简介)
  1. 客户端和服务端直连的弊端:
    • 客户端会对此请求不同的微服务,增加客户端复杂性
    • 存在跨域请求时,需要进行额外处理
    • 认证服务,每个服务需要独立认证
    • UI端和微服务耦合
  2. 网关的优点:
    • 减少api请求次数
    • 限流
    • 缓存
    • 统一认证
    • 降低微服务的复杂度
    • 支持混合通信协议(前端只和api通信,其他的由网关调用)
  3. 网关的缺点:
    • 网关需高可用,可能产生单点故障
    • 管理复杂

3. Zuul网关介绍

Zuul是Netflix开源的微服务网关,可以和Eureka、Ribbon、Hystrix等组件配合使用,Spring Cloud对Zuul进行了整合与增强,Zuul的主要功能是路由转发和过滤器。

3.1 Zuul的核心功能

  • 认证与安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求。
  • 审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。
  • 动态路由:动态地将请求路由到不同的后端集群。
  • 压力测试:逐渐增加指向集群的流量,以了解性能。
  • 负载分配:预先为每一种负载类型分配对应容量,请求超过容量时自动丢弃。
  • 静态响应处理:在边缘位置直接建立部分相应,从而避免其转发到内部集群。
    Zuul(1、简介)