Service Mesh技术
服务啮合(Service Mesh)是一种为了保证“从服务到服务”的安全、快速和可靠的通信而产生的基础架构层。
在云原生架构下,服务啮合层的提出,可以帮助开发者将服务的交互通信问题与微服务内部的业务问题隔离开来,使之专注于各自的领域。
微服务的SideCar模式
SideCar的本意是边车,它在客户端和服务端之间增加了一个服务代理,而这个代理是以应用组件的模式与微服务应用一起打包部署在容器或者单独进程中的。
边车模式类似连接到摩托车的边车,起到辅助和支持的作用。这种模式通过增加了边车(SideCar),实现边车组件完成一些非功能公共服务需求(如服务发现、熔断)。它的最大好处就是可以集成异构系统。
SideCar模式并没有在微服务架构中大面积应用,因为这种模式仅仅作为一种过渡,或者说解决了部分异构系统的服务发现、服务负载等局部问题,但它的局限性在于本质上它还是为特定的基础设施而设计的,无法满足兼容性。
Service Mesh的技术前景
Service Mesh解决了SideCar模式的根本问题和局限性。
Service Mesh是一种网络模型和基础设置,类似TCP/IP通信协议,服务之间通信使用Service Mesh,不再像SideCar被视为一个单独的组件,而是强调网络。
Service Mesh作为通用协议的控制组件,不仅关注数据面的消息转发,还增加了控制面,实现对流量的控制和管理。
Service Mesh的概念Service Mesh可以总结为一个专门处理服务通信的基础设施层。
它的职责是在由云原生应用组成服务的复杂拓扑结构下进行可靠的请求传送。一个典型的Service Mesh架构由服务代理(数据平面)和管理与配置这些代理的“控制平面”组成。Service Mesh的控制平面如下图所示。
Service Mesh的优势
相比传统的微服务框架,Service Mesh有以下优势。
服务网格将SDK的服务治理能力从业务中剥离出来,拆分为独立进程,通过拦截标准协议和对网络通信层的控制实现服务治理,实现服务治理与业务的分离和解耦。
传统的微服务架构存在技术栈、遗留系统改造等约束条件限制,而Service Mesh可以统一管理这些服务,减少了维护和改造的成本。
服务网格技术是一个专用的基础设施层,它可以更有效地处理服务的治理需求,如路由的灰度发布、安全认证、加密等特性。
Service Mesh的局限
Service Mesh不是“银弹”,它的局限与优势一样明显。ServiceMesh本身也带来了更多的复杂性。
服务网格技术会极大地增加开发和运维的复杂性。
服务网格技术相对不易做定制化开发和扩展,缺少了开发的灵活性。
服务网格技术缺少业务特性支持,如分布式事务等特性还没有相应的解决方案。
服务网格技术会给业务带来一定的延迟开销,对于性能有极致要求的场景,这样的延迟在大流量场景下,还会带来用户体验的下降。
服务网格技术的运行能力将成为整个网络和所有应用的瓶颈。
本文给大家讲解的内容是微服务发展趋势,Service Mesh技术
领取专属 10元无门槛券
私享最新 技术干货