CN109756569B - 镜像源管理方法、资源下载方法及计算设备 - Google Patents
镜像源管理方法、资源下载方法及计算设备 Download PDFInfo
- Publication number
- CN109756569B CN109756569B CN201811636747.0A CN201811636747A CN109756569B CN 109756569 B CN109756569 B CN 109756569B CN 201811636747 A CN201811636747 A CN 201811636747A CN 109756569 B CN109756569 B CN 109756569B
- Authority
- CN
- China
- Prior art keywords
- mirror image
- source
- image source
- recommended
- mirror
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种镜像源管理方法、资源下载方法及计算设备。本发明的镜像源管理方法在服务器处执行,可以根据各镜像源的工作状态来生成推荐镜像源集合。当用户有资源下载需求时,服务器将推荐镜像源集合发送至用户所在的终端设备,终端设备在不需要人工参与选择的情况下,从推荐镜像源集合中选择对自身当前环境最优的几个镜像源作为目标镜像源,分别向各目标镜像源请求资源,从而实现镜像源的自动化选择以及资源的分布式下载,提高了下载效率,使用户能够快速高效地完成系统和应用的更新。
Description
技术领域
本发明涉及软件更新技术领域,尤其涉及一种镜像源管理方法、资源下载方法及计算设备。
背景技术
镜像源(又称镜像站)从官方源(又称官方站、主站等)同步数据,可以向用户提供与官方源相同的资源和服务。例如,官方源、镜像源可以作为软件仓库,向用户提供操作系统和应用软件的下载服务。当有资源更新时,系统服务商首先将更新后的资源上传至官方源,随后各镜像源再从官方源同步数据。
现有技术中,用户只能从单一源(官方源或镜像源)获取资源。随着镜像源和用户数量的不断增加,不同源的资源同步情况、网络通信情况、用户请求数量不同,单一源已经无法满足用户的资源下载需求,可能造成用户体验不佳或根本无法下载的问题。当用户所选择的源无法提供正常的下载服务时,用户只能通过修改源地址手动切换至其他源进行下载。在某些情况下,用户可能要经过多次切换才能找到合适的源,下载效率低,浪费了用户时间以及网络资源,给用户升级系统和应用造成困难。
发明内容
为此,本发明提供一种镜像源管理方法、资源下载方法及计算设备,以力图解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种镜像源管理方法,在服务器中执行,所述镜像源适于对官方源的资源进行同步,并向终端设备提供资源下载服务,所述方法包括:分别获取各镜像源的工作状态,所述工作状态包括:资源同步进度、用户使用比例、数据传输速率、异常记录中的至少之一;根据所述工作状态确定至少一个推荐镜像源。
根据本发明的一个方面,提供一种资源下载方法,在终端设备中执行,包括:向服务器发送源连接请求;接收服务器返回的至少一个推荐镜像源;从所述至少一个推荐镜像源中确定至少一个目标镜像源;分别向各目标镜像源发送资源下载请求;以及接收各目标镜像源返回的资源。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如上所述的镜像源管理方法或资源下载方法的指令。
根据本发明的又一个方面,提供一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述的镜像源管理方法或资源下载方法。
本发明的技术方案,服务器可以根据各镜像源的工作状态来生成推荐镜像源集合。当用户有资源下载需求时,服务器将推荐镜像源集合发送至用户所在的终端设备,终端设备在不需要人工参与选择的情况下,从推荐镜像源集合中选择对自身当前环境最优的几个镜像源作为目标镜像源,分别向各目标镜像源请求资源,从而实现镜像源的自动化选择以及资源的分布式下载,提高了下载效率,使用户能够快速高效地完成系统和应用的更新。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的资源下载系统100的示意图;
图2示出了根据本发明一个实施例的镜像源管理方法200的流程图;
图3示出了根据本发明一个实施例的镜像源管理服务的示意图;
图4示出了根据本发明一个实施例的资源下载方法400的流程图;
图5示出了根据本发明一个实施例的资源下载的交互过程示意图;
图6示出了根据本发明另一个实施例的资源下载的交互过程示意图;
图7示出了根据本发明一个实施例的计算设备700的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的资源下载系统100的示意图。如图1所示,资源下载系统100包括官方源、多个镜像源、镜像源管理服务器130和终端设备140,其中,官方源和每一个镜像源均包括源服务器110(110-0~110-N)和数据存储装置120(120-0~120-N)。应当指出,图1所示的系统100仅作为一个示例,本领域技术人员可以理解,在实际应用中,系统100可以包括任意数量的镜像源、镜像源管理服务器130、终端设备140,官方源与每一个镜像源也可以包括任意数量的源服务器110和数据存储装置120,本发明对系统100中所包括的镜像源、镜像源管理服务器130、终端设备140以及官方源、每个镜像源所包括的源服务器110、数据存储装置120的数量均不做限制。
如图1所示,官方源、每一个镜像源均包括源服务器110和数据存储装置120,源服务器110与数据存储装置120通信连接,适于读取数据存储装置120中存储的数据,或向数据存储装置120中写入数据,并基于数据存储装置120中所存储的数据,向终端设备140提供相应的服务。源服务器110可以通过有线的方式与数据存储装置120建立网络连接,也可以通过3G、4G、WiFi、个人热点、IEEE802.11x、蓝牙等无线的方式与数据存储装置120-0建立连接,本发明对源服务器110与数据存储装置120之间的具体连接方式不做限制。
在本发明的实施例中,每个镜像源均按照预设的时间或频率(例如每天二~四次)同步官方源中的数据,使镜像源的数据存储装置120-1~120-N中的数据与官方源的数据存储装置120-0中的数据保持一致,以便镜像源的源服务器110-1~110-N能够与官方源的源服务器120-0向终端设备140提供相同的服务。
终端设备140例如可以是笔记本电脑、桌面电脑等个人配置的计算机,也可以是诸如手机、平板电脑、多媒体设备、智能可穿戴设备等移动终端,但不限于此。在本发明的实施例中,终端设备140可以向任一源服务器110发起服务请求。
在一些实施例中,数据存储装置120可以实现为一个软件仓库,其中存储有软件资源,软件资源例如可以是操作系统(Operating System,缩写作OS)、应用软件(Application,缩写作APP)的安装包等。相应的,源服务器110可以基于数据存储装置120中所存储的软件安装包,向用户提供软件下载服务,以便用户对终端设备140上的操作系统或应用进行更新。当用户有更新系统或应用的需求时,可以从官方源和镜像源中任意选择一个源,通过终端设备140向选中的源服务器发起资源下载请求,并接收源服务器返回的数据。
由于镜像源的数据同步过程不是时刻进行,因此,很难保证镜像源的数据在任意时刻均与官方源相同。若终端设备140向未完成数据同步的镜像源服务器发起资源下载请求,则会出现找不到资源或虽然找到了资源却因资源同步不完整而下载失败的情况。另外,由于各镜像源的网络通信状况不同,若终端设备140所请求的源服务器网络通信状态不佳,也可能导致下载失败。当用户从选择的镜像源处下载失败时,用户需要手动切换至其他镜像源或官方源进行下载。在某些情况下,用户可能要经过多次切换才能找到合适的源,下载效率低,浪费了用户时间以及网络资源,给用户升级系统和应用造成困难。
针对上述问题,本发明在系统100中设置了镜像源管理服务器130(以下简称服务器130),并提供一种镜像源管理方法200以及一种资源下载方法400。镜像源管理方法200在服务器130处执行,使服务器130可以获取各镜像源的工作状态,并根据工作状态生成推荐镜像源集合(推荐镜像源集合包括至少一个推荐镜像源)。资源下载方法400在终端设备140处执行,当用户有资源下载需求时,终端设备140向服务器130发送源连接请求,并接收服务器130返回的推荐镜像源集合,从推荐镜像源集合中选择对自身当前环境最优的几个镜像源作为目标镜像源,分别向各目标镜像源请求资源。例如,如图1所示,服务器130返回的推荐镜像源集合为镜像源1、2、3、4、N,终端设备140根据自身环境,选择镜像源1和镜像源N作为目标镜像源,分别向二者发起资源下载请求。本发明的技术方案可以实现镜像源的自动化选择以及资源的分布式下载,提高了下载效率,使用户能够快速高效地完成系统和应用的更新。以下将对本发明的镜像源管理方法200以及资源下载方法400进行详述。
图2示出了根据本发明一个实施例的镜像源管理方法200的流程图。方法200在镜像源管理服务器(例如前述服务器130)中执行。如图2所示,方法200始于步骤S210。
在步骤S210中,分别获取各镜像源的工作状态,所述工作状态包括:资源同步进度、用户使用比例、数据传输速率、异常记录中的至少之一。
资源同步进度用于表示镜像源的数据与官方源数据的一致程度,在一些实施例中,资源同步进度可以用百分比表示,当资源同步进度为100%时,表示镜像源的数据与官方源的数据完全一致。用户使用比例为使用某一镜像源的用户的数量占所有镜像源的用户数量的比例,在一些实施例中,用户的数量可以根据镜像源上注册的用户账号的数量来统计,也可以根据终端设备的标识(例如MAC、IMEI码等)来统计。数据传输速率即单位时间内源服务器向终端设备发送的数据量,其单位通常为bps(bits per second,每秒传输位数)。异常记录为镜像源的异常状态记录,例如,当镜像源的当前状态与历史状态存在较大差异时,可认为镜像源出现异常记录。
随后,在步骤S220中,根据工作状态确定至少一个推荐镜像源。
根据一种实施例,将工作状态满足预设条件的镜像源作为推荐镜像源,预设条件包括:资源同步进度为100%、用户使用比例的下降幅度小于第一阈值、数据传输速率的下降幅度小于第二阈值、无异常记录中的至少之一。第一阈值、第二阈值的值可以由本领域技术人员自行设置,本发明对此不做限制。在一个实施例中,可以将预设条件设置为:资源同步进度为100%且用户使用比例的下降幅度小于30%,相应地,资源同步进度为100%且用户使用比例的下降幅度小于30%的镜像源均被判定为推荐镜像源。在另一个实施例中,可以将预设条件设置为:资源同步进度为100%且用户使用比例的下降幅度小于30%且数据传输速率的下降幅度小于25%,相应地,资源同步进度为100%且用户使用比例的下降幅度小于30%且数据传输速率的下降幅度小于25%的镜像源均被判定为推荐镜像源。
需要说明的是,工作状态、预设条件用于筛选推荐镜像源,以上所列出的四种工作状态、四个预设条件仅为示例,本领域技术人员可以根据实际需要获取镜像源的其他工作状态、并设置其他的预设条件,本发明对工作状态、预设条件的数量及种类均不做限制。例如,在一些实施例中,可以设置将资源同步进度为100%的用户使用比例最大的10个镜像源作为推荐镜像源。
在一些实施例中,步骤S210获取所有镜像源的工作状态,步骤S220根据工作状态从所有镜像源中筛选出推荐镜像源。
在另一些实施例中,在步骤S210之前,可以先统计所有镜像源的流量情况,根据流量情况来从所有镜像源中筛选出关键镜像源。随后,在步骤S210中,再获取关键镜像源的工作状态;在步骤S220中,根据工作状态从关键镜像源中确定至少一个推荐镜像源。
根据一种实施例,流量情况包括流量占比,流量占比为预定时间段内,镜像源向终端设备传输的数据量占所有镜像源向终端设备传输的总数据量的比例。镜像源的流量占比越大,通常表明使用该镜像源的用户越多,该镜像源越关键。因此,可以将流量占比最大的预定数量个镜像源作为关键镜像源,或将流量占比大于预设阈值的镜像源作为关键镜像源。预定数量、预设阈值的值可以由本领域技术人员自行设置,本发明对此不做限制。例如,可以将流量占比最大的10个镜像源作为关键镜像源,也可以将流量占比大于10%的镜像源作为关键镜像源。在确定了关键镜像源之后,从关键镜像源中进一步确定推荐镜像源,即,在步骤S210中,别获取各关键镜像源的工作状态;随后,在步骤S220中,根据工作状态,从关键镜像源中确定至少一个推荐镜像源。
根据一种实施例,流量情况除了包括流量占比之外,还包括实际流量、逻辑流量中的至少之一。实际流量为在预定时间段内镜像源向终端设备传输的数据量;逻辑流量为官方源一次资源更新的数据量与使用该资源的终端设备的数量、镜像源的流量占比的乘积。其中,资源例如可以是操作系统或应用软件,相应地,官方源一次资源更新的数据量为更新的操作系统或应用软件的安装包的大小,使用该资源的终端设备为安装有该操作系统或应用软件的、具有更新需求的终端设备。例如,在一次更新中,官方源发布了Deepin操作系统的新版本15.8的安装包,安装有旧版Deepin操作系统(例如15.5、15.6、15.7等版本)的终端设备都具有潜在的升级需求,那么,某个镜像源针对本次更新的逻辑流量为Deepin 15.8安装包的大小与安装有旧版Deepin操作系统的终端设备的数量和该镜像源的流量占比的乘积。
在所有镜像源均无法使用的情况下,终端设备的下载请求会回流至官方源,由官方源向用户提供下载服务。在一些实施例中,方法200除了统计镜像源的工作状态及流量情况外,还统计官方源的工作状态及流量情况。例如,方法200还可以统计官方源的实际流量,即,统计官方源在预定时间段内向终端设备实际传输的数据量。在逻辑流量不变的情况下,官方源的实际流量越小,表明镜像源所提供的服务质量越高。
根据一种实施例,镜像源、官方源的实际流量可以通过日志文件来确定。日志文件中记录了终端设备的下载请求的详细信息,例如请求时间、请求的资源、终端设备的ip地址、代理情况、服务器向客户端返回的数据包的大小,等等。镜像源的实际流量可以按照以下方法统计:例如,我们读取最近10分钟的日志文件,计算这些日志文件所发送的数据量总和,然后将数据量总和除以时长(10分钟),就是镜像源或官方源的实际流量。
在一些实施例中,Linux软件安装文件包括release文件和deb文件,release文件只从官方源下载,deb文件从镜像源处下载。根据一种实施例,方法200还可以统计release文件和deb文件的下载情况(例如通过折线图的方式),来观察镜像源、官方源的实际流量分布情况。
基于步骤S210和S220,可以确定至少一个推荐镜像源,形成推荐镜像源集合,推荐镜像源集合中的镜像源即为当前工作状态最优的几个镜像源。当服务器130接收到终端设备发送的源连接请求时,将上述至少一个推荐镜像源返回给终端设备,以便终端设备从中确定至少一个目标镜像源,并分别向各目标镜像源发送资源下载请求。
图3示出了根据本发明一个实施例的镜像源管理服务的示意图。图3示出了服务器130基于镜像源管理方法200所能提供的服务。如图3所示,服务器130所提供的镜像源管理服务包括流量分析、已有镜像源展示、新增镜像源展示、同步进度检测以及推荐镜像源发布管理。流量分析用于分析官方源以及各镜像源的逻辑流量和实际流量,并从中确定关键镜像源。已有镜像源展示可以展示已有的镜像源的详情,例如镜像源服务器的IP地址(IPv4、IPv6)、地点、带宽、同步时间表等。新增镜像源展示可以展示新增的镜像源的详情,新增镜像源与已有镜像源的区别在于,新增镜像源为最近建立,其存在的时间小于某一阈值,而已有镜像源的存在时间则大于该阈值。同步进度检测可以检测各镜像源的同步进度,例如可以检测CDN类镜像源以及普通镜像源的同步进度。推荐镜像源发布管理可以获取并记录关键镜像源的工作状态,并根据工作状态,从关键镜像源中确定至少一个推荐镜像源,形成推荐镜像源集合,推荐镜像源集合中的镜像源即为当前工作状态最优的几个镜像源。当终端设备发起源连接请求时,服务器130将推荐镜像源集合返回给终端设备,以便终端设备从中确定至少一个目标镜像源,并分别向各目标镜像源发送资源下载请求。
图4示出了根据本发明一个实施例的资源下载方法400的流程图。方法400在终端设备(例如前述终端设备140)中执行。如图4所示,方法400始于步骤S410。
在步骤S410中,向服务器发送源连接请求。
在一些实施例中,终端设备中驻留有下载客户端,当用户有下载需求时,通过下载客户端向服务器发送源连接请求。
随后,在步骤S420中,接收服务器返回的至少一个推荐镜像源。推荐镜像源例如可以通过前述镜像源管理方法200来确定。
随后,在步骤S430中,从至少一个推荐镜像源中确定至少一个目标镜像源。
推荐镜像源为服务器采用自身的算法逻辑来确定,在一些情况下,服务器所确定的推荐镜像源对终端设备来说可能并非最优。因此,在本发明的实施例中,终端设备需要根据自身当前所处的环境,在服务器返回的至少一个推荐镜像源中确定至少一个目标镜像源,随后从目标镜像源处下载资源。
根据一种实施例,终端设备可以分别向各推荐镜像源发送测试数据包;根据各推荐镜像源对测试数据包的响应情况来确定目标镜像源。响应情况例如可以包括丢包率、测试数据包的最短往返时间、最长往返时间、平均往返时间中的至少之一,但不限于此。在确定了各推荐镜像源的响应情况之后,将响应情况值最小的预定数量个推荐镜像源作为目标镜像源;或将响应情况值小于预设阈值的推荐镜像源作为目标镜像源。预定数量、预设阈值的值可以由本领域技术人员自行设置,本发明对此不做限制。另外,在确定目标镜像源时,可以采用上述能够表征响应情况的四种参数中的任意一种,也可以采用上述四种参数中的多个参数的任意组合。
例如,在Windows、Unix和Linux系统下,用户可以通过ping命令来向推荐镜像源发送测试数据包,并获取各推荐镜像源的响应情况。用户ping某个推荐镜像源的IP地址或域名后,可以得到该推荐镜像源的丢包率、测试数据包的最短往返时间、最长往返时间、平均往返时间等参数。在一些实施例中,可以将丢包率最小的5个推荐镜像源作为目标镜像源,或者将丢包率小于25%的6个推荐镜像源作为目标镜像源,或者将平均往返时间最小的5个推荐镜像源作为目标镜像源,或者将丢包率小于25%且最长往返时间最小的6个推荐镜像源作为目标镜像源,等等。
需要说明的是,以上所列的丢包率、最短往返时间、最长往返时间、平均往返时间仅是能够表征响应情况的四种参数,除该四种参数之外,本领域技术人员还可以采用其他的参数来衡量推荐镜像源对于测试数据包的响应情况,本发明对响应情况所包括的参数的数量以及种类均不做限制。
需要说明的是,在一些实施例中,除了根据推荐镜像源对测试数据包的响应情况来确定目标镜像源之外,还可以采用其他方法来确定目标镜像源。例如,将与终端设备采用相同网络运营商(电信、移动、联通等)的推荐镜像源作为目标镜像源。
随后,在步骤S440中,分别向各目标镜像源发送资源下载请求。
根据一种实施例,待下载的资源包括多个数据包,在步骤S440中,分别向不同的目标镜像源发送针对不同数据包的资源下载请求,从而实现资源的分布式下载,提高下载速度和下载效率。
随后,在步骤S450中,接收各目标镜像源返回的资源。
在步骤S440的分布式下载场景下,步骤S450将从不同目标镜像源获取到的数据包进行整合,以得到完整的资源。
需要说明的是,步骤S440、S450的资源下载过程可能循环多次进行。例如,待下载的资源被划分为1~10共10个数据包,目标镜像源共有5个。终端设备首先执行步骤S440,向目标镜像源1请求数据包1,向目标镜像源2请求数据包2,向目标镜像源3请求数据包3,以此类推。在步骤S450中终端设备接收到目标镜像源返回的数据包后,终端设备再次执行步骤S440,向目标镜像源请求后续的数据包,直到终端设备接收到全部10个数据包为止。例如,在步骤S450中,终端设备首先接收到目标镜像源4返回的数据包4,随后执行步骤S440,向目标镜像源4继续请求数据包6;接下来,在步骤S450中,终端设备接收到目标镜像源2返回的数据包2,随后再执行步骤S440,向目标镜像源2继续请求数据包7,…,直到终端设备接收到全部10个数据包为止。
根据一种实施例,在步骤S440、S450的资源下载过程中,终端设备分别统计各目标镜像源的下载情况;当有目标镜像源出现下载异常时,停止向该目标镜像源请求资源,后续将仅向其他正常的目标镜像源请求资源。
下载情况例如可以包括请求次数、下载出错次数、下载延时中的至少之一,但不限于此。下载异常包括:下载出错次数大于第一阈值、下载出错次数与请求次数之比大于第二阈值、下载延时大于第三阈值中的至少之一,但不限于此。即,当下载出错次数大于第一阈值和/或下载出错次数与请求次数之比大于第二阈值和/或下载延时大于第三阈值时,判定目标镜像源出现下载异常。第一阈值、第二阈值、第三阈值的具体取值可以由本领域技术人员自行设置,本发明对此不做限制。
根据一种实施例,当有目标镜像源出现下载异常时,终端设备除了不再向该异常的目标镜像源请求之外,还将该目标镜像源上报至服务器。服务器将根据终端设备上报的异常,考虑将该目标镜像源从推荐镜像源集合中移出,以便于其他用户进行下载。
图5示出了根据本发明一个实施例的资源下载的交互过程示意图。如图5所示,当终端设备140有更新操作系统或软件的需求时,执行步骤S501,向镜像源管理服务器130发送源连接请求。
随后,在步骤S502中,服务器130向终端设备140返回推荐镜像源集合,推荐镜像源集合中包括至少一个推荐镜像源。推荐镜像源即为当前工作状态最优的几个镜像源。例如,推荐镜像源集合中包括镜像源1~10共10个镜像源。
随后,在步骤S503中,终端设备140根据自身环境,从推荐镜像源集合中选择至少一个镜像源作为目标镜像源。例如,终端设备140可以分别ping这10个推荐镜像源的IP地址,将数据包平均往返时间最小的4个推荐镜像源作为目标镜像源,例如,目标镜像源为1~4。
待下载的资源被划分为多个数据包,待下载的资源可以是操作系统或应用软件的安装包。在图5所示的实施例中,待下载的资源例如被划分为100个数据包。
在步骤S504~S507中,终端设备140分别向目标镜像源1~4的源服务器110-1~110-4发送针对不同数据包的资源下载请求。例如,在步骤S504中,终端设备140向源服务器110-1请求数据包1~5;在步骤S505中,终端设备140向源服务器110-2请求数据包6~10;在步骤S506中,终端设备140向源服务器110-3请求数据包11~15;在步骤S507中,终端设备140向源服务器110-4请求数据包16~20。
在随后的步骤中,终端设备140陆续接收到各目标镜像源返回的数据包,并向各目标镜像源继续请求后续的数据包。在整个资源下载过程中,终端设备140分别监测各目标镜像源的下载响应情况,当有目标镜像源出现下载异常时,停止向该目标镜像源请求资源,并将该目标镜像源上报至服务器130。
在步骤S508、S509中,终端设备140分别接收到源服务器110-3返回的数据包11~15,和源服务器110-1返回的数据包1~5。
在步骤S510中,终端设备140向源服务器110-3请求后续的数据包21~25。
在步骤S511、S512中,终端设备140分别接收到源服务器110-2返回的数据包6~10,和源服务器110-4返回的数据包16~20。
在步骤S513中,终端设备140检测到目标镜像源2出现下载异常,随后在步骤S514中,终端设备140将出现异常的目标镜像源2上报至服务器130。在接下来的步骤S515~S517中,终端设备140不再向目标镜像源2的源服务器110-2请求资源,而仅向目标镜像源1、3、4的源服务器110-1、110-3、110-4请求资源。下载过程继续进行,直到终端设备140接收到完整的100个数据包为止。
图6示出了根据本发明另一个实施例的资源下载的交互过程示意图。如图6所示,当终端设备140有更新操作系统或软件的需求时,执行步骤S601,向镜像源管理服务器130发送源连接请求。
随后,在步骤S602中,服务器130向终端设备140返回推荐镜像源集合,推荐镜像源集合中包括至少一个推荐镜像源。推荐镜像源即为当前工作状态最优的几个镜像源。例如,推荐镜像源集合中包括镜像源1~10共10个镜像源。
随后,在步骤S603中,终端设备140根据自身环境,从推荐镜像源集合中选择至少一个镜像源作为目标镜像源。例如,终端设备140可以分别ping这10个推荐镜像源的IP地址,将数据包平均往返时间最小的4个推荐镜像源作为目标镜像源,例如,目标镜像源为1~4。
待下载的资源被划分为多个数据包,待下载的资源可以是操作系统或应用软件的安装包。例如,Linux操作系统及应用软件的安装文件包括release文件和多个deb文件。在图6所示的实施例中,待下载的资源为操作系统的安装包,其例如被划分为release文件和100个deb文件。release文件将从官方源处下载,deb文件从镜像源处下载。
在步骤S604中,终端设备140向官方源服务器110-0请求release文件。
在步骤S605~S608中,终端设备140分别向目标镜像源1~4的源服务器110-1~110-4发送针对不同deb文件的资源下载请求。例如,在步骤S605中,终端设备140向源服务器110-1请求deb文件1~5;在步骤S606中,终端设备140向源服务器110-2请求deb文件6~10;在步骤S607中,终端设备140向源服务器110-3请求deb文件11~15;在步骤S608中,终端设备140向源服务器110-4请求deb文件16~20。
在随后的步骤中,终端设备140陆续接收到各目标镜像源返回的数据包,并向各目标镜像源继续请求后续的数据包。在整个资源下载过程中,终端设备140分别监测各目标镜像源的下载响应情况,当有目标镜像源出现下载异常时,停止向该目标镜像源请求资源,并将该目标镜像源上报至服务器130。
在步骤S609~S611中,终端设备140分别接收到官方源服务器110-0返回的release文件、源服务器110-3返回的deb文件11~15,和源服务器110-1返回的deb文件1~5。
在步骤S612中,终端设备140向源服务器110-3请求deb文件21~25。
在步骤S613、S614中,终端设备140分别接收到源服务器110-2返回的deb文件6~10,和源服务器110-4返回的deb文件16~20。
在步骤S615中,终端设备140检测到目标镜像源2出现下载异常,随后在步骤S616中,终端设备140将出现异常的目标镜像源2上报至服务器130。在接下来的步骤S617~S619中,终端设备140不再向目标镜像源2的源服务器110-2请求资源,而仅向目标镜像源1、3、4的源服务器110-1、110-3、110-4请求资源。下载过程继续进行,直到终端设备140接收到完整的100个deb文件为止。
图7示出了根据本发明一个实施例的计算设备700的示意图。如图7所示,在基本的配置702中,计算设备700典型地包括系统存储器706和一个或者多个处理器704。存储器总线708可以用于在处理器704和系统存储器706之间的通信。
取决于期望的配置,处理器704可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器604可以包括诸如一级高速缓存710和二级高速缓存712之类的一个或者多个级别的高速缓存、处理器核心714和寄存器716。示例的处理器核心714可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器718可以与处理器704一起使用,或者在一些实现中,存储器控制器718可以是处理器704的一个内部部分。
取决于期望的配置,系统存储器706可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器706可以包括操作系统720、一个或者多个应用722以及程序数据724。应用722实际上是多条程序指令,其用于指示处理器704执行相应的操作。在一些实施方式中,应用722可以布置为在操作系统上使得处理器704利用程序数据724进行操作。
计算设备700还可以包括有助于从各种接口设备(例如,输出设备742、外设接口744和通信设备746)到基本配置702经由总线/接口控制器730的通信的接口总线740。示例的输出设备742包括图形处理单元748和音频处理单元750。它们可以被配置为有助于经由一个或者多个A/V端口752与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口744可以包括串行接口控制器754和并行接口控制器756,它们可以被配置为有助于经由一个或者多个I/O端口758和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备746可以包括网络控制器760,其可以被布置为便于经由一个或者多个通信端口764与一个或者多个其他计算设备762通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备700中,应用722例如可以包括镜像源管理装置800或资源下载装置900,装置800、装置900分别包括多条程序指令,可以指示处理器704执行本发明的镜像源管理方法200或资源下载方法400。
根据应用722所包括的装置的不同,计算设备700可以实现为服务器或终端设备。当应用722中包括镜像源管理装置800时,计算设备700可以实现为镜像源管理服务器(例如前述服务器130),该服务器可以执行镜像源管理方法200。当应用722中包括资源下载装置900时,计算设备700可以实现为终端设备(例如前述终端设备140),该终端设备可以执行资源下载方法400。
本发明的技术方案,服务器可以根据各镜像源的工作状态来生成推荐镜像源集合。当用户有资源下载需求时,服务器将推荐镜像源集合发送至用户所在的终端设备,终端设备在不需要人工参与选择的情况下,从推荐镜像源集合中选择对自身当前环境最优的几个镜像源作为目标镜像源,分别向各目标镜像源请求资源,从而实现镜像源的自动化选择以及资源的分布式下载,提高了下载效率,使用户能够快速高效地完成系统和应用的更新。
A11:A7-10中任一项所述的方法,还包括:
分别统计各目标镜像源的下载情况;
当有目标镜像源出现下载异常时,停止向该目标镜像源请求资源。
A12:A11所述的方法,其中,所述下载情况包括:请求次数、下载出错次数、下载延时中的至少之一;
所述下载异常包括:下载出错次数大于第一阈值、下载出错次数与请求次数之比大于第二阈值、下载延时大于第三阈值中的至少之一。
A13:A11或12所述的方法,还包括:
当有目标镜像源出现下载异常时,将该目标镜像源上报至服务器。
A14:A7-13中任一项所述的方法,其中,所述资源为操作系统或应用软件。
A15:A7-14中任一项所述的方法,其中,所述推荐镜像源采用权利要求1-6中任一项所述的方法确定。
A16:一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-15中任一项所述方法的指令。
A17:一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-6中任一项所述的镜像源管理方法或如权利要求7-15中任一项所述的资源下载方法。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的镜像源管理方法或资源下载方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。
Claims (15)
1.一种镜像源管理方法,在服务器中执行,所述镜像源适于对官方源的资源进行同步,并向终端设备提供资源下载服务,所述方法包括:
统计各镜像源的流量情况,所述流量情况包括流量占比,以及实际流量、逻辑流量中的至少之一,所述流量占比为预定时间段内,镜像源向终端设备传输的数据量占所有镜像源向终端设备传输的总数据量的比例,所述实际流量为在预定时间段内镜像源向终端设备传输的数据量,所述逻辑流量为官方源一次资源更新的数据量与使用该资源的终端设备的数量、镜像源的流量占比的乘积;
根据流量情况来从所有镜像源中筛选出关键镜像源;
分别获取各关键镜像源的工作状态,所述工作状态包括:资源同步进度、用户使用比例、数据传输速率和异常记录,其中,用户使用比例为使用某一镜像源的用户的数量占所有镜像源的用户数量的比例;
根据所述工作状态,从所述关键镜像源中确定至少一个推荐镜像源;响应于终端设备向服务器发送源连接请求,向所述终端设备接收服务器返回至少一个推荐镜像源,以便所述终端设备从所述至少一个推荐镜像源中确定至少一个目标镜像源,从所述目标镜像源中下载资源。
2.如权利要求1所述的方法,其中,所述根据所述工作状态确定至少一个推荐镜像源的步骤包括:
将工作状态满足预设条件的镜像源作为推荐镜像源,所述预设条件包括:资源同步进度为100%、用户使用比例的下降幅度小于第一阈值、数据传输速率的下降幅度小于第二阈值、无异常记录中的至少之一。
3.如权利要求1或2中任一项所述的方法,在所述分别获取各关键镜像源的工作状态的步骤之前,还包括:
将流量占比最大的预定数量个镜像源作为关键镜像源,或将流量占比大于预设阈值的镜像源作为关键镜像源。
4.如权利要求1-3中任一项所述的方法,还包括:
当接收到终端设备发送的源连接请求时,将所述至少一个推荐镜像源返回给终端设备。
5.一种资源下载方法,在终端设备中执行,包括:
向服务器发送源连接请求;
接收服务器返回的至少一个推荐镜像源,其中,所述至少一个推荐镜像源按照如权利要求1至4中任一项所述的镜像源管理方法生成;
从所述至少一个推荐镜像源中确定至少一个目标镜像源;
分别向各目标镜像源发送资源下载请求;以及
接收各目标镜像源返回的资源。
6.如权利要求5所述的方法,其中,所述从所述至少一个推荐镜像源中确定至少一个目标镜像源的步骤包括:
分别向各推荐镜像源发送测试数据包;
根据各推荐镜像源对测试数据包的响应情况来确定目标镜像源。
7.如权利要求6所述的方法,其中,所述响应情况包括丢包率、测试数据包的最短往返时间、最长往返时间、平均往返时间中的至少之一;
所述根据各推荐镜像源对测试数据包的响应情况来确定目标镜像源的步骤包括:
将响应情况值最小的预定数量个推荐镜像源作为目标镜像源;或
将响应情况值小于预设阈值的推荐镜像源作为目标镜像源。
8.如权利要求5-7中任一项所述的方法,其中,待下载的资源包括多个数据包,所述分别向各目标镜像源发送资源下载请求的步骤包括:
向不同的目标镜像源发送针对不同数据包的资源下载请求。
9.如权利要求5-8中任一项所述的方法,还包括:
分别统计各目标镜像源的下载情况;
当有目标镜像源出现下载异常时,停止向该目标镜像源请求资源。
10.如权利要求9所述的方法,其中,所述下载情况包括:请求次数、下载出错次数、下载延时中的至少之一;
所述下载异常包括:下载出错次数大于第一阈值、下载出错次数与请求次数之比大于第二阈值、下载延时大于第三阈值中的至少之一。
11.如权利要求9或10所述的方法,还包括:
当有目标镜像源出现下载异常时,将该目标镜像源上报至服务器。
12.如权利要求5-11中任一项所述的方法,其中,所述资源为操作系统或应用软件。
13.如权利要求5-12中任一项所述的方法,其中,所述推荐镜像源采用权利要求1-4中任一项所述的方法确定。
14.一种计算设备,包括:
至少一个处理器;和
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-13中任一项所述方法的指令。
15.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-4中任一项所述的镜像源管理方法或如权利要求5-13中任一项所述的资源下载方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636747.0A CN109756569B (zh) | 2018-12-29 | 2018-12-29 | 镜像源管理方法、资源下载方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811636747.0A CN109756569B (zh) | 2018-12-29 | 2018-12-29 | 镜像源管理方法、资源下载方法及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109756569A CN109756569A (zh) | 2019-05-14 |
CN109756569B true CN109756569B (zh) | 2021-08-20 |
Family
ID=66404369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811636747.0A Active CN109756569B (zh) | 2018-12-29 | 2018-12-29 | 镜像源管理方法、资源下载方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109756569B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518281A (zh) * | 2003-01-08 | 2004-08-04 | �ձ�������ʽ���� | Ip路由器、通信系统和其中使用的频带设置方法及程序 |
CN102843428A (zh) * | 2012-08-14 | 2012-12-26 | 北京百度网讯科技有限公司 | 一种上传数据处理系统及方法 |
WO2014206100A1 (zh) * | 2013-06-25 | 2014-12-31 | 小米科技有限责任公司 | 系统升级的方法、装置及设备 |
CN106131113A (zh) * | 2016-06-14 | 2016-11-16 | 武汉深之度科技有限公司 | 一种资源下载方法、装置、系统以及资源服务器 |
-
2018
- 2018-12-29 CN CN201811636747.0A patent/CN109756569B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1518281A (zh) * | 2003-01-08 | 2004-08-04 | �ձ�������ʽ���� | Ip路由器、通信系统和其中使用的频带设置方法及程序 |
CN102843428A (zh) * | 2012-08-14 | 2012-12-26 | 北京百度网讯科技有限公司 | 一种上传数据处理系统及方法 |
WO2014206100A1 (zh) * | 2013-06-25 | 2014-12-31 | 小米科技有限责任公司 | 系统升级的方法、装置及设备 |
CN106131113A (zh) * | 2016-06-14 | 2016-11-16 | 武汉深之度科技有限公司 | 一种资源下载方法、装置、系统以及资源服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN109756569A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3451614B1 (en) | Dispatching method and device in content delivery network | |
EP3979592A1 (en) | Decentralization processing method, communication proxy, host and storage medium | |
CN110365748B (zh) | 业务数据的处理方法和装置、存储介质及电子装置 | |
US10944655B2 (en) | Data verification based upgrades in time series system | |
EP3799392A1 (en) | Method for obtaining service data and converged cdn system | |
CN105812435B (zh) | 应用升级数据包处理方法、装置、电子设备及系统 | |
CN109586969A (zh) | 内容分发网络容灾方法、装置、计算机设备及存储介质 | |
US10013271B2 (en) | Management system and method for controlling management system | |
US10911560B2 (en) | Partitioned serialized caching and delivery of large files | |
US10645183B2 (en) | Redirection of client requests to multiple endpoints | |
JP2022549055A (ja) | ノードの速度制限方法、装置、電子デバイス及び記憶媒体 | |
WO2019090997A1 (zh) | 一种数据获取方法、装置、计算机设备及存储介质 | |
JP2016115333A (ja) | 管理システムおよび管理システムの制御方法 | |
CN111615128A (zh) | 一种多接入边缘计算方法、平台及系统 | |
WO2017023266A1 (en) | Application centric network experience monitoring | |
TW201640376A (zh) | 雲端服務系統及其方法 | |
CN109756569B (zh) | 镜像源管理方法、资源下载方法及计算设备 | |
US10616081B2 (en) | Application aware cluster monitoring | |
US20170223136A1 (en) | Any Web Page Reporting and Capture | |
US9559904B2 (en) | Dynamic agent replacement within a cloud network | |
US20160125330A1 (en) | Rolling upgrade of metric collection and aggregation system | |
US10313429B2 (en) | Distributed resource management method and system | |
CN111432357B (zh) | 信息处理方法、系统及计算设备 | |
CN115002195A (zh) | 自适应对等模式的服务注册发现方法、系统及介质 | |
US9369592B1 (en) | Accurate user data information |
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 |