一种节点访问方法和系统、客户端代理和客户端的制作方法

文档序号:8318949阅读:282来源:国知局
一种节点访问方法和系统、客户端代理和客户端的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,特别是涉及一种节点访问方法和系统、客户端代理和客户端。
【背景技术】
[0002]zookeeper是一个针对分布式系统的可靠协调软件,其可用于各个服务器之间共享数据。
[0003]例如,在集中式配置管理系统中,服务器可以在zookeeper上以节点(node)的形式存储应用程序的配置信息,其中,一个节点可以代表一个配置项,多个节点所述节点信息具体可以包括:节点名称(path)和节点值(data),并且,可以按照键值对(key-value)的形式对所述节点名称(path)和节点值(data)进行组织、索引和存储。
[0004]目前,zookeeper仅仅支持一次获取一个节点值的功能,而不支持批量获取节点值的功能,这样,对于客户端而言,其需要通过多次请求来获取多个节点值,这耗费了客户端的流量,且增加了客户端用户的操作成本。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种节点访问方法和系统、客户端代理和客户端。
[0006]依据本发明的一个方面,提供了一种节点访问方法,包括:
[0007]从消息队列中获取批量节点的信息,其中,所述批量节点包括多个子节点;
[0008]在服务端上注册所述子节点的监视事件,其中,所述子节点的监视事件至少包括子节点的增删事件;
[0009]接收所述服务端通知的所述子节点的监视事件及对应的事件内容;以及
[0010]依据所述子节点的增删事件对应的事件内容,生成包含所述批量节点的信息与子节点集合的映射关系的序列,并将所述序列写入共享内存。
[0011]可选地,所述方法由客户端代理执行。
[0012]可选地,所述在服务端上注册所述子节点的监视事件的步骤,包括:
[0013]向所述服务端发送事件注册请求,所述事件注册请求中携带有所述子节点的监视事件、以及回调参数的指针,以使在所述服务端在所述子节点的监视事件发生时,使用所述指针调用所述回调函数进行所述子节点的监视事件及对应的事件内容的通知。
[0014]可选地,所述子节点的监视事件还包括:子节点对应值的变化事件;
[0015]则所述方法还包括:
[0016]依据所述子节点对应值的变化事件对应的事件内容,得到所述子节点的最新值,并将所述子节点的最新值写入所述共享内存。
[0017]可选地,所述消息队列中批量节点的信息为客户端在第一查询失败时写入的信息,其中,所述第一查询为依据批量节点的信息在共享内存中进行第一查询以得到批量节点的信息对应的子节点集合。
[0018]依据本发明的另一方面,提供了一种节点访问方法,应用于一客户端,所述方法包括:
[0019]依据批量节点的信息在共享内存中进行第一查询,以得到批量节点的信息对应的子节点集合,其中,所述共享内存中存储有包含所述批量节点的信息与子节点集合的映射关系的序列;以及
[0020]在所述第一查询失败时,将所述批量节点的信息写入消息队列。
[0021]可选地,所述方法还包括:依据所述子节点集合中各子节点在所述共享内存进行第二查询,以得到所述子节点集合中各子节点的值。
[0022]可选地,所述方法还包括:在所述第二查询失败时,所述客户端将对应子节点的信息写入所述消息队列。
[0023]依据本发明的再一方面,提供了一种客户端代理,包括:
[0024]信息获取模块,用于从消息队列中获取批量节点的信息;其中,所述批量节点包括多个子节点;
[0025]事件注册模块,用于在服务端上注册所述子节点的监视事件;其中,所述子节点的监视事件至少包括子节点的增删事件;
[0026]事件接收模块,用于接收所述服务端通知的所述子节点的监视事件及对应的事件内容;
[0027]序列生成模块,用于依据所述子节点的增删事件对应的事件内容,生成包含所述批量节点的信息与子节点集合的映射关系的序列;以及
[0028]序列写入模块,用于将所述序列写入共享内存。
[0029]可选地,所述事件注册模块,具体用于向所述服务端发送事件注册请求,所述事件注册请求中携带有所述子节点的监视事件、以及回调参数的指针,以使在所述服务端在所述子节点的监视事件发生时,使用所述指针调用所述回调函数进行所述子节点的监视事件及对应的事件内容的通知。
[0030]可选地,所述子节点的监视事件还包括:子节点对应值的变化事件;
[0031]则所述客户端代理还包括:
[0032]更新模块,用于代理依据所述子节点对应值的变化事件对应的事件内容,得到所述子节点的最新值;
[0033]值写入模块,用于将所述子节点的最新值写入所述共享内存。
[0034]可选地,所述消息队列中批量节点的信息为客户端在第一查询失败时写入的信息,其中,所述第一查询为依据批量节点的信息在共享内存中进行第一查询以得到批量节点的信息对应的子节点集合。
[0035]依据本发明的又一方面,提供了一种客户端,包括:
[0036]第一查询模块,用于依据批量节点的信息在共享内存中进行第一查询,以得到批量节点的信息对应的子节点集合;其中,所述共享内存中存储有包含所述批量节点的信息与子节点集合的映射关系的序列;以及
[0037]第一写入模块,用于在所述第一查询失败时,所述客户端将所述批量节点的信息写入消息队列。
[0038]可选地,所述客户端还包括:
[0039]第二查询模块,用于依据所述子节点集合中各子节点在所述共享内存进行第二查询,以得到所述子节点集合中各子节点的值。
[0040]可选地,所述客户端还包括:
[0041]第二写入模块,用于在在所述第二查询失败时,所述客户端将对应子节点的信息写入所述消息队列。
[0042]依据本发明的又一方面,提供了一种节点访问系统,包括:服务端、前述的客户端代理和前述的客户端。
[0043]根据本发明实施例的一种节点访问方法和系统、客户端代理和客户端,其中的客户端代理可以在服务端上注册所述子节点的监视事件,所述子节点的监视事件至少可以包括:子节点的增删事件,依据服务端通知的所述子节点的增删事件对应的事件内容,生成包含所述批量节点的信息与子节点集合的映射关系的序列,并将所述序列写入共享内存;这样,可以使得客户端在节点访问流程中依据批量节点的信息在共享内存中进行第一查询,以得到批量节点的信息对应的子节点集合,因此可以实现批量节点的访问功能。
[0044]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0045]通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0046]图1示出了根据本发明一个实施例的一种节点访问方法的步骤流程示意图;
[0047]图2示出了示出了根据本发明一个示例的一种节点访问系统的结构示意图;
[0048]图3示出了根据本发明一个实施例的一种节点访问方法的步骤流程示意图;
[0049]图4示出了根据本发明一个实施例的一种节点访问方法的步骤流程示意图;
[0050]图5示出了根据本发明一个实施例的一种节点访问方法的步骤流程示意图;
[0051]图6示出了根据本发明一个实施例的一种客户端代理的结构示意图;
[0052]图7示出了根据本发明一个实施例的一种客户端的结构示意图;以及
[0053]图8示出了根据本发明一个实施例的一种节点访问系统的结构示意图。
【具体实施方式】
[0054]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0055]参照图1,示出了根据本发明一个实施例的一种节点访问方法的步骤流程示意图,具体可以包括如下步骤:
[0056]步骤101、从消息队列中获取批量节点的信息,其中,所述批量节点具体可以包括多个子节点;
[0057]本发明实施例可用于对服务端上存储节点的访问流程,其中,既可提供单个节点的访问功能,又可提供批量节点的访问功能。
[0058]本实施例的方法可由客户端代理执行。参照图2,示出了根据本发明一个示例的一种节点访问系统的结构示意图,其具体可以包括:客户端201、客户端代理202和服务端203,其中,客户端201和客户端代理202可运行于客户端的机器上,客户端代理202负责与服务端203通讯以获取节点及节点值,并将节点及节点值写入共享内存,客户端201可以在共享内存中查询访问请求对应的值,而对服务端203 —无所知,并且,在共享内存命中失败后,客户端可以将访问请求的信息写入消息队列。
[0059]在具体实现中,且客户端代理202可以与服务端203上部署的zooke印er保
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1