网关介绍
网关指的是一个网络连接到另一个网络的“关口”。在Internet里,网关是一种连接内部网与Internet上其他网络的中间设备,通俗来说,也叫作“路由器”。
网关地址是能够理解成内部网与Internet信息传输的一种通道的地址。
根据不一样的分类准则,网关也有非常多的种类,在TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)里网关的使用频率是极高的,而本章我们所讲解的网关是指“API网关”。
API网关作为一个服务,是整个后端的统一入口。
首先,它可以提供基本的路由服务,将调用转发到上游服务。
其次,作为一个入口,它可以进行认证、鉴权和限流等操作,为上游服务提供保护。
API网关作为一种微服务架构解决方案,很好地解决了微服务下调用、统一接入等问题。
总结而言,API网关有以下五大功能。
1.路由转发 由于API网关是内部微服务的唯一入口,所以外部请求都会先转发到这个API网关上,然后由API网关来根据不同的请求将其转发到不同的微服务节点上。
并且,由于内部微服务实例会随着业务调整不停地变更,如增加或者删除节点,API网关可以与服务注册中心进行协同工作,保证将外部请求转发到合适的微服务实例上。
2.负载均衡 由于API网关是内部微服务的唯一入口,所以API网关在收到外部请求之后,还可以根据内部微服务每个实例的负荷情况动态地进行负载均衡调节。一旦内部的某个微服务实例负载很高,甚至不能及时响应, API网关就会通过负载均衡策略减少或停止向这个实例转发请求。当所有的内部微服务实例都处理响应不过来的时候 ,API网关还可以采用限流或熔断的形式阻止外部请求,以保障整个系统的可用性。
3.安全认证 API网关就像微服务的“大门守卫”,每一个请求进来之后,都必须先在API网关上进行身份验证,身份验证通过后才将其转发给后面的服务,转发的时候一般会带上身份信息。同时API网关也需要对每一个请求进行安全性检查,如参数的安全性、传输的安全性等。
4.日志记录 既然所有的请求都需要经过API网关,那么我们就可以在API网关上集中地记录下这些行为日志。这些日志既可以作为我们后续的问题排查使用,也可以作为系统的性能监控使用。
5.数据转换 由于API网关对外面向多种不同的客户端,不同的客户端所传输的数据的类型可能是不一样的。因此,API网关还需要具备数据转换的功能,将不同客户端传输进来的数据转换成同一种类型的数据,再转发给内部微服务,这样可兼容了这些请求的多样性,保证微服务的灵活性。