云平台上节点间进行服务通信的方法

文档序号:7553801阅读:435来源:国知局
专利名称:云平台上节点间进行服务通信的方法
技术领域
本发明涉及分布式服务技术领域,特别涉及一种云平台上节点间进行服务通信的方法。
背景技术
伴随着云平台的发展,分布式系统或分布式服务越来越成为业界研究的重点。目前,云平台中不同节点上的服务间通信,通常是服务端通过侦听TCP/UDP端口的方式等待客户端的连接,一旦建立连接后开始发送消息。但是这种通信方式,不利于实现一个消息被多个节点上的服务同时接收。比如,云平台上的一个节点a,运行服务A ;另外一个节点b,运行服务B ;还有一个节点C,运行服务C。现在节点a要完成一项任务,这项任务需要同时运行服务A、B和C。那么,如何让各个节点上的服务来协同完成这项任务呢?
zookeeper是Hadoop的一个子项目,它是一个针对大型分布式系统的可靠协调系统,也可以看成是一种分布式服务框架。它主要用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
如果能够利用zookeeper来完成集群中不同节点间的服务通信,便可有效解决上述不同服务来协同完成一项任务的问题。发明内容
(一)所要解决的技术问题
本发明的目的在于提 供一种基于zook^per的云平台上节点间进行服务通信的方法,从而使得集群中多个节点上的不同服务能够协同完成同一项任务。
(二)技术方案
为了解决上述技术问题,本发明提出了一种云平台上节点间进行服务通信的方法,所述方法包括以下步骤:
S1、利用zookeeper在任务发起端与任务接收端之间建立znode路径,其中,所述任务接收端有多个;
S2、所述任务发起端将任务消息写入所述znode路径;
S3、所述任务接收端从所述znode路径中读取所述任务消息。
可选的,步骤S3之前还包括:所述任务接收端一直监视所述znode路径。
可选的,步骤S2具体包括:
S2-1、在所述znode路径中建立任务发送目录节点,所述任务发送目录节点用于保存所述任务发起端发送的任务消息,
S2-2、所述任务发起端将任务消息写入所述任务发送目录节点;
步骤S3具体包括:所述任务接收端从所述任务发送目录节点中读取所述任务消肩、O
可选的,步骤S3之后还包括步骤:
S4、所述任务接收端根据所述任务消息执行完相应的任务后,将任务反馈消息写入所述znode路径;
S5、所述任务发起端从所述znode路径中读取所述任务反馈消息。
可选的,步骤S5之前还包括:所述任务发起端一直监视所述znode路径。
可选的,步骤S4之前还包括:在所述znode路径中建立任务反馈目录节点,所述任务反馈目录节点用于保存所述任务接收端发送的任务反馈消息;
步骤S4具体包括:所述任务接收端根据所述任务消息执行完相应的任务后,将任务反馈消息写入所述任务反馈目录节点;
步骤S5具体包括:所述任务发起端从所述任务反馈目录节点中读取所述任务反馈消息。
(三)有益效果
与现有技术相比,本发明提出的技术方案具有如下优点:
1、在集群中可以将一个大的计算任务分配到多个物理机(节点)上进行计算,从而节约了计算时间;
2、在集群中可以协同多个物理机上的多个服务共同完成一件事情;
3、能够在集群中实现消息的并发。


图1是本发明所述方法的一种具体实施方式
的基本流程图。
图2是本发明一个实施例中实现消息并发的示意图。
图3是本发明一个实施例中实现消息反馈的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。
如图1所示,本发明提出的云平台上节点间进行服务通信的方法,包括以下步骤:
S1、利用zookeeper在任务发起端与任务接收端之间建立znode路径,其中,所述任务接收端有多个;
S2、所述任务发起端将任务消息写入所述znode路径;
S3、所述任务接收端从所述znode路径中读取所述任务消息。
步骤S3之前还包括:所述任务接收端一直监视所述znode路径。
步骤S3之后还包括步骤:
S4、所述任务接收端根据所述任务消息执行完相应的任务后,将任务反馈消息写入所述znode路径;
S5、所述任务发起端从所述znode路径中读取所述任务反馈消息。
步骤S5之前还包括:所述任务发起端一直监视所述znode路径。
下面通过举例对上述方法的实现过程进行详细说明。
如图2所示,集群中有节点a、b、C、d,分别运行服务A、B、C、D。节点a要完成一项任务,需要服务A、B、C、D协同完成。在此,节点a为任务发起端,节点b、c、d为任务接收端。首先,如图2所示,定义一个zookeeper的znode路径,并建立一个任务发送目录节点/msg。各接收端监视该/msg的值,发起端往该/msg中写入任务消息,一旦该/msg中的数据发生变化,则所有接收端立即接收到/msg的数据。通过上述过程,便实现了集群中的消息并发。
如图3所示,当节点b、C、d各自完成任务后,各自将反馈结果(即任务反馈消息)写入zookeeper的任务反馈目录节点/result下:
/result/b # 由服务 B 写入
/result/c # 由服务 C 写入
/result/d # 由服务 D 写入
节点a的服务A —直监视/result下的znode个数,一旦发现/result目录下含有b、c、d这3个子目录节点,则表示节点b、c、d上对应的服务B、C、D完成了各自的任务,即完成节点a的服务A所要求的任务,并且得到了反馈。
综上,本发明提出的技术方案通过zookeeper完成了不同物理机上不同服务协同完成一件事情的通信机制。
以上所述仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
权利要求
1.一种云平台上节点间进行服务通信的方法,其特征在于,所述方法包括以下步骤: 51、利用zookeeper在任务发起端与任务接收端之间建立znode路径,其中,所述任务接收端有多个; 52、所述任务发起端将任务消息写入所述znode路径; 53、所述任务接收端从所述znode路径中读取所述任务消息。
2.根据权利要求1所述的方法,其特征在于,步骤S3之前还包括:所述任务接收端一直监视所述znode路径。
3.根据权利要求1或2所述的方法,其特征在于,步骤S2具体包括: S2-1、在所述znode路径中建立任务发送目录节点,所述任务发送目录节点用于保存所述任务发起端发送的任务消息, S2-2、所述任务发起端将任务消息写入所述任务发送目录节点; 步骤S3具体包括:所述任务接收端从所述任务发送目录节点中读取所述任务消息。
4.根据权利要求1或2所述的方法,其特征在于,步骤S3之后还包括步骤: 54、所述任务接收端根据所述任务消息执行完相应的任务后,将任务反馈消息写入所述znode路径; 55、所述任务发起端从所述znode路径中读取所述任务反馈消息。
5.根据权利要求4所述的方法,其特征在于,步骤S5之前还包括:所述任务发起端一直监视所述znode路径。
6.根据权利要求4所述的方法,其特征在于,步骤S4之前还包括:在所述znode路径中建立任务反馈目录节点,所述任务反馈目录节点用于保存所述任务接收端发送的任务反馈消息; 步骤S4具体包括:所述任务接收端根据所述任务消息执行完相应的任务后,将任务反馈消息写入所述任务反馈目录节点; 步骤S5具体包括:所述任务发起端从所述任务反馈目录节点中读取所述任务反馈消肩、O
全文摘要
本发明涉及分布式服务技术领域,具体公开了一种云平台上节点间进行服务通信的方法。所述方法包括S1、利用zookeeper在任务发起端与任务接收端之间建立znode路径,其中,所述任务接收端有多个;S2、所述任务发起端将任务消息写入所述znode路径;S3、所述任务接收端从所述znode路径中读取所述任务消息。采用本发明提出的技术方案,能够完成集群中不同节点间的服务通信,从而使多个节点上的不同服务能够协同完成同一项任务。
文档编号H04L29/08GK103152428SQ20131009050
公开日2013年6月12日 申请日期2013年3月19日 优先权日2013年3月19日
发明者王鹏 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1