CN112905358A - 分布式系统的软件分发方法、装置及系统 - Google Patents

分布式系统的软件分发方法、装置及系统 Download PDF

Info

Publication number
CN112905358A
CN112905358A CN202110159302.3A CN202110159302A CN112905358A CN 112905358 A CN112905358 A CN 112905358A CN 202110159302 A CN202110159302 A CN 202110159302A CN 112905358 A CN112905358 A CN 112905358A
Authority
CN
China
Prior art keywords
messages
software distribution
message
network
software
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.)
Pending
Application number
CN202110159302.3A
Other languages
English (en)
Inventor
张仁辉
王炳辉
易辛悦
叶泽锐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110159302.3A priority Critical patent/CN112905358A/zh
Publication of CN112905358A publication Critical patent/CN112905358A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Abstract

本申请实施例提供一种分布式系统的软件分发方法、装置及系统,可用于金融技术领域,方法包括结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时;若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,所述第一数量为所述目标消息中消息总数与1的加和;将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。本申请能够实现软件分发速率及软件下发规模的动态调整,且调整过程高效且准确,并能够在不影响网络带宽的基础上,有效提高分发下游服务进行软件分发的效率、网络带宽的利用率及智能化程度,减少网络连接发起次数。

Description

分布式系统的软件分发方法、装置及系统
技术领域
本申请涉及数据处理技术领域,特别涉及金融技术领域,具体涉及分布式系统的软件分发方法、装置及系统。
背景技术
随着互联网的普及、互联网用户的急速增长,传统的软件同步分发模式已经无法满足日益增长的用户压力对系统容量及高可用的需求。通过消息队列将软件分发改造为异步模式,能有效的解决不断增长的系统压力,这一点已经在多家互联网公司中得到验证。
目前,在分布式系统中,上游服务将软件分发的相关数据配置生产到消息队列中,下游应用再通过消费消息队列来分发软件,通过消息队列将同步软件分发改良为异步分发,无需同步等待分发结果,降低了系统资源负担。
然而,当下游分发服务存在同步操作时,通过消息队列分发的方式,其速率依旧依赖于下游的同步操作。因此当网络带宽较为拥挤时,通过消息队列的方式可以让上游服务无需等待分发回传结果,缓解系统资源占用情况,提高系统资源利用率;而当每个消息配置的分发规模较小时,即使网络带宽较为充足,下游实际分发的速率较快,但不可避免的还是需要将消息逐一地取出消费,进行网络传输,等待同步回传结果,这不可避免地影响了软件分发的速率。也就是说,现有的分布式系统中的软件分发方式中,消息队列虽然可以提高上游软件分发时的系统资源利用率,但对于下游分发速率的优化较为有限。
发明内容
针对现有技术中的问题,本申请提供一种分布式系统的软件分发方法、装置及系统,能够实现软件分发速率及软件下发规模的动态调整,且调整过程高效且准确,并能够在不影响网络带宽的基础上,有效提高分发下游服务进行软件分发的效率、网络带宽的利用率及智能化程度,减少网络连接发起次数。
为解决上述技术问题,本申请提供以下技术方案:
第一方面,本申请提供一种分布式系统的软件分发方法,包括:
结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长;
若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和;
将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
进一步地,还包括:
若当前的所述网络耗时大于所述合理耗时区间的上限,且所述目标消息是基于多个消息封装而成的,则自所述消息队列中获取第二数量的消息,其中,所述第二数量为所述目标消息中消息总数与1的差值;
将所述第二数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
进一步地,还包括:
若当前的所述网络耗时处于所述合理耗时区间内,则自所述消息队列中获取第三数量的消息,其中,所述第三数量等于所述目标消息中的消息总数;
将所述第三数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
进一步地,在所述自分布式系统中获取目标消息的软件分发结果及网络耗时之前,还包括:
获取预设的可合并消息最大耗时阈值和不可合并消息最小阈值,所述可合并消息最大耗时阈值小于所述不可合并消息最小阈值;
根据所述可合并消息最大耗时阈值和所述不可合并消息最小阈值设置得到合理耗时区间。
进一步地,所述自分布式系统中获取目标消息的软件分发结果及网络耗时,包括:
接收网络请求回传的当前目标消息的软件分发结果;
根据所述目标消息在所述网络请求发出之前和之后的时间戳的差值确定对应的网络耗时。
进一步地,还包括:
若当前的所述网络耗时大于预设的超时时长,则输出针对所述目标消息的超时告知消息,其中,所述超时时长大于所述合理耗时区间的上限。
第二方面,本申请提供一种分布式系统的软件分发装置,包括:
数据获取模块,用于执行结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长;
耗时比较模块,用于若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和;
软件分发模块,用于将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
第三方面,本申请提供一种软件分发系统,包括:设置在分布式系统中且依次通信连接的分发上游服务装置、消息队列和分发下游服务装置;
所述分发上游服务装置用于将待分发的各个软件封装为消息,并将消息添加至所述消息队列中;
所述分发下游服务装置用于执行所述的分布式系统的软件分发方法。
第四方面,本申请提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述分布式系统的软件分发方法。
第五方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述分布式系统的软件分发方法。
由上述技术方案可知,本申请提供的一种分布式系统的软件分发方法、装置及系统,方法通过结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长;若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和;将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤,能够动态调整软件分发速率,并能够在不影响网络带宽的基础上,有效提高分发下游服务进行软件分发的效率及智能化程度,支持软件分发服务在消费消息队列时根据网络速率状况及消息内容,动态调整软件下发的规模,从而减少网络通信次数,提高系统资源利用率和网络带宽利用率。其中,当网络带宽较为拥堵,软件分发回传消息较慢时,软件分发服务依次消费消息队列进行软件分发,保证软件分发系统的可用性。当网络带宽较为宽裕,下发速率较快时,软件分发服务从消息队列中消费多个消息,扩大软件分发规模后进行下发,提高网络带宽的利用率,减少网络连接发起次数,进而能够有效提高分布式系统的运行可靠性及稳定性,并提高分布式系统的运维人员的用户体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中的分布式系统的软件分发方法的第一种流程示意图。
图2是本申请实施例中的分布式系统的软件分发方法中第二种流程示意图。
图3是本申请实施例中的分布式系统的软件分发方法的第三种流程示意图。
图4是本申请实施例中的分布式系统的软件分发方法的第四种流程示意图。
图5是本申请实施例中的分布式系统的软件分发方法中步骤100的具体流程示意图。
图6是本申请实施例中的分布式系统的软件分发方法的第五种流程示意图。
图7是本申请实施例中的分布式系统的软件分发装置的结构示意图。
图8是本申请实施例中的软件分发系统的结构示意图。
图9是本申请应用实例中的分布式软件分发系统的逻辑处理示意图。
图10是本申请实施例中的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请公开的分布式系统的软件分发方法和装置可用于金融技术及云计算技术领域,也可用于除金融技术领域及云计算技术领域之外的任意领域,本申请公开的分布式系统的软件分发方法和装置的应用领域不做限定。
针对当下游分发服务存在同步操作时,通过消息队列分发的方式,其速率依旧依赖于下游的同步操作。因此当网络带宽较为拥挤时,通过消息队列的方式可以让上游服务无需等待分发回传结果,缓解系统资源占用情况,提高系统资源利用率;而当每个消息配置的分发规模较小时,即使网络带宽较为充足,下游实际分发的速率较快,但不可避免的还是需要将消息逐一地取出消费,进行网络传输,等待同步回传结果,这不可避免地影响了软件分发的速率。也就是说,现有的分布式系统中的软件分发方式中,消息队列虽然可以提高上游软件分发时的系统资源利用率,但对于下游分发速率的优化较为有限的问题,本申请提供一种分布式系统的软件分发方法、分布式系统的软件分发装置、电子设备及计算机可读存储介质,通过结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长;若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和;将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤,能够动态调整软件分发速率,并能够有效提高分发下游服务进行软件分发的效率及智能化程度,支持软件分发服务在消费消息队列时根据网络速率状况及消息内容,动态调整软件下发的规模,从而减少网络通信次数,提高系统资源利用率和网络带宽利用率。其中,当网络带宽较为拥堵,软件分发回传消息较慢时,软件分发服务依次消费消息队列进行软件分发,保证软件分发系统的可用性。当网络带宽较为宽裕,下发速率较快时,软件分发服务从消息队列中消费多个消息,扩大软件分发规模后进行下发,提高网络带宽的利用率,减少网络连接发起次数。
基于上述内容,本申请还提供一种用于实现本申请一个或多个实施例中提供的分布式系统的软件分发方法的分布式系统的软件分发装置,该分布式系统的软件分发装置可以作为一分发下游服务装置,该分发下游服务装置与消息队列通信连接,还可以与客户端设备之间进行通信连接,以在检测到有软件分发超时后,将对应的超时提示或报错信息发送至客户端设备,以使分布式系统的运维人员根据该客户端设备中读取的超时提示或报错信息进行对应的运维处理,进而能够进一步提高分布式系统的运行可靠性及稳定性。
在一种实际应用情形中,所述分布式系统的软件分发装置可以采用服务器实现;所述服务器可以与至少一个客户端设备之间通信连接。
可以理解的是,所述客户端设备可以包括智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
在另一种实际应用情形中,前述的分布式系统的软件分发装置进行分布式系统的软件分发的部分可以在如上述内容的服务器中执行,也可以所有的操作都在所述客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器,用于分布式系统的软件分发的具体处理。
上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
上述服务器与所述客户端设备之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
在本申请的一个或多个实施例中,所述分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。
在本申请的一个或多个实施例中,所述消息队列(Message queue)是在消息的传输过程中保存消息的容器。
具体通过下述各个实施例及应用实例分别进行详细说明。
为了在不影响网络带宽的基础上,提高分发下游服务进行软件分发的效率,本申请提供一种分布式系统的软件分发方法的实施例,参见图1,所述分布式系统的软件分发方法具体包含有如下内容:
步骤100:结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长。
具体来说,分发上游服务装置将分发软件按一定规模封装为消息,生产到消息队列中。分发下游服务装置消费消息队列,获取软件分发消息,开始软件分发,分发完成后获取回传的软件分发结果。并确定得到本次软件分发的网络耗时。
步骤200:若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和。
步骤300:将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在步骤200和步骤300中,如果网络耗时低于合理范围,即耗时较短,说明带宽较为充裕,根据计算结果从消息队列中取出相应数量消息封装合并为一条消息,进行下次软件分发。例如:假设当前第k次分发的耗时为4s,合理耗时区间为[8s,12S],根据合理耗时区间可知消息可合并,那么在第k+1次分发时会从消息队列中取出比第k次再多1条的消息进行合并后形成新的目标消息,然后针对该新的目标消息发起分发请求。
从上述描述可知,本申请实施例提供的分布式系统的软件分发方法,能够动态调整软件分发速率,并能够有效提高分发下游服务进行软件分发的效率及智能化程度,支持软件分发服务在消费消息队列时根据网络速率状况及消息内容,动态调整软件下发的规模,从而减少网络通信次数,提高系统资源利用率和网络带宽利用率。其中,当网络带宽较为拥堵,软件分发回传消息较慢时,软件分发服务依次消费消息队列进行软件分发,保证软件分发系统的可用性。当网络带宽较为宽裕,下发速率较快时,软件分发服务从消息队列中消费多个消息,扩大软件分发规模后进行下发,提高网络带宽的利用率,减少网络连接发起次数。
为了提供一种软件分发耗时较长时的软件分发方式,在本申请提供的分布式系统的软件分发方法的一个实施例中,参见图2,所述分布式系统的软件分发方法中的步骤100之后还具体包含有如下内容:
步骤400:若当前的所述网络耗时大于所述合理耗时区间的上限,且所述目标消息是基于多个消息封装而成的,则自所述消息队列中获取第二数量的消息,其中,所述第二数量为所述目标消息中消息总数与1的差值。
步骤500:将所述第二数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在步骤400和步骤500中,网络耗时如果高于合理范围,说明耗时超出合理范围,需要将规模重新缩小至最后一次耗时在平均时区的消息规模进行软件分发。例如:假设当前第k次分发的耗时为13s,合理耗时区间为[8s,12S],根据合理耗时区间可知待网络传输的消息需要减量,那么在第k+1次分发时会从消息队列中取出比第k次再少1条的消息数量来形成新的目标消息,然后针对该新的目标消息发起分发请求。
从上述描述可知,本申请实施例提供的分布式系统的软件分发方法,能够在网络耗时大于所述合理耗时区间的上限时,动态缩减下一次软件分发的消息合并数量,进而在不影响网络带宽的基础上,进一步有效提高分发下游服务进行软件分发的效率、网络带宽的利用率及智能化程度,减少网络连接发起次数。
为了提供一种软件分发耗时合理时的软件分发方式,在本申请提供的分布式系统的软件分发方法的一个实施例中,参见图3,所述分布式系统的软件分发方法中的步骤100之后还具体包含有如下内容:
步骤600:若当前的所述网络耗时处于所述合理耗时区间内,则自所述消息队列中获取第三数量的消息,其中,所述第三数量等于所述目标消息中的消息总数。
步骤700:将所述第三数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在步骤600和步骤700中,如果网络耗时在合理范围内,则继续消费队列,再次取出一条消息,进行下次软件分发。例如:假设当前第k次分发的耗时为9s,合理耗时区间为[8s,12S],根据合理耗时区间可知消息数量无需增减,那么在第k+1次分发时会从消息队列中取出与第k次数量相同的消息来形成新的目标消息,然后针对该新的目标消息发起分发请求。
从上述描述可知,本申请实施例提供的分布式系统的软件分发方法,能够在网络耗时处于所述合理耗时区间内时,不对下一次软件分发的消息合并数量进行增减,进而在不影响网络带宽的基础上,进一步有效提高分发下游服务进行软件分发的效率、网络带宽的利用率及智能化程度,减少网络连接发起次数。
为了提前设置合理耗时区间,在本申请提供的分布式系统的软件分发方法的一个实施例中,参见图4,所述分布式系统的软件分发方法中的步骤100之前还具体包含有如下内容:
步骤010:获取预设的可合并消息最大耗时阈值和不可合并消息最小阈值,所述可合并消息最大耗时阈值小于所述不可合并消息最小阈值。
步骤020:根据所述可合并消息最大耗时阈值和所述不可合并消息最小阈值设置得到合理耗时区间。
具体来说,合理耗时区间的定义可以预先自动或手动设置。具体可以通过配置2个参数来实现,具体为:
(1)参数1:可合并消息最大耗时阈值(N1);
(2)参数2:不可合并消息最小阈值(N2),分发耗时超时时长(TIMEOUT)。假设软件分发前N次请求平均耗时为10s,软件分发的超时时长为60s,我们配置N1为8s,N2为12s,那么可将整体耗时划分为3个区间:
可合并消息耗时区间(0,8);
合理耗时区间[8,12];
不可合并消息耗时区间(12,60);
那么,如果当前第k次分发的耗时为4s,那么我认为它处于可合并消息耗时区间内,是耗时较短范围,合理耗时区间为合理范围,而不可合并消息耗时区间则为不合理范围。
从上述描述可知,本申请实施例提供的分布式系统的软件分发方法,通过提前设置合理耗时区间,能够有效提高分布式系统的软件分发的动态调整的效率及可靠性。
为了提供一种获取网络耗时的具体方式,在本申请提供的分布式系统的软件分发方法的一个实施例中,参见图5,所述分布式系统的软件分发方法中的步骤100具体包含有如下内容:
步骤110:接收网络请求回传的当前目标消息的软件分发结果。
步骤120:根据所述目标消息在所述网络请求发出之前和之后的时间戳的差值确定对应的网络耗时。
具体来说,可以在软件分发的网络请求前后记录时间戳,前后两次时间戳的差即为本次请求耗时,从而得到本次软件分发耗时。
从上述描述可知,本申请实施例提供的分布式系统的软件分发方法,通过网络请求发出之前和之后的时间戳的应用,能够有效提高获取网络耗时的效率,并能够有效提高获取网络耗时的准确性及可靠性,进而能够有效提高动态调整软件分发方式的效率、准确性及可靠性。
为了提供一种网络耗时超时的处理方式,在本申请提供的分布式系统的软件分发方法的一个实施例中,参见图6,所述分布式系统的软件分发方法中的步骤100之后还具体包含有如下内容:
步骤800:若当前的所述网络耗时大于预设的超时时长,则输出针对所述目标消息的超时告知消息,其中,所述超时时长大于所述合理耗时区间的上限。
从上述描述可知,本申请实施例提供的分布式系统的软件分发方法,通过对网络耗时与超时时长进行比较,能够有效提高软件分发超时后的提示信息的发出效率,使得分布式系统的运维人员能够快速且可靠地对超时数据进行处理,进而能够进一步提高分布式系统的运行可靠性及稳定性。
从软件层面来说,为了在不影响网络带宽的基础上,提高分发下游服务进行软件分发的效率,本申请提供一种用于执行所述分布式系统的软件分发方法中全部或部分内容的分布式系统的软件分发装置的实施例,参见图7,所述分布式系统的软件分发装置具体包含有如下内容:
数据获取模块10,用于执行结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长。
具体来说,分发上游服务装置将分发软件按一定规模封装为消息,生产到消息队列中。分发下游服务装置消费消息队列,获取软件分发消息,开始软件分发,分发完成后获取回传的软件分发结果。并确定得到本次软件分发的网络耗时。
耗时比较模块20,用于若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和。
软件分发模块30,用于将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在耗时比较模块20和软件分发模块30中,如果网络耗时低于合理范围,即耗时较短,说明带宽较为充裕,根据计算结果从消息队列中取出相应数量消息封装合并为一条消息,进行下次软件分发。例如:假设当前第k次分发的耗时为4s,合理耗时区间为[8s,12S],根据合理耗时区间可知消息可合并,那么在第k+1次分发时会从消息队列中取出比第k次再多1条的消息进行合并后形成新的目标消息,然后针对该新的目标消息发起分发请求。
本申请提供的分布式系统的软件分发装置的实施例具体可以用于执行上述实施例中的分布式系统的软件分发方法的实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
从上述描述可知,本申请实施例提供的分布式系统的软件分发装置,能够动态调整软件分发速率,并能够有效提高分发下游服务进行软件分发的效率及智能化程度,支持软件分发服务在消费消息队列时根据网络速率状况及消息内容,动态调整软件下发的规模,从而减少网络通信次数,提高系统资源利用率和网络带宽利用率。其中,当网络带宽较为拥堵,软件分发回传消息较慢时,软件分发服务依次消费消息队列进行软件分发,保证软件分发系统的可用性。当网络带宽较为宽裕,下发速率较快时,软件分发服务从消息队列中消费多个消息,扩大软件分发规模后进行下发,提高网络带宽的利用率,减少网络连接发起次数。
为了提供一种软件分发耗时较长时的软件分发方式,在本申请提供的分布式系统的软件分发装置的一个实施例中,所述分布式系统的软件分发装置还用于执行下述内容:
步骤400:若当前的所述网络耗时大于所述合理耗时区间的上限,且所述目标消息是基于多个消息封装而成的,则自所述消息队列中获取第二数量的消息,其中,所述第二数量为所述目标消息中消息总数与1的差值。
步骤500:将所述第二数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在步骤400和步骤500中,网络耗时如果高于合理范围,说明耗时超出合理范围,需要将规模重新缩小至最后一次耗时在平均时区的消息规模进行软件分发。例如:假设当前第k次分发的耗时为13s,合理耗时区间为[8s,12S],根据合理耗时区间可知待网络传输的消息需要减量,那么在第k+1次分发时会从消息队列中取出比第k次再少1条的消息数量来形成新的目标消息,然后针对该新的目标消息发起分发请求。
从上述描述可知,本申请实施例提供的分布式系统的软件分发装置,能够在网络耗时大于所述合理耗时区间的上限时,动态缩减下一次软件分发的消息合并数量,进而在不影响网络带宽的基础上,进一步有效提高分发下游服务进行软件分发的效率、网络带宽的利用率及智能化程度,减少网络连接发起次数。
为了提供一种软件分发耗时合理时的软件分发方式,在本申请提供的分布式系统的软件分发装置的一个实施例中,所述分布式系统的软件分发装置还用于执行下述内容:
步骤600:若当前的所述网络耗时处于所述合理耗时区间内,则自所述消息队列中获取第三数量的消息,其中,所述第三数量等于所述目标消息中的消息总数。
步骤700:将所述第三数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在步骤600和步骤700中,如果网络耗时在合理范围内,则继续消费队列,再次取出一条消息,进行下次软件分发。例如:假设当前第k次分发的耗时为9s,合理耗时区间为[8s,12S],根据合理耗时区间可知消息数量无需增减,那么在第k+1次分发时会从消息队列中取出与第k次数量相同的消息来形成新的目标消息,然后针对该新的目标消息发起分发请求。
从上述描述可知,本申请实施例提供的分布式系统的软件分发装置,能够在网络耗时处于所述合理耗时区间内时,不对下一次软件分发的消息合并数量进行增减,进而在不影响网络带宽的基础上,进一步有效提高分发下游服务进行软件分发的效率、网络带宽的利用率及智能化程度,减少网络连接发起次数。
为了提前设置合理耗时区间,在本申请提供的分布式系统的软件分发装置的一个实施例中,所述分布式系统的软件分发装置还用于执行下述内容:
步骤010:获取预设的可合并消息最大耗时阈值和不可合并消息最小阈值,所述可合并消息最大耗时阈值小于所述不可合并消息最小阈值。
步骤020:根据所述可合并消息最大耗时阈值和所述不可合并消息最小阈值设置得到合理耗时区间。
具体来说,合理耗时区间的定义可以预先自动或手动设置。具体可以通过配置2个参数来实现,具体为:
(1)参数1:可合并消息最大耗时阈值(N1);
(2)参数2:不可合并消息最小阈值(N2),分发耗时超时时长(TIMEOUT)。假设软件分发前N次请求平均耗时为10s,软件分发的超时时长为60s,我们配置N1为8s,N2为12s,那么可将整体耗时划分为3个区间:
可合并消息耗时区间(0,8);
合理耗时区间[8,12];
不可合并消息耗时区间(12,60);
那么,如果当前第k次分发的耗时为4s,那么我认为它处于可合并消息耗时区间内,是耗时较短范围,合理耗时区间为合理范围,而不可合并消息耗时区间则为不合理范围。
从上述描述可知,本申请实施例提供的分布式系统的软件分发装置,通过提前设置合理耗时区间,能够有效提高分布式系统的软件分发的动态调整的效率及可靠性。
为了提供一种获取网络耗时的具体方式,在本申请提供的分布式系统的软件分发装置的一个实施例中,所述分布式系统的软件分发装置中的数据获取模块10具体用于执行下述内容:
步骤110:接收网络请求回传的当前目标消息的软件分发结果。
步骤120:根据所述目标消息在所述网络请求发出之前和之后的时间戳的差值确定对应的网络耗时。
具体来说,可以在软件分发的网络请求前后记录时间戳,前后两次时间戳的差即为本次请求耗时,从而得到本次软件分发耗时。
从上述描述可知,本申请实施例提供的分布式系统的软件分发装置,通过网络请求发出之前和之后的时间戳的应用,能够有效提高获取网络耗时的效率,并能够有效提高获取网络耗时的准确性及可靠性,进而能够有效提高动态调整软件分发方式的效率、准确性及可靠性。
为了提供一种网络耗时超时的处理方式,在本申请提供的分布式系统的软件分发装置的一个实施例中,所述分布式系统的软件分发装置还用于执行下述内容:
步骤800:若当前的所述网络耗时大于预设的超时时长,则输出针对所述目标消息的超时告知消息,其中,所述超时时长大于所述合理耗时区间的上限。
从上述描述可知,本申请实施例提供的分布式系统的软件分发装置,通过对网络耗时与超时时长进行比较,能够有效提高软件分发超时后的提示信息的发出效率,使得分布式系统的运维人员能够快速且可靠地对超时数据进行处理,进而能够进一步提高分布式系统的运行可靠性及稳定性。
在本申请的一个实施例中,上述分布式系统的软件分发装置也可以作为一分发下游服务装置,基于此,本申请实施例还提供一种软件分发系统,参见图8,所述软件分发系统具体包含有如下内容:
设置在分布式系统中且依次通信连接的分发上游服务装置1、消息队列2和分发下游服务装置3;
所述分发上游服务装置1用于将待分发的各个软件封装为消息,并将消息添加至所述消息队列2中;
所述分发下游服务装置3用于执行本申请一个或多个实施例中提及的分布式系统的软件分发方法中的各个步骤或者用于执行本申请一个或多个实施例中提及的分布式系统的软件分发装置中的各个功能。
虽然消息队列可以提高软件分发时的系统资源利用率,但对于分发速率上的优化较为有限。因此,如何提供一种新的方案,在提高系统资源利用率的基础上优化软件分发速率,是本领域亟待解决的技术难题。
为解决在分布式软件分发系统资源占用率高,分发速率难以控制的问题。本申请应用实例提供了一种基于消息队列的可动态调整软件分发速率的分布式系统的软件分发方法,支持软件分发服务在消费消息队列时根据网络速率状况及消息内容,动态调整软件下发的规模,从而减少网络通信次数,提高系统资源利用率和网络带宽利用率。其中,当网络带宽较为拥堵,软件分发回传消息较慢时,软件分发服务依次消费消息队列进行软件分发,保证软件分发系统的可用性。当网络带宽较为宽裕,下发速率较快时,软件分发服务从消息队列中消费多个消息,扩大软件分发规模后进行下发,提高网络带宽的利用率,减少网络连接发起次数。
基于此,为了进一步说明本方案,本申请还提供一种应用分布式系统的软件分发装置实现的分布式系统的软件分发方法的具体应用实例,其运行机制主要包括如下步骤:
步骤1):消息队列上游服务将分发软件按一定规模封装为消息,生产到消息队列中。
步骤2):软件分发服务消费消息队列,获取软件分发消息,开始软件分发。
步骤3):分发完成后获取回传结果,并在软件分发的网络请求前后记录时间戳,前后两次时间戳的差即为本次请求耗时,从而得到本次软件分发耗时。如果耗时在合理范围内,则继续消费队列,再次取出一条消息,进行下次软件分发。如果低于合理范围,即耗时较短,说明带宽较为充裕,根据计算结果从消息队列中取出相应数量消息封装合并为一条消息,进行下次软件分发。如果高于合理范围,说明耗时超出合理范围,需要将规模重新缩小至最后一次耗时在平均时区的消息规模进行软件分发。
上述耗时合理范围的定义,可由我们手动获取。通过配置2个参数:参数1:可合并消息最大耗时阈值(N1),参数2:不可合并消息最小阈值(N2),分发耗时超时时长(TIMEOUT)。假设软件分发前N次请求平均耗时为10s,软件分发的超时时长为60s,我们配置N1为8s,N2为12s,那么可将整体耗时划分为3个区间:
可合并消息耗时区间(0,8)
平均区间(合理范围)[8,12]
不可合并消息耗时区间(12,60)
那么,如果当前第k次分发的耗时为4s,那么我认为它处于可合并消息耗时区间内,是耗时较短范围内。而平均区间为合理范围,不可合并区间则为不合理范围。
参见图9,本申请应用实例提出一种分布式软件分发系统,包括:分发上游服务、消息队列、分发下游服务。分发上游服务与消息队列相连,将消息生产到消息队列中。分发下游服务与消息队列相连,消费消息队列中的消息。
分发上游服务:将软件分发相关配置、目的主机地址等相关内容封装为消息,生产到消息队列中。
消息队列:存储软件分发相关配置,等待下游服务消费。
分发下游服务:根据回传结果消费相应数量的消息,重新组装为1次网络请求发起软件分发请求。
步骤1:分发上游服务将软件分发相关配置封装为消息生产到消息队列中。这里一般以最小规模来封装,以便于后续消费多条消息实现合并配置进行网络请求。
步骤2:分发下游服务在第一次消费时,从队列中消费一个消息,并执行分发。
步骤3:分发下游服务发起网络请求进行软件分发。
步骤4:分发下游服务获取网络请求回传的结果,并获取网络耗时。
步骤5:分发下游服务针对网络耗时进行计算,判断本次耗时是否位于正常范畴。如果本次耗时较短,从消息队列中消费多条消息进行解析重新封装为1个请求,执行本次软件分发网络请求。
根据上文合理范围的定义,我们通过配置参数可以获取3个区间。那么分发算法即如下述:
假设当前第k次分发的耗时为4s,根据(2)可知它可合并,那么在第k+1次分发时会取出2条消息进行合并,并发起分发请求,假设此时耗时可能为6s,9s,13s。
当耗时为6s时,可知其在可合并消息耗时区间内,第k+2次分发时将继续合并分发。
当耗时为9s时,可知其在平均时区间内,第k+2次分发时将继续维持此消息规模进行分发。
当耗时为13s时,可知其在不可合并消息耗时区间内,第k+2次分发时将规模缩小至最后一次耗时在平均时区的消息规模进行软件分发。
因此,整体的分发耗时可稳定在一个波动幅度较小的区间范围内,且分发规模可动态化。
从上述描述可知,为解决分布式服务软件分发系统资源占用率高、分发速率不可控的问题,本申请应用实例提供的基于消息队列的动态调整分发速率的分布式系统的软件分发方法,通过解析回传报文耗时等相关指标信息,根据这些度量计算获取最优的软件分发规模来提高软件分发效率。其优点如下:
1、通过消息队列提高系统资源利用率。
2、通过计算可动态调整每次网络请求软件分发规模,保证速率可控。
从硬件层面来说,为了在不影响网络带宽的基础上,提高分发下游服务进行软件分发的效率,本申请提供一种用于实现所述分布式系统的软件分发方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
图10为本申请实施例的电子设备9600的系统构成的示意框图。如图10所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图10是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
在一实施例中,分布式系统的软件分发功能可以被集成到中央处理器中。其中,中央处理器可以被配置为进行如下控制:
步骤100:结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长。
具体来说,分发上游服务装置将分发软件按一定规模封装为消息,生产到消息队列中。分发下游服务装置消费消息队列,获取软件分发消息,开始软件分发,分发完成后获取回传的软件分发结果。并确定得到本次软件分发的网络耗时。
步骤200:若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和。
步骤300:将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在步骤200和步骤300中,如果网络耗时低于合理范围,即耗时较短,说明带宽较为充裕,根据计算结果从消息队列中取出相应数量消息封装合并为一条消息,进行下次软件分发。例如:假设当前第k次分发的耗时为4s,合理耗时区间为[8s,12S],根据合理耗时区间可知消息可合并,那么在第k+1次分发时会从消息队列中取出比第k次再多1条的消息进行合并后形成新的目标消息,然后针对该新的目标消息发起分发请求。
从上述描述可知,本申请实施例提供的电子设备,能够动态调整软件分发速率,并能够有效提高分发下游服务进行软件分发的效率及智能化程度,支持软件分发服务在消费消息队列时根据网络速率状况及消息内容,动态调整软件下发的规模,从而减少网络通信次数,提高系统资源利用率和网络带宽利用率。其中,当网络带宽较为拥堵,软件分发回传消息较慢时,软件分发服务依次消费消息队列进行软件分发,保证软件分发系统的可用性。当网络带宽较为宽裕,下发速率较快时,软件分发服务从消息队列中消费多个消息,扩大软件分发规模后进行下发,提高网络带宽的利用率,减少网络连接发起次数。
在另一个实施方式中,分布式系统的软件分发装置可以与中央处理器9100分开配置,例如可以将分布式系统的软件分发装置配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现分布式系统的软件分发功能。
如图10所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图10中所示的所有部件;此外,电子设备9600还可以包括图10中没有示出的部件,可以参考现有技术。
如图10所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本申请的实施例还提供能够实现上述实施例中的分布式系统的软件分发方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的执行主体为服务器或客户端的分布式系统的软件分发方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:
步骤100:结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长。
具体来说,分发上游服务装置将分发软件按一定规模封装为消息,生产到消息队列中。分发下游服务装置消费消息队列,获取软件分发消息,开始软件分发,分发完成后获取回传的软件分发结果。并确定得到本次软件分发的网络耗时。
步骤200:若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和。
步骤300:将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
在步骤200和步骤300中,如果网络耗时低于合理范围,即耗时较短,说明带宽较为充裕,根据计算结果从消息队列中取出相应数量消息封装合并为一条消息,进行下次软件分发。例如:假设当前第k次分发的耗时为4s,合理耗时区间为[8s,12S],根据合理耗时区间可知消息可合并,那么在第k+1次分发时会从消息队列中取出比第k次再多1条的消息进行合并后形成新的目标消息,然后针对该新的目标消息发起分发请求。
从上述描述可知,本申请实施例提供的计算机可读存储介质,能够动态调整软件分发速率,并能够有效提高分发下游服务进行软件分发的效率及智能化程度,支持软件分发服务在消费消息队列时根据网络速率状况及消息内容,动态调整软件下发的规模,从而减少网络通信次数,提高系统资源利用率和网络带宽利用率。其中,当网络带宽较为拥堵,软件分发回传消息较慢时,软件分发服务依次消费消息队列进行软件分发,保证软件分发系统的可用性。当网络带宽较为宽裕,下发速率较快时,软件分发服务从消息队列中消费多个消息,扩大软件分发规模后进行下发,提高网络带宽的利用率,减少网络连接发起次数。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种分布式系统的软件分发方法,其特征在于,包括:
结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长;
若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和;
将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
2.根据权利要求1所述的分布式系统的软件分发方法,其特征在于,还包括:
若当前的所述网络耗时大于所述合理耗时区间的上限,且所述目标消息是基于多个消息封装而成的,则自所述消息队列中获取第二数量的消息,其中,所述第二数量为所述目标消息中消息总数与1的差值;
将所述第二数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
3.根据权利要求1所述的分布式系统的软件分发方法,其特征在于,还包括:
若当前的所述网络耗时处于所述合理耗时区间内,则自所述消息队列中获取第三数量的消息,其中,所述第三数量等于所述目标消息中的消息总数;
将所述第三数量的消息封装为新的目标消息,并基于网络请求进行新的目标消息的软件分发,返回执行所述结果回传步骤。
4.根据权利要求1所述的分布式系统的软件分发方法,其特征在于,在所述自分布式系统中获取目标消息的软件分发结果及网络耗时之前,还包括:
获取预设的可合并消息最大耗时阈值和不可合并消息最小阈值,所述可合并消息最大耗时阈值小于所述不可合并消息最小阈值;
根据所述可合并消息最大耗时阈值和所述不可合并消息最小阈值设置得到合理耗时区间。
5.根据权利要求1所述的分布式系统的软件分发方法,其特征在于,所述自分布式系统中获取目标消息的软件分发结果及网络耗时,包括:
接收网络请求回传的当前目标消息的软件分发结果;
根据所述目标消息在所述网络请求发出之前和之后的时间戳的差值确定对应的网络耗时。
6.根据权利要求2所述的分布式系统的软件分发方法,其特征在于,还包括:
若当前的所述网络耗时大于预设的超时时长,则输出针对所述目标消息的超时告知消息,其中,所述超时时长大于所述合理耗时区间的上限。
7.一种分布式系统的软件分发装置,其特征在于,包括:
数据获取模块,用于执行结果回传步骤:自分布式系统中获取目标消息的软件分发结果及网络耗时,其中,该目标消息为预先自消息队列中获取并以网络请求的方式进行软件分发的消息,所述网络耗时为以网络请求的方式对所述目标消息进行软件分发所用的时长;
耗时比较模块,用于若当前的所述网络耗时小于预设的合理耗时区间的下限,则自所述消息队列中获取第一数量的消息,其中,所述第一数量为所述目标消息中消息总数与1的加和;
软件分发模块,用于将第一数量的消息封装为新的目标消息,并以网络请求的方式进行新的目标消息的软件分发,返回执行所述结果回传步骤。
8.一种软件分发系统,其特征在于,包括:设置在分布式系统中且依次通信连接的分发上游服务装置、消息队列和分发下游服务装置;
所述分发上游服务装置用于将待分发的各个软件封装为消息,并将消息添加至所述消息队列中;
所述分发下游服务装置用于执行权利要求1至6任一项所述的分布式系统的软件分发方法。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的分布式系统的软件分发方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6任一项所述的分布式系统的软件分发方法。
CN202110159302.3A 2021-02-05 2021-02-05 分布式系统的软件分发方法、装置及系统 Pending CN112905358A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110159302.3A CN112905358A (zh) 2021-02-05 2021-02-05 分布式系统的软件分发方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110159302.3A CN112905358A (zh) 2021-02-05 2021-02-05 分布式系统的软件分发方法、装置及系统

Publications (1)

Publication Number Publication Date
CN112905358A true CN112905358A (zh) 2021-06-04

Family

ID=76122655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110159302.3A Pending CN112905358A (zh) 2021-02-05 2021-02-05 分布式系统的软件分发方法、装置及系统

Country Status (1)

Country Link
CN (1) CN112905358A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314443A (zh) * 2022-08-04 2022-11-08 贵州多彩新媒体股份有限公司 一种基于监控iptv传输平台处理能力的接口调速方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790696A (zh) * 2017-02-21 2017-05-31 腾讯科技(深圳)有限公司 一种消息传输方法和装置
CN108449237A (zh) * 2018-05-23 2018-08-24 平安壹钱包电子商务有限公司 网络性能监测方法、装置、计算机设备和存储介质
CN110134534A (zh) * 2019-05-17 2019-08-16 普元信息技术股份有限公司 基于nio针对大数据分布式系统进行消息处理优化的系统及方法
CN110928489A (zh) * 2019-10-28 2020-03-27 成都华为技术有限公司 一种写数据方法、装置及存储节点
WO2020062793A1 (zh) * 2018-09-29 2020-04-02 平安科技(深圳)有限公司 基于消息队列的请求处理方法、装置、设备及存储介质
CN112019605A (zh) * 2020-08-13 2020-12-01 上海哔哩哔哩科技有限公司 数据流的数据分发方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790696A (zh) * 2017-02-21 2017-05-31 腾讯科技(深圳)有限公司 一种消息传输方法和装置
CN108449237A (zh) * 2018-05-23 2018-08-24 平安壹钱包电子商务有限公司 网络性能监测方法、装置、计算机设备和存储介质
WO2020062793A1 (zh) * 2018-09-29 2020-04-02 平安科技(深圳)有限公司 基于消息队列的请求处理方法、装置、设备及存储介质
CN110134534A (zh) * 2019-05-17 2019-08-16 普元信息技术股份有限公司 基于nio针对大数据分布式系统进行消息处理优化的系统及方法
CN110928489A (zh) * 2019-10-28 2020-03-27 成都华为技术有限公司 一种写数据方法、装置及存储节点
CN112019605A (zh) * 2020-08-13 2020-12-01 上海哔哩哔哩科技有限公司 数据流的数据分发方法和系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314443A (zh) * 2022-08-04 2022-11-08 贵州多彩新媒体股份有限公司 一种基于监控iptv传输平台处理能力的接口调速方法
CN115314443B (zh) * 2022-08-04 2023-10-20 贵州多彩新媒体股份有限公司 一种基于监控iptv传输平台处理能力的接口调速方法

Similar Documents

Publication Publication Date Title
US10491535B2 (en) Adaptive data synchronization
CN109542614B (zh) 资源配置方法、装置、终端及存储介质
CN111031058A (zh) 基于WebSocket的分布式服务器集群交互方法及装置
AU2019256257B2 (en) Processor core scheduling method and apparatus, terminal, and storage medium
KR102219015B1 (ko) 네트워크 이용을 개선하기 위한 네트워크 지원 프로토콜 사용
CN113032233A (zh) 分布式服务集群运行时参数自适应处理方法、装置及系统
CN111338780B (zh) 并发文件的传输方法及装置
CN113055479A (zh) 分布式服务集群负载自适应处理方法、装置及系统
CN111510493B (zh) 分布式数据传输方法及装置
CN105530630B (zh) 一种ota升级方法和设备
US20190034234A1 (en) Method For Resource Allocation And Terminal Device
CN114244821B (zh) 数据处理方法、装置、设备、电子设备和存储介质
CN112905358A (zh) 分布式系统的软件分发方法、装置及系统
CN108023938B (zh) 一种消息发送方法及服务器
CN116185755A (zh) 分布式负载均衡系统数据处理方法及装置
CN114237896A (zh) 分布式节点资源动态调度方法及装置
CN113434423A (zh) 接口测试方法及装置
CN112559158A (zh) 微服务定时任务调度方法及装置
CN111782366A (zh) 一种分布式任务调度方法及装置
CN111767118A (zh) 基于分布式文件系统的容器存储空间处理方法及装置
CN113965779A (zh) 云游戏数据的传输方法、装置、系统及电子设备
CN113342501B (zh) 系统故障处理方法及装置
CN116860657B (zh) 压测控制处理方法、装置、计算机设备和存储介质
CN112379986B (zh) 任务处理方法、装置和电子设备
CN111431925B (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