Zuul1.x

 

使用bio的连接方式,基本已淘汰

Zuul2

特性

  • 身份验证和安全性—识别每个资源的身份验证要求,并拒绝不满足这些要求的请求。
  • 洞察和监控-跟踪边缘的有意义的数据和统计数据,以便为我们提供准确的生产视图。
  • 动态路由-根据需要将请求动态路由到不同的后端群集。
  • 压力测试-逐渐增加到集群的流量以评估性能。
  • 减载-为每种类型的请求分配容量,并删除超过限制的请求。
  • 静态响应处理-直接在边缘构建一些响应,而不是将它们转发到内部集群
  • 多区域弹性-跨AWS区域路由请求,以使ELB使用多样化,并使我们的优势更接近我们的成员

内部架构

组合用法

  • Hystrix用于将调用打包到我们的起源,这允许我们在出现问题时减少并优先处理通信量
  • Ribbon是Zuul发出的所有出站请求的客户端,它提供有关网络性能和错误的详细信息,并处理软件负载平衡以实现均匀的负载分配
  • Turbine实时聚合细粒度指标,以便我们能够快速观察和应对问题
  • Archaius处理配置并提供动态更改属性的能力

Gateway

特性

  • 基于SpringFramework5、ProjectReactor和SpringBoot2.0构建
  • 能够在任何请求属性上匹配路由。
  • 谓词和筛选器特定于路由。
  • 集成Hystrix断路器。
  • 集成SpringCloud的发现客户端
  • 易于编写谓词和筛选器
  • 请求速率限制
  • 路径重写

内部架构

Spring Cloud Gateway Diagram

对比

限流

Zuul2:可通过配置文件或者filter实现

Gateway:可对IP、用户、集群进行限流,并提供扩展接口

鉴权

Zuul2:filter中代码实现

Gateway:普通鉴权、auth2.0

监控

Zuul2:filter中代码实现

Gateway:Gateway Metrics Filter实现

易用性

Zuul2:参考较少

Gateway:简单易用

可维护性

Zuul2:可维护性差

Gateway:基于spring系列维护性强

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐