当前位置:网站首页>东西向和南北向通信的统一
东西向和南北向通信的统一
2022-08-03 21:22:00 【InfoQ】
在微服务的整体架构中,存在着东西向通信和南北向通信两种方式。所谓的东西向通信是解决业务内部各个微服务之间的通信和链路治理;南北向通信解决的是集群和外部的交互问题,具体包含集群服务如何提供给外界访问,以及集群内部如何访问外界的服务。这里可以使用传统数据通信上的概念进行类比。可以认为,对外实现一个业务的所有微服务,构成了一个用户驻地网:东西向通信负责各个用户终端之间的通信,负责将流量引入到具体的终端用户(对应每个微服务),而具体终端的接入链路则实现接入网的功能;南北向通信负责一个独立的子网络和外界的交互,承载了子网络对外交互的全部流量,可以看作骨干链路,实现核心网的功能。
Service Mesh本身主要是聚焦东西向的微服务内部通信。微服务内部服务通信的特点是流量不太大,QPS通常来说不太高,对性能总体要求不高,强调的是通信链路的精细化管控能力和稳定性保障能力,如何通过相应的机制减少业务对通信的关注度,给业务提供效率和稳定性支撑。
从通信特性要求上看,南北向通信和东西向通信有着非常大的区别,南北向通信有两个显著的特点。
- 第一个是流量特别大,需要承载整个业务所有的对外流量,所以QPS非常高,对性能有着非常高的要求。
- 第二个是南北向通信位于业务内网和外部网络之间,需要对业务内网进行保护和拦截,防止非法和异常请求对内网的攻击和影响,因此南北向通信对安全有着非常高的要求,需要不断对安全防控和安全策略进行升级,保护内网业务的安全和稳定性,因此对于南北向通信来说,性能和安全是关键词。
从功能看,东西向通信和南北向通信提供的能力差不多:从通信层面看,都需要关注流量路由和负载均衡;在链路治理方面,都需要关注限流、降级等治理特性。
从上述分析看,在功能层面上,完全可以通过Istio实现东西向和南北向通信的统一,基于一套通信基础设施可解决这两个维度的通信问题。当前的主要问题出现在性能上,南北向通信对性能有着非常高的要求,Istio在性能方面当前还有很多问题需要解决,不能完全满足南北向通信的需求。
单纯从Istio的数据平面看,Envoy在设计上和Nginx相比各有千秋,同时Envoy的性能也足够出色,当前已经有不少基于Envoy的API网关解决方案。但综合数据平面和控制平面来看,Istio在性能方面还有很多需要改进的空间,如果不在架构上进行一定的调整,目前Istio还是很难直接胜任南北向通信的性能需求,东西向通信和南北向通信的完全融合,还有很长的路要走。
边栏推荐
- Several difficult problems in DDD
- 解决npm -v查看npm版本出现npm WARN config global `--global`, `--local` are deprecated. Use `--location报错
- nxp官方uboot移植到野火开发板PRO(修改LCD部分和网络部分)
- 15 years experience in software architect summary: in the field of ML, tread beginners, five hole
- C. Divan and bitwise operations
- 好朋友离职了,一周面试了20多场,我直呼内行
- 手动输入班级人数及成绩求总成绩和平均成绩?
- NAACL 2022 | 具有元重加权的鲁棒自增强命名实体识别技术
- 剑指 Offer 07. 重建二叉树
- Nacos配置文件管理、微服务获取Nacos配置文件
猜你喜欢
随机推荐
template string
nxp官方uboot移植到野火开发板PRO(无任何代码逻辑的修改)
详解虚拟机!京东大佬出品 HotSpot VM 源码剖析笔记(附完整源码)
LeetCode_位数统计_中等_400.第 N 位数字
卷起来!阿里高工携 18 位高级架构师耗时 57 天整合的 1658 页面试总结
研究Fabric中Etcd的Raft应用
字节跳动软件测试岗,前两面过了,第三面HR天坑,结局透心凉...
手动输入班级人数及成绩求总成绩和平均成绩?
图神经网络怎么入门?一文带你了解图神经网络入门路径-GNN入门
系统运维系列 之CSV文件读取时内容中包含逗号的处理方法
What is the role and difference between buildscript and allprojects?
2022/08/03 学习笔记 (day23)多线程(补充)
不专业面试官的经验总结
小朋友学C语言(1):Hello World
《QDebug 2022年7月》
XSS practice - cycle and two cycle problem at a time
B. Paranoid String
敏捷交付的工程效能治理
解决This application failed to start because no Qt platform plugin could be initialized的办法
461. 汉明距离


![[3D检测系列-PV-RCNN] PV-RCNN论文详解、PV-RCNN代码复现、包含官网PV-RCNN预训练权重及报错问题](/img/81/c929864440dc36238b3cb1deb9f112.png)






