防止节点变更通知丢失的方法、装置和计算机设备转让专利
申请号 : CN201910305189.8
文献号 : CN110166528B
文献日 : 2022-03-18
发明人 : 黄小军
申请人 : 平安科技(深圳)有限公司
摘要 :
权利要求 :
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中任一项所述防止节点变更通知丢失的方法的步骤。
说明书 :
防止节点变更通知丢失的方法、装置和计算机设备
技术领域
背景技术
应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件)只
支持监听方式通知订阅方(第三方系统,例如ESG‑ADMIN),也就是zookeeper只负责向订阅
方服务器发送节点变更通知,订阅方服务器是否接收到zookeeper发送的节点变更通知,
zookeeper并不关心,所以当网路出现拥堵、订阅方系统故障时会导致订阅方服务器不能接
收到zookeeper向其发送的全部节点变更通知,即存在节点变更通知丢失的问题。
发明内容
zookeeper服务器支持RESTful接口调用的通知组件,所述发送节点变更通知的方法包括:
知集合中;
方服务器的步骤,包括:
方服务器的步骤,包括:
丢失;所述防止节点变更通知丢失的方法,包括:
知集合;
的步骤之后,还包括:
接口调用的通知组件,所述装置包括:
的第一节点变更通知集合中;
订阅方服务器。
丢失;所述防止节点变更通知丢失的装置,包括:
二节点变更通知集合;
点变更通知;
知的方法的步骤,或者实现权利要求4至6中任一项所述防止节点变更通知丢失的方法的步
骤。
实现权利要求4至6中任一项所述防止节点变更通知丢失的方法的步骤。
合,既可以快速的查找出第二节点变更通知集合中相对于第一节点变更通知集种缺少的节
点变更通知,这些缺少的节点变更通知即为订阅方服务器没有接收到的丢失节点变更通
知,确保zookeeper节点的变更通知不会因为网路出现拥堵、订阅方系统故障等原因丢失。
附图说明
具体实施方式
用于限定本申请。
支持RESTful接口调用的通知组件。
个架构样式的网络系统,指的是一组架构约束条件和原则。满足这些约束条件和原则的应
用程序或设计就是RESTful)接口通知订阅方的工具,所以,本申请中开发人员自己编写或
者调用现有的RESTful通知组件,并将RESTful通知组件加入zookeeper中,使zookeeper支
持RESTful接口通知。
更通知集合中;
务器。
zookeeper服务器本地的一个存储空间,以形成一个第一节点变更通知集合。因为在通过
http调用第一RESTful接口通知订阅方服务器的时候,存在网络拥堵或者订阅方服务器的
系统故障,导致节点变更通知丢失,即zookeeper服务器执行完发送节点变更通知给所述订
阅方服务器之后,并不能保证该节点变更通知被订阅方服务器接收到。将第一节点变更集
合存储在zookeeper服务器本地的一个存储空间,该存储空间内存储的节点变更通知不存
在丢失的情况。
间的限定条件,必须是某一个集合数据量的限定条件等。在本实施例中,当达到上述预设条
件,就通过上述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第一节
点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。当订阅方服务器接收到
第一变更节点集合后,可以根据其已经接收到的节点变更通知,确定出其未接收到的节点
变更通知,然后调用第一节点变更通知集合中的订阅方服务器未接收到的节点变更通知的
实例节点路径,重新完成对应的处理操作。
述订阅方服务器的步骤S30,包括:
变更通知数量为50时,即会触发通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器的操作。以数量阈值为预设条件,可以防止第一节点通知集合中的节点变更通知数量
过多时,再发送给订阅方服务器中造成网络拥堵。
所述订阅方服务器的步骤S30,包括:
阈值,如时间阈值为30分钟,当前一次发送所述第一节点变更通知集合给所述订阅方服务
器的第一时间为下午1点30分,当时间为同一天的下午2点的时候,两者的时间差等于时间
阈值,即会触发通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所
述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器的操作。
不通的原因而没有成功发送给上述订阅方服务器。进一步地,如果未接收到所述订阅方服
务器的握手成功的反馈,则按照预设频率给给所述订阅方服务器发送握手请求,直到接收
到握手成功的反馈后,才会执行将所述第一节点变更通知集合通过第二RESTful接口传输
给所述订阅方服务器的操作。当在指定时间长度内,未接收到握手成功的反馈,则生成报警
信息发送给预设的终端,以便于工作人员了解情况,进行技术处理。
将节点变更通知存储在本地,当达到预设条件后将存储在本地的第一节点变更通知集合主
动的发送给订阅方服务器,以便于订阅方服务器利用第一节点变更通知集合查找出丢失的
节点变更通知,从而补充完成对丢失的节点变更通知的处理。
节点变更通知丢失;上述防止节点变更通知丢失的方法,包括如下步骤:
更通知集合;
知;
失,即订阅方服务器接收到的节点变更通知并不一定是zookeeper服务器已经发送给它的
全部节点变更通知,可能存在丢失的丢失节点变更通知。在本申请中,订阅方服务器会记录
其接收到的节点变更通知,并存储在本地,形成第二节点变更通知集合,此时的第二节点变
更通知集合中的节点变更通知与第一节点变更集合中的节点变更通知,可能全部相同,也
可能比第一节点变更集合中的节点变更通知少一部分,而少的这一部分即为订阅方服务器
没有接收到的节点变更通知,也就是上述的丢失节点变更通知。当查找出丢失的丢失节点
变更通知后,既可以根据丢失节点变更通知的实例节点路径完成对应的处理操作,以使订
阅方服务器补充对丢失节点变更通知的处理。
丢失节点变更通知的步骤S21包括:
变更通知与第二节点变更通知集合中的节点变更通知是否相同的依据,如果第一节点变更
通知集合中的节点变更通知与第二节点变更通知集合中的节点变更通知相同,则说明该节
点变更通知被订阅方服务器接收并处理,如果不相同,则说明该节点变更通知是丢失的丢
失节点变更通知。
更通知的步骤S21之后,还包括:
解情况,进行相应的维修。报警信息可以为声/光的物理报警,也可以是通过邮件、短信等文
字形式的报警。
查找出第二节点变更通知集合中相对于第一节点变更通知集种缺少的节点变更通知,这些
缺少的节点变更通知即为订阅方服务器没有接收到的丢失节点变更通知,确保zookeeper
节点的变更通知不会因为网路出现拥堵、订阅方系统故障等原因丢失。
持RESTful接口调用的通知组件,所述装置包括:
地的第一节点变更通知集合中;
述订阅方服务器。
通知存储到zookeeper服务器本地的一个存储空间,以形成一个第一节点变更通知集合。因
为在通过http调用第一RESTful接口通知订阅方服务器的时候,存在网络拥堵或者订阅方
服务器的系统故障,导致节点变更通知丢失,即zookeeper服务器执行完发送节点变更通知
给所述订阅方服务器之后,并不能保证该节点变更通知被订阅方服务器接收到。将第一节
点变更集合存储在zookeeper服务器本地的一个存储空间,该存储空间内存储的节点变更
通知不存在丢失的情况。
个时间的限定条件,必须是某一个集合数据量的限定条件等。在本实施例中,当达到上述预
设条件,就通过上述通知组件调用所述订阅方服务器预设的第二RESTful接口,并将所述第
一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。当订阅方服务器接
收到第一变更节点集合后,可以根据其已经接收到的节点变更通知,确定出其未接收到的
节点变更通知,然后调用第一节点变更通知集合中的订阅方服务器未接收到的节点变更通
知的实例节点路径,重新完成对应的处理操作。
口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
合中的节点变更通知数量为50时,即会触发通过所述通知组件调用所述订阅方服务器预设
的第二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订
阅方服务器的操作。以数量阈值为预设条件,可以防止第一节点通知集合中的节点变更通
知数量过多时,再发送给订阅方服务器中造成网络拥堵。
RESTful接口传输给所述订阅方服务器。
时间差等于预设的时间阈值,如时间阈值为30分钟,当前一次发送所述第一节点变更通知
集合给所述订阅方服务器的第一时间为下午1点30分,当时间为同一天的下午2点的时候,
两者的时间差等于时间阈值,即会触发通过所述通知组件调用所述订阅方服务器预设的第
二RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方
服务器的操作。
不通的原因而没有成功发送给上述订阅方服务器。进一步地,如果未接收到所述订阅方服
务器的握手成功的反馈,则按照预设频率给给所述订阅方服务器发送握手请求,直到接收
到握手成功的反馈后,才会执行将所述第一节点变更通知集合通过第二RESTful接口传输
给所述订阅方服务器的操作。当在指定时间长度内,未接收到握手成功的反馈,则生成报警
信息发送给预设的终端,以便于工作人员了解情况,进行技术处理。
存储在本地,当达到预设条件后将存储在本地的第一节点变更通知集合主动的发送给订阅
方服务器,以便于订阅方服务器利用第一节点变更通知集合查找出丢失的节点变更通知,
从而补充完成对丢失的节点变更通知的处理。
点变更通知丢失;该防止节点变更通知丢失的装置,包括:
间,形成第二节点变更通知集合;
节点变更通知;
致节点变更通知丢失,即订阅方服务器接收到的节点变更通知并不一定是zookeeper服务
器已经发送给它的全部节点变更通知,可能存在丢失的丢失节点变更通知。在本申请中,订
阅方服务器会记录其接收到的节点变更通知,并存储在本地,形成第二节点变更通知集合,
此时的第二节点变更通知集合中的节点变更通知与第一节点变更集合中的节点变更通知,
可能全部相同,也可能比第一节点变更集合中的节点变更通知少一部分,而少的这一部分
即为订阅方服务器没有接收到的节点变更通知,也就是上述的丢失节点变更通知。当查找
出丢失的丢失节点变更通知后,既可以根据丢失节点变更通知的实例节点路径完成对应的
处理操作,以使订阅方服务器补充对丢失节点变更通知的处理。
的节点变更通知与第二节点变更通知集合中的节点变更通知是否相同的依据,如果第一节
点变更通知集合中的节点变更通知与第二节点变更通知集合中的节点变更通知相同,则说
明该节点变更通知被订阅方服务器接收并处理,如果不相同,则说明该节点变更通知是丢
失的丢失节点变更通知。
了解情况,进行相应的维修。报警信息可以为声/光的物理报警,也可以是通过邮件、短信等
文字形式的报警。
查找出第二节点变更通知集合中相对于第一节点变更通知集种缺少的节点变更通知,这些
缺少的节点变更通知即为订阅方服务器没有接收到的丢失节点变更通知,确保zookeeper
节点的变更通知不会因为网路出现拥堵、订阅方系统故障等原因丢失。
过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于
提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失
性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操
作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一节点变更通知
集合或者第二节点变更通知集合等数据。该计算机设备的网络接口用于与外部的终端通过
网络连接通信。该计算机程序被处理器执行时以实现一种发送节点变更通知的方法,或者
防止节点变更通知丢失的方法。
zookeeper服务器支持RESTful接口调用的通知组件,该发送节点变更通知的方法包括:
zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时
间;利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向
所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变更通知集合
中;在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并
将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
述订阅方服务器的步骤,包括:判断所述第一节点变更通知集合中的节点变更通知的数量
是否等于预设的数量阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
述订阅方服务器的步骤,包括:获取前一次发送所述第一节点变更通知集合给所述订阅方
服务器的第一时间,以及获取当前的第二时间;判断所述第一时间和第二时间的时间差是
否等于预设的时间阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
送的节点变更通知丢失;所述防止节点变更通知丢失的方法,包括:所述订阅方服务器通过
所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点
变更通知存储在预设的存储空间,形成第二节点变更通知集合;当接收到所述zookeeper服
务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于
所述第二节点变更通知集合的丢失节点变更通知;依据所述丢失节点变更通知的实例节点
路径完成对应的处理操作。
节点变更通知的第一变更时间;到所述第二节点变更通知集合中查找与每一个所述第一变
更时间相同的第二变更时间;获取没有查找到相同的第二变更时间的剩余的第一变更时
间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。
更通知的步骤之后,还包括:计算所述丢失节点变更通知的数量占所述第一节点变更通知
集合中全部节点变更通知的数量的比例值;若所述比例值大于预设的比例阈值,则生成报
警信息。
点变更通知集合中相对于第一节点变更通知集种缺少的节点变更通知,这些缺少的节点变
更通知即为订阅方服务器没有接收到的丢失节点变更通知,确保zookeeper节点的变更通
知不会因为网路出现拥堵、订阅方系统故障等原因丢失。
法。
zookeeper服务器支持RESTful接口调用的通知组件,该发送节点变更通知的方法包括:
zookeeper服务器获取节点变更通知,其中,所述节点变更通知包括实例节点路径和变更时
间;利用所述通知组件调用所述订阅方服务器的第一RESTful接口,将所述节点变更通知向
所述订阅方服务器发送,以及,将所述节点变更通知存储在本地的第一节点变更通知集合
中;在预设条件下,通过所述通知组件调用所述订阅方服务器预设的第二RESTful接口,并
将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服务器。
述订阅方服务器的步骤,包括:判断所述第一节点变更通知集合中的节点变更通知的数量
是否等于预设的数量阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
述订阅方服务器的步骤,包括:获取前一次发送所述第一节点变更通知集合给所述订阅方
服务器的第一时间,以及获取当前的第二时间;判断所述第一时间和第二时间的时间差是
否等于预设的时间阈值;若是,则通过所述通知组件调用所述订阅方服务器预设的第二
RESTful接口,并将所述第一节点变更通知集合通过第二RESTful接口传输给所述订阅方服
务器。
送的节点变更通知丢失;所述防止节点变更通知丢失的方法,包括:所述订阅方服务器通过
所述第一RESTful接口接收所述zookeeper服务器发送的节点变更通知,并将接收到的节点
变更通知存储在预设的存储空间,形成第二节点变更通知集合;当接收到所述zookeeper服
务器发送的所述第一节点变更通知集合后,在所述第一节点变更通知集合中查找不存在于
所述第二节点变更通知集合的丢失节点变更通知;依据所述丢失节点变更通知的实例节点
路径完成对应的处理操作。
节点变更通知的第一变更时间;到所述第二节点变更通知集合中查找与每一个所述第一变
更时间相同的第二变更时间;获取没有查找到相同的第二变更时间的剩余的所述第一变更
时间,将剩余的所述第一变更时间对应的节点变更通知记为所述丢失节点变更通知。
更通知的步骤之后,还包括:计算所述丢失节点变更通知的数量占所述第一节点变更通知
集合中全部节点变更通知的数量的比例值;若所述比例值大于预设的比例阈值,则生成报
警信息。
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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)等。
的技术领域,均同理包括在本申请的专利保护范围内。