名单同步方法和集群系统技术方案

技术编号:24418542 阅读:39 留言:0更新日期:2020-06-06 12:48
本申请提供一种名单同步方法和集群系统,用以加快主节点和子节点间的名单同步速度,从而提高系统的运行效率,该名单同步方法应用于集群系统中作为主节点的第一服务器,包括:接收更新消息,根据更新消息执行以下操作:在第一服务器已有的名单操作类型列表中增加包含更新消息携带的更新操作类型的名单操作类型表项,并根据更新操作类型对第一服务器内的名单索引表进行更新;在完成所述操作后,针对第一服务器管理的作为子节点的每一第二服务器,通知该第二服务器从指定名单操作类型表项开始读取名单操作类型表项,以由该第二服务器根据读取的名单操作类型表项对本第二服务器已有的名单索引表进行更新以实现与第一服务器已有的名单索引表同步。

List synchronization method and cluster system

【技术实现步骤摘要】
名单同步方法和集群系统
本申请涉及网络
,尤其涉及一种名单同步方法和集群系统。
技术介绍
集群系统是通过集群技术,在付出较低成本的情况下,获得性能、可靠性、灵活性方面相对较高的系统。参见图1,集群系统一般包括作为主节点的第一服务11和第一服务器11管理的作为子节点的多个第二服务器12。目前,集群系统通常采用主节点主动将上层应用系统发送的名单更新消息推送给各个子节点,以实现主节点和子节点间的名单同步。该方法中,名单同步过程中不允许中断,即需要所有的子节点都与主节点的名单同步后,才能进行下一步的操作,因此等待时间较长,对于新加入的子节点,必须等待该子节点同步所有名单后主节点才能再进行更新操作,否则会导致该子节点上的名单冗余或是缺失。综上,目前集群系统中主节点和子节点间的名单同步速度较慢,造成系统的运行效率较低。
技术实现思路
有鉴于此,本申请提供一种名单同步方法和集群系统,用以加快主节点和子节点间的名单同步速度,从而提高系统的运行效率。第一方面,本申请实施例提供了一种名单同步方法,所述方法应用于集群系统中作为主节点的第一服务器,包括:接收更新消息,根据所述更新消息执行以下操作:在第一服务器已有的名单操作类型列表中增加包含所述更新操作类型的名单操作类型表项,并根据所述更新消息携带的更新操作类型对第一服务器内的名单索引表进行更新;在完成所述操作后,针对所述第一服务器管理的作为子节点的每一第二服务器,通知该第二服务器从指定名单操作类型表项开始读取名单操作类型表项,以由该第二服务器根据读取的名单操作类型表项对本第二服务器已有的名单索引表进行更新以实现与第一服务器已有的名单索引表同步,所述指定名单操作类型表项为所述第一服务器已记录的所述名单操作类型列表中与第二服务器对应的名单操作类型表项。上述方法,主节点中保存有名单操作类型列表和名单索引表,在名单同步过程中,作为主节点的第一服务器根据接收到的更新消息执行以下操作:在第一服务器已有的名单操作类型列表中增加包含所述更新操作类型的名单操作类型表项,并根据所述更新消息携带的更新操作类型对第一服务器内的名单索引表进行更新;在完成上述操作后,针对第一服务器管理的作为子节点的每一第二服务器,第一服务器通知该第二服务器从第一服务器已记录的与第二服务器对应的指定名单操作类型表项开始读取名单操作类型表项,以由该第二服务器根据读取的名单操作类型表项对本第二服务器已有的名单索引表进行更新以实现与第一服务器已有的名单索引表同步,即作为子节点的各个第二服务器可以异步进行主节点和子节点间的名单同步,因此可以加快主节点和子节点间的名单同步速度,从而可以提高系统的运行效率。在一可能的实现方式中,在第二服务器读完所述名单操作类型列表中所有名单操作类型表项之后,该方法进一步包括:将已记录的与第二服务器对应的指定名单操作类型表项更新为所述名单操作类型列表中最后一个名单操作类型表项。在一可能的实现方式中,所述更新操作类型为增加;所述更新消息进一步携带待增加的名单ID以及名单ID对应的名单信息;所述在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项包括:在第一服务器已有的名单操作类型列表的尾端增加包含所述更新操作类型、以及所述更新消息携带的名单信息的名单操作类型表项;所述根据所述更新操作类型对第一服务器内的名单索引表进行更新包括:在第一服务器已有的名单索引表的尾端增加包含所述更新消息携带的名单ID的名单索引表项,并建立该新增加的名单索引表项与所述名单操作类型列表新增加的名单操作类型表项之间的对应关系。在一可能的实现方式中,所述更新操作类型为修改;所述更新消息进一步携带待修改的名单ID以及名单ID对应的名单信息;所述在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项包括:查找第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项;在已建立的名单操作类型表项与名单索引表项的对应关系中查找包含所述更新消息携带的名单ID的名单索引表项对应的第一服务器已有的名单操作类型列表中的名单操作类型表项,并删除查找到的所述名单操作类型表项;在第一服务器的名单操作类型列表的尾端增加包含所述更新操作类型、以及所述更新消息携带的名单信息的名单操作类型表项;所述根据所述更新操作类型对第一服务器内的名单索引表进行更新包括:修改第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项,并建立该新修改的名单索引表项与所述名单操作类型列表新增加的名单操作类型表项之间的对应关系。在一可能的实现方式中,所述更新操作类型为删除;所述更新消息进一步携带待删除的名单ID;所述在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项包括:查找第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项;在已建立的名单操作类型表项与名单索引表项的对应关系中查找包含所述更新消息携带的名单ID的名单索引表项对应的第一服务器已有的名单操作类型列表中的名单操作类型表项,并删除查找到的所述名单操作类型表项;在第一服务器的名单操作类型列表的尾端增加包含所述更新操作类型、以及所述更新消息携带的名单ID的名单操作类型表项;所述根据所述更新操作类型对第一服务器内的名单索引表进行更新包括:删除第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项。在一可能的实现方式中,所述根据所述更新消息执行所述操作包括:采用读写锁根据所述更新消息执行所述操作;所述通知第二服务器从指定名单操作类型表项开始读取名单操作类型表项包括:通知第二服务器从指定名单操作类型表项开始采用读写锁读取名单操作类型表项。该方法中,第一服务器执行名单更新操作时采用读写锁机制,以及第二服务器从指定名单操作类型表项开始读取名单操作类型表项时采用读写锁机制,这样可以防止主节点和子节点上的内容冲突。在一可能的实现方式中,在完成所述操作后,该方法还包括:开启检测线程,并通过所述检测线程获取已记录的与所述第一服务器管理的作为子节点的各个第二服务器中名单同步最慢的一个第二服务器对应的指定名单操作类型表项的位置N;删除第一服务器已有的名单操作类型列表中所述检测线程上一次检测所述名单操作类型列表的检测位置M到所述N之间的包含所述更新操作类型为删除的名单操作类型表项,并将检测位置从M更新到N;其中,所述N>所述M。该方法中,开启检测线程,以删除所有第二服务器均已读取的第一服务器已有的名单操作类型列表中包含更新操作类型为删除的名单操作类型表项,这样可以避免数据冗余。第二方面,本申请实施例还提供了一种集群系统,所述集群系统包括:作为主节点的第一服务器和所述第一服务器本文档来自技高网...

【技术保护点】
1.一种名单同步方法,其特征在于,所述方法应用于集群系统中作为主节点的第一服务器,包括:/n接收更新消息,根据所述更新消息执行以下操作:在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项,并根据所述更新操作类型对第一服务器内的名单索引表进行更新;/n在完成所述操作后,针对所述第一服务器管理的作为子节点的每一第二服务器,通知该第二服务器从指定名单操作类型表项开始读取名单操作类型表项,以由该第二服务器根据读取的名单操作类型表项对本第二服务器已有的名单索引表进行更新以实现与第一服务器已有的名单索引表同步,所述指定名单操作类型表项为所述第一服务器已记录的所述名单操作类型列表中与第二服务器对应的名单操作类型表项。/n

【技术特征摘要】
1.一种名单同步方法,其特征在于,所述方法应用于集群系统中作为主节点的第一服务器,包括:
接收更新消息,根据所述更新消息执行以下操作:在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项,并根据所述更新操作类型对第一服务器内的名单索引表进行更新;
在完成所述操作后,针对所述第一服务器管理的作为子节点的每一第二服务器,通知该第二服务器从指定名单操作类型表项开始读取名单操作类型表项,以由该第二服务器根据读取的名单操作类型表项对本第二服务器已有的名单索引表进行更新以实现与第一服务器已有的名单索引表同步,所述指定名单操作类型表项为所述第一服务器已记录的所述名单操作类型列表中与第二服务器对应的名单操作类型表项。


2.根据权利要求1所述的方法,其特征在于,在第二服务器读完所述名单操作类型列表中所有名单操作类型表项之后,该方法进一步包括:
将已记录的与第二服务器对应的指定名单操作类型表项更新为所述名单操作类型列表中最后一个名单操作类型表项。


3.根据权利要求1所述的方法,其特征在于,所述更新操作类型为增加;
所述更新消息进一步携带待增加的名单ID以及名单ID对应的名单信息;
所述在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项包括:
在第一服务器已有的名单操作类型列表的尾端增加包含所述更新操作类型、以及所述更新消息携带的名单信息的名单操作类型表项;
所述根据所述更新操作类型对第一服务器内的名单索引表进行更新包括:
在第一服务器已有的名单索引表的尾端增加包含所述更新消息携带的名单ID的名单索引表项,并建立该新增加的名单索引表项与所述名单操作类型列表新增加的名单操作类型表项之间的对应关系。


4.根据权利要求1所述的方法,其特征在于,所述更新操作类型为修改;
所述更新消息进一步携带待修改的名单ID以及名单ID对应的名单信息;
所述在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项包括:
查找第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项;
在已建立的名单操作类型表项与名单索引表项的对应关系中查找包含所述更新消息携带的名单ID的名单索引表项对应的第一服务器已有的名单操作类型列表中的名单操作类型表项,并删除查找到的所述名单操作类型表项;
在第一服务器的名单操作类型列表的尾端增加包含所述更新操作类型、以及所述更新消息携带的名单信息的名单操作类型表项;
所述根据所述更新操作类型对第一服务器内的名单索引表进行更新包括:
修改第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项,并建立该新修改的名单索引表项与所述名单操作类型列表新增加的名单操作类型表项之间的对应关系。


5.根据权利要求1所述的方法,其特征在于,所述更新操作类型为删除;
所述更新消息进一步携带待删除的名单ID;
所述在第一服务器已有的名单操作类型列表中增加包含所述更新消息携带的更新操作类型的名单操作类型表项包括:
查找第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项;
在已建立的名单操作类型表项与名单索引表项的对应关系中查找包含所述更新消息携带的名单ID的名单索引表项对应的第一服务器已有的名单操作类型列表中的名单操作类型表项,并删除查找到的所述名单操作类型表项;
在第一服务器的名单操作类型列表的尾端增加包含所述更新操作类型、以及所述更新消息携带的名单ID的名单操作类型表项;
所述根据所述更新操作类型对第一服务器内的名单索引表进行更新包括:
删除第一服务器已有的名单索引表中包含所述更新消息携带的名单ID的名单索引表项。


6.根据权利要求1所述的方法,其特征在于,所述根据所述更新消息执行所述操作包括:
采用读写锁根据所述更新消息执行所述操作;
所述通知第二服务器从指定名单操作类型表项开始读取名单操作类型表项包括:
通知第二服务器从指定名单操作类型表项开始采用读写锁读取名单操作类型表项。


7.根据权利要求1-6任一项所述的方法,其特征在于,在完成所述操作后,该方法还包括:
开启检测线程,并通过所述检测线程获取已记录的与所述第一服务器管理的作为子节点的各个第二服务器中名单同步最慢的一个第二服务器对应的指定名单操作类型表项的位置N;
删除第一服务器已有的名单操作类型列表中所述检...

【专利技术属性】
技术研发人员:郭俞江
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1