API网关总结

API网关总结

服务接入

API网关最重要的功能就是提供服务的统一接入。
通常是外部服务统一经过API网关请求到内部不同的服务。
这样内部服务不会直接暴露在外部,保护了内部服务的安全。
外部服务也只需要面向API网关进行对接即可,不用跟内部各种异构的服务打交道。

异步请求

API网关流量往往很大,为了能达到更大的吞吐量,需要使用IO多路复用。
一般有Tomcat+NIO和Netty+NIO两种实现。Netty需要自己处理HTTP,但是Netty性能比Tomcat高。

链式处理

API网关除了提供统一的接入以外,还能对请求做一些统一的处理。
使用责任链模式,在反代的处理链设置前置过滤器、路由过滤器、后置过滤器和异常过滤器。
可以灵活对请求进行自定义处理。

  • 请求鉴权:服务鉴权一般与业务逻辑无关,统一在API网关里进行鉴权以保护内部服务
  • 请求监控:对请求的数量,时间等信息进行上报监控
  • 请求缓存:对于一些幕等的请求,可以缓存在网关里,减少内部服务的压力
  • 协议转换:如果内部服务的rpc调用使用的是非http协议,那么就要将rpc转换为http
  • 流量控制
  • 熔断降级

业务隔离

  • 信号量隔离:信号量隔离只是限制了总的并发数,如果有服务超时了,依然会把全部并发数给占用了,影响其他正常的服务
  • 线程池隔离:不同业务之间使用不同的线程池来进行隔离。即时某个业务出现问题,也只会占满自己的线程池,而不会影响到其他业务
  • 集群隔离:不同的集群提供不同的服务,通过集群本身进行隔离

管理平台

对上面API网关的功能进行配置和监控。

参考文章:

API网关.md


API网关总结
https://cellargalaxy.github.io/posts/分布式/1.API网关总结/
作者
cellargalaxy
发布于
2020年7月3日
许可协议