使用API网关构建微服务

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 使用传统的异步回调方法编写API组合代码会让你迅速坠入回调地狱。代码会变得混乱、难以理解且容易出错。一个更好的方法是使用响应式方法以一种声明式样式编写API网关代码。响应式抽象概念的例子有Scala中的Future、Java 8中的CompletableFuture和JavaScript中的Promise,还有最初是微软为.NET平台开发的Reactive Extensions(RX)。

 

使用传统的异步回调方法编写API组合代码会让你迅速坠入回调地狱。代码会变得混乱、难以理解且容易出错。一个更好的方法是使用响应式方法以一种声明式样式编写API网关代码。
响应式抽象概念的例子有Scala中的Future、Java 8中的CompletableFuture和JavaScript中的Promise,还有最初是微软为.NET平台开发的Reactive Extensions(RX)。Netflix创建了RxJava for JVM,专门用于他们的API网关。此外,还有RxJS for JavaScript,它既可以在浏览器中运行,也可以在Node.js中运行。使用响应式方法将使你可以编写简单但高效的API网关代码。

http://www.infoq.com/cn/articles/construct-micro-service-using-api-gateway/

使用API网关

通常,一个更好的方法是使用所谓的API网关。API网关是一个服务器,是系统的唯一入口。
从面向对象设计的角度看,它与外观模式类似。
API网关封装了系统内部架构,为每个客户端提供一个定制的API。
它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、“请求整形(request shaping)”与管理、静态响应处理。


下图展示了API网关通常如何融入架构:

 

API网关负责服务请求路由、组合及协议转换。
客户端的所有请求都首先经过API网关,然后由它将请求路由到合适的微服务。API网管经常会通过调用多个微服务并合并结果来处理一个请求。它可以在Web协议(如HTTP与WebSocket)与内部使用的非Web友好协议之间转换。

API网关还能为每个客户端提供一个定制的API。通常,它会向移动客户端暴露一个粗粒度的API。例如,考虑下产品详情的场景。API网关可以提供一个端点(/productdetails?productid=xxx),使移动客户端可以通过一个请求获取所有的产品详情。API网关通过调用各个服务(产品信息、推荐、评论等等)并合并结果来处理请求。

Netflix API网关是一个很好的API网关实例。Netflix流服务提供给数以百计的不同类型的设备使用,包括电视、机顶盒、智能手机、游戏系统、平板电脑等等。最初,Netflix试图为他们的流服务提供一个通用的API。然而他们发现,由于各种各样的设备都有自己独特的需求,这种方式并不能很好地工作。如今,他们使用一个API网关,通过运行特定于设备的适配器代码来为每个设备提供一个定制的API。通常,一个适配器通过调用平均6到7个后端服务来处理每个请求。Netflix API网关每天处理数十亿请求。

API网关的优点和不足

如你所料,使用API网关有优点也有不足。使用API网关的最大优点是,它封装了应用程序的内部结构。客户端只需要同网关交互,而不必调用特定的服务。API网关为每一类客户端提供了特定的API。这减少了客户端与应用程序间的交互次数,还简化了客户端代码。

API网关也有一些不足。它增加了一个我们必须开发、部署和维护的高可用组件。还有一个风险是,API网关变成了开发瓶颈。为了暴露每个微服务的端点,开发人员必须更新API网关。API网关的更新过程要尽可能地简单,这很重要。否则,为了更新网关,开发人员将不得不排队等待。不过,虽然有这些不足,但对于大多数现实世界的应用程序而言,使用API网关是合理的。

 

相关文章
|
3天前
|
人工智能 API
阿里云微服务引擎及 API 网关 2024 年 6 月产品动态
阿里云微服务引擎及 API 网关 2024 年 6 月产品动态
|
1天前
|
监控 负载均衡 API
探索微服务架构下的API网关设计
【7月更文挑战第19天】在云原生时代,微服务架构以其灵活性和可扩展性成为企业数字化转型的优选。本文将深入探讨API网关在微服务架构中的核心角色,包括其设计原则、关键功能以及面临的挑战。我们将通过实例分析API网关如何提升系统的可维护性、安全性和性能,并讨论如何在复杂环境中实现高效的API管理策略。
32 9
|
3天前
|
负载均衡 安全 API
探索微服务架构中的API网关模式
【7月更文挑战第18天】在微服务架构中,API网关不仅是流量的守门人,更是服务的协调者。本文将深入探讨API网关的核心作用、设计原则以及实现策略,揭示其在微服务生态系统中不可或缺的地位。通过案例分析,我们将一窥API网关如何优雅地处理服务发现、负载均衡、认证授权等关键任务,同时确保系统的弹性和安全性。
|
1天前
|
存储 设计模式 负载均衡
深入理解微服务架构中的API网关
在微服务架构的海洋中,API网关扮演着灯塔的角色,指引着服务的交互与集成。本文将探讨API网关的核心功能、设计考虑因素以及其在微服务生态系统中的重要性。通过具体案例分析,我们将揭示API网关如何优化服务发现、负载均衡和安全性等关键方面,并讨论其对系统性能的影响。
10 2
|
5天前
|
缓存 负载均衡 监控
探索微服务架构中的API网关模式
【7月更文挑战第16天】在微服务架构的复杂网络中,API网关扮演着交通枢纽的角色,它不仅简化了客户端与众多微服务间的交互,还提升了整个系统的可扩展性与安全性。本文将深入探讨API网关的核心概念、设计模式以及在实际应用中的考量因素,为开发者提供实现高效、稳定微服务系统的实用指南。
20 4
|
3天前
|
缓存 JSON 安全
构建高效后端API的五大原则
【7月更文挑战第18天】在数字化时代的浪潮中,后端API成为了连接数据与服务的重要桥梁。本文将深入探讨构建高效后端API的五大核心原则,包括设计哲学、性能优化、安全策略、错误处理和文档编写。这些原则不仅能够提升API的响应速度和稳定性,还能确保开发者和终端用户的良好体验。通过实例分析,我们将展示如何将这些原则应用于实际开发中,以实现高效、安全且易于维护的后端API。
|
3天前
|
负载均衡 安全 API
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关犹如一座灯塔,为迷失方向的请求指引道路。本文将深入探讨API网关的设计哲学、核心功能及其在系统架构中的关键作用。我们将从流量控制、安全防护到服务聚合等多个维度剖析API网关的重要性,并结合实例分析其在实际项目中的运用。
|
13天前
|
监控 安全 API
探索微服务架构中的API网关模式
【7月更文挑战第8天】在微服务架构的海洋中,API网关扮演着至关重要的灯塔角色。本文将深入探讨API网关的核心概念、设计原则以及它在现代分布式系统中的关键作用。我们将从API网关的定义和功能出发,逐步剖析其如何优化微服务之间的通信,保障服务安全,实现流量控制与监控,以及促进服务的快速迭代。通过案例分析,我们还将揭示API网关在实际部署中可能面临的挑战及应对策略。文章旨在为后端开发者和架构师提供一套完整的API网关解决方案,帮助他们构建更加高效、稳定且安全的微服务环境。
|
8天前
|
监控 负载均衡 安全
探索微服务架构中的API网关模式
【7月更文挑战第13天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务间的通信和客户端请求。本文将深入剖析API网关的核心作用、设计考量以及实现策略,为构建高效、可靠的分布式系统提供实践指南。
28 10
|
6天前
|
缓存 负载均衡 监控
探索微服务架构中的API网关模式
在微服务架构的海洋中,API网关扮演着灯塔的角色,为迷失方向的请求指引道路。本文将深入分析API网关的核心功能、设计策略以及在实际应用中的优化实践,帮助开发者构建更加高效、稳定的微服务系统。