本发明涉及云平台
技术领域:
,具体涉及一种云平台消息发送调度方法、系统、终端及存储介质。
背景技术:
:openstack组件内部各个进程之间通信使用基于amqp协议的rpc消息,通过各种消息服务器(rabbitmq、qpid等)实现进程间的消息传递,默认采用的消息服务器是rabbitmq。openstack中的的消息类型众多,但各类消息优先级不一,如创建云主机、挂载云硬盘等消息优先级较高,如监控消息、日志消息等消息优先级较低。当大量的监控消息或日志消息在短时间内触发,就有可能会阻塞消息队列,导致创建云主机、挂载云硬盘等消息超时从而创建云主机或者挂载云硬盘失败。rabbitmq使用了消息优先级机制解决上述问题,即生产端发送消息时携带消息优先级和过期时间信息,rabbitmq先对优先级高的消息进行转发,实现高优先级消息的优先发送。rabbitmq根据优先级高低选择消息转发顺序,优先级相同的则按照进入队列的时间进行排序,容易引起低优先级消息的“饥饿”问题,即低优先级消息长时间无法被发送。上述消息就会按照从m1到m10顺序发送,可能导致m10超过过期时间而被丢弃。技术实现要素:针对现有技术的上述不足,本发明提供一种云平台消息发送调度方法、系统、终端及存储介质,以解决上述技术问题。第一方面,本发明提供一种云平台消息发送调度方法,包括:采集任务队列中所有消息的优先级;采集任务队列中所有消息的过期时间;根据消息的优先级和过期时间计算所述消息的发送权值;根据所述发送权值生成所述消息的发送顺序。进一步的,所述采集任务队列中所有消息的过期时间,包括:预先设定各优先级对应的等待期限;采集任务队列中的消息等待时间;根据消息的等待时间和消息优先级对应的等待期限计算过期时间。进一步的,所述根据消息的优先级和过期时间计算所述消息的发送权值,包括:预先设定过期时间与时间权值的换算关系;根据消息的过期时间和所述换算关系计算消息的时间权值;将消息的优先级和所述时间权值之和作为所述消息的发送权值。进一步的,所述根据消息的优先级和过期时间计算所述消息的发送权值,包括:采集任务队列中的消息在实际转发时的过期时间,并将所述在实际转发时的过期时间作为发送过期时间;计算任务队列中所有消息的发送过期时间的平均值,作为平均过期时间;根据所述平均过期时间调节优先级与时间权值的比例;计算消息的优先级和所述时间权值分别乘以各自所占比例之后的和,作为消息发送权值。进一步的,所述根据发送权值生成所述消息的发送顺序,包括:按照消息的对应发送权值由高到低对任务队列中的消息排序,得到消息的发送顺序;根据所述发送顺序依次发送任务队列中的消息。第二方面,本发明提供一种云平台消息发送调度系统,包括:等级采集单元,配置用于采集任务队列中所有消息的优先级;时间采集单元,配置用于采集任务队列中所有消息的过期时间;权值计算单元,配置用于根据消息的优先级和过期时间计算所述消息的发送权值;顺序生成单元,配置用于根据所述发送权值生成所述消息的发送顺序。进一步的,所述权值计算单元包括:换算设定模块,配置用于预先设定过期时间与时间权值的换算关系;时间计算模块,配置用于根据消息的过期时间和所述换算关系计算消息的时间权值;权值相加模块,配置用于将消息的优先级和所述时间权值之和作为所述消息的发送权值。进一步的,所述权值计算单元包括:超期采集模块,配置用于采集任务队列中的消息在实际转发时的过期时间,并将所述在实际转发时的过期时间作为发送过期时间;平均计算模块,配置用于计算任务队列中所有消息的发送过期时间的平均值,作为平均过期时间;比例调整模块,配置用于根据所述平均过期时间调节优先级与时间权值的比例;比例计算模块,配置用于计算消息的优先级和所述时间权值分别乘以各自所占比例之后的和,作为消息发送权值。第三方面,提供一种终端,包括:处理器、存储器,其中,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。本发明的有益效果在于,本发明提供的云平台消息发送调度方法、系统、终端及存储介质,在考虑消息优先级的基础上同时考虑消息的过期时间,通过对优先级和过期时间动态加权操作计算出动态发送权值,并根据动态发送权值对消息进行发送。本发明在rabbitmq中消费速度大于生产速度导致消息阻塞时,能够兼顾消息的优先级与过期时间,实现消息的合理发送,以提高系统的性能。此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一个实施例的方法的示意性流程图。图2是本发明一个实施例的系统的示意性框图。图3为本发明实施例提供的一种终端的结构示意图。具体实施方式为了使本
技术领域:
的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。下面对本发明中出现的关键术语进行解释。amqp(advancedmessagequeuingprotocol):高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。rabbitmq:一个的开源消息队列系统,属于amqp(高级消息队列协议)标准的一个实现,用于在分布式系统中存储转发消息。图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种云平台消息发送调度系统。如图1所示,该方法包括:步骤110,采集任务队列中所有消息的优先级;步骤120,采集任务队列中所有消息的过期时间;步骤130,根据消息的优先级和过期时间计算所述消息的发送权值;步骤140,根据所述发送权值生成所述消息的发送顺序。具体的,所述云平台消息发送调度方法包括:s1、采集任务队列中所有消息的优先级。采集任务队列中所有消息的过期时间。本实施例设置10个优先级,采集任务队列中的消息的优先级和过期时间,如表1所示。其中过期时间计算方法为:预先设定各优先级对应的等待期限,采集任务队列中的消息等待时间,根据消息的等待时间和消息优先级对应的等待期限计算过期时间。表1任务队列中的消息的优先级和过期时间消息优先级过期时间(ms)m110300m210300m38300m48200m56200m66200m74100m84100m92100m102100s2、根据消息的优先级和过期时间计算所述消息的发送权值。根据所述发送权值生成所述消息的发送顺序。首先将过期时间进行排序并按照等级计算加权值,然后与优先级进行相加,得到发送权值,仍然以上述10条消息为例,如表2所示:表2发送权值计算实例表消息优先级过期时间(ms)时间权值发送权值m110300111m210100515m3830019m48200311m5630017m6620039m7410059m8430015m9230013m10210057首先按照按照过期时间进行等级划分,过期时间短的等级越高(对应时间权值越大),预先设定每个时间权值对应的过期时间阈值,例如过期时间300ms、200ms、100ms分别计算时间权值为5、3、1,然后将每条消息的优先级与时间权值进行相加得到发送权值。根据发送权值大小生成消息的发送顺序,上述消息的发送顺序为m2->m1->m4->m3->m6->m7->m5->m10->m8->m9。这样,优先级最低但是过期时间短的消息m10的发送权值较原级别提高了两个等级,降低了超过过期时间的可能性。但是,上述加权方法简单的将过期时间按照三个等级进行加权,且加权后的过期时间简单用5、3、1代替,不能完全代表优先级与过期时间的比例关系。因此,本发明其他的实施方式中,根据发送权值的转发效果自适应调整时间权值与优先级的比例关系,采集任务队列中的消息在实际转发时的过期时间,并将在实际转发时的过期时间作为发送过期时间,计算任务队列中所有消息的发送过期时间的平均值,作为平均过期时间。设置平均过期时间与比例关系的函数,如y=kx,其中,y为时间权值与优先级的比例关系,x为平均过期时间,k为常数。即当消息最终的转发时间距离过期时间较大时平滑降低时间权值与优先级的比例,即降低过期时间的影响;当消息最终的转发时间距离过期时间较小甚至出现超过过期时间时平滑降增时间权值与优先级的比例,即提高过期时间的影响,最终达到优先级与过期时间之间的平衡,使时间权值更加合理。以上述10条消息为例,如表3所示,假如m10在第20ms时即被转发出去,则可以按照一定比例(比如10%)降低时间权值的差距,即时间权值分别降低为4.5、2.7、0.9,下次的转发时间仍然较快时则按照降低20%的比例计算加权时间,以此类推,时间权值降低80%,即时间权值分别降低为1、0.6、0.2后,对优先级的影响就微乎其微了。表3发送权值的计算示例表同理,假如m10在第80ms时即被转发出去或者出现被丢弃的情况,则可以按照一定比例(比如10%)提高时间权值的差距。根据所述发送权值生成所述消息的发送顺序。如图2所示,该系统200包括:等级采集单元210,配置用于采集任务队列中所有消息的优先级;时间采集单元220,配置用于采集任务队列中所有消息的过期时间;权值计算单元230,配置用于根据消息的优先级和过期时间计算所述消息的发送权值;顺序生成单元240,配置用于根据所述发送权值生成所述消息的发送顺序。可选地,作为本发明一个实施例,所述权值计算单元包括:换算设定模块,配置用于预先设定过期时间与时间权值的换算关系;时间计算模块,配置用于根据消息的过期时间和所述换算关系计算消息的时间权值;权值相加模块,配置用于将消息的优先级和所述时间权值之和作为所述消息的发送权值。可选地,作为本发明一个实施例,所述权值计算单元包括:超期采集模块,配置用于采集任务队列中的消息在实际转发时的过期时间,并将所述在实际转发时的过期时间作为发送过期时间;平均计算模块,配置用于计算任务队列中所有消息的发送过期时间的平均值,作为平均过期时间;比例调整模块,配置用于根据所述平均过期时间调节优先级与时间权值的比例;比例计算模块,配置用于计算消息的优先级和所述时间权值分别乘以各自所占比例之后的和,作为消息发送权值。图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的云平台消息发送调度方法。其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integratedcircuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(centralprocessingunit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-onlymemory,简称:rom)或随机存储记忆体(英文:randomaccessmemory,简称:ram)等。因此,本发明在考虑消息优先级的基础上同时考虑消息的过期时间,通过对优先级和过期时间动态加权操作计算出动态发送权值,并根据动态发送权值对消息进行发送。本发明在rabbitmq中消费速度大于生产速度导致消息阻塞时,能够兼顾消息的优先级与过期时间,实现消息的合理发送,以提高系统的性能,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本
技术领域:
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页12