
获得徽章 5
- 在微服务的整体架构中,存在着东西向通信和南北向通信两种方式。
所谓的东西向通信是解决业务内部各个微服务之间的通信和链路治理;南北向通信解决的是集群和外部的交互问题,具体包含集群服务如何提供给外界访问,以及集群内部如何访问外界的服务。
这里可以使用传统数据通信上的概念进行类比。可以认为,对外实现一个业务的所有微服务,构成了一个用户驻地网:东西向通信负责各个用户终端之间的通信,负责将流量引入到具体的终端用户(对应每个微服务),而具体终端的接入链路则实现接入网的功能;南北向通信负责一个独立的子网络和外界的交互,承载了子网络对外交互的全部流量,可以看作骨干链路,实现核心网的功能。展开赞过评论1 - 第一代Service Mesh采用Sidecar模式,只有数据平面代理,没有控制平面,数据平面代理直接负责和其他外部系统进行交互,通过Sidecar模式,将通信和通信链路治理功能从微服务中剥离出来,实现了通信基础设施的下沉和服务化。这里也体现了架构解耦的思想,通过解耦减少了微服务的负担。
但Sidecar模式下的Service Mesh有一个突出的问题,即将通信和通信链路治理的所有功能都放到这个代理服务中,导致数据平面代理很重,并且由于承载了太多的特性和功能,使得数据平面代理的更新和修改会特别频繁,而频繁的更新和升级会导致代理服务容易出问题,影响代理服务的稳定性。同时,Service Mesh模式下,数据平面代理承载了微服务通信的全部流量,对稳定性要求极高,这个服务的任何故障都会对整个系统的稳定性产生很大的影响。为了解决上述频繁升级和稳定性之间的矛盾,令策略和配置决策逻辑从代理服务中脱离出来,形成了独立的控制平面,这就是第二代Service Mesh。
第二代Service Mesh最重要的标志就是控制平面和数据平面分离,所有的代理服务都由控制平面掌控,通过控制平面可以控制整个系统,从而提供了强大的控制能力和策略能力;同时将具体的控制逻辑从数据平面移除,简化了数据平面的设计,并且数据平面不需要和外部系统进行交互,只聚焦在变更频率很低的流量路由和转发逻辑上,这提升了数据平面的稳定性。
--《service mesh微服务架构设计》展开评论点赞