虚拟网络业务处理方法、装置和系统,控制器,存储介质与流程

文档序号:17536928发布日期:2019-04-29 14:05阅读:223来源:国知局
虚拟网络业务处理方法、装置和系统,控制器,存储介质与流程

本发明涉及云计算技术领域,特别是涉及一种虚拟网络业务处理方法、装置和系统,控制器,存储介质。



背景技术:

随着云计算和虚拟化技术的快速发展,在一些云计算的实施场景中,例如,在虚拟网络控制系统中,通常可以利用软件定义网络控制器(software defined networkcontroller,简称sdncontroller)进行虚拟网络业务的管控,sdn控制器会向vswitch(virtualswitch,虚拟交换机)或vrouter(virtualrouter,虚拟路由器)等代理发送业务数据,vswitch和vroute在接收到业务数据后,可以根据各自存储的业务逻辑和业务数据执行相关的业务。

图1为相关技术中虚拟网络控制系统的网络架构图一,如图1所示,该网络架构包括:一个或多个控制器,一个消息中间件和多个代理,其中,控制器通过该系统中唯一的消息中间件将业务数据发送给一个或多个代理。

可见,基于图1的网络架构,整个网络部署了一个全局的消息中间件,整个网络的业务数据都需要经过该消息中间件进行转发处理,由于该消息中间件自身处理能力的限制,当网络中需要下发的业务流量,即下发的业务数据较多时,势必会增加该消息中间件的压力,因而可能会导致业务数据下发失败,造成网络业务中断。



技术实现要素:

本发明实施例的目的在于提供一种虚拟网络业务处理方法、装置和系统,控制器,存储介质,可以有效降低网络业务中断的概率。

第一方面,为达到上述目的,本发明实施例公开了一种虚拟网络业务处理方法,所述方法应用于控制器,所述方法包括:

接收虚拟网络业务请求,其中,所述虚拟网络业务请求用于请求执行虚拟网络业务;

根据所述虚拟网络业务请求,确定用于执行所述虚拟网络业务的目标代理,并获取业务执行信息;

确定与所述目标代理对应的消息通信模式;

根据确定的所述消息通信模式,从多个消息中间件中确定目标消息中间件;

向所述目标消息中间件发送所述业务执行信息,以使所述目标消息中间件基于所述消息通信模式将所述业务执行信息转发给所述目标代理,使得所述目标代理根据所述业务执行信息执行所述虚拟网络业务。

结合第一方面,在第一方面的第一种实施方式中,所述确定与所述目标代理对应的消息通信模式包括:

根据预先存储的代理的标识与消息通信模式之间的对应关系和所述目标代理的标识,确定与所述目标代理对应的消息通信模式。

结合第一方面,在第一方面的第二种实施方式中,所述根据确定的所述消息通信模式,从多个消息中间件中确定目标消息中间件包括:

在确定的所述消息通信模式为直接direct方式或分列fanout方式的情况下,根据预先存储的代理的标识与消息中间件的对应关系和所述目标代理的标识,将所述多个消息中间件中与所述目标代理的标识对应的消息中间件确定为所述目标消息中间件;

和/或,

在确定的所述消息通信模式为主题topic方式的情况下,从所述多个消息中间件中部署有所述目标代理的服务程序的消息中间件中选取所述目标消息中间件。

结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述从所述多个消息中间件中部署有所述目标代理的服务程序的消息中间件中选取目标消息中间件包括:

从所述部署有所述目标代理的服务程序的消息中间件中随机选取一个消息中间件作为目标消息中间件;

或,

按照预设的顺序从所述部署有所述目标代理的服务程序的消息中间件中选取一个消息中间件作为目标消息中间件。

结合第一方面的第二种实施方式,在第一方面的第四种实施方式中,在确定的与所述目标代理对应的消息通信模式为fanout方式的情况下,所述确定的目标消息中间件以广播所述业务执行信息方式将所述业务执行信息转发给所述目标代理。

结合第一方面,在第一方面的第五种实施方式中,所述虚拟网络业务请求携带有与所述虚拟网络业务关联的业务参数;所述根据所述虚拟网络业务请求,确定用于执行所述虚拟网络业务的目标代理包括:

根据预先存储的业务参数与代理之间的对应关系和与所述虚拟网络业务关联的业务参数,确定用于执行所述虚拟网络业务的目标代理。

结合第一方面,在第一方面的第六种实施方式中,在向所述目标消息中间件发送所述业务执行信息之后,所述方法还包括:

从所述目标代理处获取所述目标代理发送的http请求,其中,所述http请求中携带有需要回调的内容信息。

结合第一方面的第一种至第六种任一种实施方式,在第一方面的第七种实施方式中,所述虚拟网络业务包括以下至少之一:创建、删除、更新、获取、分配虚拟网络资源。

第二方面,为了达到上述目的,本发明实施例还公开了一种虚拟网络业务处理系统,包括:

控制器,多个消息中间件,多个代理,所述控制器通过所述消息中间件将业务执行信息发送至所述代理;其中,

所述控制器,用于接收虚拟网络业务请求,其中,所述虚拟网络业务请求用于请求执行虚拟网络业务,根据所述虚拟网络业务请求,确定用于执行所述虚拟网络业务的目标代理,并获取业务执行信息,确定与所述目标代理对应的消息通信模式,根据确定的所述消息通信模式,从所述多个消息中间件中确定目标消息中间件,向所述目标消息中间件发送所述业务执行信息;

所述目标消息中间件,用于在接收到所述业务执行信息之后,基于所述消息通信模式将所述业务执行信息转发给所述目标代理;

所述目标代理,用于在接收到所述业务执行信息后,根据所述业务执行信息执行所述虚拟网络业务。

结合第二方面,在第二方面的第一种实施方式中,所述控制器,具体用于根据预先存储的代理的标识与消息通信模式之间的对应关系和所述目标代理的标识,确定与所述目标代理对应的消息通信模式。

结合第二方面,在第二方面的第二种实施方式中,所述控制器,具体用于在确定的所述消息通信模式为direct方式或fanout方式的情况下,根据预先存储的代理的标识与消息中间件的对应关系和所述目标代理的标识,将所述多个消息中间件中与所述目标代理的标识对应的消息中间件确定为目标消息中间件,和/或,在确定的所述消息通信模式为topic方式的情况下,从所述多个消息中间件中部署有所述目标代理的服务程序的消息中间件中选取目标消息中间件。

结合第二方面,在第二方面的第三种实施方式中,所述控制器,具体用于从所述部署有所述目标代理的服务程序的消息中间件中随机选取一个消息中间件作为目标消息中间件,或,按照预设的顺序从所述部署有所述目标代理的服务程序的消息中间件中选取一个消息中间件作为目标消息中间件。

结合第二方面的第二种实施方式,在第二方面的第四种实施方式中,所述目标消息中间件,具体用于在所述目标代理对应的消息通信模式为fanout方式的情况下,以广播所述业务执行信息方式将所述业务执行信息转发给所述目标代理。

结合第二方面,在第二方面的第五种实施方式中,所述虚拟网络业务请求携带有与所述虚拟网络业务关联的业务参数;

所述控制器具体用于根据预先存储的业务参数与代理之间的对应关系和与所述虚拟网络业务关联的业务参数,确定用于执行所述虚拟网络业务的目标代理。

结合第二方面,在第二方面的第五种实施方式中,

所述目标代理,还用于向所述控制器发送http请求,其中,所述http请求中携带有需要回调的内容信息;

所述控制器,还用于接收所述目标代理发送的所述http请求。

第三方面,为了达到上述目的,本发明实施例还公开了一种虚拟网络业务处理装置,所述装置应用于控制器,所述装置包括:

接收模块,用于接收虚拟网络业务请求,其中,所述虚拟网络业务请求用于请求执行虚拟网络业务;

第一确定模块,用于根据所述虚拟网络业务请求,确定用于执行所述虚拟网络业务的目标代理,并获取业务执行信息;

第二确定模块,用于确定与所述目标代理对应的消息通信模式;

第三确定模块,用于根据确定的所述消息通信模式,从多个消息中间件中确定目标消息中间件;

发送模块,用于向所述目标消息中间件发送所述业务执行信息,以使所述目标消息中间件基于所述消息通信模式将所述业务执行信息转发给所述目标代理,使得所述目标代理根据所述业务执行信息执行所述虚拟网络业务。

结合第三方面,在第三方面的第一种实施方式中,所述第二确定模块,具体用于根据预先存储的代理的标识与消息通信模式之间的对应关系和所述目标代理的标识,确定与所述目标代理对应的消息通信模式。

结合第三方面,在第三方面的第二种实施方式中,所述第三确定模块,具体用于在确定的所述消息通信模式为direct方式或fanout方式的情况下,根据预先存储的代理的标识与消息中间件的对应关系和所述目标代理的标识,将所述多个消息中间件中与所述目标代理的标识对应的消息中间件确定为目标消息中间件,和/或,在确定的所述消息通信模式为topic方式的情况下,从所述多个消息中间件中部署有所述目标代理的服务程序的消息中间件中选取目标消息中间件。

结合第三方面的第二种实施方式,在第三方面的第三种实施方式中,所述第三确定模块,具体用于从所述部署有所述目标代理的服务程序的消息中间件中随机选取一个消息中间件作为目标消息中间件,或,按照预设的顺序从所述部署有所述目标代理的服务程序的消息中间件中选取一个消息中间件作为目标消息中间件。

结合第三方面,在第三方面的第四种实施方式中,所述虚拟网络业务请求携带有与所述虚拟网络业务关联的业务参数;所述第一确定模块,具体用于根据预先存储的业务参数与代理之间的对应关系和与所述虚拟网络业务关联的业务参数,确定用于执行所述虚拟网络业务的目标代理。

结合第三方面,在第三方面的第五种实施方式中,所述装置还包括:

接收模块,用于从所述目标代理处获取所述目标代理发送的http请求,其中,所述http请求中携带有需要回调的内容信息。

第四方面,为了达到上述目的,本发明实施例还公开了一种控制器,所述控制器包括存储器和处理器;

所述存储器,用于存放计算机程序;

所述处理器,用于执行存储器上所存放的程序时,实现如上述第一方面所述的虚拟网络业务处理方法步骤。

第五方面,为了达到上述目的,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面所述的虚拟网络业务处理方法步骤。

第六方面,为了达到上述目的,本发明实施例还公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的虚拟网络业务处理方法步骤。

本发明实施例提供的一种虚拟网络业务处理方法,可以在接收到虚拟网络业务请求后,确定用于执行所述虚拟网络业务的目标代理以及与该目标代理对应的消息通信模式,基于确定的消息通信模式从网络中部署的多个消息中间件中确定用于将虚拟网络业务的业务执行信息转发至对应的目标代理的目标消息中间件,向目标消息中间件发送该业务执行信息。基于上述处理,在虚拟网络控制系统中可以部署多个消息中间件,并将需要发送至目标代理的业务执行信息转发至确定出的目标消息中间件,即,可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,降低消息中间件的业务压力,进而可以降低网络业务中断的概率;另外,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为相关技术中虚拟网络控制系统的网络架构图一;

图2为相关技术中虚拟网络控制系统的网络架构图二;

图3为本发明实施例提到的一种网络架构图;

图4为本发明实施例提供的一种虚拟网络业务处理方法的流程图一;

图5为本发明实施例提供的一种虚拟网络业务处理方法的流程图二;

图6为本发明实施例提供的一种虚拟网络业务处理系统的结构示意图;

图7为本发明实施例提供的一种虚拟网络业务处理装置的结构示意图;

图8为本发明实施例提供的一种控制器的结构示意图。

具体实施方式

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

参见图2,图2为相关技术中虚拟网络控制系统的网络架构图二;图2的网络架构包括neutron-api-servercluster(neutron-applicationprogramminginterface-servercluster,中子-应用程序编程接口-服务器集群)、neutron-rpc-servercluster(neutron-remoteprocedurecall-servercluster,中子-远程过程调用-服务器集群)、mqclusteracrossmultipleazs(messagequeueclusteracrossmultipleavailabilityzones,跨多个可用区域的消息队列集群)、openvswitchagent(开放虚拟交换标准代理)、metadataagent(元数据代理)、dhcpagent(dynamichostconfigurationprotocolagent,动态主机设置协议代理)、l3agent(layer-3agent,第三层代理)、bassagent(backendasaserviceagent,后端即服务代理)和vpnagent(virtualprivatenetworkagent,虚拟专用网络代理)。

其中,neutron-api-servercluster和/或neutron-rpc-servercluster可以认为是sdn控制器,用于向各agent下发业务数据。mqclusteracrossmultipleazs相当于消息中间件,可以接收neutron-api-servercluster和/或neutron-rpc-servercluster发送的业务数据,并将业务数据发送至对应的agent。上述各agent可以接收mqclusteracrossmultipleazs转发的业务数据,并执行业务数据对应的操作。

需要说明的是,图2所示的网络架构中,sdn控制器可以是一个或多个,消息中间件只有一个,agent可以是多个。

可见,基于图2的网络架构,整个网络部署了一个全局的消息中间件,整个网络的业务数据都需要经过该消息中间件进行转发处理,由于该消息中间件自身业务处理能力的限制,当网络中需要下发的业务流量,即下发的业务数据较多时,势必会增加该消息中间件的压力,因而可能会导致业务数据下发失败,造成网络业务中断。

为了解决上述问题,本发明实施例提供的了一种虚拟网络业务处理方法,该方法可以应用于sdn控制器,以图3提供的网络架构为例进行说明,其中,图3为本发明实施例提供的一种虚拟网络控制系统的网络架构图,图3的网络架构包括neutron-api-servercluster、neutron-rpc-servercluster、mqcluster(消息队列集群)1、mqcluster2、openvswitchagent、metadataagent、dhcpagent、l3agent、bassagent和vpnagent。neutron-api-servercluster和/或neutron-rpc-servercluster可以表示sdn控制器。

可见,消息中间件可以包括mqcluster1和mqcluster2。sdn控制器可以获虚拟网络业务请求,该虚拟网络业务请求用于请求执行虚拟网络业务,该虚拟网络业务请求中携带有与虚拟网络业务关联的业务参数;sdn控制器在接收到该虚拟网络业务请求,获取虚拟网络业务请求中携带的上述业务参数,根据该业务参数确定需要执行虚拟网络业务的目标代理,并生成业务执行信息,sdn控制器进一步确定该目标代理所对应的消息通信模式,基于确定的消息通信模式从多个消息中间件中确定用于转发业务执行信息的目标消息中间件,即从mqcluster1和mqcluster2中确定出用于转发业务执行信息的消息中间件,然后,sdn控制器可以向目标消息中间件发送业务执行信息。目标消息中间件则可以将业务执行信息转发至目标代理。

需要说明的是,本发明实施例中的消息中间件可以是多个,并不限于两个,上述sdn控制器也可以是一个或多个。

基于上述处理,该网络架构中可以部署多个消息中间件,sdn控制器可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,sdn控制器可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。进一步,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

参见图4,图4为本发明实施例提供的一种虚拟网络业务处理方法的流程图一,本实施例以方法应用于sdn控制器为例进行说明,该方法可以包括以下步骤:

s401:接收虚拟网络业务请求,其中,虚拟网络业务请求用于请求执行虚拟网络业务。

其中,虚拟网络业务请求可以是应用程序接口(applicationprogramminginterface,简称api)请求,但并不限于此。该虚拟网络业务请求中可以携带有与虚拟网络业务关联的业务参数,上述虚拟网络业务可以包括以下至少之一,但并不限于此:创建虚拟网络资源、删除虚拟网络资源、更新虚拟网络资源、获取虚拟网络资源、分配虚拟网络资源;需要说明的是,上述虚拟网络资源可以包括以下至少之一,但并不限于此:虚拟网卡,弹性公网ip(elasticip,简称eip),负载均衡(loadbalancing,简称lb),对等连接(peering),虚拟专用网(virtualprivatenetwork,简称vpn)。

需要说明的是,针对不同的虚拟网络业务,该虚拟网络业务请求中携带的业务参数可以是不同的,比如,在虚拟网络业务为创建虚拟网卡时,上述虚拟网络业务请求中携带有虚拟私有云标识(virtualprivatecloudidentification,简称vpcid)或子网id;在虚拟网络业务为绑定弹性公网ip时,上述虚拟网络业务请求中携带有虚拟网卡id;在虚拟网络业务为创建负载均衡时,上述虚拟网络业务请求中携带有vpcid;但并不限于此。

在本发明实施例中,上述虚拟网络业务请求可以是云计算用户通过客户端设备发出的,该客户端设备可以为云计算用户提供用户控制界面,该云计算用户可通过用户控制界面进行虚拟网络业务请求的下发。该云计算用户可根据虚拟网络业务需求设置与虚拟网络业务关联的业务参数,通过上述虚拟网络业务请求的方式发送给sdn控制器。

s402:根据虚拟网络业务请求,确定用于执行虚拟网络业务的目标代理,并获取业务执行信息。

在本发明实施例中,根据虚拟网络业务请求确定用于执行虚拟网络业务的目标代理可以表现为:基于虚拟网络业务请求中携带的与虚拟网络业务关联的业务参数,确定目标代理。可选的,可以通过以下方式确定目标代理:根据业务参数与代理之间的对应关系和与虚拟网络业务关联的业务参数,确定用于执行虚拟网络业务的目标代理。

以虚拟网络业务为创建虚拟网卡,虚拟网络业务请求中携带的业务参数为vpcid或子网id为例进行说明,sdn控制器中预先存储有业务参数与代理之间的对应关系,即存储有哪个代理处于哪个vpc或子网,或者每个vpc或子网中包括哪些代理;在sdn控制器接收到上述虚拟网络业务请求时,基于上述对应关系和该虚拟网络业务请求携带的vpcid或子网id,确定处于该vpcid所指示的vpc中的代理或处于该子网id所指示的子网中的代理,处于该vpcid所指示的vpc中的代理或处于该子网id所指示的子网中的代理被确定为上述目标代理。

需要说明的是,与虚拟网络业务关联的业务参数包括多种参数,并不限于上述vpcid,子网id或者虚拟网卡id等标识性的信息,因而,在本发明的一个实施例中,sdn控制器在接收到上述虚拟网络业务请求后,还可以基于述虚拟网络业务请求中携带的与虚拟网络业务关联的业务参数生成业务执行信息。

需要说明的是,该业务执行信息可以包括目标代理执行业务所需要的业务数据。该业务数据与上述与虚拟网络业务关联的业务参数可以完全相同,也可以部分相同,还可以完全不相同,并不限于此。该业务数据用于代理执行虚拟网络业务,代理具体会基于业务数据和预先配置好的业务逻辑执行虚拟网络业务。举例而言,当虚拟网络业务为创建虚拟网卡时,业务数据可以包括但并不限于以下参数:

vnet_id:子网id

domain_id:vpc的id

az_name:可用区名字

cidr:网段信息

可以理解的是,不同的虚拟网络业务对应不同的业务数据,这里不再赘述。

需要说明的是,上述目标代理可以是服务器,也可以是节点,但并不限于此。

s403:确定与目标代理对应的消息通信模式。

需要说明的是,消息通信模式可以是目标代理与消息中间件之间通信的方式,目标代理的消息通信模式可以由用户根据业务需求进行设置。通常,根据amqp(advancedmessagequeuingprotocol,高级消息队列协议)的规定,比如目标代理的消息通信模式可以包括direct(直接)方式、topic(主题)方式或fanout(分列)方式,但并不限于此。

需要说明的是,网络中每个代理采用的消息通信模式可能不同,因而,sdn控制器中预先存储有哪个代理采用哪种消息通信模式,即预先存储了代理的标识与消息通信模式之间的对应关系;因而,在本发明的一个实施例中,上述步骤s403可以表现为:根据预先存储的代理的标识与消息通信模式之间的对应关系和目标代理的标识,确定与目标代理对应的消息通信模式。

在发明实施中,在sdn控制器确定了目标代理后,sdn控制器可以在存储的代理的标识与消息通信模式之间的对应关系中进行查询,确定与目标代理的标识对应的消息通信模式,确定出的消息通信模式也即与目标代理对应的消息通信模式(可以称为目标消息通信模式)。

s404:根据确定的消息通信模式,从多个消息中间件中确定目标消息中间件。

其中,多个消息中间件为网络中预先部署好的消息中间件,多个消息中间件之间是相互独立的,即可以独立进行维护、更新和修改等操作,该多个消息中间件均可以对sdn控制器下发的信息进行独立转发。

需要说明的是,消息中间件可以是一个服务器集群,该服务器集群中可以包括多个服务器,但并不限于此。

技术人员可以根据不同的粒度为网络部署多个消息中间件。例如,技术人员可以部署多个az(availabilityzones,可用区域),并将每一az对应部署一个消息中间件,进而可以得到多个消息中间件,其中,每一az中可以包括多个服务器或节点。

或者,技术人员可以确定多个region(地区),并将每一region对应部署一个消息中间件,进而可以得到多个消息中间件,其中,每一region可以包括多个az,同一region包含的多个az可以网络互通。

需要说明的是,az或region与消息中间件可以是一一对应关系,在实施时,可以通过az标识寻找与az标识对应的消息中间件的地址,进而可以将相应的业务执行信息发送给该消息中间件,同理,也可以通过region标识寻找与region标识对应的消息中间件的地址,进而可以将相应的业务执行信息发送给该消息中间件。

需要说明的是,每一种消息通信模式下,消息中间件中部署为目标代理提供服务的部署情况是不同的,比如在direct方式或fanout方式下,多个消息中间件中只部署一个消息中间件为该目标代理提供服务,在topic方式下,多个消息中间件中可以全部部署为该目标代理提供服务,也可以指定部分消息中间件为该目标代理提供服务;因而在每种消息通信模式下,用于确定目标消息中间件的策略也可能是不同的,即可以基于确定的消息通信模式来进一步确定每种消息通信模式所对应的策略,基于对应的策略来从多个消息中间件中确定目标消息中间件。以上述消息通信模式可以为direct方式,fanout方式,topic方式等为例,可选的,在根据确定的消息通信模式,确定目标消息中间件时,sdn控制器可以采取以下方式:

方式一,在确定的与目标代理对应的消息通信模式为direct方式或fanout方式的情况下,根据预先存储的代理的标识与消息中间件的对应关系和目标代理的标识,将多个消息中间件中与目标代理的标识对应的消息中间件确定为目标消息中间件。

在发明实施中,在向代理下发业务执行信息之前,技术人员可以根据业务需求对网络架构进行部署,即,确定代理的标识与消息中间件的对应关系,并将代理的标识与消息中间件的对应关系存储在sdn控制器中。

在本发明的一个实施例中,上述代理的标识与消息中间件的对应关系可以表现为:上述代理的标识与上述可用区(az)的标识的对应关系;具体地,根据预先存储的代理的标识与消息中间件的对应关系和目标代理的标识,将多个消息中间件中与目标代理的标识对应的消息中间件确定为目标消息中间件可以表现为:根据代理的标识与上述可用区(az)的标识的对应关系和目标代理的标识,确定所述目标代理所属az的az标识,基于确定的az标识确定与该az标识对应的消息中间件,其中,确定的消息中间件即为上述目标消息中间件。

需要说明的是,在一种实施例中,上述代理的标识与消息中间件的对应关系也可以表现为:上述代理的标识与上述region(地区)的标识的对应关系;确定消息中间件的方式与上述az标识确定的方式类似,此处不再赘述。

一种实现方式中,如果某一代理的消息通信模式为direct方式,则该代理的标识可以与多个消息中间件中的一个消息中间件相对应;如果该代理的消息通信模式为topic方式,则该代理的标识可以与一个或多个消息中间件均相对应;如果该代理接收消息的方式为fanout方式,则该代理的标识可以与多个消息中间件中的一个消息中间件相对应。

当sdn控制器确定的目标代理的消息通信模式为direct方式时,sdn控制器可以在存储的代理的标识与消息中间件的对应关系中进行查询,将多个消息中间件中与目标代理的标识对应的消息中间件,确定为目标消息中间件。另外,当sdn控制器确定目标消息通信模式为fanout方式时,sdn控制器也可以在存储的代理的标识与消息中间件的对应关系中进行查询,将多个消息中间件中与目标代理的标识对应的消息中间件,确定为目标消息中间件。

方式二,在确定的与目标代理对应的消息通信模式为topic方式的情况下,从多个消息中间件中部署有目标代理的服务程序的消息中间件中选取目标消息中间件。

在发明实施中,当sdn控制器确定目标消息通信模式为topic方式时,sdn控制器可以直接从部署有目标代理的服务程序的消息中间件中选取目标消息中间件。

需要说明的是,上述部署有目标代理的服务程序的消息中间件可以是网络中所有的消息中间件,也可以是网络中的多个消息中间件中的部分消息中间件,但并不限于此。

可选的,sdn控制器从部署有目标代理的服务程序的消息中间件中选取目标消息中间件,可以包括以下情况:

情况一,在多个消息中间件上都已部署为目标代理提供服务的服务程序(即网络中的所有消息中间件都部署有目标代理的服务程序)的情况下,从多个消息中间件中选择一个消息中间件作为目标消息中间件。

在发明实施中,技术人员可以根据业务需求设置为每一代理提供服务的消息中间件。当sdn控制器确定目标消息通信模式为topic方式,可选的,sdn控制器可以采取不同的方式,从多个消息中间件中选取一个消息中间件,作为目标消息中间件。

一种实现方式中,从多个消息中间件中随机选取一个消息中间件作为目标消息中间件。

如果目标消息通信模式为topic方式,且组网中每一消息中间件上都已部署为目标代理提供服务的服务程序,则sdn控制器可以从组网中的各消息中间件中随机选取一个消息中间件,作为目标消息中间件。

另一种实现方式中,按照预设的顺序从多个消息中间件中选取一个消息中间件作为目标消息中间件。

如果目标消息通信模式为topic方式,且组网中每一消息中间件上都已部署为目标代理提供服务的服务程序,则sdn控制器可以按照预设的顺序从组网中的各消息中间件中选取一个消息中间件,作为目标消息中间件。例如,预设的顺序可以是技术人员预先对各消息中间件进行排序得到的。

情况二,在多个消息中间件中的部分消息中间件上已部署为目标代理提供服务的服务程序(即网络中的多个消息中间件中的部分消息中间件部署有目标代理的服务程序)的情况下,将部分消息中间件作为目标消息中间件。

其中,部分消息中间件可以是组网中的一个或者多个消息中间件。

在发明实施中,当sdn控制器确定目标消息通信模式为topic方式,且组网中部分消息中间件上已部署为目标代理提供服务的服务程序时,sdn控制器可以将已部署为目标代理提供服务的服务程序的消息中间件,作为目标消息中间件。

s405:向目标消息中间件发送业务执行信息,以使目标消息中间件基于消息通信模式将业务执行信息转发给目标代理,使得目标代理根据业务执行信息执行虚拟网络业务。

在发明实施例中,在确定出目标消息中间件后,sdn控制器可以向目标消息中间件发送业务执行信息,相应的,在目标消息中间件接收到业务执行信息后,目标消息中间件可以将业务执行信息转发至目标代理。

另外,在确定的与目标代理对应的消息通信模式为fanout方式的情况下,确定的目标消息中间件以广播业务执行信息方式将业务执行信息转发给目标代理;在确定的与目标代理对应的消息通信模式为direct方式的情况下,确定的目标消息中间件可以以单播业务执行信息方式将业务执行信息转发给目标代理,在确定的与目标代理对应的消息通信模式为topic方式的情况下,确定的目标消息中间件可以按照目标代理的订阅信息将业务执行信息转发给目标代理。

需要说明的是,上述步骤s402中获取业务执行信息的步骤与上述步骤s402中确定目标代理以及步骤s403-步骤s404可以同时执行,也可以是先后执行,其并不限定,只要在向目标消息中间件发送业务执行信息之前能够完成上述业务执行信息即可。

可选的,为了节省回调时间,加快回调速度,在本发明的一个实施例中,上述该方法还可以包括以下步骤:从目标代理处获取目标代理发送的http(hypertexttransferprotocol,超文本传输协议)请求,其中,http请求中携带有需要回调的内容信息。

在发明实施中,在进行回调时,目标代理可以直接向sdn控制器发送携带有需要回调的内容信息的http请求,而不需要通过消息中间件对该http请求进行转发,相应的,sdn控制器则可以直接从目标代理接收到该http请求,并响应该http请求。

需要说明的是,在本发明实施例中,在回调的时候也是可以通过与目标代理对应的消息中间件向sdn控制器发送相应的消息,但并不限于此。

基于本发明实施例的虚拟网络业务处理方法,网络中可以部署多个消息中间件,sdn控制器可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,sdn控制器可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。进一步,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

需要说明的是,相关技术中通过使用接收端的标识代码来计算hash值来确定消息中间件和代理之间的关系,而相关技术中的这种方式在进行扩容时,由于消息中间件的数量变多,使得之前接收端的hash发生了变化,即该代理对应的消息中间件也发生了变化,进而需要重新刷新网络系统结构。而本发明实施例提供的虚拟网络业务处理方法,可以直接通过映射的方式,即在sdn控制器中直接存储代理与消息中间件之间的对应关系,进而通过该对应关系直接确定目标代理对应的消息中间件,相比于上述相关技术,在扩容时可以直接指定新增的消息中间件与代理之间的对应关系,而不需要重新刷新网络系统机构,具有更好的系统稳定性。

参见图5,图5为本发明实施例提供的一种虚拟网络业务处理方法的流程图二,该方法可以包括以下步骤:

s501:接收虚拟网络业务请求,其中,虚拟网络业务请求用于请求执行虚拟网络业务。

s502:根据虚拟网络业务请求,确定用于执行虚拟网络业务的目标代理,并获取业务执行信息,其中,在目标代理接收到业务执行信息后,根据业务执行信息执行虚拟网络业务。

s503:根据预先存储的代理的标识与消息中间件的对应关系,从多个消息中间中确定目标消息中间件。

s504:向目标消息中间件发送业务执行信息,以使目标消息中间件基于消息通信模式将业务执行信息转发给目标代理。

需要说明的是,每个目标代理会有不同的消息通信模式,在与目标代理对应的消息通信模式为direct方式或fanout方式的情况下,多个消息中间件中的一个消息中间件与上述目标代理对应;在与目标代理对应的消息通信模式为topic方式的情况下,多个消息中间件中的多个消息中间件与目标代理对应;在与目标代理对应的消息通信模式为topic方式的情况下,需要进一步从与目标代理对应的多个消息中间件中选择一个消息中间作为上述目标消息中间件。

由以上可见,基于本发明实施例的虚拟网络业务处理方法,网络中可以部署多个消息中间件,sdn控制器可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,sdn控制器可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。

另外,相关技术中通过使用接收端的标识代码来计算hash值来确定消息中间件和代理之间的关系,而相关技术中的这种方式在进行扩容时,由于消息中间件的数量变多,使得之前接收端的hash发生了变化,即该代理对应的消息中间件也发生了变化,进而需要重新刷新网络系统结构。而本发明实施例提供的虚拟网络业务处理方法,可以直接通过映射的方式,即在sdn控制器中直接存储代理与消息中间件之间的对应关系,进而通过该对应关系直接确定目标代理对应的消息中间件,相比于上述相关技术,在扩容时可以直接指定新增的消息中间件与代理之间的对应关系,而不需要重新刷新网络系统机构,具有更好的系统稳定性。

需要说明的是,上述步骤s501,s502,s503,s504的执行顺序可以不做限比如其可以同时执行也可以先后执行,并不限于此。

另外,本发明实施例还提供了一种虚拟网络业务处理系统,如图6所示,可以包括:控制器,多个消息中间件和多个代理,控制器可以为sdn控制器,控制器通过消息中间件将业务执行信息发送至代理;其中,控制器,用于接收虚拟网络业务请求,其中,虚拟网络业务请求用于请求执行虚拟网络业务,根据虚拟网络业务请求,确定用于执行虚拟网络业务的目标代理,并获取业务执行信息,确定与目标代理对应的消息通信模式,根据确定的消息通信模式,从多个消息中间件中确定目标消息中间件,向目标消息中间件发送业务执行信息;

目标消息中间件,用于在接收到业务执行信息之后,基于消息通信模式将业务执行信息转发给目标代理;

目标代理,用于在接收到业务执行信息后,根据业务执行信息执行虚拟网络业务。

可选的,控制器具体用于根据预先存储的代理的标识与消息通信模式之间的对应关系和目标代理的标识,确定与目标代理对应的消息通信模式。

可选的,控制器具体用于在确定的消息通信模式为direct方式或fanout方式的情况下,根据预先存储的代理的标识与消息中间件的对应关系和目标代理的标识,将多个消息中间件中与目标代理的标识对应的消息中间件确定为目标消息中间件,和/或,在确定的消息通信模式为topic方式的情况下,从多个消息中间件中部署有目标代理的服务程序的消息中间件中选取目标消息中间件。

可选的,控制器具体用于从部署有目标代理的服务程序的消息中间件中随机选取一个消息中间件作为目标消息中间件,或,按照预设的顺序从部署有目标代理的服务程序的消息中间件中选取一个消息中间件作为目标消息中间件。

可选的,目标消息中间件具体用于在目标代理对应的消息通信模式为fanout方式的情况下,以广播业务执行信息方式将业务执行信息转发给目标代理。

可选的,虚拟网络业务请求携带有与虚拟网络业务关联的业务参数,控制器具体用于根据预先存储的业务参数与代理之间的对应关系和与虚拟网络业务关联的业务参数,确定用于执行虚拟网络业务的目标代理。

可选的,目标代理还用于向控制器发送http请求,其中,http请求中携带有需要回调的内容信息;控制器,还用于接收目标代理发送的http请求。

由以上可见,通过上述系统,该网络架构中可以部署多个消息中间件,控制器可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,控制器可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。进一步,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

需要说明的是,系统实施例中的术语的解释可参考上述方法实施例,此处不再赘述。

另外,参见图7,本发明实施例还提供了一种虚拟网络业务处理装置,该装置可应用于控制器,该装置包括:

接收模块701,用于接收虚拟网络业务请求,其中,虚拟网络业务请求用于请求执行虚拟网络业务;

第一确定模块702,用于根据虚拟网络业务请求,确定用于执行虚拟网络业务的目标代理,并获取业务执行信息;

第二确定模块703,用于确定与目标代理对应的消息通信模式;

第三确定模块704,用于根据确定的消息通信模式,从多个消息中间件中确定目标消息中间件;

发送模块705,用于向目标消息中间件发送业务执行信息,以使目标消息中间件基于消息通信模式将业务执行信息转发给目标代理,使得目标代理根据业务执行信息执行虚拟网络业务。

可选的,第二确定模块703,具体用于根据预先存储的代理的标识与消息通信模式之间的对应关系和目标代理的标识,确定与目标代理对应的消息通信模式。

可选的,第三确定模块704,具体用于在确定的消息通信模式为direct方式或fanout方式的情况下,根据预先存储的代理的标识与消息中间件的对应关系和目标代理的标识,将多个消息中间件中与目标代理的标识对应的消息中间件确定为目标消息中间件,和/或,在确定的消息通信模式为topic方式的情况下,从多个消息中间件中部署有目标代理的服务程序的消息中间件中选取目标消息中间件。

可选的,第三确定模块704,具体用于从部署有目标代理的服务程序的消息中间件中随机选取一个消息中间件作为目标消息中间件,或,按照预设的顺序从部署有目标代理的服务程序的消息中间件中选取一个消息中间件作为目标消息中间件。

可选的,虚拟网络业务请求携带有与虚拟网络业务关联的业务参数;

第一确定模块702,具体用于根据预先存储的业务参数与代理之间的对应关系和与虚拟网络业务关联的业务参数,确定用于执行虚拟网络业务的目标代理。

可选的,该装置还可包括:

接收模块,用于从目标代理处获取目标代理发送的http请求,其中,http请求中携带有需要回调的内容信息。

由以上可见,通过上述装置,由于该网络架构中可以部署多个消息中间件,该装置可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,该装置可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。进一步,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

本发明实施例还提供了一种电子设备,具体为一种控制器,例如可以为sdn控制器,如图8所示,包括存储器801和处理器802;

存储器801,用于存放计算机程序;

处理器802,用于执行存储器801上所存放的程序时,实现本发明实施例提供的上述虚拟网络业务处理方法。

可选的,上述虚拟网络业务处理方法,包括:

接收虚拟网络业务请求,其中,虚拟网络业务请求用于请求执行虚拟网络业务;

根据虚拟网络业务请求,确定用于执行虚拟网络业务的目标代理,并获取业务执行信息;

确定与目标代理对应的消息通信模式;

根据确定的消息通信模式,从多个消息中间件中确定目标消息中间件;

向目标消息中间件发送业务执行信息,以使目标消息中间件基于消息通信模式将业务执行信息转发给目标代理,使得目标代理根据业务执行信息执行虚拟网络业务。

需要说明的是,上述虚拟网络业务处理方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。

上述控制器可以具备有实现上述控制器与其他设备之间通信的通信接口。

上述的处理器802,通信接口,存储器801通过通信总线完成相互间的通信,此处提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。

存储器801可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory,简称nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器802可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的控制器,该网络架构中可以部署多个消息中间件,sdn控制器可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,sdn控制器可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。进一步,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本发明实施例提供的上述虚拟网络业务处理方法。

可选的,上述虚拟网络业务处理方法,包括:

接收虚拟网络业务请求,其中,虚拟网络业务请求用于请求执行虚拟网络业务;

根据虚拟网络业务请求,确定用于执行虚拟网络业务的目标代理,并获取业务执行信息;

确定与目标代理对应的消息通信模式;

根据确定的消息通信模式,从多个消息中间件中确定目标消息中间件;

向目标消息中间件发送业务执行信息,以使目标消息中间件基于消息通信模式将业务执行信息转发给目标代理,使得目标代理根据业务执行信息执行虚拟网络业务。

需要说明的是,上述虚拟网络业务处理方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。

通过本发明实施例还提供的一种计算机可读存储介质,该网络架构中可以部署多个消息中间件,sdn控制器可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,sdn控制器可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。进一步,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本发明实施例提供的上述虚拟网络业务处理方法。

可选的,上述虚拟网络业务处理方法,包括:

接收虚拟网络业务请求,其中,虚拟网络业务请求用于请求执行虚拟网络业务;

根据虚拟网络业务请求,确定用于执行虚拟网络业务的目标代理,并获取业务执行信息;

确定与目标代理对应的消息通信模式;

根据确定的消息通信模式,从多个消息中间件中确定目标消息中间件;

向目标消息中间件发送业务执行信息,以使目标消息中间件基于消息通信模式将业务执行信息转发给目标代理,使得目标代理根据业务执行信息执行虚拟网络业务。

需要说明的是,上述虚拟网络业务处理方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。

通过运行本发明实施例提供的计算机程序产品,该网络架构中可以部署多个消息中间件,sdn控制器可以将需要发送至目标代理的业务执行信息转发至确定出的消息中间件(即目标消息中间件),也即,sdn控制器可以将业务流量分给多个消息中间件,避免同一消息中间件分担所有的业务流量,以降低消息中间件的业务压力,进而可以降低网络业务中断的概率。进一步,在部署了多个消息中间件之后,通过基于目标代理对应的消息通信模式,从多个消息中间件中确定用于转发业务执行信息的消息中间件的方式,进而可以实现在降低消息中间件的业务压力的情况下,能够有效支持多种消息通信模式,进一步保证网络业务的多样化。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、装置、电子设备(控制器)、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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

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