构建永不停止的分布式系统:容错、恢复与请求处理策略
构建容错系统的基础
要构建一个容错系统,至少需要两台计算机。Erlang 内置的分布式机制、无共享内存以及异步消息传递,为在这些计算机之间复制数据奠定了基础。即便其中一台计算机崩溃,另一台也能接管工作。而且,单节点系统所采用的错误处理、故障隔离和自我修复技术,在多节点系统中同样能发挥巨大作用,这使得我们可以在集群中透明地分布进程,并使用与单节点相同的故障检测技术。相较于使用其他语言编写处理语义差距的库,利用 Erlang 的编程模型创建容错系统更加容易且可预测。不过,需要注意的是,仅依靠 Erlang 本身并不能直接构建出容错系统,但它的编程模型可以,而且所需的工作量远远小于其他现有技术。
系统的可用性
系统的可用性指的是在特定时间段内系统的正常运行时间。高可用性意味着系统的停机时间非常少,包括软件维护和升级期间。虽然有人声称实现了九个九(99.9999999%)的可用性,但这种情况往往难以持久。九个九的可用性意味着每年仅有 31.6 毫秒的停机时间,这比眨眼的时间还要短得多。在实际应用中,使用 Erlang/OTP 通常可以实现 99.999% 的可用性,即每年的停机时间略超过 5 分钟,这其中还包括了升级和维护时间。
高可用性的实现依赖于系统不存在单点故障,并且具备容错性、恢复能力和可靠性。即便系统部分出现故障,仍能提供一定程度的服务,尽管服务水平可能会低于正常水平。接下来,我们将详细探讨这些特性对于正在构建的系统意味着什么。
系统的容错性
容错性是指系统在出现故障时能够做出可预测响应的能力。故障可能由软件错误(如进程因 bug 或状态损坏而崩溃)、网络或硬
超级会员免费看
订阅专栏 解锁全文
227

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



