概述
在分布式系统中跨机房部署的问题一直都令人头疼,机房之间的网络时延较大且不稳定。跨机房部署的问题主要包含两个方面:数据同步以及服务切换。跨机房部署通常有以下三种方案:
a) 集群整体切换
集群整体切换是最为常见的方案,假设某系统部署在两个机房1和2。两个机房保持独立,每个机房部署单独的总控节点,且每个总控节点各有一个备份节点。两个机房部署相同的副本数,一个为主机房(保存主副本),另外一个为备机房。
机房之间的数据同步方式为强同步或者异步:
- 强同步:备机房的数据和主机房保持一致。当主机房出现故障时,除了手工切换,还可以自动切换,即通过分布式锁服务检测主机房的服务,当主机房出现故障时,自动将备机房切换为主机房。
- 异步:备机房的数据总是落后于主机房。当主机房整体出现故障时,有两种选择:要么将服务切换到备机房,忍受数据丢失的风险;要么停止服务,直到主机房恢复为止。这两种方式的选择往往是手工来选择进行切换的。
b) 单个集群跨机房
将单个集群部署到多个机房,允许不同数据分片的主副本位于不同的机房。整个集群只有一个总控节点,同机房1和机房2的所有工作节点保持通信,并由分布式锁服务检测,当总控节点故障,将机房2的备份节点切换为总控节点。
采用这种方式部署,总控节点在执行数据分布时,需要考虑机房信息,即尽量将同一个数据分片的多个副本分布到不同的机房。
c) Paxos选主副本
上述两种方案,总控节点需要和工作节点保持租约,当故障发生时,自动将它上面服务的主副本切换到其他工作节点。
采用Paxos协议选主副本,那么每个数据分片的多个副本构成一个Paxos复制组【比如B1,B2,B3,B4】,当B1出现故障时,其他副本尝试切换为主副本,Paxos协议保证只有一个副本会成功,这样,总控节点和工作节点之间不再需要保持租约。
这种方式降低了了对总控节点的依赖,缺点是工程复杂度太高,很难在线下模拟所有异常情况。
欢迎扫描二维码关注微信公众号 深度学习与数学 [每天获取免费的大数据、AI等相关的学习资源、经典和最新的深度学习相关的论文研读,算法和其他互联网技能的学习,概率论、线性代数等高等数学知识的回顾]
最后
以上就是超级眼神为你收集整理的分布式存储系统学习笔记(一)—什么是分布式系统(7)—跨机房部署的三种方案的全部内容,希望文章能够帮你解决分布式存储系统学习笔记(一)—什么是分布式系统(7)—跨机房部署的三种方案所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复