2021-06-04 19:34:24
API 网关是一个中央服务器,位于客户端和后端服务之间,负责处理客户端的请求,执行安全策略,并将它们转发到相应的微服务。
现代应用程序中的 API 网关现代应用程序,特别是那些使用微服务架构的应用程序,由多个后端服务管理不同的功能。例如,在一个电子商务系统中,一个服务处理用户账户,一个服务处理支付,另一个服务管理产品库存。如果没有 API 网关,客户端需要知道所有后端服务的位置和详细信息,开发人员也需要为每个服务管理身份验证与安全,这会导致管理和维护变得非常复杂。而 API 网关的引入,使得客户端只需将所有请求发送到一个地方——API 网关,由网关负责路由、身份验证、安全和其他操作任务,从而简化了客户端和后端的交互。
API 网关的关键功能身份验证和授权
身份验证:使用令牌(例如 OAuth、JWT)、API 密钥或证书验证客户端的身份。
授权:确定客户端访问特定服务或资源的权限。
API 网关保证了各个服务处理身份验证的需要,减少了冗余,保持了整个系统的访问的一致性。
速率限制
控制客户端在给定时间内请求的频率,以防止滥用资源。
保护后端服务免受过多流量或潜在的拒绝服务(DoS)攻击的影响。
负载均衡
将传入的请求均匀分配到多个服务上,以处理高流量。
使用轮询、最少连接或加权分配等算法智能地管理流量。
缓存
存储经常请求的数据,如常见端点的响应或静态资源。
减少延迟,提升用户体验,同时降低后端服务的运营成本。
请求转换
修改传入请求的格式以匹配后端服务的要求。
在将响应发送回客户端之前进行转换,确保它们符合客户端的期望。
服务发现
动态识别每个请求适配的后端服务。
确保即使在服务频繁扩展或缩减的环境中,请求路由也能无缝进行。
中断器
当检测到持续的故障时,暂时停止向后端服务发送请求。
持续监控后端服务的健康状况和性能,并使用中断器阻止对故障服务的请求。
监控和日志记录
记录每个请求的详细信息,如来源、目的地和响应时间。
收集请求速率、错误速率和延迟等指标,帮助系统管理员检测异常、排查问题并优化系统性能。
以食品配送应用为例,当用户点击“下单”时,应用会向 API 网关发送一个请求,要求其处理订单。API 网关作为后端系统的唯一入口接收请求,并执行以下操作:
综上所述,API 网关在现代应用程序中扮演着至关重要的角色,它简化了客户端和后端的交互,提高了系统的安全性和可靠性,并降低了维护成本。