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

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



