`
whilew
  • 浏览: 21465 次
文章分类
社区版块
存档分类
最新评论

diamond专题(四)—— 容灾机制

 
阅读更多

原文地址:http://rdc.taobao.com/team/jm/archives/1617

大家好,本次为大家带来diamond的容灾机制。 diamond之所以表现的稳定可靠,除了架构简单之外,另一个重要原因是diamond具有一套完备的容灾机制,容灾机制涉及到client和server两部分,主要包括以下几个方面:

1、server存储数据的方式。

server存储数据是“数据库 + 本地文件”的方式,集群间的数据同步我们在之前的文章中讲过(请参考专题二的原理部分),client订阅数据时,访问的是本地文件,不查询数据库,这样即使数据库出问题了,仍然不影响client的订阅。

2、server是一个集群。

这是一个基本的容灾机制,集群中的一台server不可用了,client发现后可以自动切换到其他server上进行访问,自动切换在client内部实现。

3、client保存snapshot

client每次从server获取到数据后,都会将数据保存在本地文件系统,diamond称之为snapshot,即数据快照。当client下次启动发现在超时时间内所有server均不可用(可能是网络故障),它会使用snapshot中的数据快照进行启动。

4、client校验MD5

client每次从server获取到数据后,都会进行MD5校验(数据保存在response body,MD5保存在response header),以防止因网络故障造成的数据不完整,MD5校验不通过直接抛出异常。

5、client与server分离

client可以和server完全分离,单独使用,diamond定义了一个“容灾目录”的概念,client在启动时会创建这个目录,每次主动获取数据(即调用getAvailableConfigInfomation()方法),都会优先从“容灾目录”获取数据,如果client按照一个固定的规则,在“容灾目录”下配置了需要的数据,那么client直接获取到数据返回,不再通过网络从diamond-server获取数据。同样的,在每次轮询时,都会优先轮询“容灾目录”,如果发现配置还存在于其中,则不再向server发出轮询请求。 以上的情形, 会持续到“容灾目录”的配置数据被删除为止。

根据以上的容灾机制,我们可以总结一下diamond整个系统完全不可用的条件:

1、数据库不可用。

2、所有server均不可用。

3、client主动删除了snapshot

4、client没有备份配置数据,导致其不能配置“容灾目录”。

同时满足以上4个条件的概率,在生产环境中是极小的。

以上就是diamond的容灾机制,接下来的专题文章会带大家一起探究diamond的实现细节。

分享到:
评论

相关推荐

    Bootstrap 模板.md

    一些常用的 Bootstrap 模板示例,你可以根据自己的需求选择合适的模板,并进行定制以满足项目需求。Bootstrap 提供了丰富的组件和样式,可以帮助你快速搭建漂亮的网站和 Web 应用程序。 markdown文本,请使用vscode等代码编辑器查看!!!

    工地试验室人员统计表.docx

    工地试验室人员统计表.docx

    安卓音乐播放器应用及其源代码+使用说明(毕设参考)

    安卓音乐播放器应用及其源代码 概述 安卓音乐播放器应用是一款全能型音乐播放器,允许你在安卓设备上听自己的所有歌曲,并且可以免费流播。需要明确的是,这些免费歌曲绝不是非法的。它们是你可以在任何地方免费聆听的歌曲。 安卓音乐播放器让用户可以从自己的音乐库中选择想要播放的歌曲,然后在手机上播放。当你离开用户界面时,音乐不会停止。在你能做到这一点之前,你的电脑上需要安装一些东西。这样当你启动应用时,它会从你的设备中选择歌曲并播放。 音乐播放器让你可以快速轻松地管理和移动所有音乐文件。这个播放器可以播放大多数类型的mp3、midi、wav、flac raw和aac文件。它还可以播放其他类型的音频文件。音乐可以按照类型、专辑、艺术家、歌曲和文件夹进行分类,以便你可以快速找到想要的内容。 安卓音乐播放器:项目详情与技术 项目标题:安卓音乐播放器源代码 摘要:安卓音乐播放器应用让你以多种方式管理和播放你的数字音乐。 项目类型:移动应用 技术:Android Studio 数据库:SQLite 项目输出 安卓音乐播放器应用输出 如何运行安卓音乐播放器应用及其源代码

    《导师训练营》互联网项目的天花板,小白月入2w.txt

    《导师训练营》互联网项目的天花板,小白月入2w

    ASP基于WEB网上聊天室设计(源代码+论文)【ASP】.zip

    ASP基于WEB网上聊天室设计(源代码+论文)【ASP】

    ASP.net 销售管理系统项目源代码+使用说明

    ASP.net 中的销售管理系统项目是什么? ASP.net 中的销售管理系统项目,通常称为销售管理软件或销售 CRM,是一种旨在简化销售流程的软件应用程序。 销售人员可以利用该系统来维护联系、跟踪交易并通过委派管理工作来节省办公桌时间。 这是基本模型,但当今的销售管理系统要复杂得多,结合了广泛的数据,例如社交资料、在线活动、与网络中其他成员的关系以及其他特征。 当人工智能等新技术应用于这些数据时,销售人员可以获得适合其特定业务的预测和建议,从而建立更智能、切合主题的客户关系。 ASP.net 中销售管理系统的优点 通过减少管理活动和集中客户信息,销售管理系统可以提高团队效率。 该系统使销售经理能够将职责分配给适当的销售人员,优先考虑良好的销售线索,并改进预测和分析。 该系统使用 ASP.net的主要优点: 更精细的优先级划分——有效的销售 CRM 可帮助经理确定客户操作的优先级并将其分配给适当的销售代表。例如,根据对客户需求的分析,系统可以帮助员工定制针对客户的促销或捆绑服务。它还会建议和过滤潜在客户,以帮助您专注于最有可能为每种产品带来收入

    汽车起重机动力系统保养.doc

    汽车起重机动力系统保养.doc

    Java 员工管理系统项目源代码(可做毕设项目参考)

    Java 员工管理系统项目是一个基于 Java 编程语言开发的桌面应用程序,旨在管理员工的信息、津贴、扣除和薪资等功能。该系统通过提供结构和工具集,使公司能够有效地管理其员工数据和薪资流程。 系统特点 员工管理:管理员可以添加、查看和更新员工信息。 津贴管理:管理员可以添加和管理员工的津贴信息。 扣除管理:管理员可以添加和管理员工的扣除信息。 搜索功能:可以通过员工 ID 搜索员工详细信息。 更新薪资:管理员可以更新员工的薪资信息。 支付管理:处理员工的支付和生成支付记录。 模块介绍 员工管理模块:管理员可以添加、查看和更新员工信息,包括员工 ID、名字、姓氏、年龄、职位和薪资等。 津贴管理模块:管理员可以添加和管理员工的津贴信息,如医疗津贴、奖金和其他津贴。 扣除管理模块:管理员可以添加和管理员工的扣除信息,如税收和其他扣除。 搜索功能模块:可以通过员工 ID 搜索员工详细信息。 更新薪资模块:管理员可以更新员工的薪资信息。 支付管理模块:处理员工的支付和生成支付记录 可以作为毕业设计项目参考

    基于图像的机器人视觉伺服系统研究

    基于图像的机器人视觉伺服系统研究

    SLAM十四讲 Windows版本编译 的ceres、g2o以及使用方法

    slam 的ceres

    # 脉搏报警 1602(1).zip

    # 脉搏报警 1602(1).zip

    ASP某企业网络公寓管理系统的设计与实现(源代码+论文)【ASP】.zip

    ASP某企业网络公寓管理系统的设计与实现(源代码+论文)【ASP】

    bootstrap模板教程.docx

    bootstrap模板

    单机成本核算统计表.docx

    单机成本核算统计表.docx

    his_equal.v

    his_equal.v

    0基本系统的学习-短视频剪辑,剪辑软件-整套33节-无水印教程,全覆盖-视频剪辑作用.txt

    0基本系统的学习-短视频剪辑,剪辑软件-整套33节-无水印教程,全覆盖-视频剪辑作用

    360数字安全:2024年3月勒索软件流行态势分析报告

    勒索软件传播至今,360 反勒索服务已累计接收到数万勒索软件感染求助。随着新型勒索软件的快速蔓延,企业数据泄露风险不断上升,勒索金额在数百万到近亿美元的勒索案件不断出现。勒索软件给企业和个人带来的影响范围越来越广,危害性也越来越大。360全网安全大脑针对勒索软件进行了全方位的监测与防御,为需要帮助的用户提供 360 反勒索服务。 2024年3月,全球新增的活跃勒索软件家族有RAWorld、RedRansomware、Kill Security等,均为双重勒索病毒。 本月针对国内主流云服务器进行的勒索攻击比例大幅提高,从大量的云服务器用户反馈的案例看,相关系统均未安装 360终端安全产品进行勒索防护,被攻击的直接原因主要是 Web 服务漏洞、数据库弱口令登录、远程桌面弱口令登录。

    风险隐患排查治理清单.xls

    风险隐患排查治理清单.xls

    职工合理化建议技术革新项目申报表.doc

    职工合理化建议技术革新项目申报表.doc

    ASP基于BS的家教交流平台的实现(源代码+论文)【ASP】.zip

    ASP基于BS的家教交流平台的实现(源代码+论文)【ASP】

Global site tag (gtag.js) - Google Analytics