Service Mesh基本概念

参考

基本参考这篇文章就可以了:https://zhuanlan.zhihu.com/p/61901608

理解

按我的理解,原本使用SpringCloud封装的微服务Jar包,里面自带了框架层面的feign、ribbon、eurake等组件,支持微服务调用、负载均衡、健康检查、降级熔断等功能。
这就导致业务服务和微服务框架耦合性太强,带来了几个问题:
1.如果你的SpringCloud需要升级,那业务组件也需要升级,很麻烦,这个问题我们碰到很多次了,一些老项目几年没新需求,框架也是老的,在SpringCloud升级之后,总得跟着一起升级。
2.如果你的语言没有微服务框架,就没法融入到微服务集群里,例如用C++、JS开发的服务就没法用。
3.写业务的程序员必须理解微服务框架知识,不然都没法建立工程。

ServiceMesh的设计

而ServiceMesh将框架层面的内容全部拆分出去了,变成和业务服务在同一个虚拟机的守护进程(我们将其称为该业务服务的私人管家),并且代理该业务服务的所有网络请求,然后一个中心管理面板服务管理这些私人管家,以此来达到管理所有业务组件的目标,同时又将管家型工作和业务逻辑解耦。

这种设计基本解决了以上普通微服务的问题,只是一层网络代理会带来性能损耗,多个保姆组件对运维和管理也是一个挑战。

拓扑图

这张图能够很好地说明服务网格的拓扑关系:

posted @ 2023-01-11 11:06  来焕明  阅读(29)  评论(0)    收藏  举报