一致性哈希server的数据维护
本文是实例说明一致性哈希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的数据维护的更多相关文章
- 《转》SQL Server 2008 数据维护实务
SQL Server 2008 数据维护实务 http://blog.csdn.net/os005/article/details/7739553 http://www.cnblogs.com/xun ...
- 一致性哈希算法——算法解决的核心问题是当slot数发生变化时,能够尽量少的移动数据
一致性哈希算法 摘自:http://blog.codinglabs.org/articles/consistent-hashing.html 算法简述 一致性哈希算法(Consistent Hashi ...
- 一致性哈希算法学习及JAVA代码实现分析
1,对于待存储的海量数据,如何将它们分配到各个机器中去?---数据分片与路由 当数据量很大时,通过改善单机硬件资源的纵向扩充方式来存储数据变得越来越不适用,而通过增加机器数目来获得水平横向扩展的方式则 ...
- Go -- 一致性哈希算法
一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用 ...
- Redis中的一致性哈希问题
在说redis中的哈希(准确来说是一致性哈希)问题之前,先来看一个问题:为什么在分布式集群中一致性哈希会得到大量应用? 在一个分布式系统中,要将数据存储到具体某个节点,或者将来自客户端的请求分配到某个 ...
- 一致性哈希算法原理、避免数据热点方法及Java实现
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单 ...
- memcached 一致性哈希算法
本文转载自:http://blog.csdn.net/kongqz/article/details/6695417 一.概述 1.我们的memcache客户端使用了一致性hash算法ketama进行数 ...
- memcache 的内存管理介绍和 php实现memcache一致性哈希分布式算法
1 网络IO模型 安装memcached需要先安装libevent Memcached是多线程,非阻塞IO复用的网络模型,分为监听主线程和worker子线程,监听线程监听网络连接,接受请求后,将连接描 ...
- Memcached 笔记与总结(8)Memcached 的普通哈希分布算法和一致性哈希分布算法命中率对比
准备工作: ① 配置文件 config.php ② 封装 Memcached 类 hash.class.php,包含普通哈希算法(取模)和一致性哈希算法 ③ 初始化 Memcached 节点信息 in ...
随机推荐
- es6 export-from用法
语法: export * from "foo"; export {foo} from "foo"; export {foo, bar} from "f ...
- [ TJOI 2007 ] 线段
\(\\\) \(Description\) 一个\(N\times N\) 的网格,每行有一段要必走,求从\((1,1)\)到\((N,N)\)的最短路长度. \(N\le 2\times10^4\ ...
- vs2012 jsoncpp 链接错误
解决: 项目->属性->C/C++->代码生成->运行库->设置与使用的.lib的版本一致.
- 轮播图-version1
实现目标 按'>'出现下一caption,按'<'出现上一caption 按下面的点到指定的caption 自动轮播 思路: 设置一个carousel容器,里面有carousel的每一张图 ...
- JavaScript(十二)事件
Dom事件 1.DOM0级事件 on事件 只能 监听冒泡阶段 切只能绑定一个事件 dom.onclick = function(){}; 2.Dom2级事件 可以绑定多次事件 可以通过设置fla ...
- Android 五种方式实现Android底部导航栏
https://segmentfault.com/a/1190000007697941
- 测试端口是否开放用PIN还是telnet命令
有时候很想知道一个IP的某个端口是否开放,那么你会用什么命令来测试呢?是ping还是telnet? 其实正确的方法应该是telnet命令.因为用ping命令的话不管你ping哪个端口,只要这个IP地址 ...
- 08Microsoft SQL Server 数据查询
Microsoft SQL Server 数据查询 单表查询所有列 --查询所有行所有列 select all * from table; --查询不重复行的所有列 select distinct * ...
- xmpp获取好友信息和添加删除好友(4)
原始地址: XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友 好友列表和好友名片 [_xmppRoster fetchRoster];//获取好友列表 //获取到一个好友节点 ...
- UVA-1599 Ideal Path(双向BFS)
题目: 给一个n个点m条边(2≤m≤100000, 1≤m≤200000)的无向图,每条边上都涂有一种颜色(用1到1000000000表示).求从结点1到结点n的一条路径, 使得经过的边数尽量少,在此 ...