一致性哈希服务器的数据维护

本文是实例说明一致性哈希服务器的数据维护用途。理论说明参考:

如下图所示,本例中一致性哈希服务器群组是视频服务器群组,包括三类服务器:VChannelMediaServer、VChannelServer、VChannelLoadServer、VChannelSuperServer。

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

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

VChannelLoadServer是频道负载服务器,保存所有的频道列表,维护VChannelMediaServer和VChannelServer服务器内的服务器一致性哈希表,维持VChannelServer中的频道对象加载和移除。

VChannelLoadServer是单服务器,VChannelServer和VChannelMediaServer是动态启动的多服务器。

VChannelSuperServer直播间上级服务器,为所有直播间相关的服务器提供向上的连接其他服务器的接口。

数据维护包括:动态启动vchannelserver服务器需要动态加载和移除服务器数据,动态关闭vchannelserver服务器需要恢复该服务器的频道到其他服务器,新数据需要加载和备份。

(1)加载数据

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

(2)宕机恢复数据

一个vchannelserver宕机时,需要重新加载频道数据到其他服务器;VChannelLoadServer会定时检查vchannelserver连接中的宕机服务器的连接,,根据服务器哈希表为原来宕机服务器的每个频道都分配新的服务器(会加入等待分配列表,在有合适服务器时再分配)

(3)新数据

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

如果我们想要更多的玫瑰花,就必须种植更多的玫瑰树。

一致性哈希服务器的数据维护

相关文章:

你感兴趣的文章:

标签云: