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

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



