发布时间:2023-10-26作者来源:优智互联浏览:913
基于API网关
API网关是什么?
API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度来看,它类似于外观模式。
API网关包装了系统的内部架构,为每个客户端提供定制的API。它还可能有其他责任,如身份验证、监控、负载平衡、缓存、协议转换、电流限制断路器和静态响应处理。
API网关模式的核心点是,所有客户端和消费者都通过统一的网关访问微服务,并在网关层处理所有非业务功能。通常,网关还提供REST/HTTP访问API。
网关的主要功能
作为微服务后端服务的统一入口,微服务网关可以对后端服务进行统筹管理,主要分为数据平面和控制平面:
数据平面的主要功能是分离后访问用户的HTTP请求和微服务的聚合。路由和过滤功能是网关的核心能力模块,使用微服务网关统一暴露后端服务的API和合同。此外,微服务网关还可以实现协议转换、安全认证、熔断限流、灰度发布、日志管理、流量监控等拦截机制和跨横截面功能。网关模块方案
控制平面的主要功能是对后端服务进行统一的控制和配置管理。例如,可以控制网关的灵活性和可伸缩性;配置可以统一分发;可以为网关服务添加标签;后端服务的API合同可以通过在微服务网关上配置swagger功能向用户公开,完成文档服务,提高工作效率,降低沟通成本。
路由功能:路由是微服务网关的核心能力。请求可以通过路由功能微服务网关转发给目标微服务。在微服务架构中,网关可以结合注册中心的动态服务发现,实现后端服务的发现。调用方可以通过了解网关外部暴露的服务API,透明地访问后端微服务。
负载平衡:API网关结合负载平衡技术,通过轮询、指定权重、IP地址哈希等机制,利用Eureka或Consul等服务发现工具,实现下游服务的负载平衡。
统一权利评估:一般来说,内部网络和外部网络的界面都需要用户身份认证,用户身份认证将在一些大型系统中使用统一的单点登录(SingleSignOn)系统,如果每个微服务都与单点登录系统连接,显然是浪费资源,开发效率低下。API网关是统一安全管理的绝佳场所。认证部分可以提取到网关层。微服务系统不需要注意认证的逻辑,只需要注意自己的业务。
协议转换:API网关的一个主要功能是构建异构系统。API网关作为一个单一的入口,基于REST的协议转换集成背景、AMQP、不同风格和实现技术的微服务,如Dubbo,面向WebMobile。、为特定客户端提供统一服务,如开放平台。
指标监控:网关可以计算后端服务的请求数量,实时更新当前的流量健康状态,延迟统计URL粒度服务,或使用HystrixDashboard查看后端服务的流量状态以及是否存在断路器。
限流熔断器:在某些情况下,需要控制客户端的访问次数和频率,一些高并发系统有时需要限制流量。可以在网关上设置阈值。当请求数量超过阈值时,您可以直接返回错误,而无需继续访问后台服务。当流量高峰或后端服务延迟或故障时,网关可以主动熔断,保护后端服务,保持前端用户体验良好。
黑白列表:微服务网关可以使用系统黑名单过滤HTTP请求特征,拦截DDOS攻击等侵蚀带宽或资源迫使服务中断等异常客户端请求,并在网关层面进行拦截过滤。更常见的拦截策略是根据IP地址添加黑名单。在权利评估管理的路由服务中,后端服务资源可以通过设置白名单跳过权利评估管理直接访问。
灰度发布:微服务网关可以根据HTTP请求中的特殊标记和后端服务列表元数据标记进行流量控制,实现灰度发布在用户无感知的情况下完成。
流量染色:类似于灰度发布的原理,网关可以根据HTTP要求的Host、Head、Agent和其他标志染色请求。通过网关的流量染色功能,我们可以跟踪后续服务调用链接,并进一步分析服务延迟和服务运行状态。
文档中心:网关与swagger相结合,可以向网关暴露后端微服务。网关作为一个统一的入口,为接口用户提供API规范,以查看后端服务。无需知道每个后端微服务的swagger地址,因此网关可以聚合后端API。
日志审计:微服务网关可以作为统一的日志记录和收集器,拦截服务URL粒度的日志请求信息和响应信息。