一种异步消息通知方法

文档序号:7797348阅读:163来源:国知局
一种异步消息通知方法
【专利摘要】本发明提供了一种异步消息通知方法,所述方法包括:消息发布者在Zookeeper上建立节点znode;消息接收者在Zookeeper上注册callback函数;当消息发布者需要发布消息时,在节点znode中写入要发布的消息;当节点znode中数据发生变化时,Zookeeper通知消息接收者。该发明能够实现消息的异步接收。
【专利说明】一种异步消息通知方法
【技术领域】
[0001]本发明涉及计算机【技术领域】,具体涉及一种异步消息通知方法。
【背景技术】
[0002]当某一服务向其他多个服务分发消息时,其他多个服务需要循环不断地查询有没有消息到达,直到有消息到达时接收消息,然后继续重复循环查询,这样的操作浪费了消息接收方的资源,同时带来不便。

【发明内容】

[0003]针对现有技术的不足,本发明提供一种异步消息通知方法,能够实现消息的异步接收。
[0004]为实现上述目的,本发明通过以下技术方案予以实现:
[0005]一种异步消息通知方法,所述方法包括:
[0006]消息发布者在Zookeeper上建立节点znode ;
[0007]消息接收者在Zookeeper上注册call back函数;
[0008]当消息发布者需要发布消息时,在节点znode中写入要发布的消息;
[0009]当节点znode中数据发生变化时,Zookeeper通知消息接收者。
[0010]优选地,所述消息发布者包括服务端。
[0011]优选地,所述消息接收者包括服务端或客户端。
[0012]优选地,所述当节点znode中数据发生变化时,Zookeeper通知消息接收者为:
[0013]当节点znode中数据发生变化时,Zookeeper通过消息接收者注册的call back函数将节点znode中数据变化情况通知给相关的消息接收者。
[0014]优选地,所述节点znode中数据发生变化包括连接超时、数据增加、数据修改、数据删除。
[0015]本发明至少具有如下的有益效果:
[0016]在本发明中,消息接收者在Zookeeper上注册call back函数,当节点znode中数据发生变化时,Zookeeper负责通知消息接收者。因此利用该方法可以实现一个服务向其他多个服务分发任意格式的消息,并且该消息通知的过程是异步的,也就是说消息发布者只管发布消息,而消息接收者也不需要循环查询有没有消息到达,当有消息到达时,Zookeeper会主动通知消息接收者。
【专利附图】

【附图说明】
[0017]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0018]图1是本发明实施例中异步消息通知方法的流程图;
[0019]图2是异步消息通知过程不意图。
【具体实施方式】
[0020]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021]参见图1,本发明实施例提出了一种异步消息通知方法,包括如下步骤:
[0022]步骤101:消息发布者在Zookeeper上建立节点znode。
[0023]在本步骤中,如图2所示,服务I作为消息发布者,在Zookeeper上建立节点znode I,所述消息发布者包括服务端。
[0024]步骤102:消息接收者在Zookeeper上注册call back函数。
[0025]在本步骤中,消息接收者提前在Zookeeper上注册call back函数,将一些信息记录在call back函数中,供Zookeeper调用时使用,所述消息接收者包括服务端和客户端。
[0026]步骤103:当消息发布者需要发布消息时,在节点znode中写入要发布的消息。
[0027]在本步骤中,当消息发布者需要发布消息时,消息发布者将要发布的消息写入步骤101建立的节点znodel中。
[0028]步骤104:当节点znode中数据发生变化时,Zookeeper通知消息接收者。
[0029]在本步骤中,当Zookeeper检测到znode中数据发生变化时,Zookeeper根据消息接收者注册的call back函数中的信息将节点znode中数据变化情况通知给相关的消息接收者,如图2中所示,服务I将消息写入znodel中,当Zookeeper检测到znodel中数据发生变化时,Zookeeper根据服务2、服务3和服务4分别注册的call back函数中的信息将节点znodel中的新消息通知给服务2、服务3和服务4。
[0030]其中,节点znode中数据发生变化包括连接超时、数据增加、数据修改、数据删除
坐寸ο
[0031]可见,在本发明实施例中,消息接收者在Zookeeper上注册call back函数,当节点znode中数据发生变化时,Zookeeper负责通知消息接收者。因此利用该方法可以实现一个服务向其他多个服务分发任意格式的消息,并且该消息通知的过程是异步的,也就是说消息发布者只管发布消息,而消息接收者也不需要循环查询有没有消息到达,当有消息到达时,Zookeeper会主动通知消息接收者。
[0032]以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种异步消息通知方法,其特征在于,所述方法包括: 消息发布者在Zookeeper上建立节点znode ; 消息接收者在Zookeeper上注册call back函数; 当消息发布者需要发布消息时,在节点znode中写入要发布的消息; 当节点znode中数据发生变化时,Zookeeper通知消息接收者。
2.根据权利要求1所述的方法,其特征在于,所述消息发布者包括服务端。
3.根据权利要求1所述的方法,其特征在于,所述消息接收者包括服务端或客户端。
4.根据权利要求1所述的方法,其特征在于,所述当节点znode中数据发生变化时,Zookeeper通知消息接收者为: 当节点znode中数据发生变化时,Zookeeper通过消息接收者注册的call back函数将节点znode中数据变化情况通知给相关的消息接收者。
5.根据权利要求4所述的方法,其特征在于,所述节点znode中数据发生变化包括连接超时、数据增加、数据修改、数据删除。
【文档编号】H04L29/06GK103888340SQ201410060270
【公开日】2014年6月25日 申请日期:2014年2月21日 优先权日:2014年2月21日
【发明者】徐安 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1