云工程的关键要点与实践策略
1. 云端网络故障处理
在云计算时代,网络故障尤其是临时性故障是不可避免的。这些故障形式多样,可能源于服务器、路由器、负载均衡器、连接池、软件应用、人为错误以及 DNS 等。因此,在分布式系统环境中为云编写软件应用时,需要格外谨慎,并具备弹性思维,让应用能够承受这些故障而不影响客户体验。
1.1 常见处理方法
常见的处理网络故障的方法包括使用超时、重试以及带退避和抖动的重试。
- 超时(Timeout) :简单来说,超时指的是允许连接闲置的最长时间。如果没有设置超时,再加上与其他服务的连接问题,往往会导致延迟增加和资源耗尽。作为云工程师,应该为所有网络调用设置超时,以减少故障的影响范围。确定合适的超时时间是关键,一般可以参考过去服务请求的持续时间(延迟)来找到一个可接受的基线,这个过程通常需要多次迭代才能确定一个可持续的数值。
- 重试(Retries) :重试是应对临时性故障的有效方法。由于云环境中请求的特性,超时后的后续请求通常会成功。但无上限的重试可能会导致对自己系统的 DDoS 攻击,因此云工程师要谨慎使用。而且,并非所有网络调用都适合设置重试,需要有所选择。
- 退避(Backoff) :退避是一种优雅地进行重试的技术,可避免后端系统过载。
- 线性退避(Linear Backoff) :在调用之间添加固定延迟进行重试,这种方法简单易实现,能处理大多数临时性故障,但当下游服务长时间受影响时,固定速率的重试会继续使服务过载。
-
超级会员免费看
订阅专栏 解锁全文
1966

被折叠的 条评论
为什么被折叠?



