这篇文章主要介绍“服务网格和API网关在微服务架构中的作用是什么”,在日常操作中,相信很多人在服务网格和API网关在微服务架构中的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”服务网格和API网关在微服务架构中的作用是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
以及如何充分利用两者
如果您从事微服务,那么您可能已经多次听说过这两个术语。 人们常常在两者之间感到困惑。 在本文中,我将详细讨论服务网格和API网关,并讨论何时使用。
网络层刷新
在深入研究服务网格和API网关之前,让我们重新访问网络层。 以下是OSI网络层模型:
进行此更新的原因是,我们将在下一部分中讨论其中的一些层。
服务网格
服务网格是一种管理分布式软件系统中服务到服务通信的技术。 服务网格管理东西向的网络通信。 东西向流量表示数据中心,Kubernetes集群或分布式系统内部的流量。
服务网格包含两个重要组件:
驻留在应用程序旁边的代理称为数据平面,而协调代理行为的管理组件称为控制平面。
服务网格使您可以将应用程序的业务逻辑与网络,可靠性,安全性和可观察性分开。
网络和流量管理
服务网格允许您执行动态服务发现。 Sidecar代理可以帮助您进行负载平衡和速率限制。 它可以帮助您进行流量拆分,以执行A / B类型的测试,这对于发布Canary版本很有帮助。
可观察性和可靠性
服务网格支持分布式跟踪,可帮助您进行高级监视(请求数,成功率和响应延迟)和调试。 它甚至具有利用服务间通信来更好地理解通信的能力。
由于服务网格提供了运行状况检查,重试,超时和电路中断,因此可以提高应用程序的基准可靠性。
安全
服务网格允许服务之间的相互TLS,这有助于提高服务到服务通信的安全性。 您还可以将访问控制列表(ACL)实施为安全策略。
真正的服务网格/边车代理支持广泛的服务,并实现L4 / L7流量策略。
市场上有许多可用的服务网格。 以下是其中一些:
您可以在互联网上找到许多比较上面列出的服务网格的文章。
API网关
API网关充当进入集群,数据中心或一组分布式服务的单个入口点。 在网络拓扑中,通常称为南北向流量。 通常,移动客户端属于这种类型的网络流量。
人们最终很有可能最终会使用API网关在同一数据中心内部署的两种产品之间进行通信。 在这种情况下,交通类型可以是东西向。
API网关接收来自客户端的调用,并将其路由到适当的服务。 在这样做的同时,它也可以翻译协议。
使用API网关有很多好处:
抽象:API网关可以抽象其下的微服务的复杂性,并为客户端创建统一的体验
身份验证:API网关可以处理身份验证并将令牌信息传递给服务
流量控制:API网关可以限制入站和出站API流量
API监控/获利:如果您打算通过API获利,API网关可以通过提供监视客户端的API请求/响应的功能来帮助您做到这一点
转换:API网关可以帮助转换/转换API请求/响应。 它还可以帮助协议翻译。
API网关通常仅关注L7策略。
API网关的类型
从部署的角度来看,可以使用两种方式使用API网关:
市场上有许多API网关。 以下是其中一些:
Apigee
NGINX的API网关
Software AG的API网关
何时使用什么
现在您已经了解了什么是服务网格和API网关,让我们尝试了解何时使用什么。
何时使用服务网格
当您需要在同一产品范围内通过安全性和监视来实现L4 / L7服务通信时
何时可以为每个单个服务实例及其副本部署Sidecar代理
当服务可以共享相同的CA证书以建立安全的通信时(跨各种产品可能无法实现)
何时使用API网关
服务网格和API网关一起
服务网格和API网关很可能可以共存。 下图展示了服务网格和API网关共存的场景:
到此,关于“服务网格和API网关在微服务架构中的作用是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注天达云网站,小编会继续努力为大家带来更多实用的文章!