本文是实例说明一致性哈希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. Python 快排[pythonnic]

    def QS(array): less = [] more = [] if len(array) <= 1: return array head = array.pop() for x in a ...

  2. select count(1) 和 select count(*)的区别

    统计一个表T有多少行数据,通常写法是: 查询A:select count(*) from T 但也可以采用下面语句来查: 查询B:select count(1) from T 结果通常是一样的.那么二 ...

  3. STA之Concepts (2)

    3 Skew between signals Skew is the difference in timing between two or more signals, maybe data, clo ...

  4. 关于联想笔记本不能连接无线网(wifi),注销后重新登录才可以连接

    解决联想笔记本wifi问题(果果) 最近很多使用联想的朋友都遇到了这样一个问题,那就是笔记本的wifi突然不能用了,好吧,其实我个人也遇到了这个问题,但是网上貌似对这个问题并没有给出一个可以解决的办法 ...

  5. 【C++】朝花夕拾——树(开篇)

    树 ===================我是分割线====================== 1. 定义: 一些结点的集合,集合可以为空.定义树的自然方式是递归的方法. 2. 相关概念: 根(ro ...

  6. Jmeter之关联——常用提取器

    Jmeter关联 所谓关联,从业务角度讲,即:某些操作步骤与其相邻步骤存在一定的依赖关系,导致某个步骤的输入数据来源于上一步的返回数据,这时就需要“关联”来建立步骤之间的联系. 简单来说,就是:将上一 ...

  7. R中矩阵运算

    # 数据产生 # rnorm(n, mean = 0, sd = 1) 正态分布的随机数(r 代表随机,可以替换成dnorm, pnorm, qnorm 作不同计算.r= random = 随机, d ...

  8. 模板TemplateRef

    TemplateRef<void> <ng-template #模板名称></ng-template>

  9. CAD使用SetXData写数据(com接口)

    主要用到函数说明: MxDrawEntity::SetXData 设置实体的扩展数据,详细说明如下: 参数 说明 [in] IMxDrawResbuf* pXData 扩展数据链表 c#代码实现如下: ...

  10. JavaScipt30(第十个案例)(主要知识点:选中一个数组中间相连部分进行操作的一种思路)

    承接上文,第九个案例就不说了,是控制台的一些东西,一般用的很少,了解下就行了,想用的时候再翻api.这是第10个案例: 需要实现的效果是:点击一个checkbox,然后按下shift点击另一个chec ...