分布式缓存服务器设计原理.docx_第1页
分布式缓存服务器设计原理.docx_第2页
分布式缓存服务器设计原理.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式缓存服务器设计原理 1.数据是如何被分布到多个服务器上的?(一致性哈希算法)假设有n台服务器,计算这n台服务器的IP地址的哈希值,把这些哈希值从小到大按顺时针排列组成一个“服务器节点环”,客户端需要存储一系列的“键值对”到这些服务器上去,计算这些“键”的哈希值,看看这些“键”的哈希值落在“服务器环”的哪些区间,如下图所示:根据上图示意,数据将被存储在“顺时针方向上的下一个服务器节点”读取数据时,也是先根据“键”的哈希值,找到这个服务器节点,再向这个节点索取数据。2.数据如何均匀的分布?(虚拟服务器)假设服务器数量较少,很可能造成有些服务器存储的数据较多、承担的压力较大,有些服务器就比较空闲。这时就要把一台服务器虚拟化成多台服务器,具体的操作办法:在计算服务器对应的哈希值时可以在IP地址字符串加多个“尾缀”比如:10.0.0.1#110.0.0.1#210.0.0.1#3.这样,一台物理服务器就被虚拟化成多台服务器,对应“服务器环”上的多个节点。3.如何实现数据的热备份?以顺时针方向看“服务器环”当有客户端把数据存储在第1台服务器上后,第1台服务器负责把该数据拷贝一份给第2台服务器以此类推,也就是说“服务器环”上的每一个节点,都是上一个节点的热备份节点同时,一个服务器上存了两类数据,一类是自身的业务数据,一类是上一节点的热备数据。注意:这里所说的服务器,都是物理服务器,不是虚拟服务器。如下图所示4.如何让客户端发现所有服务端?每个服务器节点都要维护一个对照表这个对照表中包含所有服务器,(IP地址和IP地址的哈希值对照表)配置客户端时,只要让客户端知道任意一个服务器的IP地址即可客户端可以通过获取这个服务器的对照表从而知道所有的服务器客户端初始化的时候,这个对照表也存储在客户端一份客户端根据这个对照表来存取数据注意:这个对照表是有一个版本号的,具体的用途见下面的描述5.如何应对服务器异常?假设数据在节点1上读写不成功,我们就认为这个节点存在异常,要把它从服务器群集中拿掉。客户端先在节点2(节点1的热备节点)上完成相应的读写工作,这时客户端就可以去做其他工作了。然后节点2向节点0索取数据(这些数据是本应该备份在节点1上的数据)然后节点2向节点3推送数据(这些数据是节点1上的数据,现在要备份在节点3上) 然后节点2更新其对照表,把节点1从其对照表中移除,并更新对照表的版本号当有任何客户端与节点2交互的时候,就会发现节点2上的对照表的版本号比自己持有的对照表要高此时,客户端就更新自己的对照表这些客户端再与其他服务器交互的时候其他服务器发现客户端携带的对照表版本号比自己持有的要高此时,其他服务器更新自己的对照表注意:这是一个“发散式的连锁反应”,不会影响生产。还可以让节点2告知节点3需要更新对照表当节点3更新完之后,再让节点3告知节点4.以此引发“环式的连锁反应”注意:当“服务器环”上连续两台服务器同时故障的时候,那么这个系统就崩溃了可以对数据做两次热备份,以提高安全性,但性能和硬件利用率会有所损耗。6.如何增加服务器?首先需要通过配置让这台服务器知道节点环上的任意一台服务器的IP地址(假设是10.0.0.1)此服务端运行之后,他就会从10.0.0.1上获取对照表,以此知道自己在节点环中的具体位置,它首先需要从它的下一个节点中迁移一部分数据(也就是它上一个节点热备份的一部分数据)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论