您的位置  > 互联网

微服务网关API网关方式的核心要点和优点有哪些?

如果让客户端直接与各个微服务通信,可能会出现很多问题:

客户端会请求多个不同的服务,需要维护不同的请求地址,这就增加了开发难度。 在某些场景下,存在跨域请求问题,增加了身份认证的难度。 每个微服务都需要独立的身份验证。

因此,我们需要一个微服务网关,它是客户端和服务端之间的中间层。 所有外部请求都会首先经过微服务网关。 客户端只需要与网关交互,只知道一个网关地址。 这简化了开发并具有以下优点:

1. 易于监控

2. 易于认证

3.减少客户端与各个微服务的交互次数

服务网关的概念

什么是微服务网关

API网关是一个服务器,是系统唯一的外部入口。 API网关封装了系统内部架构,为每个客户端提供定制化的API。 API网关方式的核心点是所有客户端和消费者都通过统一网关访问微服务,所有非业务功能都在网关层处理。 通常,网关还提供REST/HTTP访问API。 服务器通过API-GW注册和管理服务。

功能及应用场景

网关承担认证、监控、负载均衡、缓存、请求分片和管理、静态响应处理等职责。 当然,最重要的责任是“与外界联系”。

常见API网关实现方法

基于Nginx+Lua开发,具有高性能和稳定性,并且有多个可用插件(限流、认证等),可以开箱即用。 问题:仅支持Http协议; 二次开发自由扩展困难; 提供了管理API,但缺乏更易用的管理、控制和配置方法。 祖尔

开源,功能丰富,采用JAVA开发,易于二次开发; 需要在 Web 容器中运行,例如。 问题:缺乏管理和控制,无法动态配置; 许多依赖组件; 处理HTTP请求依赖于Web容器,性能不如Nginx;

Go语言开发; 重量轻且易于使用; 提供大部分功能:服务路由、负载均衡等; 提供WebUI存在的问题:二进制文件部署,二次开发困难; UI更多的是监控,缺乏配置和管理功能; 云提供的网关服务

Nginx+lua实现利用Nginx的反向代理和负载均衡实现api服务器的负载均衡和高可用问题:自注册问题和网关本身的可扩展性