分布式系统集群中各个机器都是通过网络来链接的(主要包括因特网和同数据中心的局域以太网)。
网络传输中会出现很多问题:
- 请求可能会丢失
- 请求可能会因为网络阻塞而在等待队列中
- 服务端可能因为故障崩溃
- 服务端可能处于短暂无法响应的状态
- 响应可能会丢失
-
响应可能会因为网络阻塞而在等待队列中
网络中可能存在的各种问题
所有的问题对于客户端而言,可能只会有一个超时错误。这时一般的策略是进行多几次尝试(但因为不知道具体故障是什么,多几次尝试可能还会导致失败)。
在保证网络传输可靠性和低延迟上,AWS和Goole Cloud Platform等大型服务提供商一般都会使用企业专线的解决方案。网络故障应该在系统一开始设计的时候就考虑在内,如何应对故障,如何在故障之后恢复等等。