一种远程调用方法、消息中间件集群及系统技术方案

技术编号:14005676 阅读:69 留言:0更新日期:2016-11-16 23:45
本发明专利技术提供了一种远程调用方法、消息中间件集群及系统,该方法通过设置至少一个消息中间件,确定至少一个主节点和至少一个从节点,在每一个消息中间件为所述至少一个主节点设置共用队列,为每一个从节点设置对应的队列;至少一个消息中间件中任意消息中间件中的每一个从节点对应的队列作为当前队列,接收至少一个主节点中任意主节点发送的消息命令;当前队列将消息命令发送给对应的当前从节点;共用队列接收当前从节点发送的消息命令对应的执行结果,并将执行结果发送给至少一个主节点中任意一个主节点。本发明专利技术提供的方案实现了跨网络远程调用。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种远程调用方法、消息中间件集群及系统
技术介绍
远程调用是由主节点发出请求,从节点根据请求执行结果并返回给主节点。在现有的远程调用过程中,主节点与从节点往往处于同一网络下如TCP、HTTP等,通过网络协议进行通信。由于不同的网络的协议和调用模式往往不同,而现有的网络协议的方式,并不能实现不同网络间的远程调用。
技术实现思路
本专利技术实施例提供了一种远程调用方法、消息中间件集群及系统,实现了跨网络远程调用。一种远程调用方法,设置至少一个消息中间件,确定至少一个主节点和至少一个从节点,在每一个消息中间件为所述至少一个主节点设置共用队列,为每一个从节点设置对应的队列,还包括:所述至少一个消息中间件中任意消息中间件中的每一个从节点对应的队列作为当前队列,接收所述至少一个主节点中任意主节点发送的消息命令;所述当前队列将所述消息命令发送给对应的当前从节点;所述共用队列接收所述当前从节点发送的消息命令对应的执行结果,并将所述执行结果发送给所述至少一个主节点中任意一个主节点。优选地,上述方法进一步包括:确定每一个消息中间件中同一个从节点对应的队列间的镜像关系;在所述接收所述至少一个主节点中任意主节点发送的消息命令之后,在所述当前队列将所述消息命令发送给对应的当前从节点之前,进一步包括:根据所述同一个从节点对应的队列间的镜像关系,将所述消息命令镜像到所述当前队列对应的镜像队列;当当前从节点与所述当前队列相连时,则执行所述当前队列将所述消息命令发送给对应的当前从节点;当当前从节点与所述当前队列对应的镜像队列相连时,则所述镜像队列将所述消息命令发送给对应的当前从节点。优选地,上述方法进一步包括:确定每一个消息中间件中共用队列间的镜像关系;所述共用队列接收所述当前从节点发送的消息命令对应的执行结果,包括:任意消息中间件中的共用队列接收所述当前从节点发送的消息命令对应的执行结果,并根据所述共用队列间的镜像关系,将所述执行结果镜像到每一个消息中间件中的共用队列。优选地,所述消息命令,包括:Json格式封装的消息命令;所述执行结果,包括:Json格式封装的执行结果。一种消息中间件集群,包括:至少两个包含消息中间件的服务器,其中,每一个包含消息中间件的服务器,与外设的至少一个主节点和至少一个从节点相连,用于在包含的消息中间件中,为所述外设的至少一个主节点设置共用队列,为外设的每一个从节点设置对应的队列,利用每一个从节点对应的队列接收所述外设的至少一个主节点中任意主节点发送的消息命令,将所述消息命令发送给对应的外设的从节点,利用所述共用队列接收外设的从节点发送的消息命令对应的执行结果,并将所述执行结果发送给所述外设的至少一个主节点中任意一个主节点。优选地,至少两个包含消息中间件的服务器间具有镜像关系,其中,任意一个包含消息中间件的服务器,用于当利用任意从节点对应的队列接收到消息命令时,根据所述镜像关系,将所述消息命令镜像到每一个包含消息中间件的服务器中对应的镜像队列中。优选地,任意一个包含消息中间件的服务器,用于当利用共用队列接收到执行结果时,根据所述镜像关系,将所述执行结果镜像到每一个包含消息中间件的服务器中的共用队列中。一种远程调控系统,其特征在于,包括:上述任一所述的消息中间件集群、至少一个主节点和至少一个从节点,其中,所述至少一个主节点中,每一个主节点与所述消息中间件集群中每一个包含消息中间件的服务器相连,用于向任意一个消息中间件中的目标从节点对应的队列发送消息命令,并接收任意一个消息中间件中的共用队列发送的执行结果;所述至少一个从节点中,每一个从节点,与所述消息中间件集群中每一个包含消息中间件的服务器相连,用于接收任意一个消息中间件中该从节点对应的队列发送的消息命令,并执行该消息命令,生成执行结果,将该执行结果发送给任意一个消息中间件中的共用队列。优选地,所述每一个主节点,用于将接收到的执行结果备份到所有主节点中。优选地,所述每一个主节点,用于为发送的消息命令生成对应的ID,根据ID将消息命令发送给至少一个从节点对应的队列。优选地,所述每一个主节点,用于通过json格式对消息命令进行封装,将json格式的消息命令发送给任意一个消息中间件中的目标从节点对应的队列,并接收json格式的执行结果;所述每一个从节点,包含Executor进程,作为目标节点时,接收json格式的消息命令,并解析所述json格式的消息命令,并将解析后的消息命令发送给Executor进程,生成执行结果,并通过json格式对执行结果进行封装,并将封装后的执行结果发送给任意消息中间件中的共用队列。本专利技术实施例提供了一种远程调用方法、消息中间件集群及系统,该方法通过设置至少一个消息中间件,确定至少一个主节点和至少一个从节点,在每一个消息中间件为至少一个主节点设置共用队列,为每一个从节点设置对应的队列,至少一个消息中间件中任意消息中间件中的每一个从节点对应的队列作为当前队列,接收至少一个主节点中任意主节点发送的消息命令;当前队列将消息命令发送给对应的当前从节点;共用队列接收当前从节点发送的消息命令对应的执行结果,并将执行结果发送给至少一个主节点中任意一个主节点,由于消息中间件本身适用于多种网络,那么处于不同网络中的各个主节点和各个从节点能够通过消息中间件中的队列发送和接收信息,实现了跨网络远程调用。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一个实施例提供的一种远程调用方法的流程图;图2是本专利技术一个实施例提供的一种消息中间件集群的结构示意图;图3是本专利技术一个实施例提供的一种远程调用系统的结构示意图;图4是本专利技术另一个实施例提供的一种远程调用系统的结构示意图;图5是本专利技术另一个实施例提供的一种远程调用方法的流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供了一种远程调用方法,该方法可以包括以下步骤:步骤101:设置至少一个消息中间件,确定至少一个主节点和至少一个从节点;步骤102:在每一个消息中间件为至少一个主节点设置共用队列,为每一个从节点设置对应的队列;步骤103:至少一个消息中间件中任意消息中间件中的每一个从节点对应的队列作为当前队列,接收至少一个主节点中任意主节点发送的消息命令;步骤104:当前队列将消息命令发送给对应的当前从节点;步骤105:共用队列接收当前从节点发送的消息命令对应的执行结果,并将执行结果发送给至少一个主节点中任意一个主节点。在图1所示的实施例中,通过设置至少一个消息中间件,确定至少一个主节点和至少一个从节点,在每一个消息中间件为至少一个主节点设置共用队列,为每一个从节点本文档来自技高网...
一种远程调用方法、消息中间件集群及系统

【技术保护点】
一种远程调用方法,其特征在于,设置至少一个消息中间件,确定至少一个主节点和至少一个从节点,在每一个消息中间件为所述至少一个主节点设置共用队列,为每一个从节点设置对应的队列,还包括:所述至少一个消息中间件中任意消息中间件中的每一个从节点对应的队列作为当前队列,接收所述至少一个主节点中任意主节点发送的消息命令;所述当前队列将所述消息命令发送给对应的当前从节点;所述共用队列接收所述当前从节点发送的消息命令对应的执行结果,并将所述执行结果发送给所述至少一个主节点中任意一个主节点。

【技术特征摘要】
1.一种远程调用方法,其特征在于,设置至少一个消息中间件,确定至少一个主节点和至少一个从节点,在每一个消息中间件为所述至少一个主节点设置共用队列,为每一个从节点设置对应的队列,还包括:所述至少一个消息中间件中任意消息中间件中的每一个从节点对应的队列作为当前队列,接收所述至少一个主节点中任意主节点发送的消息命令;所述当前队列将所述消息命令发送给对应的当前从节点;所述共用队列接收所述当前从节点发送的消息命令对应的执行结果,并将所述执行结果发送给所述至少一个主节点中任意一个主节点。2.根据权利要求1所述的方法,其特征在于,进一步包括:确定每一个消息中间件中同一个从节点对应的队列间的镜像关系;在所述接收所述至少一个主节点中任意主节点发送的消息命令之后,在所述当前队列将所述消息命令发送给对应的当前从节点之前,进一步包括:根据所述同一个从节点对应的队列间的镜像关系,将所述消息命令镜像到所述当前队列对应的镜像队列;当当前从节点与所述当前队列相连时,则执行所述当前队列将所述消息命令发送给对应的当前从节点;当当前从节点与所述当前队列对应的镜像队列相连时,则所述镜像队列将所述消息命令发送给对应的当前从节点。3.根据权利要求2所述的方法,其特征在于,进一步包括:确定每一个消息中间件中共用队列间的镜像关系;所述共用队列接收所述当前从节点发送的消息命令对应的执行结果,包括:任意消息中间件中的共用队列接收所述当前从节点发送的消息命令对应的执行结果,并根据所述共用队列间的镜像关系,将所述执行结果镜像到每一个消息中间件中的共用队列。4.根据权利要求1至3任一所述的方法,其特征在于,所述消息命令,包括:Json格式封装的消息命令;所述执行结果,包括:Json格式封装的执行结果。5.一种消息中间件集群,其特征在于,包括:至少两个包含消息中间件的服务器,其中,每一个包含消息中间件的服务器,与外设的至少一个主节点和至少一个从节点相连,用于在包含的消息中间件中,为所述外设的至少一个主节点设置共用队列,为外设的每一个从节点设置对应的队列,利用每一个从节点对应的队列接收所述外设的至少一个主节点中任意主节点发送的消息命令,将所述消息命令发送给对应的外设的从节点,利用所...

【专利技术属性】
技术研发人员:高传集孙思清蔡卫卫
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1