Nginx

Nginx是用C语言写的,自定义扩展的话,要么写C要么写lua
Nginx做网关更多的是做总流量入口反向代理负载均衡等,最早期还可以用来做web服务器。

Gateway

Gateway是Java语言的一个框架(SpringCloud Gateway)可以在框架上进行代码的扩展与控制,例如:

  1. 安全控制、统一异常处理、XXS、SQL注入等;
  2. 权限控制、黑白名单、性能监控、日志打印;
  3. 等等

Gateway的主要功能有路由、断言、过滤器,利用它的这些特性,可以做流控。

Spring Cloud Gateway 特点

https://spring.io/projects/spring-cloud-gateway spring-cloud-starter-gateway

  1. 基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.0 构建
  2. 动态路由:能够匹配任何请求属性的路由
  3. 可以对路由指定Predicate(断言)和 Filter (过滤器)
  4. 集成Hystrix的断路器功能
  5. 集成Spring Cloud服务发现功能
  6. 易于编写的Predicate(断言)和Filter(过滤器)
  7. 请求限流功能(速率限制)
  8. 支持路径重写