Kasun Indrasiri https://medium.com/microservices-in-practice/service-mesh-vs-api-gateway-a6d814b9bf56
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 仅仅是一种服务间通信的基础设施, 不包含任何业务概念.
上图说明了 api gateway 和 service mesh 的所处. 除了上面提到的不同点, api gateway 和 service mesh 之间存在着很多重叠特性, 但需要特别注意的是两者所针对的要求和需求不同.
图中 service mesh 以 sidecar 形势, 与其他服务一起部署, 独立于服务的业务功能.
而 api gateway 托管了所有的 api 服务, 属于业务功能解决方案的一部分. api gateway 可能会包含服务间通信的支持, 但并不影响 api gateway 通过 service mesh 来调用下游服务.
来源: http://www.tuicool.com/articles/6F7JFfR