配置数据处理方法、装置及系统与流程

文档序号:12491599阅读:211来源:国知局
配置数据处理方法、装置及系统与流程

本发明涉及网络技术领域,特别涉及一种配置数据处理方法、装置及系统。



背景技术:

分布式协调系统是一种针对大型分布式系统的协调服务系统,可以为分布式应用提供一致性服务,该一致性服务包括配置维护、名字服务、分布式同步、组服务等。分布式协调系统中包括多个节点,其可以对该多个节点的配置数据进行集中管理,从而为用户提供简单易用、功能稳定的服务。

在分布式协调系统的运行过程中,客户端需要从分布式协调系统拉取配置数据,并将配置数据下发给业务节点进行业务处理。而相关技术中,通常是由客户端周期性地从分布式协调系统拉取配置数据后下发,也即是,按照拉取周期确定拉取时间点,在每个拉取时间点才从分布式协调系统拉取配置数据,并下发给业务节点。

在实现本发明的过程中,发明人发现上述相关技术存在以下问题:

一方面,分布式协调系统中的配置数据发生变化时,只能等到下一个拉取时间点才能拉取变化后的配置数据,而不能及时地进行拉取,造成拉取时延过大,即时性差;

另一方面,当到达拉取时间点时,即使分布式协调系统中的配置数据未发生变化,客户端也会拉取配置数据,造成了重复拉取,对分布式协调系统造成了不必要的压力。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种配置数据处理方法、装置及系统。所述技术方案如下:

一方面,提供了一种配置数据处理方法,应用于客户端中,所述方法包括:

接收业务节点发送的监听指令,所述监听指令携带指定监听类型和指定节点标识,所述监听指令用于指示监听分布式协调系统中的指定节点;

运行框架文件,所述框架文件包括至少一种监听类型对应的监听接口以及对任一节点的监听逻辑;

在所述框架文件的运行过程中,按照所述监听逻辑,调用所述框架文件中所述指定监听类型对应的指定监听接口,向所述分布式协调系统发送指定监听请求,并注册指定回调函数,所述指定监听请求携带所述指定监听类型和所述指定节点标识,所述分布式协调系统用于根据所述指定监听类型和所述指定节点标识监听所述指定节点,当监听到所述指定节点发生与所述指定监听类型匹配的指定事件时,通过调用所述指定回调函数返回指定通知消息,所述指定通知消息用于通知所述指定节点发生所述指定事件;

当接收到所述指定通知消息时,从所述分布式协调系统拉取所述指定节点的配置数据,发送给所述业务节点。

另一方面,提供了一种配置数据处理方法,应用于分布式协调系统中,所述方法包括:

接收客户端发送的指定监听请求,所述指定监听请求携带指定监听类型和指定节点标识,所述指定监听请求由所述客户端在框架文件的运行过程中,按照所述框架文件中的监听逻辑,通过所述指定监听类型对应的指定监听接口发送,所述框架文件包括至少一种监听类型对应的监听接口以及对任一节点的监听逻辑;

根据所述指定监听类型和所述指定节点标识监听所述指定节点,当监听到所述指定节点发生与所述指定监听类型匹配的指定事件时,调用所述客户端注册的指定回调函数,向所述客户端发送指定通知消息,所述指定通知消息用于通知所述指定节点发生所述指定事件,所述客户端用于在所述框架文件的运行过程中接收到所述指定通知消息时,从所述分布式协调系统拉取所述指定节点的配置数据,发送给所述业务节点。

另一方面,提供了一种配置数据处理方法,所述方法包括:

客户端接收业务节点发送的监听指令,所述监听指令携带指定监听类型和指定节点标识,所述监听指令用于指示监听分布式协调系统中的指定节点;

所述客户端运行框架文件,所述框架文件包括至少一种监听类型对应的至少一个监听接口以及所述至少一个监听接口的运行逻辑;

所述客户端在所述框架文件的运行过程中,调用所述框架文件中所述指定监听类型对应的指定监听接口,向所述分布式协调系统发送指定监听请求,并注册指定回调函数,所述指定监听请求携带所述指定监听类型和所述指定节点标识;

所述分布式协调系统接收到所述指定监听请求时,根据所述指定监听类型和所述指定节点标识监听所述指定节点,当监听到所述指定节点发生与所述指定监听类型匹配的指定事件时,调用所述客户端注册的指定回调函数,向所述客户端发送指定通知消息,所述指定通知消息用于通知所述指定节点发生所述指定事件;

所述客户端在所述框架文件的运行过程中,接收到所述指定通知消息时,从所述分布式协调系统拉取所述指定节点的配置数据,发送给所述业务节点。

另一方面,提供了一种配置数据处理装置,应用于客户端中,所述装置包括:

接收模块,用于接收业务节点发送的监听指令,所述监听指令携带指定监听类型和指定节点标识,所述监听指令用于指示监听分布式协调系统中的指定节点;

运行模块,用于运行框架文件,所述框架文件包括至少一种监听类型对应的监听接口以及对任一节点的监听逻辑;

发送模块,用于在所述框架文件的运行过程中,按照所述监听逻辑,调用所述框架文件中所述指定监听类型对应的指定监听接口,向所述分布式协调系统发送指定监听请求,并注册指定回调函数,所述指定监听请求携带所述指定监听类型和所述指定节点标识,所述分布式协调系统用于根据所述指定监听类型和所述指定节点标识监听所述指定节点,当监听到所述指定节点发生与所述指定监听类型匹配的指定事件时,通过调用所述指定回调函数返回指定通知消息,所述指定通知消息用于通知所述指定节点发生所述指定事件;

拉取模块,用于当接收到所述指定通知消息时,从所述分布式协调系统拉取所述指定节点的配置数据;

所述发送模块,还用于将所述指定节点的配置数据发送给所述业务节点。

另一方面,提供了一种配置数据处理装置,应用于分布式协调系统中,所述装置包括:

接收模块,用于接收客户端发送的指定监听请求,所述指定监听请求携带指定监听类型和指定节点标识,所述指定监听请求由所述客户端在框架文件的运行过程中,按照所述框架文件中的监听逻辑,通过所述指定监听类型对应的指定监听接口发送,所述框架文件包括至少一种监听类型对应的监听接口以及对任一节点的监听逻辑;

监听模块,用于根据所述指定监听类型和所述指定节点标识监听所述指定节点;

发送模块,用于当监听到所述指定节点发生与所述指定监听类型匹配的指定事件时,调用所述客户端注册的指定回调函数,向所述客户端发送指定通知消息,所述指定通知消息用于通知所述指定节点发生所述指定事件,所述客户端用于在所述框架文件的运行过程中接收到所述指定通知消息时,从所述分布式协调系统拉取所述指定节点的配置数据,发送给所述业务节点。

另一方面,提供了一种配置数据处理系统,所述配置数据处理系统包括业务节点、客户端和分布式协调系统,所述分布式协调系统中包括至少一个节点;

所述业务节点,用于向所述客户端发送监听指令,所述监听指令携带指定监听类型和指定节点标识,所述监听指令用于指示监听所述分布式协调系统中的所述指定节点;

所述客户端,用于接收所述监听指令,运行框架文件,所述框架文件包括至少一种监听类型对应的至少一个监听接口以及所述至少一个监听接口的运行逻辑;在所述框架文件的运行过程中,调用所述框架文件中所述指定监听类型对应的指定监听接口,向所述分布式协调系统发送指定监听请求,并注册指定回调函数,所述指定监听请求携带所述指定监听类型和所述指定节点标识;

所述分布式协调系统,用于接收到所述指定监听请求时,根据所述指定监听类型和所述指定节点标识监听所述指定节点,当监听到所述指定节点发生与所述指定监听类型匹配的指定事件时,调用所述客户端注册的指定回调函数,向所述客户端发送指定通知消息,所述指定通知消息用于通知所述指定节点发生所述指定事件;

所述客户端,还用于在所述框架文件的运行过程中,接收到所述指定通知消息时,从所述分布式协调系统拉取所述指定节点的配置数据,发送给所述业务节点。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例提供的方法、装置及系统,通过在通用的框架文件中实现至少一种监听接口以及对任一节点的监听逻辑,通过调用该框架文件即可实现对指定节点的监听,而无需关注该分布式协调系统的底层监听机制,提高了监听效率。而且,仅在指定节点发生指定事件,相应的配置数据发生变化时,客户端才会拉取配置数据,一方面能保证及时拉取到变化后的配置数据,减小拉取时延,提高即时性,另一方面在配置数据未发生变化时,不会造成重复拉取的问题,减轻了不必要的压力。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种配置数据处理系统的结构示意图;

图2是本发明实施例提供的一种配置数据处理方法的流程图;

图3是本发明实施例提供的一种根据第一监听类型进行监听的操作流程图;

图4是本发明实施例提供的一种根据第二监听类型进行监听的操作流程图;

图5是本发明实施例提供的一种取消监听的方法流程图;

图6是本发明实施例提供的一种配置数据处理装置的结构示意图;

图7是本发明实施例提供的一种配置数据处理装置的结构示意图;

图8是本发明实施例提供的一种终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在对本发明进行详细说明之前,首先对本发明涉及的概念进行如下解释说明:

1、监听指令:用于指示监听分布式协调系统中节点的指令;

该监听指令包括指定监听类型和指定节点标识,该指定监听类型确定了业务节点要监听的方式,该指定节点标识确定了业务节点要监听的节点。其中,该指定监听类型可以为多种不同的监听类型。

取消监听指令:用于指示取消监听节点的指令;

取消监听节点列表:用于存储取消监听的节点标识的列表;

在分布式协调系统返回关于节点的通知消息时,客户端根据该取消监听列表,不会再将取消监听列表中节点的变化情况通知该业务节点,也不会拉取该节点变化后的配置数据发送给该业务节点。

2、第一监听类型:监听数据值是否发生变化的监听类型;

第一监听请求:用于请求监听指定节点的数据值是否发生变化;

第一回调函数:提供给分布式协调系统,由分布式协调系统调用后返回第一通知消息或第五通知消息或第七通知消息的函数;

第一监听接口:与第一监听类型对应的监听接口,用于触发第一监听请求并注册第一回调函数。

3、第二监听类型:监听子节点是否发生变化的监听类型;

第二监听请求:用于请求监听指定节点的子节点是否发生变化;

第二回调函数:提供给分布式协调系统,由分布式协调系统调用后返回第二通知消息或第五通知消息或第七通知消息的函数;

第二监听接口:与第二监听类型对应的监听接口,用于触发第二监听请求并注册第二回调函数。

4、第三监听类型:监听是否创建节点的监听类型;

第三监听请求:用于请求监听是否创建指定节点;

第三回调函数:提供给分布式协调系统,由分布式协调系统调用后返回第六通知消息的函数;

第三监听接口:与第三监听类型对应的监听接口,用于触发第三监听请求并注册第三回调函数。

5、第一通知消息:指定节点的数据值发生变化的通知消息;

第二通知消息:指定节点的子节点发生变化的通知消息

第三通知消息:指定节点创建了第一子节点的通知消息;

第四通知消息:删除了指定节点的第二子节点的通知消息;

第五通知消息:指定节点不存在的通知消息;

第六通知消息:创建了指定节点的通知消息;

第七通知消息:删除了指定节点的通知消息;

第八通知消息:创建了指定节点的第二子节点的通知消息。

6、框架文件:将至少一种监听类型对应的监听接口以及对任一节点的监听逻辑进行封装后得到的文件;

监听逻辑已经在该框架文件中实现,那么当要监听任一节点时运行该框架文件,即可直接按照该监听逻辑调用监听接口,进而实现监听,而无需开发人员手动调用监听接口。

图1是本发明实施例提供的一种配置数据处理系统的结构示意图,参见图1,该配置数据处理系统包括:分布式协调系统101、客户端102和业务节点103。

该分布式协调系统101中包括多个节点,多个节点构成树形结构,其中的至少一个节点可以具有至少一个子节点。且,每个节点具有相应的配置数据,该配置数据可以包括数据值和子节点列表,该子节点列表中记录了节点的子节点。

该客户端102中配置有框架文件,该框架文件中包括至少一种监听类型对应的监听接口以及对任一节点的监听逻辑,该客户端102可以按照该监听逻辑,调用该框架文件中的任一监听接口,对该分布式协调系统101中的节点进行监听。

该业务节点103用于进行业务处理,在进行业务处理的过程中可能需要获取该分布式协调系统101中指定节点的配置数据,因此可以触发监听指令,指示该客户端102监听该指定节点,并在该指定节点的配置数据发生变化时获取该指定节点变化后的配置数据。

其中,该分布式协调系统101可以为Zookeeper系统,Zookeeper系统具有平行扩容、容灾的能力,采用Zookeeper系统作为配置中心,可以利用Zookeeper系统的watch机制实现配置数据的管理。

该分布式协调系统101、该客户端102和该业务节点103的具体执行过程详见下述图2和图5所示的实施例。

图2是本发明实施例提供的一种配置数据处理方法的流程图。该发明实施例的执行主体为业务节点、客户端和分布式协调系统,参见图2,该方法包括:

201、业务节点向客户端发送监听指令,该监听指令携带指定监听类型和指定节点标识,该监听指令用于指示监听分布式协调系统中的指定节点。

该分布式协调系统中可以包括一个或多个节点,且针对每个节点可以采用不同的监听类型进行监听,因此,当业务节点要监听分布式协调系统中的节点时,要确定需采用的指定监听类型和需监听的指定节点。该指定监听类型可以包括多种监听类型中的任一种或多种,该指定节点标识用于确定对应的指定节点,可以为该指定节点的地址、名称、节点编号等。该指定节点可以包括该分布式协调系统中的任一个或多个节点,且该指定节点既可以为某一节点的父节点,也可以为某一节点的子节点。

以Zookeeper系统为例,Zookeeper系统提供了以下几种watch(监听)类型:

1、get_watch:监听节点的value值是否发生变化,当节点的value值发生变化时触发数据值发生变化的通知消息;

2、get_children_watch:监听节点的子节点是否发生变化,当节点的子节点增加或删除时触发子节点发生变化的消息;

3、exists_watch:监听节点是否创建,当节点创建时触发创建节点的通知消息。

202、客户端接收该监听指令,并运行框架文件,该框架文件包括至少一种监听类型对应的监听接口以及对任一节点的监听逻辑。

本发明实施例中,将分布式协调系统提供的监听机制实现成一个通用的框架文件,在该框架文件中封装了至少一种监听类型对应的监听接口,通过任一种监听接口可以触发相应的监听过程。该框架文件中还封装了对任一节点的监听逻辑,按照该监听逻辑可以确定要监听节点时需调用的监听接口,以及监听得到通知消息后的处理逻辑。那么,针对业务节点来说,该业务节点只需通过该框架文件即可实现监听,而无需关注该分布式协调系统的底层监听机制。

203、该客户端在该框架文件的运行过程中,按照该监听逻辑,调用该框架文件中该指定监听类型对应的指定监听接口,向该分布式协调系统发送指定监听请求,并注册指定回调函数。

不同的监听接口对应于不同的监听类型,该客户端可以根据该监听指令,确定该指定监听类型对应的指定监听接口,从而调用该框架文件中的指定监听接口,发送指定监听请求,并注册指定回调函数,从而触发监听过程。

该指定监听类型不同时,调用的指定监听接口、发送的指定监听请求以及注册的指定回调函数均不同。具体地,该步骤203可以包括以下步骤2031和2032:

2031、该指定监听类型包括监听数据值是否发生变化的第一监听类型时,调用该第一监听类型对应的第一监听接口,向该分布式协调系统发送第一监听请求,并注册第一回调函数,该第一监听请求携带该指定节点标识,该第一监听请求用于请求监听该指定节点的数据值是否发生变化。

例如,业务节点告知该客户端采用get_watch类型监听指定节点,则该客户端调用get_watch接口发送get_watch请求,从而监听指定节点,并注册get_watch回调函数,供该分布式协调系统调用。

2032、该指定监听类型包括监听子节点是否发生变化的第二监听类型时,调用该第二监听类型对应的第二监听接口,向该分布式协调系统发送第二监听请求,并注册第二回调函数,该第二监听请求携带该指定节点标识,该第二监听请求用于请求监听该指定节点的子节点是否发生变化。

例如,业务节点告知该客户端采用get_children_watch类型监听指定节点,则该客户端调用get_children_watch接口发送get_children_watch请求,从而监听指定节点,并注册get_children_watch回调函数,供该分布式协调系统调用。

204、分布式协调系统接收到该指定监听请求时,根据该指定监听类型监听该指定节点,当监听到该指定节点发生与该指定监听类型匹配的指定事件时,调用该指定回调函数,向该客户端发送指定通知消息,该指定通知消息用于通知该指定节点发生该指定事件。

不同的监听类型代表要监听的事件不同,该分布式协调系统接收到该指定监听请求时,根据该指定监听类型,监听该指定节点是否发生了与该指定监听类型匹配的指定事件,当监听到该指定节点发生了该指定事件时,调用该指定回调函数,向该客户端发送与该指定事件匹配的指定通知消息,以通知该客户端该指定节点发生了该指定事件。

具体地,基于上述步骤2031和2032,该步骤204可以包括以下步骤2041和2042:

2041、当该分布式协调系统接收到该第一监听请求时,监听该指定节点的数据值是否发生变化,当监听到该指定节点的数据值发生变化时,调用该第一回调函数,向该客户端发送第一通知消息,该第一通知消息携带该指定节点标识,该第一通知消息用于通知该指定节点的数据值发生变化。

例如,该分布式协调系统接收到get_watch请求,监听该指定节点的value值是否发生变化,当value值发生变化时,调用get_watch回调函数,触发value值发生变化的通知消息,发送给该客户端。

2042、当该分布式协调系统接收到该第二监听请求时,监听该指定节点的子节点是否发生变化,当监听到该指定节点的子节点发生变化时,调用该第二回调函数,向该客户端发送第二通知消息,该第二通知消息携带该指定节点标识,该第二通知消息用于通知该指定节点的子节点发生变化。

例如,该分布式协调系统接收到get_children_watch请求,监听该指定节点的子节点是否发生变化,当子节点发生变化,如创建了一个新的子节点或者删除了一个子节点时,调用get_children_watch回调函数,触发子节点发生变化的通知消息,发送给该客户端。

在本发明实施例提供的另一实施例中,可能会出现该指定节点不存在的情况,该分布式协调系统将不能监听该指定节点,此时,该分布式协调系统可以通知该客户端,而该客户端还可以采用第三监听类型,监听该指定节点是否创建,从而在监听到创建该指定节点之后再监听该指定节点。具体地,该方法还可以包括以下步骤2043-2046:

2043、当该分布式协调系统接收到该指定监听请求,但确定不存在该指定节点时,调用该指定回调函数,向该客户端发送第五通知消息,该第五通知消息携带该指定节点标识,该第五通知消息用于通知该指定节点不存在。

2044、该客户端接收到该第五通知消息时,调用第三监听类型对应的第三监听接口,向该分布式协调系统发送第三监听请求,并注册第三回调函数,该第三监听类型为监听是否创建节点的监听类型,该第三监听请求携带该指定节点标识,该第三监听请求用于请求监听是否创建该指定节点。

2045、当该分布式协调系统接收到该第三监听请求时,根据该指定节点标识监听是否创建该指定节点,当监听到创建该指定节点时,调用第三回调函数,向该客户端发送第六通知消息,该第六通知消息携带该指定节点标识,该第六通知消息用于通知创建了该指定节点。

2046、当该客户端接收到该第六通知消息时,调用该指定监听接口,向该分布式协调系统发送该指定监听请求,并注册指定回调函数,此时该分布式协调系统即可根据该指定监听请求监听该指定节点。

例如,该客户端调用get_children_watch接口监听指定节点,但该指定节点不存在时,该客户端可以调用exists_watch接口监听是否创建指定节点。当创建了该指定节点时,该分布式协调系统触发创建该指定节点的通知消息,发送给该客户端,此时该客户端再次调用get_children_watch接口监听指定节点。

在本发明实施例提供的另一实施例中,该分布式协调系统监听该指定节点的过程中可能会出现该指定节点被删除的情况,该分布式协调系统将不能继续监听该指定节点,此时,该分布式协调系统可以通知该客户端,而该客户端还可以采用第三监听类型,监听该指定节点是否创建,从而在监听到创建该指定节点之后再监听该指定节点。具体地,该方法还可以包括以下步骤2047-2049:

2047、当该分布式协调系统确定删除该指定节点时,调用该指定回调函数,向该客户端发送第七通知消息,该第七通知消息携带该指定节点标识,该第七通知消息用于通知删除了该指定节点。当该客户端接收到该第七通知消息时,向该业务节点发送该第七通知消息。

2048、该业务节点接收到该第七通知消息时,向该客户端发送对该指定节点的继续监听指令,该继续监听指令携带该指定节点标识,则该客户端接收到该继续监听指令时,调用第三监听类型对应的第三监听接口,向该分布式协调系统发送第三监听请求,并注册第三回调函数,该第三监听请求用于请求监听是否创建该指定节点。

或者,上述步骤2047和2048中,该客户端接收到第七通知消息时,也可以不向该业务节点发送该第七通知消息,而直接调用第三监听接口发送该第三监听请求。

2049、当该分布式协调系统接收到该第三监听请求时,监听是否创建该指定节点,当监听到创建该指定节点时,调用该第三回调函数,向该客户端发送第六通知消息,该第六通知消息用于通知创建了该指定节点。当该客户端接收到该第六通知消息时,调用该指定监听接口,向该分布式协调系统发送该指定监听请求。

例如,该客户端调用get_children_watch接口监听指定节点的过程中,该指定节点被删除时,该分布式协调系统通知该客户端,该客户端在接收到该业务节点要继续监听该指定节点的指令后,可以先调用exists_watch接口监听是否创建指定节点,当创建了该指定节点后,再调用get_children_watch接口监听指定节点。

结合上述步骤2041-2049,根据第一监听类型get_watch进行监听的操作流程可以如图3所示,根据第二监听类型get_children_watch进行监听的操作流程可以如图4所示。

205、当该客户端接收到该指定通知消息时,从该分布式协调系统拉取该指定节点的配置数据,发送给该业务节点。

当该指定节点发生该指定事件时,会导致该指定节点的配置数据发生变化,因此,当该客户端接收到该指定通知消息,确定该指定节点发生该指定事件时,可以从该分布式协调系统拉取该指定节点变化后的配置数据,从而对本地的配置数据以及该业务节点上的配置数据进行更新。

其中,该客户端从该分布式协调系统拉取配置数据时,可以向该分布式协调系统发送拉取配置数据的请求,由该分布式协调系统接收到该请求时,向该客户端发送对应的配置数据。

指定监听类型不同时,该指定节点发生变化的配置数据也不同,则拉取的配置数据也不同。具体地,该步骤205可以包括以下步骤2051和2052:

2051、当该客户端接收到该分布式协调系统发送的第一通知消息时,从该分布式协调系统拉取该指定节点变化后的数据值,当确定该指定节点变化后的数据值与该指定节点的原数据值不同时,将该指定节点变化后的数据值发送给该业务节点。

接收到该第一通知消息之后,该客户端从该分布式协调系统拉取该指定节点当前的数据值,也即是变化后的数据值。之后,为了保证准确性,该客户端可以将该指定节点变化后的数据值与原数据值进行比较,当确定两者确实不同时,再将该指定节点变化后的数据值发送给该业务节点,该业务节点即可根据该指定节点变化后的数据值进行业务处理。

之后,该客户端还可以再次调用该第一监听接口,向该分布式协调系统发送第一监听请求,并注册第一回调函数,从而继续监听该指定节点的数据值。

2052、当该客户端接收到该分布式协调系统发送的第二通知消息时,从该分布式协调系统拉取该指定节点变化后的子节点列表,当确定该指定节点变化后的子节点列表与该指定节点的原子节点列表不同时,将该指定节点变化后的子节点列表发送给该业务节点。

接收到第二通知消息之后,该客户端从该分布式协调系统拉取该指定节点当前的子节点列表,也即是变化后的子节点列表,该子节点列表中包括该指定节点当前的子节点。之后,为了保证准确性,该客户端可以将该指定节点变化后的子节点列表与原子节点列表进行比较,当确定两者确实不同时,再将该指定节点变化后的子节点列表发送给该业务节点,该业务节点即可根据该指定节点变化后的子节点列表进行业务处理。

之后,该客户端还可以再次调用该第二监听接口,向该分布式协调系统发送第二监听请求,并注册第二回调函数,从而继续监听该指定节点的子节点。

实际上,子节点发生变化包括创建新的子节点和删除子节点两种情况,针对创建新的子节点的情况,该方法还可以包括以下步骤2053-2054:

2053、该客户端根据该指定节点变化后的子节点列表与该指定节点的原子节点列表,确定该指定节点新创建的第一子节点,向该业务节点发送第三通知消息,该第三通知消息携带该第一子节点的节点标识,该第三通知消息用于通知该指定节点创建了第一子节点。

2054、当该业务节点接收到该第三通知消息,并确定要对该第一子节点进行监听时,可以向该客户端发送监听指令,该监听指令携带该第一子节点的节点标识和对该第一子节点的监听类型,用于指示根据该监听类型对该第一子节点进行监听。当该客户端接收到该监听指令时,执行根据该监听类型对该第一子节点进行监听的操作。也即是,该客户端调用该框架文件中该监听类型对应的监听接口,向该分布式协调系统发送对应的监听请求,并注册对应的回调函数,从而实现对该第一子节点的监听,该监听过程与监听该指定节点的具体过程类似,在此不再赘述。

针对删除子节点的情况,该方法还可以包括以下步骤2055-2058:

2055、该客户端根据该指定节点变化后的子节点列表与该指定节点的原子节点列表,确定该指定节点新删除的第二子节点,向该业务节点发送第四通知消息,该第四通知消息携带该第二子节点的节点标识,该第四通知消息用于通知删除了该第二子节点。

实际应用中,该客户端可以仅在已经监听该第二子节点但该第二子节点被删除时,才向该业务节点发送该第四通知消息。而如果该客户端并未监听该第二子节点,那么当该第二子节点被删除时,无需向该业务节点发送该第四通知消息。

2056、当该业务节点接收到该第四通知消息,但确定要继续监听该第二子节点时,向该客户端发送继续监听指令,该继续监听指令携带该第二子节点的节点标识。当该客户端接收到该继续监听指令时,执行根据第三监听类型对该第二子节点进行监听的操作。

也即是,该客户端调用第三监听类型对应的第三监听接口,向该分布式协调系统发送第三监听请求,并注册第三回调函数,其中,该第三监听请求携带该第二子节点的节点标识,用于请求监听是否创建该第二子节点。当该分布式协调系统接收到该第三监听请求时,根据该第三监听请求中携带的节点标识,监听是否创建该第二子节点,当监听到创建该第二子节点时,调用第三回调函数,向该客户端发送第八通知消息,该第八通知消息携带该第二子节点的节点标识,该第八通知消息用于通知创建了该第二子节点。当该客户端接收到该第八通知消息时,调用该指定监听接口,向该分布式协调系统发送该指定监听请求,并注册该指定回调函数,该指定监听请求携带该第二子节点的节点标识,此时该分布式协调系统即可根据该指定监听请求监听该第二子节点。

本发明实施例提供的方法,通过在通用的框架文件中实现至少一种监听接口以及对任一节点的监听逻辑,通过调用该框架文件即可实现对指定节点的监听,而无需关注该分布式协调系统的底层监听机制,提高了监听效率。而且,仅在指定节点发生指定事件,相应的配置数据发生变化时,客户端才会拉取配置数据,一方面能保证及时拉取到变化后的配置数据,减小拉取时延,提高即时性,另一方面在配置数据未发生变化时,不会造成重复拉取的问题,减轻了不必要的压力。

相关技术中,分布式协调系统并未设置取消监听的机制,导致当监听了指定节点,无法取消对该指定节点的监听,只能等到该指定节点发生指定事件时,该监听过程才能结束。

在图2所示实施例的基础上,本发明实施例提供了一种取消监听的机制,能够取消对指定节点的监听。参见图5,在该客户端调用指定监听接口向该分布式协调系统发送指定监听请求,并注册指定回调函数之后,该方法还可以包括:

501、该分布式协调系统监听该指定节点的过程中,如果该业务节点要取消对该指定节点的监听,则向该客户端发送取消监听指令,该取消监听指令携带该指定节点标识。

502、该客户端接收到该取消监听指令时,将该指定节点标识添加至取消监听节点列表中。

本发明实施例中,该客户端维护了一个取消监听节点列表,该取消监听节点列表中包括原已进行监听但之后取消监听的节点标识,每当该客户端接收到一个取消监听指令时,会将该取消监听指令所携带的节点标识添加至该取消监听节点列表中。

503、当该客户端接收到该分布式协调系统发送的携带该指定节点标识的通知消息时,确定该取消监听节点列表中包括该指定节点标识,则取消从该分布式协调系统拉取该指定节点的配置数据并发送给该业务节点的操作。

虽然该客户端将该指定节点标识添加至该取消监听节点列表中,但对该分布式协调系统来说,该分布式协调系统仍然还在监听该指定节点,那么,在该指定节点发生了指定事件时,该分布式协调系统仍然会向该客户端发送相应的通知消息。而对于该客户端来说,该客户端接收到该通知消息,获取到该通知消息中携带的指定节点标识时,并不会直接拉取该指定节点变化后的配置数据并发送给该业务节点,而是要先获取该取消监听节点列表,判断该取消监听节点列表中是否包括该指定节点标识。当该取消监听节点列表中包括该指定节点标识时,表示该业务节点已取消对该指定节点的监听,也不再关注该指定节点的配置数据,则该客户端将不会再拉取该指定节点变化后的配置数据并发送给该业务节点。

在另一实施例中,如果上述步骤501和502未执行,则该客户端判断该取消监听节点列表中是否包括该指定节点标识时可以确定该取消监听节点列表中不包括该指定节点标识,此时可以确定该业务节点仍然在关注该指定节点的配置数据,则该客户端从该分布式协调系统拉取该指定节点变化后的配置数据,发送给该业务节点。

504、当该业务节点取消对该指定节点的监听之后,需要再次监听该指定节点时,向该客户端发送携带该指定节点标识的恢复监听指令。

505、当该客户端接收到该恢复监听指令时,将该指定节点标识从该取消监听节点列表中删除。

将该指定节点标识从该取消监听节点列表中删除之后,当该客户端接收到该分布式协调系统发送的携带该指定节点标识的通知消息时,确定该取消监听节点列表中不包括该指定节点标识,则从该分布式协调系统拉取该指定节点的配置数据,并发送给该业务节点。

本发明实施例提供的方法,通过设置取消监听节点列表,能够实现对已监听节点的取消监听,扩展了监听功能,充分满足了业务节点的多种监听需求。

图6是本发明实施例提供的配置数据处理装置的结构示意图,参见图6,该装置应用于客户端中,且该装置包括:

接收模块601,用于接收监听指令;

运行模块602,用于运行框架文件;

发送模块603,用于在框架文件的运行过程中,按照该监听逻辑,调用该框架文件中的指定监听接口,发送指定监听请求,并注册指定回调函数;

拉取模块604,用于从该分布式协调系统拉取该指定节点的配置数据;

该发送模块603,还用于将该指定节点的配置数据发送给该业务节点。

可选地,该发送模块603,用于调用第一监听接口,发送第一监听请求,并注册第一回调函数。

可选地,该拉取模块604,还用于拉取该指定节点变化后的数据值;该发送模块603,还用于将该指定节点变化后的数据值发送给该业务节点。

可选地,该发送模块603,用于调用第二监听接口,发送第二监听请求,并注册第二回调函数。

可选地,该拉取模块604,还用于拉取该指定节点变化后的子节点列表;该发送模块603,还用于将该指定节点变化后的子节点列表发送给该业务节点。

可选地,该装置还包括:

第一确定模块,用于确定该指定节点新创建的第一子节点;

该发送模块603,还用于向该业务节点发送第三通知消息;

该接收模块601,还用于接收该业务节点发送的监听指令,该监听指令携带该第一子节点的节点标识和对该第一子节点的监听类型;

执行模块,用于执行根据该监听类型对该第一子节点进行监听的操作。

可选地,该装置还包括:

第二确定模块,还用于确定该指定节点新删除的第二子节点;

该发送模块603,还用于向该业务节点发送第四通知消息;

该接收模块601,还用于接收该业务节点发送的继续监听指令,该继续监听指令携带该第二子节点的节点标识;

执行模块,用于执行根据第三监听类型对该第二子节点进行监听的操作,该第三监听类型为监听是否创建节点的监听类型。

可选地,该发送模块603,还用于接收到第五通知消息时,调用第三监听接口,发送第三监听请求,并注册第三回调函数;

该发送模块603,还用于接收到第六通知消息时,调用该指定监听接口,发送该指定监听请求。

可选地,该发送模块603,还用于当接收到第七通知消息时,向该业务节点发送该第七通知消息,该第七通知消息用于通知删除了该指定节点;

该接收模块601,还用于接收该业务节点发送的继续监听指令,该继续监听指令携带该指定节点标识;

该发送模块603,还用于调用第三监听接口,发送第三监听请求,并注册第三回调函数;

该发送模块603,还用于向该分布式协调系统发送该指定监听请求。

可选地,该装置还包括:

该接收模块,还用于接收该业务节点发送的取消监听指令,该取消监听指令携带该指定节点标识;

添加模块,用于将该指定节点标识添加至取消监听节点列表中;

该拉取模块604,还用于确定该取消监听节点列表中包括该指定节点标识,则取消从该分布式协调系统拉取该指定节点的配置数据的操作。

可选地,该装置还包括:

删除模块,用于当接收到携带该指定节点标识的恢复监听指令时,将该指定节点标识从该取消监听节点列表中删除。

图7是本发明实施例提供的配置数据处理装置的结构示意图,参见图7,该装置应用于分布式协调系统中,且该装置包括:

接收模块701,用于接收客户端发送的指定监听请求;

监听模块702,用于根据该指定监听类型监听该指定节点;

发送模块703,用于当监听到该指定节点发生与该指定监听类型匹配的指定事件时,调用指定回调函数,向该客户端发送指定通知消息。

可选地,该监听模块702,还用于监听该指定节点的数据值是否发生变化;该发送模块703,还用于当监听到该指定节点的数据值发生变化时,调用第一回调函数,向该客户端发送第一通知消息。

可选地,该监听模块702,还用于监听该指定节点的子节点是否发生变化;该发送模块703,还用于当监听到该指定节点的子节点发生变化时,调用第二回调函数,向该客户端发送第二通知消息。

可选地,该发送模块703,还用于当确定不存在该指定节点时,调用指定回调函数,向该客户端发送第五通知消息;

该监听模块702,还用于当接收到该客户端发送的第三监听请求时,监听是否创建该指定节点;

该发送模块703,还用于当监听到创建该指定节点时,调用第三回调函数,向该客户端发送第六通知消息;

该监听模块702,还用于当接收到该客户端发送的指定监听请求时,执行监听该指定节点的步骤。

可选地,该发送模块703,还用于当确定删除该指定节点时,调用指定回调函数,向该客户端发送第七通知消息;

该监听模块702,还用于当接收到该客户端发送的第三监听请求时,监听是否创建该指定节点;

该发送模块703,还用于当监听到创建该指定节点时,调用第三回调函数,向该客户端发送第六通知消息;

该监听模块702,还用于当接收到该客户端发送的指定监听请求时,执行监听该指定节点的步骤。

需要说明的是:上述实施例提供的配置数据处理装置在处理配置数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将客户端和分布式协调系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的配置数据处理装置与配置数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本实施例提供了一种终端,该终端可以用于执行上述各个实施例中提供的配置数据处理方法。参见图8,该终端800包括:

终端800可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(Wireless Fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。

存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端800的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。

输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图8中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。

终端800还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端800移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路160、扬声器161,传声器162可提供用户与终端800之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端800的通信。

WiFi属于短距离无线传输技术,终端800通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块170,但是可以理解的是,其并不属于终端800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器180是终端800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端800的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。

终端800还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,终端800还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有客户端,该客户端包括存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于实施上述实施例中客户端所执行操作的指令。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1