上QQ阅读APP看书,第一时间看更新
2.4 服务网格
2017年年底,服务网格(Service Mesh)依托其非侵入式特性在微服务技术中崭露头角,作为微服务间通信的基础设施层,Buoyant公司的CEO William Morgan在文章WHAT'S A SERVICE MESH? AND WHY DO I NEED ONE?[1]中解释了什么是服务网格,为什么云原生应用需要使用服务网格。
服务网格通常通过一组轻量级网络代理实现,这些代理与应用程序一起部署,而无须感知应用程序本身,图2-3为服务网格的架构图。
图2-3 服务网格架构图
可以看出Sidecar运行在服务旁,并对服务透明。由于所有通过服务的流量均会经过Sidecar,因此Sidecar可实现流量控制功能,如服务发现、负载均衡、智能路由、故障注入、熔断器、TLS终止等。服务网格的出现将微服务治理从应用自身中抽离出来,这种方式极大降低了代码耦合度,使得微服务治理不再复杂。
目前服务网格以Istio为代表,欲知更多详细信息可参考随书附带的补充资料[2]。
[1] https://buoyant.io/2020/10/12/what-is-a-service-mesh/。
[2] https://github.com/brant-ruan/cloud-native-security-book/tree/main/appendix/203_服务网格 .pdf。