SpringCloud(五) 微服务架构-网关设计

  一般来说,API网关有四大职能:

  • 请求接入:作为所有API接口服务请求的接入点,管理所有的接入请求
  • 业务聚合:作为所有后端业务服务的聚合点,所有业务服务都可以在这里被调用
  • 中介策略:实现安全、验证、路由、过滤、流控、缓存等策略,进行一些必要的中介处理
  • 统一管理:提供配置管理工具,对所有API服务的调用生命周期和相应的中介策略进行统一管理

  如果对上述目标进入更深入的思考,则可以分为流量网关和业务网关。

开源网关对比

  SpringCloudGateway Zuul2 OpenResty Kong
限流

可以通过IP、用户、集群限流,提供了相应的接口进行扩展

可以通过配置文件配置集群限流和单服务器限流,也可以通过Filter实现限流扩展 需要Lua开发

根据秒、分、时、天、月、年,根据用户进行限流。可以二次开发

鉴权 普通鉴权、OAuth2.0 Filter中实现 需要Lua开发 普通鉴权、Key Auth鉴权、HMAC、Oauth2.0
监控 Gateway Metrics Filter Filter中实现 需要开发 可上报datadog,请求数据量、应答数据量、接收和发送的时间间隔、状态码数量、Kong内运行时间
易用性 简单易用 参考资料较少 简单易用,但是需要Lua开发 简单易用,API转发通过管理员接口配置,开发需要Lua脚本
可维护性 扩展性强、易配置 可维护性较差 可维护性较差,将来维护需要大量Lua脚本 可维护性较差,将来维护需要大量Lua脚本
成熟度 社区成熟,但是Gateway资源较少 资料较少 成熟,资料多 相对成熟,插件开源
原文地址:https://www.cnblogs.com/ryjJava/p/14226097.html