Nginx
Nginx是用C语言写的,自定义扩展的话,要么写C
要么写lua
Nginx做网关更多的是做总流量入口
、反向代理
、负载均衡
等,最早期还可以用来做web服务器。
Gateway
Gateway是Java语言的一个框架(SpringCloud Gateway)可以在框架上进行代码的扩展与控制,例如:
- 安全控制、统一异常处理、XXS、SQL注入等;
- 权限控制、黑白名单、性能监控、日志打印;
- 等等
Gateway的主要功能有路由、断言、过滤器,利用它的这些特性,可以做流控。
Spring Cloud Gateway 特点
https://spring.io/projects/spring-cloud-gateway spring-cloud-starter-gateway
- 基于 Spring Framework 5、Project Reactor 和 Spring Boot 2.0 构建
- 动态路由:能够匹配任何请求属性的路由
- 可以对路由指定
Predicate
(断言)和Filter
(过滤器) - 集成
Hystrix
的断路器功能 - 集成
Spring Cloud
服务发现功能 - 易于编写的
Predicate
(断言)和Filter
(过滤器) - 请求限流功能(速率限制)
- 支持路径重写