CN109450715A - 消息处理方法和装置 - Google Patents
消息处理方法和装置 Download PDFInfo
- Publication number
- CN109450715A CN109450715A CN201811602307.3A CN201811602307A CN109450715A CN 109450715 A CN109450715 A CN 109450715A CN 201811602307 A CN201811602307 A CN 201811602307A CN 109450715 A CN109450715 A CN 109450715A
- Authority
- CN
- China
- Prior art keywords
- node
- message
- value
- message queue
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Abstract
本申请提供了消息处理方法和装置。本申请中,VNFM通过动态将发向VNF设备的所有消息缓存至消息队列树进行管理,方便了VNFM管理发向VNF设备的消息;进一步地,本申请中,在针对消息队列树中的目标节点生成左子树节点和右子树节点时会从目标节点的消息队列中取出消息对应缓存至左子树节点的消息队列和右子树节点的消息队列,这实现了目标节点的消息队列中仅缓存发向同一VNF设备(与目标节点的标识对应)的消息,如此,即使后续该与第二值对应的VNF设备异常,其也不会影响其他正常VNF设备的消息处理,有效控制了异常影响范围。
Description
技术领域
本申请涉及网络通信技术,特别涉及消息处理方法和装置。
背景技术
网络功能虚拟化(NFV:Network Function Virtualize)网络中,虚拟化网络功能管理设备(VNFM:Virtual Network Function Manager)管理多台虚拟化网络功能(VNF:Virtual Network Function)设备,负责向各VNF设备分发消息。
但是,在NFV网络中,VNFM管理的VNF设备的数量可能是巨大甚至是多变的。目前,应用在VNF设备数量巨大、甚至多变的应用场景下,VNFM如何管理向VNF设备分发的消息是目前亟待解决的技术问题。
发明内容
本申请提供了消息处理方法和装置,以实现VNFM通过消息队列树管理向VNF设备分发的消息。
本申请提供的技术方案包括:
一种消息处理方法,该方法应用于虚拟化网络功能管理设备VNFM,包括:
接收来自管理平台发向第一目的VNF设备的第一消息;
若已构建的消息队列树不存在根节点,则生成所述消息队列树的根节点,将第一消息缓存至根节点的消息队列,根节点的节点标识ID设置为第一值;
若消息队列树存在根节点,则从所述根节点开始查找所述消息队列树中用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。
在一个实施例中,所述从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点包括:
将所述根节点作为当前节点;
判断当前节点的节点标识ID是否为第一值,如果是,确定当前节点为所述目标节点,如果否,比较第一消息Key与当前节点的节点标识ID;
若第一消息Key与当前节点的节点标识ID相等,则确定当前节点为所述目标节点;
若第一消息Key小于当前节点的节点标识ID,则将当前节点的左子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作;
若第一消息Key大于当前节点的节点标识ID,则将当前节点的右子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作。
在一个实施例中,在将第一消息存放至目标节点的消息队列后,若目标节点的节点标识ID为第一值,则该方法进一步包括:
判断目标节点的消息队列中消息的数量是否达到预设阈值,
如果是,将目标节点的节点标识ID从第一值更新为第二值并生成目标节点的左子树节点和右子树节点,左子树节点、右子树节点的节点标识ID均为第一值,从目标节点的消息队列中取出满足第一条件的消息并缓存至左子树节点的消息队列,从目标节点的消息队列中取出满足第二条件的消息并缓存至右子树节点的消息队列。
在一个实施例中,所述第二值为目标节点的消息队列中第二消息的第二消息关键字Key;
所述满足第一条件的消息包括:消息Key小于所述第二值的消息;
所述满足第二条件的消息包括:消息Key大于所述第二值的消息。
在一个实施例中,所述第二消息为所述目标节点的消息队列中缓存时间最长的消息。
在一个实施例中,所述第一消息Key与所述第一消息的第一目的VNF设备对应;所述第二消息Key与所述第二消息的第二目的VNF设备对应。
一种消息处理装置,该装置应用于虚拟化网络功能管理设备VNFM,包括:
接收单元,用于接收来自管理平台发向第一目的VNF设备的第一消息;
处理单元,用于在已构建的消息队列树不存在根节点时,生成所述消息队列树的根节点,将第一消息缓存至根节点的消息队列,根节点的节点标识ID设置为第一值;在消息队列树存在根节点时,从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。
在一个实施例中,所述处理单元从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点包括:
将所述根节点作为当前节点;
判断当前节点的节点标识ID是否为第一值,如果是,确定当前节点为所述目标节点,如果否,比较第一消息Key与当前节点的节点标识ID;
若第一消息Key与当前节点的节点标识ID相等,则确定当前节点为所述目标节点;
若第一消息Key小于当前节点的节点标识ID,则将当前节点的左子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作;
若第一消息Key大于当前节点的节点标识ID,则将当前节点的右子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作。
在一个实施例中,所述处理单元在将第一消息存放至目标节点的消息队列后,若目标节点的节点标识ID为第一值,则进一步判断目标节点的消息队列中消息的数量是否达到预设阈值,如果是,
将目标节点的节点标识ID从第一值更新为第二值并生成目标节点的左子树节点和右子树节点,左子树节点、右子树节点的节点标识ID均为第一值,从目标节点的消息队列中取出满足第一条件的消息并缓存至左子树节点的消息队列,从目标节点的消息队列中取出满足第二条件的消息并缓存至右子树节点的消息队列。
在一个实施例中,所述第二值为目标节点的消息队列中第二消息的第二消息关键字Key;
所述满足第一条件的消息包括:消息Key小于所述第二值的消息;
所述满足第二条件的消息包括:消息Key大于所述第二值的消息。
在一个实施例中,所述第二消息为所述目标节点的消息队列中缓存时间最长的消息。
由以上技术方案可以看出,本申请中,VNFM通过动态将发向VNF设备的所有消息缓存至消息队列树进行管理,方便了VNFM管理发向VNF设备的消息。
进一步地,本申请中,在生成目标节点的左子树节点和右子树节点时会从目标节点的消息队列中取出满足第一条件的消息并缓存至左子树节点的消息队列,以及从目标节点的消息队列中取出满足第二条件的消息并缓存至右子树节点的消息队列,最终会实现目标节点的消息队列中仅缓存发向同一VNF设备(与目标节点的标识对应)的消息,如此,即使后续该VNF设备异常,其也只是影响其对应的消息队列,并不会影响其他消息队列,进而不会影响其他正常VNF设备的消息处理,有效控制了异常影响范围。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的方法流程图;
图2为本申请实施例提供的步骤106中确定目标节点的实现流程图;
图3为本申请提供的实施例应用组网图;
图4a至4j为本申请实施例提供的消息队列树的示意图;
图5为本申请实施例提供的装置结构图;
图6为本申请实施例提供的装置硬件结构图。
具体实施方式
在NFV网络中,VNFM介于管理平台与VNF设备之间,相当于管理平台与VNF设备的消息中枢,负责转发来自管理平台发向各VNF设备的消息。
为了方便管理VNFM向各VNF设备分发的消息,本申请引入一个可自适应扩展的消息队列树,该消息队列树是动态构建,用于缓存VNFM向各VNF设备分发的消息。下面通过图1所示流程具体描述:
参见图1,图1为本申请实施例提供的方法流程图。该流程应用于VNFM。如图1所示,该流程可包括以下步骤:
步骤101,VNFM接收来自管理平台发向第一目的VNF设备的第一消息,检查已构建的消息队列树是否存在根节点,如果否,执行步骤102,如果是,执行步骤103。
如上描述,VNFM为管理平台与VNF设备之间的消息中枢,管理平台发向VNF设备的消息会在达到VNF设备之前,先到达VNFM。
需要说明的是,上述的第一目的VNF设备泛指任一VNF设备,第一消息泛指发向第一目的VNF设备的任一消息,本申请只是为了便于描述而进行的命名。
为了实现消息队列树根据实际网络环境进行自适应扩展,本申请中,作为一个例子,可设置消息队列树的初始高度为0。其中,消息队列树的初始高度为0,则意味着消息队列树不存在根节点。如此,本申请中,假若第一消息是VNFM在初始上电后收到的消息,则此时消息队列树是不存在根节点的,反之,则消息队列树是存在根节点的。需要说明的是,作为一个实施例,这里的消息队列树可基于平衡二叉树算法构建得到。
步骤102,VNFM生成消息队列树的根节点,将第一消息缓存至根节点的消息队列,根节点的节点标识ID为第一值。
在本申请中,消息队列树中任一节点都至少包括两部分:节点标识ID、消息队列。基于此,本步骤102中生成消息队列树的根节点,则意味着根节点的节点标识ID、消息队列同时生成。作为一个实施例,上述的第一值可为预设值,比如-1。
至此,执行到步骤102,则将第一消息缓存至消息队列树(具体是根节点的消息队列)。
步骤103,VNFM从所述根节点开始查找所述消息队列树中用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。
本步骤103是在消息队列树存在根节点的前提下执行的。在此前提下,VNFM会从根节点开始查找消息队列树,直至查找到用于缓存第一消息的目标节点。这里VNFM从根节点开始查找消息队列树中用于缓存第一消息的目标节点有很多实现方式,图2举例示出其中一种实现方式。
至此,执行到步骤103,则将第一消息缓存至消息队列树(实质是目标节点(根节点)的消息队列)。
至此,完成图1所示流程。
通过图1所示流程可以看出,本申请中,VNFM通过动态将发向VNF设备的所有消息缓存至消息队列树进行管理,方便了VNFM管理发向VNF设备的消息。
下面对图2所示流程进行描述:
参见图2,图2为本申请实施例提供的步骤103的实现流程图。如图2所示,该流程可包括以下步骤:
步骤201,将根节点作为当前节点。
步骤202,判断当前节点的节点标识ID是否为第一值,如果是,执行步骤203,如果否,执行步骤204。
步骤203,确定当前节点为用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。结束当前流程。
在本申请中,消息队列树中任一节点的消息队列的容量是有限制的(通过预设阈值限制)。需要说明的是,这里的预设阈值可根据实际情况设置,比如一个VNF设备最多能接收多少消息等设置。
在实际应用时,当消息队列树中节点的节点标识ID为第一值时,如果此时该节点的消息队列持续放入消息,会出现消息队列达到预设阈值的情况。基于此,本步骤203中,在将第一消息缓存至目标节点的消息队列后,可进一步执行以下步骤a:
步骤a,判断目标节点的消息队列中消息的数量是否达到预设阈值,如果是,将目标节点的节点标识ID从第一值更新为第二值并生成目标节点的左子树节点和右子树节点,左子树节点、右子树节点的节点标识ID均为第一值,从目标节点的消息队列中取出满足第一条件的消息并缓存至左子树节点的消息队列,从目标节点的消息队列中取出满足第二条件的消息并缓存至右子树节点的消息队列。当然,步骤a中若判断出目标节点的消息队列中消息的数量未达到预设阈值,则可不执行任何操作。
通过步骤a可以看出,步骤a可根据实际需求自适应动态扩展消息队列树。
通过步骤a可以看出,最终目标节点的消息队列中缓存以下消息:既不满足第一条件、也不满足第二条件的消息。作为一个实施例,上述第二值为目标节点的消息队列中第二消息的第二消息关键字(Key)。相应地,满足第一条件的消息包括:消息Key小于所述第二值的消息;满足第二条件的消息包括:消息Key大于所述第二值的消息。基于此,目标节点的消息队列中缓存以下消息:消息Key等于第二值的消息。
作为一个实施例,本申请中,为了保证先入队列的消息先发送,可设置消息队列树中各节点的消息队列为先进先出队列。基于先进先出队列,则作为一个实施例,上述的第二消息可为目标节点的消息队列中缓存时间最长的消息;或者,也可以为消息队列中同一key值缓存数量最多的消息。
在具体实现时,消息Key对应唯一VNF设备。比如,第一消息的第一消息Key是通过对第一消息的目的VNF设备的标识(比如IP地址等)进行哈希运算得到的,其与第一消息的目的VNF设备唯一对应,第二消息Key是通过对第二消息的目的VNF设备的标识(比如IP地址等)进行哈希运算得到的,其与第二消息的目的VNF设备唯一对应,以此类推。如此,基于步骤a的描述,则上述更新为第二值之后的目标节点的消息队列中仅缓存发向同一VNF设备(与第二值对应)的消息,如此,即使后续该与第二值对应的VNF设备异常,其也只是影响上述目标节点(节点标识ID为第二值)的消息队列中的消息(实质是发向异常设备的消息),不会影响其他正常VNF设备的消息处理,有效控制了异常影响范围,实现了不同VNF设备的消息相互隔离。
需要说明的是,如上描述,预设阈值可根据实际情况设置,比如一个VNF设备最多能接收多少消息等设置,因此,当节点的节点标识ID不为第一值时,该节点的消息队列中消息的数量是不会达到预设阈值的。
步骤204,比较第一消息Key与当前节点的节点标识ID,若第一消息Key与当前节点的节点标识ID相等,则执行步骤205,若第一消息Key小于当前节点的节点标识ID,则执行步骤206,若第一消息Key大于当前节点的节点标识ID,则执行步骤207。
步骤205,确定当前节点为用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。结束当前流程。
本步骤205是在当前节点的节点标识ID不为第一值、且第一消息Key与当前节点的节点标识ID相等的前提下执行的。
步骤206,将当前节点的左子树节点更新为当前节点,返回上述步骤202。
本步骤206是在当前节点的节点标识ID不为第一值、且第一消息Key小于当前节点的节点标识ID的前提下执行的。
步骤207,将当前节点的右子树节点更新为当前节点,返回上述步骤202。
本步骤207是在当前节点的节点标识ID不为第一值、且第一消息Key大于当前节点的节点标识ID的前提下执行的。
至此,通过图2所示流程举例实现了上述步骤103。
下面基于图1、图2所示流程,通过一个具体实施例进行描述:
参见图3,图3为本申请提供的实施例应用组网图。在图3所示的实施例组网中,VNFM管理VNF设备1至VNF设备N共N个VNF设备。
初始,VNFM基于平衡二叉树算法构建一个消息队列树。在本实施例中,消息队列树的初始高度为0。
VNFM在初始上电后接收管理平台发向VNF设备1的消息(记为Message 0)。Message0的消息Key(取值以99为例)与VNF设备1对应。具体实现时,在本实施例中,Message 0的消息Key(取值以99为例)为VNF设备1的IP地址进行哈希运算得到的哈希值。
VNFM检查消息队列树的初始高度为0,消息队列树还不存在根节点,则生成消息队列树的根节点(记为节点300)。此时,节点300的节点标识ID设置为第一值(以-1为例)。节点300的消息队列此时如图4a所示。
VNFM将Message 0缓存至根节点(即节点300)的消息队列。此时消息队列树如图4b所示。
之后,VNFM又接收管理平台发向VNF设备2的消息(记为Message 1)。Message 1的消息Key(取值以2为例)与VNF设备2对应。具体实现时,在本实施例中,Message 1的消息Key(取值以2为例)为VNF设备2的IP地址进行哈希运算得到的哈希值。
VNFM检查消息队列树此时存在根节点(即节点300),但发现根节点(即节点300)的节点标识ID为第一值(以-1为例),则确定根节点(即节点300)为Message 1的目标节点,将Message 1缓存至根节点(即节点300)的消息队列。此时消息队列数如图4c所示。
假若本实施例中,管理平台最多向同一台VNF设备发送两个消息,消息队列树中任一节点的消息队列只能容纳2个消息(即预设阈值为2),则上述VNFM在将Message1缓存至根节点(即节点300)的消息队列后,会发现根节点(即节点300)的消息队列达到预设阈值,则从根节点(即节点300)的消息队列中确定出缓存时间最长的消息即Message 0,将根节点(即节点300)的节点标识ID从-1更新为Message 0的消息Key(取值以99为例),并生成根节点(即节点300)的左子树节点(记为节点301)和右子树节点(记为节点302),节点301、节点302的节点标识ID均为-1。VNFM从根节点(即节点300)的消息队列中取出消息Key小于Message 0的消息Key(取值以99为例)的消息即Message 1,并缓存至节点301的消息队列。因为根节点(即节点300)的消息队列中此时不存在消息Key大于Message 0的消息Key(取值以99为例)的消息,则此时节点302的消息队列为空。此时,消息队列数如图4d所示。
之后,VNFM又接收管理平台发向VNF设备1的消息(记为Message 2)。Message 2的消息Key(取值以99为例)与VNF设备1对应。具体实现时,在本实施例中,Message2的消息Key(取值以99为例)为VNF设备1的IP地址进行哈希运算得到的哈希值。
VNFM检查消息队列树此时存在根节点(即节点300),但发现根节点(即节点300)的节点标识ID(此时取值为99)不为第一值,则比较Message2的消息Key与根节点(即节点300)的节点标识ID,发现两者相等,则确定根节点(即节点300)为Message 2的目标节点,将Message 2缓存至根节点(即节点300)的消息队列。此时消息队列数如图4e所示。
之后,VNFM又接收管理平台发向VNF设备3的消息(记为Message 3)。Message 3的消息Key(取值以163为例)与VNF设备3对应。具体实现时,在本实施例中,Message3的消息Key(取值以163为例)为VNF设备3的IP地址进行哈希运算得到的哈希值。
VNFM检查消息队列树此时存在根节点(即节点300),但发现根节点(即节点300)的节点标识ID(此时取值为99)不为第一值,则比较Message3的消息Key与根节点(即节点300)的节点标识ID,发现前者大于后者,则检查根节点的右子树节点即节点302的节点标识ID,结果发现节点302的节点标识ID为-1,则确定节点302为Message3的目标节点,将Message3缓存至节点302的消息队列。此时消息队列数如图4f所示。
之后,VNFM又接收管理平台发向VNF设备4的消息(记为Message 4)。Message 4的消息key(取值以60为例)与VNF设备4对应。具体实现时,在本实施例中,Message4的消息Key(取值以60为例)为VNF设备4的IP地址进行哈希运算得到的哈希值。Message 4的处理方式类似Message3的处理方式,最终,VNFM会将Message 4缓存至节点302的消息队列。此时消息队列数如图4g所示。
VNFM在将Message4缓存至节点302的消息队列后,会发现节点302的消息队列达到预设阈值,则从节点302的消息队列中确定出缓存时间最长的消息即Message 3,将节点302的节点标识ID从-1更新为Message 3的消息Key(取值以163为例),并生成节点302的左子树节点(记为节点303)和右子树节点(记为节点304),节点303、节点304的节点标识ID均为-1。VNFM从302的消息队列中取出消息Key小于Message 3的消息Key(取值以163为例)的消息即Message 4,并缓存至节点303的消息队列。因为节点302的消息队列中此时不存在消息Key大于Message 3的消息Key(取值以163为例)的消息,则此时节点304的消息队列为空。此时,消息队列数如图4h所示。
之后,VNFM又接收管理平台发向VNF设备5的消息(记为Message5)。Message 5的消息Key(取值以1为例)与VNF设备5对应。具体实现时,在本实施例中,Message5的消息Key(取值以1为例)为VNF设备5的IP地址进行哈希运算得到的哈希值。
VNFM检查消息队列树此时存在根节点(即节点300),但发现根节点(即节点300)的节点标识ID(此时取值为99)不为第一值,则比较Message5的消息Key与根节点(即节点300)的节点标识ID,发现前者小于后者,则检查根节点的左子树节点即节点301的节点标识ID,结果发现节点301的节点标识ID为-1,则确定节点301为Message5的目标节点,将Message5缓存至节点301的消息队列。此时消息队列数如图4i所示。
VNFM在将Message5缓存至节点301的消息队列后,会发现节点301的消息队列达到预设阈值,则从节点301的消息队列中确定出缓存时间最长的消息即Message 1,将节点301的节点标识ID从-1更新为Message 1的消息Key(取值以2为例),并生成节点301的左子树节点(记为节点305)和右子树节点(记为节点306),节点305、节点306的节点标识ID均为-1。VNFM从301的消息队列中取出消息Key小于Message 1的消息Key(取值以2为例)的消息即Message 5,并缓存至节点305的消息队列。因为节点301的消息队列中此时不存在消息Key大于Message 1的消息Key(取值以2为例)的消息,则此时节点306的消息队列为空。此时,消息队列数如图4j所示。
之后,VNFM在收到消息,会按照上述消息处理方式处理,最终会将所有消息缓存至消息队列树。
通过上述实施例可以看出,当消息队列树中节点的节点标识不为指定值(比如-1)时,比如节点300、节点301、节点302的节点标识都不为指定值(比如-1),则该节点的消息队列中缓存的消息为发向同一VNF设备(与节点标识唯一对应)的消息。比如,节点300的节点标识为对应VNF设备1的消息Key(取值以99为例),则节点300的消息队列缓存的消息为发向VNF设备1的消息;同样,节点301的节点标识为对应VNF设备2的消息Key(取值以2为例),节点301的消息队列缓存的消息为发向VNF设备2的消息;节点302的节点标识为对应VNF设备3的消息Key(取值以163为例),节点302的消息队列缓存的消息为发向VNF设备3的消息,这实现了发向VNF设备1、VNF设备2、VNF设备3的各消息之间的相互隔离,防止VNF设备比如VNF设备1异常时,因为VNF设备1的消息并未与其他VNF设备的消息缓存在同一消息队列,不会影响其他VNF设备的消息处理,有效控制异常影响范围。为便于描述,上述将消息队列树中节点标识不为指定值(比如-1)的节点称为独占节点,用于指示该节点的消息队列仅缓存其对应的一个VNF设备的消息;反之,将节点标识为指定值(比如-1)的节点称为共享节点,用于指示该节点的消息队列不止缓存一个VNF设备的消息。
需要说明的是,上述实施例中,尽管消息队列树是基于平衡二叉树算法构建的,但是,在消息队列树的动态扩展中,随着消息队列树的高度不断增大,可能会破坏消息队列树的平衡性。针对这种情况,本实施例可复用现有平衡二叉树的旋转(单旋转及双旋转算法是平衡二叉树的平衡算法等)方法保持消息队列树的平衡性,从而提高消息加入消息队列树的效率。
至此,完成实施例的描述。
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
参见图5,图5为本申请提供的装置结构图。该装置应用于VNFM,包括:
接收单元,用于接收来自管理平台发向第一目的VNF设备的第一消息;
处理单元,用于在已构建的消息队列树不存在根节点时,生成所述消息队列树的根节点,将第一消息缓存至根节点的消息队列,根节点的节点标识ID设置为第一值;在消息队列树存在根节点时,从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。
在一个例子中,所述处理单元从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点包括:
将所述根节点作为当前节点;
判断当前节点的节点标识ID是否为第一值,如果是,确定当前节点为所述目标节点,如果否,比较第一消息Key与当前节点的节点标识ID;
若第一消息Key与当前节点的节点标识ID相等,则确定当前节点为所述目标节点;
若第一消息Key小于当前节点的节点标识ID,则将当前节点的左子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作;
若第一消息Key大于当前节点的节点标识ID,则将当前节点的右子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作。
在一个例子中,所述处理单元在将第一消息存放至目标节点的消息队列后,若目标节点的节点标识ID为第一值,则进一步判断目标节点的消息队列中消息的数量是否达到预设阈值,如果是,
将目标节点的节点标识ID从第一值更新为第二值并生成目标节点的左子树节点和右子树节点,左子树节点、右子树节点的节点标识ID均为第一值,从目标节点的消息队列中取出满足第一条件的消息并缓存至左子树节点的消息队列,从目标节点的消息队列中取出满足第二条件的消息并缓存至右子树节点的消息队列。
在一个例子中,所述第二值为目标节点的消息队列中第二消息的第二消息关键字Key;
所述满足第一条件的消息包括:消息Key小于所述第二值的消息;
所述满足第二条件的消息包括:消息Key大于所述第二值的消息。
在一个例子中,所述第二消息为所述目标节点的消息队列中缓存时间最长的消息
在一个例子中,所述第一消息Key与所述第一消息的第一目的VNF设备对应;所述第二消息Key与所述第二消息的第二目的VNF设备对应。
至此,完成图5所示装置的结构描述。
对应地,本申请还提供图5所示装置的硬件结构图。如图6示,该硬件结构可以包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行所述机器可读存储介质中的指令代码,实现本申请公开的消息处理方法。
至此,完成图6所示装置的硬件结构图。
在本申请中,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (11)
1.一种消息处理方法,其特征在于,该方法应用于虚拟化网络功能管理设备VNFM,包括:
接收来自管理平台发向第一目的VNF设备的第一消息;
若已构建的消息队列树不存在根节点,则生成所述消息队列树的根节点,将第一消息缓存至根节点的消息队列,根节点的节点标识ID设置为第一值;
若消息队列树存在根节点,则从所述根节点开始查找所述消息队列树中用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。
2.根据权利要求1所述的方法,其特征在于,所述从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点包括:
将所述根节点作为当前节点;
判断当前节点的节点标识ID是否为第一值,如果是,确定当前节点为所述目标节点,如果否,比较第一消息Key与当前节点的节点标识ID;
若第一消息Key与当前节点的节点标识ID相等,则确定当前节点为所述目标节点;
若第一消息Key小于当前节点的节点标识ID,则将当前节点的左子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作;
若第一消息Key大于当前节点的节点标识ID,则将当前节点的右子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作。
3.根据权利要求2所述的方法,其特征在于,在将第一消息存放至目标节点的消息队列后,若目标节点的节点标识ID为第一值,则该方法进一步包括:
判断目标节点的消息队列中消息的数量是否达到预设阈值,
如果是,将目标节点的节点标识ID从第一值更新为第二值并生成目标节点的左子树节点和右子树节点,左子树节点、右子树节点的节点标识ID均为第一值,从目标节点的消息队列中取出满足第一条件的消息并缓存至左子树节点的消息队列,从目标节点的消息队列中取出满足第二条件的消息并缓存至右子树节点的消息队列。
4.根据权利要求3所述的方法,其特征在于,所述第二值为目标节点的消息队列中第二消息的第二消息关键字Key;
所述满足第一条件的消息包括:消息Key小于所述第二值的消息;
所述满足第二条件的消息包括:消息Key大于所述第二值的消息。
5.根据权利要求4所述的方法,其特征在于,所述第二消息为所述目标节点的消息队列中缓存时间最长的消息。
6.根据权利要求3至5任一所述的方法,其特征在于,所述第一消息Key与所述第一消息的第一目的VNF设备对应;所述第二消息Key与所述第二消息的第二目的VNF设备对应。
7.一种消息处理装置,其特征在于,该装置应用于虚拟化网络功能管理设备VNFM,包括:
接收单元,用于接收来自管理平台发向第一目的VNF设备的第一消息;
处理单元,用于在已构建的消息队列树不存在根节点时,生成所述消息队列树的根节点,将第一消息缓存至根节点的消息队列,根节点的节点标识ID设置为第一值;在消息队列树存在根节点时,从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点,将第一消息存放至目标节点的消息队列。
8.根据权利要求7所述的装置,其特征在于,所述处理单元从根节点开始查找所述消息队列树中用于缓存第一消息的目标节点包括:
将所述根节点作为当前节点;
判断当前节点的节点标识ID是否为第一值,如果是,确定当前节点为所述目标节点,如果否,比较第一消息Key与当前节点的节点标识ID;
若第一消息Key与当前节点的节点标识ID相等,则确定当前节点为所述目标节点;
若第一消息Key小于当前节点的节点标识ID,则将当前节点的左子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作;
若第一消息Key大于当前节点的节点标识ID,则将当前节点的右子树节点作为当前节点,返回判断当前节点的节点标识ID是否为第一值的操作。
9.根据权利要求8所述的装置,其特征在于,所述处理单元在将第一消息存放至目标节点的消息队列后,若目标节点的节点标识ID为第一值,则进一步判断目标节点的消息队列中消息的数量是否达到预设阈值,如果是,将目标节点的节点标识ID从第一值更新为第二值并生成目标节点的左子树节点和右子树节点,左子树节点、右子树节点的节点标识ID均为第一值,从目标节点的消息队列中取出满足第一条件的消息并缓存至左子树节点的消息队列,从目标节点的消息队列中取出满足第二条件的消息并缓存至右子树节点的消息队列。
10.根据权利要求9所述的装置,其特征在于,所述第二值为目标节点的消息队列中第二消息的第二消息关键字Key;
所述满足第一条件的消息包括:消息Key小于所述第二值的消息;
所述满足第二条件的消息包括:消息Key大于所述第二值的消息。
11.根据权利要求10所述的装置,其特征在于,所述第二消息为所述目标节点的消息队列中缓存时间最长的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811602307.3A CN109450715B (zh) | 2018-12-26 | 2018-12-26 | 消息处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811602307.3A CN109450715B (zh) | 2018-12-26 | 2018-12-26 | 消息处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109450715A true CN109450715A (zh) | 2019-03-08 |
CN109450715B CN109450715B (zh) | 2022-01-25 |
Family
ID=65537488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811602307.3A Active CN109450715B (zh) | 2018-12-26 | 2018-12-26 | 消息处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109450715B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315640A (zh) * | 2008-07-01 | 2008-12-03 | 中兴通讯股份有限公司 | 一种目录管理方法和装置 |
WO2015154455A1 (zh) * | 2014-08-15 | 2015-10-15 | 中兴通讯股份有限公司 | 告警处理方法、装置、nms、oss及ems |
CN105847172A (zh) * | 2016-03-30 | 2016-08-10 | 华为技术有限公司 | 业务流量控制方法及装置 |
CN106777003A (zh) * | 2016-12-07 | 2017-05-31 | 安徽大学 | 一种面向Key‑Value存储系统的索引查询方法和系统 |
CN107113195A (zh) * | 2015-06-01 | 2017-08-29 | 华为技术有限公司 | 用于控制平面和数据平面中的虚拟化功能的系统和方法 |
CN107155403A (zh) * | 2015-03-26 | 2017-09-12 | 华为技术有限公司 | 一种生命周期事件的处理方法及vnfm |
CN107766512A (zh) * | 2017-10-23 | 2018-03-06 | 中国联合网络通信集团有限公司 | 一种日志数据存储方法和日志数据存储系统 |
CN108337116A (zh) * | 2018-01-30 | 2018-07-27 | 新华三技术有限公司 | 消息保序方法及装置 |
-
2018
- 2018-12-26 CN CN201811602307.3A patent/CN109450715B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315640A (zh) * | 2008-07-01 | 2008-12-03 | 中兴通讯股份有限公司 | 一种目录管理方法和装置 |
WO2015154455A1 (zh) * | 2014-08-15 | 2015-10-15 | 中兴通讯股份有限公司 | 告警处理方法、装置、nms、oss及ems |
CN107155403A (zh) * | 2015-03-26 | 2017-09-12 | 华为技术有限公司 | 一种生命周期事件的处理方法及vnfm |
CN107113195A (zh) * | 2015-06-01 | 2017-08-29 | 华为技术有限公司 | 用于控制平面和数据平面中的虚拟化功能的系统和方法 |
CN105847172A (zh) * | 2016-03-30 | 2016-08-10 | 华为技术有限公司 | 业务流量控制方法及装置 |
CN106777003A (zh) * | 2016-12-07 | 2017-05-31 | 安徽大学 | 一种面向Key‑Value存储系统的索引查询方法和系统 |
CN107766512A (zh) * | 2017-10-23 | 2018-03-06 | 中国联合网络通信集团有限公司 | 一种日志数据存储方法和日志数据存储系统 |
CN108337116A (zh) * | 2018-01-30 | 2018-07-27 | 新华三技术有限公司 | 消息保序方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109450715B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10050866B2 (en) | Parallel top-K simple shortest paths discovery | |
US10742722B2 (en) | Server load balancing | |
US10984155B2 (en) | Accelerating particle-swarm algorithms | |
US10884830B1 (en) | Method and apparatus for multithreaded data transmission in a tee system | |
JP2020515197A (ja) | ブロックデータ検証方法および装置 | |
CN105407055B (zh) | 一种内容中心网络的能耗控制方法 | |
CN108259347A (zh) | 一种报文传输方法和装置 | |
US10397362B1 (en) | Combined cache-overflow memory structure | |
CN108259346A (zh) | 一种等价路由表项建立方法和装置 | |
CN110728376B (zh) | 一种基于树状拓扑结构的联邦学习方法及装置 | |
TW202105219A (zh) | Tee系統中的資料傳輸方法和裝置 | |
CN108781184A (zh) | 用于在网络设备中提供分类资源的分区的系统和方法 | |
Islam et al. | Task scheduling for big data management in fog infrastructure | |
CN107659498A (zh) | 一种报文转发方法和装置 | |
CN109412926A (zh) | 一种隧道建立方法和装置 | |
US20190121559A1 (en) | Data processing method and apparatus and storage medium | |
CN113014689A (zh) | 一种网络地址转换的方法和装置 | |
US20200073952A1 (en) | Method and Apparatus for Acceleration of Hash-Based Lookup | |
US10601711B1 (en) | Lens table | |
CN107070719A (zh) | 一种设备管理方法和装置 | |
CN104468855A (zh) | 地址解析协议arp报文的处理方法和装置 | |
CN109450715A (zh) | 消息处理方法和装置 | |
CN109726144B (zh) | 一种数据报文的处理方法和装置 | |
US10977087B2 (en) | Steal one-process many work-stealing | |
CN114726744B (zh) | 一种仿真网络中虚拟端口上线方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230629 Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd. Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466 Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd. |