API 网关功能

  • 反向代理和路由 - 大多数项目采用网关的解决方案的最主要的原因。给出了访问后端 API 的所有客户端的单一入口,并隐藏内部服务部署的细节。
  • 负载均衡 - 网关可以将单个传入的请求路由到多个后端目的地。
  • 身份验证和授权 - 网关应该能够成功进行身份验证并仅允许可信客户端访问 API,并且还能够使用类似 RBA C等方式来授权。
  • IP 列表白名单/黑名单 - 允许或阻止某些 IP 地址通过。
  • 性能分析 - 提供一种记录与 API 调用相关的使用和其他有用度量的方法。
  • 限速和流控 - 控制 API 调用的能力。
  • 请求变形 - 在进一步转发之前,能够在转发之前转换请求和响应(包括 Header 和 Body)。
  • 版本控制 - 同时使用不同版本的 API 选项或可能以金丝雀发布或蓝/绿部署的形式提供慢速推出 API
  • 断路器 - 微服务架构模式有用,以避免使用中断
  • 多协议支持 WebSocket/GRPC
  • 缓存 - 减少网络带宽和往返时间消耗,如果可以缓存频繁要求的数据,则可以提高性能和响应时间
  • API 文档 - 如果计划将 API 暴露给组织以外的开发人员,那么必须考虑使用 API 文档,例如 Swagger 或 OpenAPI。

Nginx 有以下的特点:

  1. 由 C 编写,占用的资源和内存低,性能高。
  2. 单进程多线程,当启动 nginx 服务器,会生成一个 master 进程,master 进程会 fork 出多个 worker 进程,由 worker 线程处理客户端的请求。
  3. 支持反向代理,支持 7 层负载均衡(拓展负载均衡的好处)。
  4. 高并发,nginx 是异步非阻塞型处理请求,采用的 epollandqueue 模式
  5. 处理静态文件速度快
  6. 高度模块化,配置简单。社区活跃,各种高性能模块出品迅速。
原文地址:https://www.cnblogs.com/KL2016/p/14884519.html