service mesh与api gateway的关键特征可以帮助我们更好的区分两者。
API Gateway: 将服务作为托管api暴露给外部
api gateway的核心目标是将微服务作为托管的api暴露给外部系统,我们在api gateway层开发api或是边界服务以提供特定的业务功能。
api/边界服务调用下游微服务,并包含业务逻辑的多个服务下游服务组合。
api/边界服务同时需要以弹性的方式调用下游服务,并应用多种稳定性相关模块,例如断路器、超时、负载均衡/故障转移等等。大多数api gateway解决方案均内置以上模块或功能。
api gateway往往同时包含内置的服务发现、分析(指标、监控、分布式日志、分布式跟踪)以及安全。
api gateway常与api管理生态中的一些其他组件协作,例如api商店、api分发门户。
service mesh
那么再看看service mesh有何不同。
我们可以认为service mesh是网络通信基础设施,它允许我们从服务代码中剥离大部分应用网络功能。
在service mesh下,我们处理service-to-service通信时,不需要刻意在服务代码中实现包括断路器、超时等弹性通信功能特性。同样的,service mesh提供服务发现、监控等功能。
api gateway和service mesh
api gateway和service mesh最大的不同在于,api gateway是暴露api/边界服务的关键部分,而service mesh仅仅是一种服务间通信的基础设施,不包含任何业务概念。
image上图说明了api gateway和service mesh的所处。除了上面提到的不同点,api gateway和service mesh之间存在着很多重叠特性,但需要特别注意的是两者所针对的要求和需求不同。
图中service mesh以sidecar形势,与其他服务一起部署,独立于服务的业务功能。
而api gateway托管了所有的api服务,属于业务功能解决方案的一部分。api gateway可能会包含服务间通信的支持,但并不影响api gateway通过service mesh来调用下游服务。
阅读更多
开源PaaS Rainbond原生支持Service Mesh服务网格,用非入侵、透明化的方式解决服务发现和注册、弹性伸缩与负载均衡、容错处理(断路器与限流)、监控与警报、数据存储与共享、日志分析等等微服务架构难题,提供开箱即用、简单强大的微服务体验。
网友评论