本文是实例说明一致性哈希server的数据维护用途。

理论说明參考:http://blog.csdn.net/chenjiayi_yun/article/details/41624603

例如以下图所看到的。本例中一致性哈希server群组是视频server群组,包含server类型:VChannelMediaServer、VChannelServer、VChannelLoadServer、VChannelSuperServer。

server类型和其用途:

VChannelMediaServer频道动态数据(成员数据)和接入server。保存频道成员信息。提供接入地址到client(类似于网关),发送到VChannelServer的请求是依据频道id的一致性哈希决定。

VChannelServer频道数据server,保存频道的详细信息,提供操作频道对象的接口,每一个频道对象以一致性哈希形式存在于该server中。

VChannelLoadServer是频道负载server,备份全部的频道列表以及频道相应的VChannelServer。维护VChannelMediaServer和VChannelServerserver内的server一致性哈希表,维护VChannelServer中的频道对象载入和移除。

(VChannelLoadServer是单server,VChannelServer和VChannelMediaServer是动态启动的多server。)

VChannelSuperServer直播间上级server,为全部直播间相关的server提供向上的连接其它server的接口。

数据维护包含:动态启动vchannelserverserver须要动态载入频道数据和移除旧的server的频道数据,动态关闭vchannelserverserver须要恢复该server的频道到其它server,新数据须要载入和备份。

(VChannelLoadServer依据频道列表记录每一个VChannelServer相应的一些频道)

(1)载入数据

一个VChannelServer启动时,须要VChannelLoadServer同步server哈希一致性列表,计算列表是本server的那些频道,则从数据库载入那些频道的数据到本进程。VChannelLoadServer依据哈希表。计算出属于新启动VChannelServer的一些频道,发送指令到其它VChannelServer使它们移除本进程中属于那些频道的数据。

(2)宕机恢复数据

一个vchannelserver宕机时,须要又一次载入频道数据到其它server。VChannelLoadServer会定时检查vchannelserver连接中的宕机server的连接。依据server哈希表为原来宕机server的每一个频道都分配新的server(会增加等待分配列表,在有合适server时再分配)

(3)新数据

创建频道时,在指定的一个VChannelServer会载入该频道的数据,并备份该频道id到VChannelLoadServer,更新其server哈希一致性列表,更新VChannelServer负载。

操作例如以下图:

一致性哈希server的数据维护的更多相关文章

  1. 《转》SQL Server 2008 数据维护实务

    SQL Server 2008 数据维护实务 http://blog.csdn.net/os005/article/details/7739553 http://www.cnblogs.com/xun ...

  2. 一致性哈希算法——算法解决的核心问题是当slot数发生变化时,能够尽量少的移动数据

    一致性哈希算法 摘自:http://blog.codinglabs.org/articles/consistent-hashing.html 算法简述 一致性哈希算法(Consistent Hashi ...

  3. 一致性哈希算法学习及JAVA代码实现分析

    1,对于待存储的海量数据,如何将它们分配到各个机器中去?---数据分片与路由 当数据量很大时,通过改善单机硬件资源的纵向扩充方式来存储数据变得越来越不适用,而通过增加机器数目来获得水平横向扩展的方式则 ...

  4. Go -- 一致性哈希算法

    一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用 ...

  5. Redis中的一致性哈希问题

    在说redis中的哈希(准确来说是一致性哈希)问题之前,先来看一个问题:为什么在分布式集群中一致性哈希会得到大量应用? 在一个分布式系统中,要将数据存储到具体某个节点,或者将来自客户端的请求分配到某个 ...

  6. 一致性哈希算法原理、避免数据热点方法及Java实现

     一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单 ...

  7. memcached 一致性哈希算法

    本文转载自:http://blog.csdn.net/kongqz/article/details/6695417 一.概述 1.我们的memcache客户端使用了一致性hash算法ketama进行数 ...

  8. memcache 的内存管理介绍和 php实现memcache一致性哈希分布式算法

    1 网络IO模型 安装memcached需要先安装libevent Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描 ...

  9. Memcached 笔记与总结(8)Memcached 的普通哈希分布算法和一致性哈希分布算法命中率对比

    准备工作: ① 配置文件 config.php ② 封装 Memcached 类 hash.class.php,包含普通哈希算法(取模)和一致性哈希算法 ③ 初始化 Memcached 节点信息 in ...

随机推荐

  1. oa系统部署

    1.配置java环境变量 新建:JAVA_HOME C:\Program Files\Java\jdk1.6.0_45 path添加   C:\Program Files\Java\jdk1.6.0_ ...

  2. Android 知识Tips

    有一些Android很小的知识点,不值得单独写出来做为一篇博客.都在这个博客里面进行总结 1.ImageButton控件,中间图片的放置效果可以用scaleType来设置,如下: <ImageB ...

  3. DIV水平 垂直居中CSS

    /*实现一.原理:要让div等块级元素水平和垂直居中,必需知道该div等块级元素的宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度 ...

  4. 【OpenCV】像素操作的数字图像处理

    之前几天捣鼓matlab,用来处理数字图像,矩阵操作什么的,如果忘记线性代数就真的GG了. 在用了matlab被深深地吐槽之后,决定改用opencv,C++貌似也是处理数字图像的很好的工具 1. 在u ...

  5. Xamarin绑定ios静态库

    以下是官方的步骤介绍,我就不再一步步解释了 https://docs.microsoft.com/zh-cn/xamarin/ios/platform/binding-objective-c/walk ...

  6. CAD从二进流加载数据(com接口VB语言)

    主要用到函数说明: MxDrawXCustomFunction::ReadBinStreamEx 从二进流加载数据,详细说明如下: 参数 说明 IMxDrawBinStream* pBinStream ...

  7. 这段代码很Pythonic | 相见恨晚的 itertools 库

    前言 最近事情不是很多,想写一些技术文章分享给大家,同时也对自己一段时间来碎片化接受的知识进行一下梳理,所谓写清楚才能说清楚,说清楚才能想清楚,就是这个道理了. 很多人都致力于把Python代码写得更 ...

  8. 第二节:Css重写样式

    一丶 进入浏览器---->F12----->找到要修改的区域的Style 进行重写Css样式 二丶打开新页面 window.open("/Persitent/OtherIndex ...

  9. adb 命令收藏学习地址

    adb 命令相关的网页https://www.cnblogs.com/medsonk/p/8334847.htmlhttps://www.cnblogs.com/medsonk/p/6959658.h ...

  10. [luogu3067 USACO12OPEN] 平衡的奶牛群

    传送门 Solution 折半搜索模板题 考虑枚举每个点在左集合和右集合或者不在集合中,然后排序合并即可 Code //By Menteur_Hxy #include <cmath> #i ...