一种适用于分布式环境的网络通信方法技术

技术编号:9408857 阅读:71 留言:0更新日期:2013-12-05 06:59
本发明专利技术涉及一种适用于分布式环境的网络通信方法。本发明专利技术首先在分布式环境里的各个节点上分别对通信服务模块和客户端模块进行自定义配置,主要配置通信服务模块监听端口、客户端模块标识等信息;然后在各个节点上分别启动通信服务模块和客户端模块,以通信服务进程和客户端进程两个独立的进程形式运行;然后单个节点上的客户端进程与通信服务进程之间,以及两个节点之间的通信服务进程之间会自动建立全双工非阻塞式通信连接;采用基于消息驱动的消息总线型通信方法。本发明专利技术解决了分布式环境下有频繁而灵活通信需求的瓶颈问题,可应用于云计算各个节点之间的通信上。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及。本专利技术首先在分布式环境里的各个节点上分别对通信服务模块和客户端模块进行自定义配置,主要配置通信服务模块监听端口、客户端模块标识等信息;然后在各个节点上分别启动通信服务模块和客户端模块,以通信服务进程和客户端进程两个独立的进程形式运行;然后单个节点上的客户端进程与通信服务进程之间,以及两个节点之间的通信服务进程之间会自动建立全双工非阻塞式通信连接;采用基于消息驱动的消息总线型通信方法。本专利技术解决了分布式环境下有频繁而灵活通信需求的瓶颈问题,可应用于云计算各个节点之间的通信上。【专利说明】
本专利技术涉及网络通信
,特别是。
技术介绍
分布式环境下尤其是云计算体系架构中,保证各个计算机节点之间灵活而稳定的通信是非常重要。而如今越来越多的云计算解决方案中各个节点的通信采用web service形式提供接口给用户;这种方式使用方便,但同时会带来以下问题:一是通信形式固定,不能满足于对通信有灵活需求的要求。web service为了实现简易性,会以XML文件的形式将通信的信息格式提供给用户,用户虽然可以通过改变各个接口来达到通信要求的目的,但是对于一个不懂axis2c架构的程序员来说,这样会非常麻烦;二是通信量小,现有采用web service形式通信的云计算解决方案,如eucalyptus,节点之间每一次通信都必须只能是一个小的功能参数列表,而无法做到一次通信实现多个功能的相关处理;三是开销大,正是由于第二项所述,每一个功能通信都必须建立一次连接,当节点间通信并发量比较大时,很容易出现通信瓶颈,导致通信异常;四是不灵活,很多分布式环境下的通信方式由于没有采用全双工非阻塞方式,导致节点之间的通信非常依赖:必须是管理节点向非管理节点主动发送或接收。
技术实现思路
本专利技术解决的技术问题在于提供一种适用于分布式环境的高灵活性的网络通信方式,提供一种全双工非阻塞、基于消息驱动的消息总线型通信方法;解决了为满足各个节点之间频繁通信而必须大量建立基于http协议的单双工阻塞形式的短连接而存在高消耗低效率的问题;提升分布式环境下各个节点之间的通信效率,增强灵活性和稳定性。本专利技术解决上述技术问题的技术方案是:包括如下步骤:步骤1:分布式环境下的各个节点分别对通信模块和客户端模块进行自定义配置,主要配置步骤2中启动进程的进程标识、监听端口等信息;步骤2:各个节点分别启动通信服务模块和客户端模块,以通信服务进程和客户端进程两个独立的进程形式运行;步骤3:单个节点上的客户端进程与通信服务进程之间,以及节点之间的通信服务进程之间建立通信连接;步骤4:客户端进程向本节点的通信服务进程发送携带有目的客户端标识的消息;步骤5:通信服务进程受到消息后解析消息获得目的客户端标识;步骤6:通信服务进程采取相应的路由选择算法,选取现存可用路径中的最优路径;步骤7:通信服务进程根据选取的最优路径将消息转发到目的客户端节点的目的通信服务进程;步骤8:目的客户端通信服务进程将消息送达其客户端进程;步骤9:目的客户端进程消费消息执行相应操作,并将操作结果以步骤4至步骤8的过程向客户进程回送反馈消息包。所述的通信模块和客户端模块分别是分布式环境下各个节点计算机的两个独立运行的进程;所述的通信模块是指分布式环境下负责消息转发的、具有路由功能的模块,该模块只负责传递消息,与具体的业务逻辑无关;所述的客户端模块是指分布式环境下消息的产生与消费者,与具体功能相关。所述的通信模块进程和客户端进程,以及,通信进程与通信进程之间自动建立全双工非阻塞式通信连接;可以同时互发消息,并且监听线程及时反馈。客户端模块与通信模块之间传递两种消息一数据消息和控制消息,它们之间是分离通信;所述的数据消息是指具体业务功能相关消息,控制消息是指客户端向服务端注册等信息,数据消息与控制消息分离通信是指这两种消息分别走不同的socket通道。通信服务模块之间建立的是一种基于消息驱动方式的消息总线,围绕消息的产生与处理展开的,并依靠消息循环机制来实现的一条大通道。所述路由选择算法是指通信模块具有路由器类似的各种机制和算法。传递的消息采用了类似json形式的消息包格式,满足json整形、字符串、数组、字典等格式。本专利技术提供了一种全双工非阻塞、基于消息驱动的消息总线型通信方法;解决了为满足各个节点之间频繁通信而必须大量建立基于http协议的单双工阻塞形式的短连接而存在高消耗低效率的问题;提升分布式环境下各个节点之间的通信效率,增强灵活性和稳定性。【专利附图】【附图说明】下面结合附图对本专利技术进一步说明:图1为本专利技术的流程图;图2为本专利技术的一个具体应用流程图;图3为本专利技术在分布式环境下典型的部署场景。【具体实施方式】如图1所示,本专利技术的通信方法包括如下步骤:步骤1:分布式环境下的各个节点分别对通信模块和客户端模块进行自定义配置,主要配置步骤2中启动进程的进程标识、监听端口等信息;步骤2:各个节点分别启动通信服务模块和客户端模块,以通信服务进程和客户端进程两个独立的进程形式运行;步骤3:单个节点上的客户端进程与通信服务进程之间,以及两个节点的通信服务进程之间会自动建立全双工非阻塞式通信连接;步骤4:客户端进程A向本节点的通信服务进程A发送携带有目的客户端标识的消息;步骤5:通信服务进程A受到消息后解析消息获得目的客户端标识;步骤6:通信服务进程A采取相应的路由选择算法,选取现存可用路径中的最优路径;步骤7:通信服务进程A根据选取的最优路径将消息转发到目的客户端节点的目的通信服务进程B ;步骤8:通信服务进程B将消息送达客户端进程B ;步骤9:客户端进程B消费消息执行相应操作,并将操作结果以步骤4至步骤8的过程向客户进程A回送反馈消息包。所述的通信模块和客户端模块分别是分布式环境下各个节点计算机的两个独立运行的进程;所述的通信模块是指分布式环境下负责消息转发的、具有路由功能的模块,该模块只负责传递消息,与具体的业务逻辑无关;所述的客户端模块是指分布式环境下消息的产生与消费者,与具体功能相关。所述的通信方式是全双工非阻塞的,通信模块进程和客户端进程,通信进程与通信进程之间可以同时互发消息,并且监听线程是及时反馈的;所述的数据消息是指具体业务功能相关消息,控制消息是指客户端向服务端注册等信息,数据消息与控制消息分离通信是指这两种消息分别走不同的socket通道;所述的通信服务模块之间建立的是一种基于消息驱动方式的消息总线,围绕消息的产生与处理展开的,并依靠消息循环机制来实现的一条大通道;所述采用相应路由选择算法是指通信模块具有路由器类似的各种机制和算法;所述的消息采用了类似json形式的消息包格式,满足json整形、字符串、数组、字典等格式。如图2、3所示,本专利技术分布式环境下的每台物理机即各个节点都会安装一个通信服务模块gTunnel和客户端模块Client,然后该台物理机上的客户即Client通过连接此gTunnel进行消息的收发,而gTunnel通过和其他物理机上的gTunnel通信实现消息在网络上的转发。任意一个gTunnel的客户可以和任意一个同样连接到此gTunnel网络上的其他客户进行通信。本专利技术的gTunnel有两个版本,python版和cpp版本文档来自技高网
...

【技术保护点】
一种适用于分布式环境的网络通信方法,其特征在于:包括如下步骤:步骤1:分布式环境下的各个节点分别对通信模块和客户端模块进行自定义配置,主要配置步骤2中启动进程的进程标识、监听端口等信息;步骤2:各个节点分别启动通信服务模块和客户端模块,以通信服务进程和客户端进程两个独立的进程形式运行;步骤3:单个节点上的客户端进程与通信服务进程之间,以及节点之间的通信服务进程之间建立通信连接;步骤4:客户端进程向本节点的通信服务进程发送携带有目的客户端标识的消息;步骤5:通信服务进程受到消息后解析消息获得目的客户端标识;步骤6:通信服务进程采取相应的路由选择算法,选取现存可用路径中的最优路径;步骤7:通信服务进程根据选取的最优路径将消息转发到目的客户端节点的目的通信服务进程;步骤8:目的客户端通信服务进程将消息送达其客户端进程;步骤9:目的客户端进程消费消息执行相应操作,并将操作结果以步骤4至步骤8的过程向客户进程回送反馈消息包。

【技术特征摘要】

【专利技术属性】
技术研发人员:熊梦杨松莫展鹏季统凯
申请(专利权)人:国云科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1