防止节点变更通知丢失的方法、装置和计算机设备转让专利

申请号 : CN201910305189.8

文献号 : CN110166528B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄小军

申请人 : 平安科技(深圳)有限公司

摘要 :

本申请揭示了一种防止节点变更通知丢失的方法、装置和计算机设备,通过在zookeeper服务器中存储的第一节点变更通知集合,以及订阅方服务器中存储的第二节点变更通知集合,既可以快速的查找出第二节点变更通知集合中相对于第一节点变更通知集种缺少的节点变更通知,这些缺少的节点变更通知即为订阅方服务器没有接收到的丢失节点变更通知,确保zookeeper节点的变更通知不会因为网路出现拥堵、订阅方系统故障等原因丢失。

权利要求 :

1.一种发送节点变更通知的方法,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使zookeeper服务器支持RESTful接口调用的通知组件,其特征在于,所述发送节点变更通知的方法包括:zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时间;

利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变更通知集合中;

在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器;

还包括步骤:

所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空间,形成第二节点变更通知集合;

当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失节点变更通知;

依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。

2.根据权利要求1所述的发送节点变更通知的方法,其特征在于,所述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器的步骤,包括:判断所述第一节点变更通知集合中的节点变更通知的数量是否等于预设的数量阈值;

若是,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。

3.根据权利要求1所述的发送节点变更通知的方法,其特征在于,所述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器的步骤,包括:获取前一次发送所述第一节点变更通知集合给所述订阅方服务器的第一时间,以及获取当前的第二时间;

判断所述第一时间和第二时间的时间差是否等于预设的时间阈值;

若是,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。

4.一种防止节点变更通知丢失的方法,用于订阅方服务器防止zookeeper服务器利用如权利要求1‑3中任一项所述的发送节点变更通知的方法发送的节点变更通知丢失;其特征在于,所述防止节点变更通知丢失的方法,包括:所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空间,形成第二节点变更通知集合;

当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失节点变更通知;

依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。

5.根据权利要求4所述的防止节点变更通知丢失的方法,其特征在于,所述在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变更通知的步骤包括:

提取所述第一节点变更通知集合中的每一个节点变更通知的第一变更时间;

到所述第二节点变更通知集合中查找与每一个所述第一变更时间相同的第二变更时间;

获取没有查找到相同的第二变更时间的剩余的所述第一变更时间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。

6.根据权利要求5所述的防止节点变更通知丢失的方法,其特征在于,所述当接收到所述zookeeper服务器发送第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变更通知的步骤之后,还包括:计算所述丢失节点变更通知的数量占所述第一节点变更通知集合中全部节点变更通知的数量的比例值;

若所述比例值大于预设的比例阈值,则生成报警信息。

7.一种发送节点变更通知的装置,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使zookeeper服务器支持RESTful接口调用的通知组件,其特征在于,所述装置包括:获取单元,用于zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时间;

发送存储单元,用于利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变更通知集合中;

调用发送单元,用于在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器;

还包括:接收单元,用于所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空间,形成第二节点变更通知集合;

查找单元,用于当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失节点变更通知;

处理单元,用于依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。

8.一种防止节点变更通知丢失的装置,用于订阅方服务器防止zookeeper服务器利用如权利要求1‑3中任一项所述的发送节点变更通知的方法发送的节点变更通知丢失;其特征在于,所述防止节点变更通知丢失的装置,包括:接收单元,用于所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空间,形成第二节点变更通知集合;

查找单元,用于当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失节点变更通知;

处理单元,用于依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述发送节点变更通知的方法的步骤,或者实现权利要求4至6中任一项所述防止节点变更通知丢失的方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述发送节点变更通知的方法的步骤,或者实现权利要求4至6中任一项所述防止节点变更通知丢失的方法的步骤。

说明书 :

防止节点变更通知丢失的方法、装置和计算机设备

技术领域

[0001] 本申请涉及到节点变更通知的技术领域,特别是涉及到一种防止节点变更通知丢失的方法、装置和计算机设备。

背景技术

[0002] ESG‑ADMIN(订阅方服务器)是一种企业服务治理平台管理系统,用于监控zookeeper的节点变更等,因为zookeeper(zookeeper是一个分布式的,开放源码的分布式
应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件)只
支持监听方式通知订阅方(第三方系统,例如ESG‑ADMIN),也就是zookeeper只负责向订阅
方服务器发送节点变更通知,订阅方服务器是否接收到zookeeper发送的节点变更通知,
zookeeper并不关心,所以当网路出现拥堵、订阅方系统故障时会导致订阅方服务器不能接
收到zookeeper向其发送的全部节点变更通知,即存在节点变更通知丢失的问题。

发明内容

[0003] 本申请的主要目的为提供发送节点变更通知的方法、装置、计算机设备和存储介质,旨在解决因为网路出现拥堵、订阅方系统故障而导致节点变更通知丢失的问题。
[0004] 为了实现上述发明目的,本申请提出一种发送节点变更通知的方法,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使
zookeeper服务器支持RESTful接口调用的通知组件,所述发送节点变更通知的方法包括:
[0005] zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时间;
[0006] 利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变更通
知集合中;
[0007] 在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0008] 进一步地,所述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅
方服务器的步骤,包括:
[0009] 判断所述第一节点变更通知集合中的节点变更通知的数量是否等于预设的数量阈值;
[0010] 若是,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0011] 进一步地,所述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅
方服务器的步骤,包括:
[0012] 获取前一次发送所述第一节点变更通知集合给所述订阅方服务器的第一时间,以及获取当前的第二时间;
[0013] 判断所述第一时间和第二时间的时间差是否等于预设的时间阈值;
[0014] 若是,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0015] 本申请还通过一种防止节点变更通知丢失的方法,用于订阅方服务器防止zookeeper服务器利用如上述任一项所述的发送节点变更通知的方法发送的节点变更通知
丢失;所述防止节点变更通知丢失的方法,包括:
[0016] 所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空间,形成第二节点变更通
知集合;
[0017] 当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失节点变更通知;
[0018] 依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。
[0019] 进一步地,所述在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变更通知的步骤包括:
[0020] 提取所述第一节点变更通知集合中的每一个节点变更通知的第一变更时间;
[0021] 到所述第二节点变更通知集合中查找与每一个所述第一变更时间相同的第二变更时间;
[0022] 获取没有查找到相同的第二变更时间的剩余的第一变更时间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。
[0023] 进一步地,所述当接收到所述zookeeper服务器发送第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变更通知
的步骤之后,还包括:
[0024] 计算所述丢失节点变更通知的数量占所述第一节点变更通知集合中全部节点变更通知的数量的比例值;
[0025] 若所述比例值大于预设的比例阈值,则生成报警信息。
[0026] 本申请还提供一种发送节点变更通知的装置,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使zookeeper服务器支持RESTful
接口调用的通知组件,所述装置包括:
[0027] 获取单元,用于zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时间;
[0028] 发送存储单元,用于利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向所述订阅方服务器发送,以及,将所述节点变更通知存储在本地
的第一节点变更通知集合中;
[0029] 调用发送单元,用于在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述
订阅方服务器。
[0030] 本申请还提供一种防止节点变更通知丢失的装置,用于订阅方服务器防止zookeeper服务器利用如上述任一项所述的发送节点变更通知的方法发送的节点变更通知
丢失;所述防止节点变更通知丢失的装置,包括:
[0031] 接收单元,用于所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空间,形成第
二节点变更通知集合;
[0032] 查找单元,用于当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失节
点变更通知;
[0033] 处理单元,用于依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。
[0034] 本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至3中任一项所述发送节点变更通
知的方法的步骤,或者实现权利要求4至6中任一项所述防止节点变更通知丢失的方法的步
骤。
[0035] 本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至3中任一项所述发送节点变更通知的方法的步骤,或者
实现权利要求4至6中任一项所述防止节点变更通知丢失的方法的步骤。
[0036] 本申请的防止节点变更通知丢失的方法、装置和计算机设备,通过在zookeeper服务器中存储的第一节点变更通知集合,以及订阅方服务器中存储的第二节点变更通知集
合,既可以快速的查找出第二节点变更通知集合中相对于第一节点变更通知集种缺少的节
点变更通知,这些缺少的节点变更通知即为订阅方服务器没有接收到的丢失节点变更通
知,确保zookeeper节点的变更通知不会因为网路出现拥堵、订阅方系统故障等原因丢失。

附图说明

[0037] 图1为本申请一实施例的发送节点变更通知的方法的流程示意图;
[0038] 图2为本申请一实施例的防止节点变更通知丢失的方法流程示意图;
[0039] 图3为本申请一实施例的发送节点变更通知的装置的结构示意框图;
[0040] 图4为本申请一实施例的防止节点变更通知丢失的装置的结构示意框图;
[0041] 图5为本申请一实施例的计算机设备的结构示意框图。
[0042] 本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

[0043] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不
用于限定本申请。
[0044] 参照图1,本申请实施例提供一种发送节点变更通知的方法,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使zookeeper服务器
支持RESTful接口调用的通知组件。
[0045] 上述zookeeper服务器是运行zookeeper的服务器,zookeeper是只支持监听方式通知订阅方,而不支持RESTful(Representational State Transfer,简称REST)描述了一
个架构样式的网络系统,指的是一组架构约束条件和原则。满足这些约束条件和原则的应
用程序或设计就是RESTful)接口通知订阅方的工具,所以,本申请中开发人员自己编写或
者调用现有的RESTful通知组件,并将RESTful通知组件加入zookeeper中,使zookeeper支
持RESTful接口通知。
[0046] 上述发送节点变更通知的方法,包括如下步骤:
[0047] S10、zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时间;
[0048] S20、利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变
更通知集合中;
[0049] S30、在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
[0050] 如上述步骤S10和S20所述,zookeeper服务器获取到每个节点一次变更后,都会发起一次http调用第一RESTful接口通知订阅方服务器,以及将生成的节点变更通知存储到
zookeeper服务器本地的一个存储空间,以形成一个第一节点变更通知集合。因为在通过
http调用第一RESTful接口通知订阅方服务器的时候,存在网络拥堵或者订阅方服务器的
系统故障,导致节点变更通知丢失,即zookeeper服务器执行完发送节点变更通知给所述订
阅方服务器之后,并不能保证该节点变更通知被订阅方服务器接收到。将第一节点变更集
合存储在zookeeper服务器本地的一个存储空间,该存储空间内存储的节点变更通知不存
在丢失的情况。
[0051] 如上述步骤S30所述,上述预设条件是一种预先设定好的前提条件,只有达到这个前提条件才会执行对应的操作。本申请中,上述预设的条件包括多种,比如必须是某一个时
间的限定条件,必须是某一个集合数据量的限定条件等。在本实施例中,当达到上述预设条
件,就通过上述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节
点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。当订阅方服务器接收到
第一变更节点集合后,可以根据其已经接收到的节点变更通知,确定出其未接收到的节点
变更通知,然后调用第一节点变更通知集合中的订阅方服务器未接收到的节点变更通知的
实例节点路径,重新完成对应的处理操作。
[0052] 在一个实施例中,上述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所
述订阅方服务器的步骤S30,包括:
[0053] S3011、判断所述第一节点变更通知集合中的节点变更通知的数量是否等于预设的数量阈值;
[0054] S3012、若是,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0055] 如上述步骤S3011和S3012所述,即上述预设条件为第一节点变更通知集合中的节点变更通知的数量等于预设的数量阈值,如数量阈值为50,当第一节点通知集合中的节点
变更通知数量为50时,即会触发通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器的操作。以数量阈值为预设条件,可以防止第一节点通知集合中的节点变更通知数量
过多时,再发送给订阅方服务器中造成网络拥堵。
[0056] 在另一个实施例中,上述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给
所述订阅方服务器的步骤S30,包括:
[0057] S3021、获取前一次发送所述第一节点变更通知集合给所述订阅方服务器的第一时间,以及获取当前的第二时间;
[0058] S3022、判断所述第一时间和第二时间的时间差是否等于预设的时间阈值;
[0059] S3023、若是,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0060] 如上述步骤S3021至S3023所述,即上述预设条件为前一次发送所述第一节点变更通知集合给所述订阅方服务器的第一时间,以及当前的第二时间的时间差等于预设的时间
阈值,如时间阈值为30分钟,当前一次发送所述第一节点变更通知集合给所述订阅方服务
器的第一时间为下午1点30分,当时间为同一天的下午2点的时候,两者的时间差等于时间
阈值,即会触发通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所
述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器的操作。
[0061] 在一个实施例中,上述将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器的步骤,包括:
[0062] 发送预设的握手请求给所述订阅方服务器;
[0063] 若接收到所述订阅方服务器的握手成功的反馈,则将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0064] 在本实施例中,在接收到握手成功的反馈后,才将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器,可以防止第一节点变更通知集合因为网络
不通的原因而没有成功发送给上述订阅方服务器。进一步地,如果未接收到所述订阅方服
务器的握手成功的反馈,则按照预设频率给给所述订阅方服务器发送握手请求,直到接收
到握手成功的反馈后,才会执行将所述第一节点变更通知集合通过第二RESTful接口传输
给所述订阅方服务器的操作。当在指定时间长度内,未接收到握手成功的反馈,则生成报警
信息发送给预设的终端,以便于工作人员了解情况,进行技术处理。
[0065] 本实施例的发送节点变更通知的方法,与现有技术相比,当zookeeper服务器接收到订阅方服务器的监听请求后,不但会将对应的节点变更通知发送给订阅方服务器,还会
将节点变更通知存储在本地,当达到预设条件后将存储在本地的第一节点变更通知集合主
动的发送给订阅方服务器,以便于订阅方服务器利用第一节点变更通知集合查找出丢失的
节点变更通知,从而补充完成对丢失的节点变更通知的处理。
[0066] 参照图2,本申请实施例还提供一种防止节点变更通知丢失的方法,用于订阅方服务器防止zookeeper服务器利用如上述任一项实施例中的发送节点变更通知的方法发送的
节点变更通知丢失;上述防止节点变更通知丢失的方法,包括如下步骤:
[0067] S11、所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空间,形成第二节点变
更通知集合;
[0068] S21、当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失节点变更通
知;
[0069] S31、依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。
[0070] 如上述步骤S11至S31所述,zookeeper服务器发送的节点变更通知给上述订阅方服务器的时候,如果存在网络拥堵或者订阅方服务器的系统故障可能导致节点变更通知丢
失,即订阅方服务器接收到的节点变更通知并不一定是zookeeper服务器已经发送给它的
全部节点变更通知,可能存在丢失的丢失节点变更通知。在本申请中,订阅方服务器会记录
其接收到的节点变更通知,并存储在本地,形成第二节点变更通知集合,此时的第二节点变
更通知集合中的节点变更通知与第一节点变更集合中的节点变更通知,可能全部相同,也
可能比第一节点变更集合中的节点变更通知少一部分,而少的这一部分即为订阅方服务器
没有接收到的节点变更通知,也就是上述的丢失节点变更通知。当查找出丢失的丢失节点
变更通知后,既可以根据丢失节点变更通知的实例节点路径完成对应的处理操作,以使订
阅方服务器补充对丢失节点变更通知的处理。
[0071] 在一个实施例中,上述当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的
丢失节点变更通知的步骤S21包括:
[0072] S2111、当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,提取所述第一节点变更通知集合中的每一个节点变更通知的第一变更时间;
[0073] S2112、到所述第二节点变更通知集合中查找与每一个所述第一变更时间相同的第二变更时间;
[0074] S2113、获取没有查找到相同的第二变更时间的剩余的第一变更时间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。
[0075] 如上述步骤S2111至S2113所述,因为节点变更通知带有产生通知时的变更时间,所以本实施例中使用节点变更通知的变更时间作为判断第一节点变更通知集合中的节点
变更通知与第二节点变更通知集合中的节点变更通知是否相同的依据,如果第一节点变更
通知集合中的节点变更通知与第二节点变更通知集合中的节点变更通知相同,则说明该节
点变更通知被订阅方服务器接收并处理,如果不相同,则说明该节点变更通知是丢失的丢
失节点变更通知。
[0076] 在一个实施例中,上述当接收到所述zookeeper服务器发送第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变
更通知的步骤S21之后,还包括:
[0077] S2101、计算所述丢失节点变更通知的数量占所述第一节点变更通知集合中全部节点变更通知的数量的比例值;
[0078] S2102、若所述比例值大于预设的比例阈值,则生成报警信息。
[0079] 如上述步骤S2101和S2102所述,如果存在大量的丢失节点变更通知,则说明存在网络拥堵或者订阅方服务器的系统故障等严重问题,生成报警信息以便于工作人员及时了
解情况,进行相应的维修。报警信息可以为声/光的物理报警,也可以是通过邮件、短信等文
字形式的报警。
[0080] 本申请的防止节点变更通知丢失的方法,通过接收zookeeper服务器中存储的第一节点变更通知集合,以及订阅方服务器中存储的第二节点变更通知集合,既可以快速的
查找出第二节点变更通知集合中相对于第一节点变更通知集种缺少的节点变更通知,这些
缺少的节点变更通知即为订阅方服务器没有接收到的丢失节点变更通知,确保zookeeper
节点的变更通知不会因为网路出现拥堵、订阅方系统故障等原因丢失。
[0081] 参照图3,本申请实施例还一种发送节点变更通知的装置,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使zookeeper服务器支
持RESTful接口调用的通知组件,所述装置包括:
[0082] 获取单元10,用于zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时间;
[0083] 发送存储单元20,用于利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向所述订阅方服务器发送,以及,将所述节点变更通知存储在本
地的第一节点变更通知集合中;
[0084] 调用发送单元30,用于在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所
述订阅方服务器。
[0085] 如上述获取单元10和发送存储单元20,zookeeper服务器获取到每个节点一次变更后,都会发起一次http调用第一RESTful接口通知订阅方服务器,以及将生成的节点变更
通知存储到zookeeper服务器本地的一个存储空间,以形成一个第一节点变更通知集合。因
为在通过http调用第一RESTful接口通知订阅方服务器的时候,存在网络拥堵或者订阅方
服务器的系统故障,导致节点变更通知丢失,即zookeeper服务器执行完发送节点变更通知
给所述订阅方服务器之后,并不能保证该节点变更通知被订阅方服务器接收到。将第一节
点变更集合存储在zookeeper服务器本地的一个存储空间,该存储空间内存储的节点变更
通知不存在丢失的情况。
[0086] 如上述调用发送单元30,上述预设条件是一种预先设定好的前提条件,只有达到这个前提条件才会执行对应的操作。本申请中,上述预设的条件包括多种,比如必须是某一
个时间的限定条件,必须是某一个集合数据量的限定条件等。在本实施例中,当达到上述预
设条件,就通过上述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第
一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。当订阅方服务器接
收到第一变更节点集合后,可以根据其已经接收到的节点变更通知,确定出其未接收到的
节点变更通知,然后调用第一节点变更通知集合中的订阅方服务器未接收到的节点变更通
知的实例节点路径,重新完成对应的处理操作。
[0087] 在一个实施例中,上述调用发送单元30,包括:
[0088] 第一判断模块,用于判断所述第一节点变更通知集合中的节点变更通知的数量是否等于预设的数量阈值;
[0089] 第一调用发送模块,用于若所述第一节点变更通知集合中的节点变更通知的数量等于预设的数量阈值,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接
口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0090] 如上述第一判断模块和第一调用发送模块,即上述预设条件为第一节点变更通知集合中的节点变更通知的数量等于预设的数量阈值,如数量阈值为50,当第一节点通知集
合中的节点变更通知数量为50时,即会触发通过所述通知组件调用所述订阅方服务器预设
的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订
阅方服务器的操作。以数量阈值为预设条件,可以防止第一节点通知集合中的节点变更通
知数量过多时,再发送给订阅方服务器中造成网络拥堵。
[0091] 在另一个实施例中,上述调用发送单元30,包括:
[0092] 获取模块,用于获取前一次发送所述第一节点变更通知集合给所述订阅方服务器的第一时间,以及获取当前的第二时间;
[0093] 第二判断模块,用于判断所述第一时间和第二时间的时间差是否等于预设的时间阈值;
[0094] 第二调用发送模块、若所述时间差等于预设的时间阈值,则通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二
RESTful接口传输给所述订阅方服务器。
[0095] 如上述获取模块、第二判断模块和第二调用发送模块,即上述预设条件为前一次发送所述第一节点变更通知集合给所述订阅方服务器的第一时间,以及当前的第二时间的
时间差等于预设的时间阈值,如时间阈值为30分钟,当前一次发送所述第一节点变更通知
集合给所述订阅方服务器的第一时间为下午1点30分,当时间为同一天的下午2点的时候,
两者的时间差等于时间阈值,即会触发通过所述通知组件调用所述订阅方服务器预设的第
二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方
服务器的操作。
[0096] 在一个实施例中,上述调用发送单元30,包括:
[0097] 发送模块,用于发送预设的握手请求给所述订阅方服务器;
[0098] 传输模块,用于若接收到所述订阅方服务器的握手成功的反馈,则将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0099] 在本实施例中,在接收到握手成功的反馈后,才将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器,可以防止第一节点变更通知集合因为网络
不通的原因而没有成功发送给上述订阅方服务器。进一步地,如果未接收到所述订阅方服
务器的握手成功的反馈,则按照预设频率给给所述订阅方服务器发送握手请求,直到接收
到握手成功的反馈后,才会执行将所述第一节点变更通知集合通过第二RESTful接口传输
给所述订阅方服务器的操作。当在指定时间长度内,未接收到握手成功的反馈,则生成报警
信息发送给预设的终端,以便于工作人员了解情况,进行技术处理。
[0100] 本实施例的发送节点变更通知的装置,当zookeeper服务器接收到订阅方服务器的监听请求后,不但会将对应的节点变更通知发送给订阅方服务器,还会将节点变更通知
存储在本地,当达到预设条件后将存储在本地的第一节点变更通知集合主动的发送给订阅
方服务器,以便于订阅方服务器利用第一节点变更通知集合查找出丢失的节点变更通知,
从而补充完成对丢失的节点变更通知的处理。
[0101] 参照图4,本申请实施例还一种防止节点变更通知丢失的装置,用于订阅方服务器防止zookeeper服务器利用如上述任一项实施例所述的发送节点变更通知的方法发送的节
点变更通知丢失;该防止节点变更通知丢失的装置,包括:
[0102] 接收单元11,用于所述订阅方服务器通过所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点变更通知存储在预设的存储空
间,形成第二节点变更通知集合;
[0103] 查找单元21,用于当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于所述第二节点变更通知集合的丢失
节点变更通知;
[0104] 处理单元31,用于依据所述丢失节点变更通知的实例节点路径完成对应的处理操作。
[0105] 如上述接收单元11、查找单元21和处理单元31,zookeeper服务器发送的节点变更通知给上述订阅方服务器的时候,如果存在网络拥堵或者订阅方服务器的系统故障可能导
致节点变更通知丢失,即订阅方服务器接收到的节点变更通知并不一定是zookeeper服务
器已经发送给它的全部节点变更通知,可能存在丢失的丢失节点变更通知。在本申请中,订
阅方服务器会记录其接收到的节点变更通知,并存储在本地,形成第二节点变更通知集合,
此时的第二节点变更通知集合中的节点变更通知与第一节点变更集合中的节点变更通知,
可能全部相同,也可能比第一节点变更集合中的节点变更通知少一部分,而少的这一部分
即为订阅方服务器没有接收到的节点变更通知,也就是上述的丢失节点变更通知。当查找
出丢失的丢失节点变更通知后,既可以根据丢失节点变更通知的实例节点路径完成对应的
处理操作,以使订阅方服务器补充对丢失节点变更通知的处理。
[0106] 在一个实施例中,上述查找单元21,包括:
[0107] 提取模块,用于当接收到所述zookeeper服务器发送的所述第一节点变更通知集合后,提取所述第一节点变更通知集合中的每一个节点变更通知的第一变更时间;
[0108] 查找模块,用于到所述第二节点变更通知集合中查找与每一个所述第一变更时间相同的第二变更时间;
[0109] 确认单元,用于获取没有查找到相同的第二变更时间的剩余的所述第一变更时间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。
[0110] 如上述提取模块、查找模块和确认单元,因为节点变更通知带有产生通知时的变更时间,所以本实施例中使用节点变更通知的变更时间作为判断第一节点变更通知集合中
的节点变更通知与第二节点变更通知集合中的节点变更通知是否相同的依据,如果第一节
点变更通知集合中的节点变更通知与第二节点变更通知集合中的节点变更通知相同,则说
明该节点变更通知被订阅方服务器接收并处理,如果不相同,则说明该节点变更通知是丢
失的丢失节点变更通知。
[0111] 在一个实施例中,上述防止节点变更通知丢失的装置,还包括:
[0112] 比例计算单元,用于计算所述丢失节点变更通知的数量占所述第一节点变更通知集合中全部节点变更通知的数量的比例值;
[0113] 生成单元,用于若所述比例值大于预设的比例阈值,则生成报警信息。
[0114] 如上述比例计算单元和生成单元,如果存在大量的丢失节点变更通知,则说明存在网络拥堵或者订阅方服务器的系统故障等严重问题,生成报警信息以便于工作人员及时
了解情况,进行相应的维修。报警信息可以为声/光的物理报警,也可以是通过邮件、短信等
文字形式的报警。
[0115] 本申请的防止节点变更通知丢失的装置,通过接收zookeeper服务器中存储的第一节点变更通知集合,以及订阅方服务器中存储的第二节点变更通知集合,既可以快速的
查找出第二节点变更通知集合中相对于第一节点变更通知集种缺少的节点变更通知,这些
缺少的节点变更通知即为订阅方服务器没有接收到的丢失节点变更通知,确保zookeeper
节点的变更通知不会因为网路出现拥堵、订阅方系统故障等原因丢失。
[0116] 参照图5,本申请实施例中还提供一种计算机设备,该计算机设备可以是上述的管理服务器,或者管理节点对应的服务器,其内部结构可以如图5所示。该计算机设备包括通
过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于
提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失
性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操
作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一节点变更通知
集合或者第二节点变更通知集合等数据。该计算机设备的网络接口用于与外部的终端通过
网络连接通信。该计算机程序被处理器执行时以实现一种发送节点变更通知的方法,或者
防止节点变更通知丢失的方法。
[0117] 在一个实施例中,上述处理器执行上述发送节点变更通知的方法时,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使
zookeeper服务器支持RESTful接口调用的通知组件,该发送节点变更通知的方法包括:
zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时
间;利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向
所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变更通知集合
中;在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并
将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0118] 在一个实施例中,上述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所
述订阅方服务器的步骤,包括:判断所述第一节点变更通知集合中的节点变更通知的数量
是否等于预设的数量阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
[0119] 在一个实施例中,上述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所
述订阅方服务器的步骤,包括:获取前一次发送所述第一节点变更通知集合给所述订阅方
服务器的第一时间,以及获取当前的第二时间;判断所述第一时间和第二时间的时间差是
否等于预设的时间阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
[0120] 在另一个实施例中,上述处理器执行上述防止节点变更通知丢失的方法时,用于订阅方服务器防止zookeeper服务器利用如上述任一项所述的发送节点变更通知的方法发
送的节点变更通知丢失;所述防止节点变更通知丢失的方法,包括:所述订阅方服务器通过
所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点
变更通知存储在预设的存储空间,形成第二节点变更通知集合;当接收到所述zookeeper服
务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于
所述第二节点变更通知集合的丢失节点变更通知;依据所述丢失节点变更通知的实例节点
路径完成对应的处理操作。
[0121] 在一个实施例中,上述在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变更通知的步骤包括:提取所述第一节点变更通知集合中的每一个
节点变更通知的第一变更时间;到所述第二节点变更通知集合中查找与每一个所述第一变
更时间相同的第二变更时间;获取没有查找到相同的第二变更时间的剩余的第一变更时
间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。
[0122] 在一个实施例中,上述当接收到所述zookeeper服务器发送第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变
更通知的步骤之后,还包括:计算所述丢失节点变更通知的数量占所述第一节点变更通知
集合中全部节点变更通知的数量的比例值;若所述比例值大于预设的比例阈值,则生成报
警信息。
[0123] 本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
[0124] 本申请实施例的计算机设备,通过在zookeeper服务器中存储的第一节点变更通知集合,以及订阅方服务器中存储的第二节点变更通知集合,既可以快速的查找出第二节
点变更通知集合中相对于第一节点变更通知集种缺少的节点变更通知,这些缺少的节点变
更通知即为订阅方服务器没有接收到的丢失节点变更通知,确保zookeeper节点的变更通
知不会因为网路出现拥堵、订阅方系统故障等原因丢失。
[0125] 本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种发送节点变更通知的方法,或者防止节点变更通知丢失的方
法。
[0126] 在一个实施例中,上述处理器执行上述发送节点变更通知的方法时,用于zookeeper服务器向订阅方服务器发送节点变更通知,所述zookeeper服务器中安装有使
zookeeper服务器支持RESTful接口调用的通知组件,该发送节点变更通知的方法包括:
zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时
间;利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向
所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变更通知集合
中;在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并
将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
[0127] 在一个实施例中,上述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所
述订阅方服务器的步骤,包括:判断所述第一节点变更通知集合中的节点变更通知的数量
是否等于预设的数量阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
[0128] 在一个实施例中,上述在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所
述订阅方服务器的步骤,包括:获取前一次发送所述第一节点变更通知集合给所述订阅方
服务器的第一时间,以及获取当前的第二时间;判断所述第一时间和第二时间的时间差是
否等于预设的时间阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
[0129] 在另一个实施例中,上述处理器执行上述防止节点变更通知丢失的方法时,用于订阅方服务器防止zookeeper服务器利用如上述任一项所述的发送节点变更通知的方法发
送的节点变更通知丢失;所述防止节点变更通知丢失的方法,包括:所述订阅方服务器通过
所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点
变更通知存储在预设的存储空间,形成第二节点变更通知集合;当接收到所述zookeeper服
务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于
所述第二节点变更通知集合的丢失节点变更通知;依据所述丢失节点变更通知的实例节点
路径完成对应的处理操作。
[0130] 在一个实施例中,上述在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变更通知的步骤包括:提取所述第一节点变更通知集合中的每一个
节点变更通知的第一变更时间;到所述第二节点变更通知集合中查找与每一个所述第一变
更时间相同的第二变更时间;获取没有查找到相同的第二变更时间的剩余的所述第一变更
时间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。
[0131] 在一个实施例中,上述当接收到所述zookeeper服务器发送第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于第二节点变更通知集合的丢失节点变
更通知的步骤之后,还包括:计算所述丢失节点变更通知的数量占所述第一节点变更通知
集合中全部节点变更通知的数量的比例值;若所述比例值大于预设的比例阈值,则生成报
警信息。
[0132] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM
(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括
随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,
诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强
型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM
(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0133] 以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关
的技术领域,均同理包括在本申请的专利保护范围内。