您的位置:首页 > 其它

分布式存储系统学习笔记(一)—什么是分布式系统(7)—跨机房部署的三种方案

2018-01-29 18:30 267 查看
在分布式系统中跨机房部署的问题一直都令人头疼,机房之间的网络时延较大且不稳定。跨机房部署的问题主要包含两个方面:数据同步以及服务切换。跨机房部署通常有以下三种方案:

a)   集群整体切换

集群整体切换是最为常见的方案,假设某系统部署在两个机房1和2。两个机房保持独立,每个机房部署单独的总控节点,且每个总控节点各有一个备份节点。两个机房部署相同的副本数,一个为主机房(保存主副本),另外一个为备机房。

机房之间的数据同步方式为强同步或者异步:

-    强同步:备机房的数据和主机房保持一致。当主机房出现故障时,除了手工切换,还可以自动切换,即通过分布式锁服务检测主机房的服务,当主机房出现故障时,自动将备机房切换为主机房。

-    异步:备机房的数据总是落后于主机房。当主机房整体出现故障时,有两种选择:要么将服务切换到备机房,忍受数据丢失的风险;要么停止服务,直到主机房恢复为止。这两种方式的选择往往是手工来选择进行切换的。

b)  单个集群跨机房

将单个集群部署到多个机房,允许不同数据分片的主副本位于不同的机房。整个集群只有一个总控节点,同机房1和机房2的所有工作节点保持通信,并由分布式锁服务检测,当总控节点故障,将机房2的备份节点切换为总控节点。

采用这种方式部署,总控节点在执行数据分布时,需要考虑机房信息,即尽量将同一个数据分片的多个副本分布到不同的机房。

c)   Paxos选主副本

上述两种方案,总控节点需要和工作节点保持租约,当故障发生时,自动将它上面服务的主副本切换到其他工作节点。

采用Paxos协议选主副本,那么每个数据分片的多个副本构成一个Paxos复制组【比如B1,B2,B3,B4】,当B1出现故障时,其他副本尝试切换为主副本,Paxos协议保证只有一个副本会成功,这样,总控节点和工作节点之间不再需要保持租约。

这种方式降低了了对总控节点的依赖,缺点是工程复杂度太高,很难在线下模拟所有异常情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: