写点什么

东西向和南北向通信的统一

作者:阿泽🧸
  • 2022 年 8 月 03 日
  • 本文字数:993 字

    阅读完需:约 3 分钟

东西向和南北向通信的统一

在微服务的整体架构中,存在着东西向通信和南北向通信两种方式。所谓的东西向通信是解决业务内部各个微服务之间的通信和链路治理;南北向通信解决的是集群和外部的交互问题,具体包含集群服务如何提供给外界访问,以及集群内部如何访问外界的服务。这里可以使用传统数据通信上的概念进行类比。可以认为,对外实现一个业务的所有微服务,构成了一个用户驻地网:东西向通信负责各个用户终端之间的通信,负责将流量引入到具体的终端用户(对应每个微服务),而具体终端的接入链路则实现接入网的功能;南北向通信负责一个独立的子网络和外界的交互,承载了子网络对外交互的全部流量,可以看作骨干链路,实现核心网的功能。


Service Mesh 本身主要是聚焦东西向的微服务内部通信。微服务内部服务通信的特点是流量不太大,QPS 通常来说不太高,对性能总体要求不高,强调的是通信链路的精细化管控能力和稳定性保障能力,如何通过相应的机制减少业务对通信的关注度,给业务提供效率和稳定性支撑。


从通信特性要求上看,南北向通信和东西向通信有着非常大的区别,南北向通信有两个显著的特点。

  • 第一个是流量特别大,需要承载整个业务所有的对外流量,所以 QPS 非常高,对性能有着非常高的要求。

  • 第二个是南北向通信位于业务内网和外部网络之间,需要对业务内网进行保护和拦截,防止非法和异常请求对内网的攻击和影响,因此南北向通信对安全有着非常高的要求,需要不断对安全防控和安全策略进行升级,保护内网业务的安全和稳定性,因此对于南北向通信来说,性能和安全是关键词。


从功能看,东西向通信和南北向通信提供的能力差不多:从通信层面看,都需要关注流量路由和负载均衡;在链路治理方面,都需要关注限流、降级等治理特性。


从上述分析看,在功能层面上,完全可以通过 Istio 实现东西向和南北向通信的统一,基于一套通信基础设施可解决这两个维度的通信问题。当前的主要问题出现在性能上,南北向通信对性能有着非常高的要求,Istio 在性能方面当前还有很多问题需要解决,不能完全满足南北向通信的需求。


单纯从 Istio 的数据平面看,Envoy 在设计上和 Nginx 相比各有千秋,同时 Envoy 的性能也足够出色,当前已经有不少基于 Envoy 的 API 网关解决方案。但综合数据平面和控制平面来看,Istio 在性能方面还有很多需要改进的空间,如果不在架构上进行一定的调整,目前 Istio 还是很难直接胜任南北向通信的性能需求,东西向通信和南北向通信的完全融合,还有很长的路要走。


发布于: 刚刚阅读数: 4
用户头像

阿泽🧸

关注

还未添加个人签名 2020.11.12 加入

还未添加个人简介

评论

发布
暂无评论
东西向和南北向通信的统一_8月月更_阿泽🧸_InfoQ写作社区