- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
提及分布式key-value存储系统,Memcached, Voldemort, Cassandra,包括淘宝最近开源,我们一直在使用的Tair系统,相信大家都不会觉得陌生。本文会从Tair入手,介绍分析一下传统分布式键-值存储系统的原理,架构和使用技术。错误之处,还望大家指正。先看一下Tair的架构:???乍一看,会发现Tair的系统架构和TFS一样,都基于了Google的GFS设计,主要包括三部分:??其中ConfigServer主要负责管理维护DataServer以及和Client端的部分通信;DataServer则是存储对象的地方,数据的增/删/更新都在这里进行;Client端向服务器请求插入/删除/更新数据;看完上面的介绍,你可能会有以下几个疑问:1.configServer的真正工作是什么?2. DataServer如何存储数据?3. Client端只需要和dataServer通信吗?4. 如何实现分布式?关于上述第四点如何实现分布式键-值存储系统,我们又要从分布式系统CAP要求出发:数据一致性,系统可用性,系统分区宽容度(说白了就是如何解决分布式下Server端机器的增减和容错问题)。这几个问题才是分布式应用中最棘手最重要的问题。接下来,依据个人的理解,结合Tair相关知识,对上述问题做一下介绍。首先,tair中的configServer在物理上是以Master-Slaver形式部署,作用大家都很清楚,在Master不可用或者宕机的时候,slaver转为master对外提供服务。那么是不是configServer不能对外部提供就说明所有的客户端都不再可用?答案是否定的,因为configServer在tair中扮演的是一个非常轻量级的角色,如何理解?为解决这个问题,我们需要解决另外一个问题,如何保证来自客户端的数据在tair中均匀的分布,也就是如何对dataServer进行负载均衡,另外,如何保证dataServer的数据不会失效?一个简单的模型就是取模,通过对key的hash值对机器个数取模,将其存储到余数对应的机器上。比如有a,b,c,d四个数据,3台机器,hash取3模后a,c存储到机器1,b存储到机器2,d存储到机器3上。貌似我们已经解决了问题。经过hash和取模操作后,在大数据量情况下,最后数据在三台机器上的分布肯定是比较均匀的,达到负载均衡的目的了?但是,分布式环境下,当机器量比较多时总是不能避免新机器加入或者某台正在使用的机器不可用了,如果是某台机器不可用,那来自客户端对它的所有请求都会命中失效;这个时候唯一的办法就是将所有的数据重新hash分配,因为取模分母变化了(假设你这个时候对所有数据是有备份的),如果数据量非常大,此项工作也是极其浪费时间的,客户端不可服务时间加长;如果是因为数据量增大,需要新增机器到这个集群中,我们面临的问题一样头疼无助。问题在哪里?因为我们每次取模的单位是机器个数,而机器个数是在不停变化的。所以简单的解决方案就是不要以机器个数取模,取一个恒定不变的值,但是如何应对动态变化的数据?又如何将数据与机器对应起来呢?二次转换是不可避免的了,看来这个解决方案不太可行。到这里,可能你会问,memcached,cassandra是如何处理这种问题的呢?答案是Consistent Hashing:一致性hash简单的说就是把数据对象和服务器(ip or name)都映射到一个32位的数值空间,即0~232-1,然后将这个范围首尾相连,组成一个圆环。这样,无论是数据还是机器都被映射到如下的圆环上。然后以每个数据为起点,沿顺时针方向找到离其最近的下一个服务器节点,那么这个数据就存储到这台机器上面;一致性,简单理解就是数据和服务器同时hash。如下图所示???然后,假设node2不可用,按照上述原则,只需要将node1和node2之间的数据迁移到node4上即可;如果在node2和node4之间添加一个节点node5,,只需要将node4和node5之间的数据迁移到node5上,这样,一来保证其他所有结点都是可用的(当然如果要保证当前正在迁移的节点也可用,只需要保证在迁移完成之前数据不删除即可);另外一方面,我们需要迁移的数据量只是其中的一小部分而已,对性能要求不再那么高。然而,当前这个模型还是存在一个问题,如何保证数据在各个节点上分布平衡?一种完善方案是对每个节点设置多个虚拟的结点,以其ip+后缀hash均匀映射到圆环的各处。这样原本可能存储很多数据的节点就有可能被虚拟节点分成,从而达到一定的数据平衡。?????? Consistent Hash实现其实不复杂,可以参照以下例子:?[java]view plaincopyprint?import?java.util.Collection;??i
您可能关注的文档
- 第六章 ARM复习资料.doc
- 计算机操作系统(考点例题整理)要领.doc
- 第十一章 计算机网络连接基础知识.docx
- 统计学原理第五节习题.doc
- Matlab产生信号方法.doc
- 地理实体数据制作技术探讨资料.doc
- MBR、主引导扇区,主分区、扩展分区、逻辑分区,活动分区、引导分区、系统分区、启动分区区别详解.doc
- 导购培训流程资料.doc
- proe怎样建立定向视图.doc
- 驱动程序原理_附件.doc
- 2025年金融风险管理师2008年金融危机中的收益率曲线异常变动分析专题试卷及解析.pdf
- 2025年测绘师地理空间大数据可视化平台架构专题试卷及解析.pdf
- 2025年测绘师地壳形变监测中的参考系统稳定性分析专题试卷及解析.pdf
- 2025年春季“开学第一课”活动方案.docx
- 2025年测绘师测量机器人自动化监测系统数据处理专题试卷及解析.pdf
- 2025年金融风险管理师巴塞尔协议一操作风险初步认识专题试卷及解析.pdf
- 2025年测绘师动态GPS测量系统硬件组成与功能专题试卷及解析.pdf
- 2025年测绘师测绘项目技术设计与书编写专题试卷及解析.pdf
- 2025年测绘师测绘项目合同变更的成因、条件与程序专题试卷及解析.pdf
- 2025年测绘师不动产测量规范与界址点测量专题试卷及解析.pdf
最近下载
- 毕业设计小型气动冲压机设计.docx VIP
- DB35/T 158.3-2001菲律宾蛤仔标准综合体 采苗和培育技术规范.pdf VIP
- 2024年全国统一高考数学试卷(新高考Ⅰ)[含答案].doc VIP
- 人教版六年级上册数学第4单元比附加题 课内提升(含解析).docx VIP
- (完整版)PHQ-9抑郁症筛查量表.doc VIP
- 《汽车智能座舱语音分级与测评方法》.pdf VIP
- 第一章引言.doc
- 2025年年级上学期期末数学试题(华东师大版B卷)(含解析) .pdf VIP
- 浙江省城市桥梁隧道运行安全风险防控导则(试行).pdf VIP
- 2025年铜包铝镁线行业研究报告及未来发展趋势预测.docx
有哪些信誉好的足球投注网站
文档评论(0)