服务网格和API网关在微服务架构中的作用是什么
更新:HHH   时间:2023-1-7


这篇文章主要介绍“服务网格和API网关在微服务架构中的作用是什么”,在日常操作中,相信很多人在服务网格和API网关在微服务架构中的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”服务网格和API网关在微服务架构中的作用是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

 以及如何充分利用两者

如果您从事微服务,那么您可能已经多次听说过这两个术语。 人们常常在两者之间感到困惑。 在本文中,我将详细讨论服务网格和API网关,并讨论何时使用。

网络层刷新

在深入研究服务网格和API网关之前,让我们重新访问网络层。 以下是OSI网络层模型:


进行此更新的原因是,我们将在下一部分中讨论其中的一些层。

服务网格

服务网格是一种管理分布式软件系统中服务到服务通信的技术。 服务网格管理东西向的网络通信。  东西向流量表示数据中心,Kubernetes集群或分布式系统内部的流量。

服务网格包含两个重要组件:

  • 控制平面

  • 数据平面

驻留在应用程序旁边的代理称为数据平面,而协调代理行为的管理组件称为控制平面。


服务网格使您可以将应用程序的业务逻辑与网络,可靠性,安全性和可观察性分开。

网络和流量管理

服务网格允许您执行动态服务发现。 Sidecar代理可以帮助您进行负载平衡和速率限制。 它可以帮助您进行流量拆分,以执行A /  B类型的测试,这对于发布Canary版本很有帮助。

可观察性和可靠性

服务网格支持分布式跟踪,可帮助您进行高级监视(请求数,成功率和响应延迟)和调试。 它甚至具有利用服务间通信来更好地理解通信的能力。

由于服务网格提供了运行状况检查,重试,超时和电路中断,因此可以提高应用程序的基准可靠性。

安全

服务网格允许服务之间的相互TLS,这有助于提高服务到服务通信的安全性。 您还可以将访问控制列表(ACL)实施为安全策略。

真正的服务网格/边车代理支持广泛的服务,并实现L4 / L7流量策略。

市场上有许多可用的服务网格。 以下是其中一些:

  • Istio

  • Linkerd

  • uma

  • consul

您可以在互联网上找到许多比较上面列出的服务网格的文章。

API网关

API网关充当进入集群,数据中心或一组分布式服务的单个入口点。 在网络拓扑中,通常称为南北向流量。 通常,移动客户端属于这种类型的网络流量。

人们最终很有可能最终会使用API网关在同一数据中心内部署的两种产品之间进行通信。 在这种情况下,交通类型可以是东西向。

API网关接收来自客户端的调用,并将其路由到适当的服务。 在这样做的同时,它也可以翻译协议。


使用API网关有很多好处:

  • 抽象:API网关可以抽象其下的微服务的复杂性,并为客户端创建统一的体验

  • 身份验证:API网关可以处理身份验证并将令牌信息传递给服务

  • 流量控制:API网关可以限制入站和出站API流量

  • API监控/获利:如果您打算通过API获利,API网关可以通过提供监视客户端的API请求/响应的功能来帮助您做到这一点

  • 转换:API网关可以帮助转换/转换API请求/响应。 它还可以帮助协议翻译。

API网关通常仅关注L7策略。

API网关的类型

从部署的角度来看,可以使用两种方式使用API网关:

  • 内部API网关:充当一组服务或产品范围的网关

  • Edge API网关:充当外部组织的消费者或移动客户端的网关

市场上有许多API网关。 以下是其中一些:

  • Apigee

  • NGINX的API网关

  • Software AG的API网关

何时使用什么

现在您已经了解了什么是服务网格和API网关,让我们尝试了解何时使用什么。

何时使用服务网格

  • 当您需要在同一产品范围内通过安全性和监视来实现L4 / L7服务通信时

  • 何时可以为每个单个服务实例及其副本部署Sidecar代理

  • 当服务可以共享相同的CA证书以建立安全的通信时(跨各种产品可能无法实现)

何时使用API网关

  • 当您需要通过各种产品的安全性和监视来实现L7服务通信时

  • 当您希望通过/不通过货币化将API公开为产品时

  • 当您想向开发人员提供完整的API生命周期管理时

  • 当您需要翻译服务通信协议时

服务网格和API网关一起

服务网格和API网关很可能可以共存。 下图展示了服务网格和API网关共存的场景:

到此,关于“服务网格和API网关在微服务架构中的作用是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注天达云网站,小编会继续努力为大家带来更多实用的文章!

返回开发技术教程...