云计算应用与范式解析
1. 基于状态机模型的协调:ZooKeeper
1.1 云计算协调需求
云计算的弹性要求具备在多个系统间分配计算和数据的能力,而这些系统之间的协调是分布式环境中的关键功能。协调模型取决于具体任务,如数据存储协调、多活动编排、事件触发前阻塞活动、为下一步行动达成共识或错误后恢复等。需要协调的实体可以是一组云服务器上甚至多个云上运行的进程。运行关键任务的服务器通常会进行复制,当主服务器出现故障时,备份服务器能自动继续执行任务,但前提是备份服务器处于热备用模式,即与主服务器始终保持相同状态。
1.2 现有协调方案问题
以分布式数据存储模型为例,数据访问由代理进行控制,但代理可能成为单点故障,因此多代理架构更优。这些代理应保持相同状态,以便在其中一个代理出现故障时,客户端能无缝切换到其他代理继续访问数据。再如广告服务,涉及大量云服务器,各服务器承担数据库访问、监控、计费、事件日志记录等任务。目前通过共享配置文件协调这些活动的方案是静态的,任何更改都需要更新和重新分发配置文件,且在系统故障时无法从服务器崩溃前的状态进行恢复。
1.3 ZooKeeper解决方案
1.3.1 基本原理
将代理视为确定性有限状态机,按顺序执行客户端发送的命令。当涉及多个代理时,所有代理必须同步并执行相同的状态机命令序列,可通过实现Paxos共识算法来确保。ZooKeeper是基于此模型的分布式协调服务,具有高吞吐量和低延迟的特点,适用于大规模分布式系统。它是开源软件,用Java编写,支持Java和C语言绑定,相关信息可在http://zookeeper.apache.org/获取。
超级会员免费看
订阅专栏 解锁全文
30

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



