作者:科技狠活与软件技术 2023-06-09 14:46:36
云计算 API 网关简化了对分布在多个 Kubernetes 集群和云中的微服务的管理。继续阅读以了解其架构、功能和优势。 API 网关简化了对分布在多个 Kubernetes 集群和云中的微服务的管理。继续阅读以了解其架构、功能和优势。
专业从事成都网站设计、网站建设、外贸网站建设,高端网站制作设计,微信小程序定制开发,网站推广的成都做网站的公司。优秀技术团队竭力真诚服务,采用成都h5网站建设+CSS3前端渲染技术,成都响应式网站建设公司,让网站在手机、平板、PC、微信下都能呈现。建站过程建立专项小组,与您实时在线互动,随时提供解决方案,畅聊想法和感受。
当客户端向分布在分布式系统中的多个集群和云中的微服务发出请求时,跟踪每个请求以确保安全和正确的路由规则变得乏味。理想情况下,后端服务不应该这样做,因为它们应该单独提供业务逻辑。这就是 API 网关(所有请求的单一入口点)的用武之地。让我们看看什么是 API 网关以及它提供的功能和优势。
API 网关是客户端和微服务之间的服务器(或 L7 代理),充当所有客户端进入系统的集中入口点。它是一个反向代理,接受客户端 API 调用并将它们转发到适当的微服务(参见下图 A)。
通过为每个客户端提供 API,API 网关封装了底层系统的复杂性,让客户端与其对话,而不是调用特定的服务。他们还在流量到达服务之前执行安全检查(身份验证和授权),从而让服务专注于其核心功能。
图 A – 微服务架构的 API 网关实现概念图
直接的客户端到微服务通信模式带来的挑战导致了 API 网关的流行。让我们来看看其中的一些。
对于客户端到微服务的直接连接,客户端必须知道服务实例的特定端点。但是由于服务的动态(去)缩放,跟踪端点增加了客户端的复杂性。此外,如果客户端与服务耦合,则扩展将成为一个问题,因为它需要在客户端更改配置。此外,当客户端直接调用服务时,很难配置基于某些属性的路由流量,例如地理(geo-routing)。
为直接的客户端到服务通信公开暴露服务端点会引起安全问题。它增加了入侵者的攻击面,并使后端服务容易受到威胁,例如数据包嗅探、中间人攻击等。此外,直接的客户端到微服务给服务增加了验证和授权 API 调用的负担而不是让他们专注于交付业务逻辑。
微服务架构提供的灵活性让开发人员可以使用他们选择的语言(Python、Java、Go)构建服务。同样,他们可以使用不同的 API 类型(例如 REST、gRPC 等)来实现这些服务。在客户端到微服务的直接通信模式中,客户端需要理解并使用不同的协议进行通信。这增加了额外的复杂性,因为客户端应用程序将需要更多代码和逻辑。
考虑来自亚马逊网站的产品页面。产品定价、数量和评论等一些属性将在后端部署为不同的服务。如果客户端直接调用服务,它将不得不为每个服务(产品价格、评论、数量等)发出单独的请求以检索所需的信息,因为没有缓存来自上游服务的响应的机制。这些调用增加了建立多个连接的开销,并且这些网络请求引起的往返增加了延迟和次优的用户体验。
API 网关的架构在某种程度上减轻了直接客户端到微服务连接所带来的挑战,并提供了多种功能。
API 网关是一个 L7 代理,它从通常由客户端请求的前端微服务中抽象出流量管理。API 网关可以读取和理解 HTTP 消息(参见下图),因此它们可以应用过滤器或对流量采取行动。
HTTP消息结构
请求在 API 网关处流经多个步骤。下图(图 B)表示位于 Kubernetes 集群边缘的 API 网关以及请求流经的阶段。
图 B – 通过 API 网关的传入 gRPC 请求的流量
API 网关完成上述步骤后,会将服务的响应返回给客户端。但是,请注意,概述的步骤可能会有所不同,具体取决于网关的配置方式和其他功能的实现。
除了上面提到的关键功能外,API 网关还提供许多功能。
API 网关提供的所有这些功能为管理分布式服务系统带来了巨大的好处。
API 网关实施可帮助组织获得以下好处等。
作为 API 管理的集中点,网关隐藏了服务和底层基础设施,不被公开。这使得攻击者很难试图关闭应用程序,特别是通过用请求压倒服务(DoS 攻击)。由于网关在到达后端之前处理每个请求,因此它们可以对此类攻击应用速率限制。其他安全功能,如请求验证、authN/Z、断路和策略实施,再加上日志记录和监控,使 API 网关有助于应用程序的整体安全性。
API 网关将外部客户端与内部微服务分离。这为 DevOps 和基础架构工程师提供了高度的灵活性,可以更改后端服务,而无需更新客户端应用程序中的配置。客户端仍然可以通过网关发出请求并获得响应,而无需了解后端发生的变化。许多重要的功能,例如 authN/Z 和负载平衡,将由网关负责。将这些责任卸载到网关有助于开发人员为应用程序编写更少的代码,从而促进创新并实现快速发布。
API 货币化就是为第三方消费者将 API 产品化。API 网关为公司提供了一种更好的方式来将其 API 货币化以产生收入或支付维护 API 的运营成本。网关将客户端请求连接到计费系统,从而为 API 提供商提供集中计费和计量机制。这有助于公司通过为 API 消费者实施不同的定价模型(例如现收现付、分层和基于单位)来跟踪 API 使用情况并收取服务费用。
API 网关通过请求底层服务并聚合它们来减轻客户端发出过多请求的麻烦。也就是说,对网关的单个请求就足以满足客户端应用程序的需求,从而显着减少延迟。并且在频繁重复请求的情况下,网关可以及时提供缓存的响应,而无需将请求转发给后端。此外,借助监控和日志记录功能,API 网关可以更轻松地跟踪和排除任何性能问题,这有助于最大限度地减少应用程序停机时间。所有这些都有助于提高应用程序的性能、可靠性和用户体验。
在评估 API 网关工具时,组织可以寻找开源工具、云服务提供商或企业版。如果开源是您的首要任务,我们根据易用性、灵活性和可扩展性等因素列出了排名前三的开源 API 网关工具。
Tyk提供了一个完全开源的网关,支持多种协议,如 REST、GraphQL 和 gRPC。除了 Redis 之外,它没有第三方依赖项,是当今最快的网关之一。
以下是 Tyk API 网关的一些功能:
Kong API Gateway是一个适用于多云和混合云部署的云原生网关。在其自己的Kubernetes ingress controller的帮助下,网关也是 Kubernetes 原生的。Kong 以其通过模块和插件的灵活性和可扩展性而闻名。
Kong API Gateway 的一些开源功能包括:
KrakenD是一个高性能的 API 网关,采用无服务器架构构建,可提供真正的线性可扩展性。它有助于在没有单点故障的情况下进行扩展。KrakenD 在本地、混合或云上运行,并且可以使用插件和嵌入式脚本进行扩展。
KrakenD 的开源版本提供以下功能:
不它不是。与任何其他工具一样,API 网关也面临着一系列挑战。这里有几个:
详细探索 API 网关的这些挑战,并理解为什么考虑像 Istio 这样的服务网格平台是理想的:API 网关与 Istio 服务网格。
此外,还有不同的场景可以使用您现有的 API 网关基础设施来实施 Istio。
分享名称:微服务架构中API网关介绍
文章地址:http://www.shufengxianlan.com/qtweb/news47/542447.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联