API 网关可以看做是系统与外界联通的入口,我们可以在网关处理一些非业务逻辑的逻辑,比如权限验证,监控,缓存,请求路由等等。
那为什么需要 API 网关呢?它有以下几个好点:
- RPC 协议转成 HTTP
在内部开发中,通常都是以 RPC 协议去做开发,然后暴露给内部服务,当外部服务需要使用这个接口的时候,往往就需要将 RPC 协议转换成 HTTP 协议。
- 请求路由
在某些系统中,可能存在同个接口新老两套系统都在使用,这时就需要根据请求上下文来将请求路由到对应的接口。
- 统一鉴权
对于鉴权操作,由于不涉及到业务逻辑,那么就可以在网关层进行处理,而不用下层到业务逻辑。
- 统一监控
由于网关是外部服务的入口,所以可以在这里监控想要的数据,比如入参出参,链路时间等等。
- 流量控制,熔断降级
对于流量控制,熔断降级等非业务逻辑,可以统一放到网关层。