以及如何兼得两者的优势人们常常对两者感到困惑。在本文中,我将详细讨论服务网格和API网关,并讨论何时使用它们。网络层刷新在深入研究服务网格和API网关之前,让我们重新访问网络层。以下是OSI网络层模型:进行此更新的原因是我们将在下一节中讨论其中的一些层。服务网格服务网格是一种在分布式软件系统中管理服务间通信的技术。服务网格管理东西向网络通信。东西向流量表示数据中心、Kubernetes集群或分布式系统内的流量。服务网格由两个重要组件组成:控制平面数据平面位于应用程序旁边的代理称为数据平面,而协调代理行为的管理组件称为控制平面。服务网格允许您将应用程序的业务逻辑与网络、可靠性、安全性和可观察性分开。网络和流量管理服务网格允许您执行动态服务发现。Sidecar代理可以帮助您进行负载平衡和速率限制。它可以帮助您进行流量拆分以执行A/B类型测试,这有助于金丝雀发布。可观察性和可靠性ServiceMesh支持分布式跟踪,可帮助您进行高级监控(请求数、成功率和响应延迟)和调试。它甚至能够利用服务间通信来更好地理解通信。由于服务网格提供健康检查、重试、超时和断路,它提高了应用程序的基线可靠性。安全的服务网格允许服务之间的相互TLS,这有助于提高服务到服务通信的安全性。您还可以将访问控制列表(ACL)作为安全策略来实施。真正的服务网格/边车代理支持广泛的服务并实现L4/L7流量策略。市场上有许多可用的服务网格。以下是其中一些:IstioLinkerdumaconsul您可以在互联网上找到许多比较上面列出的服务网格的文章。API网关API网关充当集群、数据中心或一组分布式服务的单一入口点。在网络拓扑中,这通常称为南北流量。通常,移动客户端属于此类网络流量。人们很有可能最终会使用API网关在同一数据中心内部署的两个产品之间进行通信。在这种情况下,流量类型可以是东西向。API网关接收来自客户端的调用并将它们路由到适当的服务。在这样做的同时,它还可以翻译协议。使用APIGateway有很多好处:抽象:APIGateway可以抽象出其下微服务的复杂性,为客户端创建统一的体验身份验证:APIGateway可以处理身份验证并将令牌信息传递给服务流控制:APIGateway可以限制入站和出站API流量API监控/货币化:如果您计划通过API获利,API网关可以通过提供监控来自客户端的API请求/响应的能力来帮助您实现这一点转换:API网关可以帮助转换/转换API请求/响应。它还可以帮助协议翻译。API网关通常只关注L7策略。API网关的类型从部署的角度来看,API网关可以以两种方式使用:内部API网关:充当一组服务或产品范围的网关边缘API网关:充当外部消费者或移动客户端的网关组织市场上有很多API网关。以下是其中一些:ApigeeNGINX的API网关SoftwareAG的API网关何时使用什么现在您了解了什么是服务网格和API网关,让我们尝试了解何时使用什么。何时使用服务网格何时需要L4/L7服务通信以及同一产品范围内的安全和监控何时可以为每个单独的服务实例及其副本部署Sidecar代理何时服务可以共享相同的CA证书何时建立安全通信(跨各种产品可能无法实现)何时使用API网关何时需要启用L7服务通信以及跨各种产品的安全和监控具有完整API生命周期管理的开发人员当需要将服务通信协议翻译在一起时Servicemesh和API网关Servicemesh和API网关很可能共存。下图展示了ServiceMesh和APIGateway的共存场景:
