分布式系统架构:技术栈详解与快速进阶
上QQ阅读APP看书,第一时间看更新

1.4 分布式架构设计难点

1.4.1 网络因素

由于服务和数据分别部署在不同的机器上,它们之间的交互通信会存在如下问题。

1)网络延迟。延迟是指在传输介质中传输所用的时间,如部署在同一个机房,网络I/O传输相对较快,但是很多公司为了增加系统的可用性,有多套机房(线上、线下),此时会面临跨机房、跨网络传输等情况。尤其是跨IDC,其网络I/O会存在不确定性,出现延迟、超时等情况,虽然可以通过换网卡解决宽带瓶颈,但不能从根本上解决物理延迟。由于这些现象会给整个设计带来整体性的难点,我们在做分布式架构设计的同时需要考虑这些要素,并且提供相关高效解决方案,从而规避此问题。

  • 由于分布式系统调用会出现失败、超时等情况,方案设计时需考虑以上场景,提供重试功能,保证请求的完整性。
  • 传输内容体过大、业务链条太长也会导致网络I/O传输阻塞,此时我们可以精简传输内容,优化业务链条,如通过同步转异步、数据压缩等方式避免阻塞。

2)网络故障。若出现网络故障问题,可以先了解数据是以什么协议方式在网络中传输导致丢包、错乱,然后采用比较稳定的TCP网络协议进行传输。