提升应用程序可用性的五个关键要点
在构建应用程序时,确保其具备高可用性和可扩展性并非易事。应用程序可能会遭遇各种意外问题,导致部分或全部用户无法正常使用。这些可用性问题常常源于意想不到的地方,有些严重的问题甚至可能由看似微不足道的因素引发。下面将详细介绍提升应用程序可用性的五个关键要点。
1. 以故障为导向进行构建
亚马逊首席技术官沃纳·沃格尔斯曾说:“万物皆会失效。”因此,在构建应用程序和服务时,要做好它们可能会出现故障的准备,并思考如何应对。
- 设计层面 :在系统设计和构建的各个方面,都要考虑可用性问题。运用简单的错误捕获、重试逻辑和断路器等设计模式,能够在错误影响最小功能子集时将其捕获,从而限制问题的范围,确保即使部分应用出现故障,整体仍能提供有用的功能。
- 依赖处理 :当依赖的组件出现故障时,要制定应对策略。对于可恢复的(软)故障和不可恢复的(硬)故障,需采取不同的处理方式。断路器模式在处理依赖故障时非常有用,它可以减少依赖故障对系统的影响。没有断路器,依赖故障可能会降低应用程序的性能,而使用断路器可以在确定依赖恢复之前暂停使用该依赖。
- 客户交互 :当系统的客户组件表现不佳时,要具备应对能力。例如,处理系统的过度负载、限制过多的流量、处理传入的垃圾数据或过多的数据等。有时,拒绝服务攻击可能来自“友好”的源头,如客户应用程序的突然活动激增或错误导致的高请求率。此时,要能够检测到问题并限制请求速率,减少对应用程序的影响。
2. 始终考虑扩展性
当前应
超级会员免费看
订阅专栏 解锁全文

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



