掌桥专利:专业的专利平台
掌桥专利
首页

制品拉取方法、装置、电子设备及存储介质

文献发布时间:2024-01-17 01:27:33


制品拉取方法、装置、电子设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种制品拉取方法、装置、电子设备及存储介质。

背景技术

软件制品是指由源码编译打包生成的二进制文件,不同的开发语言对应着不同格式的二进制文件,这些二进制通常可以直接运行在服务器上。制品库用以管理源代码编译后的构建产物,即用于管理软件制品,支持Docker、Maven、Helm、npm、PyPI包等常见制品库类型。制品库可以跟源代码协同进行版本化控制,可以与本地各构建工具和云上的持续集成、持续部署无缝结合,并支持漏洞扫描等特性,是一种企业处理软件开发过程中产生的所有包类型的标准化方式。

现有的制品库在设计之初就会考虑系统的高可用方案,但此种高可用方案只局限在单一网络系统中闭环实现,无法实现跨系统,虽然开源社区有实现跨系统数据同步的工具,但该工具通过离线数据同步方式保持多个制品库的数据同步,此过程具有一定的时延,无法满足生产系统实时拉取制品的请求。

发明内容

本申请提供了一种制品拉取方法、装置、电子设备及存储介质,以解决离线同步数据的方式无法满足生产系统实时拉取制品的问题。

为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种制品拉取方法、装置、电子设备及存储介质。

一方面,本申请提供了一种制品拉取方法,应用于代理服务,所述方法包括:

在接收到客户端发起的制品库登录请求时,解析所述制品库登录请求确定待访问制品库的访问地址以及登录参数,其中,所述待访问制品库与所述客户端位于不同网络系统中;

按照所述访问地址发送所述登录参数至所述待访问制品库,其中,所述登录参数用于登录所述待访问制品库;

在接收到来自所述待访问制品库的鉴权信息时,转发所述鉴权信息至所述客户端;

在接收到携带有所述鉴权信息的制品拉取请求时,转发所述制品拉取请求至所述待访问制品库,并将从所述待访问制品库拉取到的目标制品转发至所述客户端。

另一方面,本申请提供了一种制品拉取方法,应用于域名服务,所述方法还包括:

在接收到规则修改请求时,按照所述规则修改请求将预设制品库域名与预设制品库地址之间的解析关系修改为,所述预设制品库域名与预设代理服务地址之间的解析关系;

在接收到来自客户端的域名解析请求时,基于所述域名解析请求中的预设制品库域名解析得到相应的所述预设代理服务地址;

将所述预设代理服务地址返回至所述客户端,其中,所述预设代理服务地址用于将所述客户端的制品拉取请求导向所述预设代理服务地址所对应的代理服务。

另一方面,本申请提供了一种制品拉取装置,所述装置包括:

第一解析模块,用于在接收到客户端发起的制品库登录请求时,解析所述制品库登录请求确定待访问制品库的访问地址以及登录参数,其中,所述待访问制品库与所述客户端位于不同网络系统中;

登录模块,用于按照所述访问地址发送所述登录参数至所述待访问制品库,其中,所述登录参数用于登录所述待访问制品库;

转发模块,用于在接收到来自所述待访问制品库的鉴权信息时,转发所述鉴权信息至所述客户端;在接收到携带有所述鉴权信息的制品拉取请求时,转发所述制品拉取请求至所述待访问制品库,并将从所述待访问制品库拉取到的目标制品转发至所述客户端。

另一方面,本申请提供了一种制品拉取装置,所述装置包括:

修改模块,用于在接收到规则修改请求时,按照所述规则修改请求将预设制品库域名与预设制品库地址之间的解析关系修改为,所述预设制品库域名与预设代理服务地址之间的解析关系;

第二解析模块,用于在接收到来自客户端的域名解析请求时,基于所述域名解析请求中的预设制品库域名解析得到相应的所述预设代理服务地址;

反馈模块,用于将所述预设代理服务地址返回至所述客户端,其中,所述预设代理服务地址用于将所述客户端的制品拉取请求导向所述预设代理服务地址所对应的代理服务。

另一方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

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

处理器,用于执行存储器上所存放的程序时,实现上述任一项实施例所述的制品拉取方法的步骤。

另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项实施例所述的制品拉取方法的步骤。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:

本申请实施例提供的制品拉取方法,在接收到客户端发起的制品库登录请求时,代理服务解析所述制品库登录请求确定待访问制品库的访问地址以及登录参数,再按照所述访问地址发送所述登录参数至所述待访问制品库,其中,所述登录参数用于登录所述待访问制品库;代理服务在接收到来自所述待访问制品库的鉴权信息时,转发所述鉴权信息至所述客户端;在接收到携带有所述鉴权信息的制品拉取请求时,转发所述制品拉取请求至所述待访问制品库,并将从所述待访问制品库拉取到的目标制品转发至所述客户端。客户端无需等待多个位于不同网络区中不同制品库之间进行离线数据同步之后客户端再访问处于同一网络系统中的制品库以拉取所需制品,而是通过代理服务访问与客户端位于不同网络系统中的制品库,以此实现客户端跨系统访问制品库实时拉取制品。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

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

图1为本申请实施例提供的一种制品拉取方法的应用环境示意图;

图2为本申请实施例提供的代理服务的配置界面示意图;

图3为本申请实施例提供的一种制品拉取方法的流程示意图;

图4为本申请实施例提供的一种制品拉取方法的流程示意图;

图5为本申请实施例提供的一种制品拉取方法的流程示意图;

图6为本申请实施例提供的一种制品拉取装置的结果示意图;

图7为本申请实施例提供的一种制品拉取装置的结果示意图;

图8为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

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

图1为一个实施例中制品拉取方法的应用环境图。参照图1,该制品拉取方法应用于制品拉取系统。该制品拉取系统包括客户端110、代理服务120、制品库130和域名服务140(DNS,Domain Name Server)。代理服务120分别与客户端110、制品库130、域名服务140通过网络连接,且客户端110与域名服务140通过网络连接。客户端110具体可以是台式终端或移动终端,移动终端具体可以为手机、平板电脑、笔记本电脑等中的至少一种。代理服务120或域名服务140可以用独立的服务器或者是多个服务器组成的服务器集群来实现。制品库搭载在服务器上实现。制品库可以部署在与客户端处于相同或不同的网络系统中,若制品库与客户端位于相同的网络系统中,表示制品库位于客户端所在内网中,若制品库与客户端位于不同的网络系统中,表示制品库位于客户端的外网中。

运维人员可以通过操作可视化界面对代理服务120进行配置,配置界面如图2所示,运维人员可以通过操作创建或编辑配置需要使用的域名,即业务环境在拉取制品时使用的域名,图2中的“生产域名”用于指示代理服务120的域名,“目标域名”用于指示第三方制品库130的真实域名,用户名和密码为登录该制品库130的登录参数,即代理服务120会将请求流量代理到此制品库130,选择目标域名后需要提供第三方制品库130的访问凭证,图中“用户名”和“密码”即为访问凭证,“路径替换规则”为非必选项,只有在第三方制品库130的制品路径和代理服务120本地制品库130路径不一致时才需要利用目的路径替换源路径,将目标路径确定为最终的制品路径。

在一个实施例中,图3为一个实施例中一种制品拉取方法的流程示意图,参照图3,提供了一种制品拉取方法。本实施例主要以该方法应用于上述图1中的代理服务120来举例说明,该制品拉取方法具体包括如下步骤:

步骤S202,在接收到客户端110发起的制品库登录请求时,解析所述制品库登录请求确定待访问制品库130的访问地址以及登录参数,其中,所述待访问制品库130与所述客户端110位于不同网络系统中。

具体的,客户端110向代理服务120发送制品库登录请求,制品库登录请求用于请求通过代理服务120登录所要请求访问的待访问制品库130,制品库登录请求中包含待访问制品库130的制品库域名或其他标识,代理服务120通过解析制品库登录请求以确定客户端110所要登录的待访问制品库130的访问地址以及该访问地址对应的登录参数,访问地址为待访问制品库130的真实IP地址,代理服务120按照访问地址查询对应的登录参数。待访问制品库130与客户端110位于不同网络系统,表示待访问制品库130位于客户端110的外网中,客户端110无法跨系统直接访问待访问制品库130。

步骤S204,按照所述访问地址发送所述登录参数至所述待访问制品库130,其中,所述登录参数用于登录所述待访问制品库130。

具体的,代理服务120将登录参数发送至访问地址对应的待访问制品库130,登录参数在待访问制品库130处进行身份认证处理之后反馈一个认证结果至代理服务120,在认证结果为认证成功时,认证结果中会包含鉴权信息(Token信息),表示代理服务120成功登录该待访问制品库130,由于代理服务120具备代理认证能力,客户端110以及内网应用层服务无需保存外网制品库130的认证信息,均由代理服务120统一管理各个制品库130的登录账号,无需在不同客户端110上部署各个制品库130的登录参数,以此可以提升研发效率。

步骤S206,在接收到来自所述待访问制品库130的鉴权信息时,转发所述鉴权信息至所述客户端110。

具体的,代理服务120在接收到待访问制品库130返回的鉴权信息时,表示待访问制品库130对登录参数认证成功,代理服务120成功登录待访问制品库130,且代理服务120将鉴权信息转发至客户端110,令客户端110后续再发起请求时携带上该鉴权信息,鉴权信息用于提供访问制品库130的访问权限。

步骤S208,在接收到携带有所述鉴权信息的制品拉取请求时,转发所述制品拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标制品转发至所述客户端110。

具体的,代理服务120在接收到来自客户端110的制品拉取请求,且该制品拉取请求携带有鉴权信息时,则将该制品拉取请求转发至待访问制品库130,由于该制品拉取请求携带有鉴权信息,所以待访问制品库130支持响应制品拉取请求提供相应的目标制品,代理服务120在拉取到目标制品时将该目标制品转发至客户端110,为客户端110提供其所请求的目标制品。

通常研发环境内网无法直连外网,当客户端110有拉取存储于外网环境中制品库130内制品的需求时,需要通过离线数据同步的方式将外网环境中制品库130内制品拷贝至内网环境中制品库130内后,客户端110再从内网环境中制品库130内拉取所需制品,但该过程存在离线数据同步的延时,客户端110无法实时拉取所需制品,然而基于上述方法客户端110可以通过代理服务120直接访问外网环境中的制品库130,代理服务120作为统一的对外出口从外网环境获取制品数据,不但节省了不同制品库130之间离线数据同步的延时时长,以此实现客户端110跨系统访问制品库130实时拉取制品,还方便网络安全管控。

即应用层无需关注底层数据来源,只需要引用一个固定的代理服务120来获取目标制品,以此实现了对应用层透明的多活方案。

在一个实施例中,所述制品库登录请求包括访问请求和认证请求,所述在接收到客户端110发起的制品库登录请求时,解析所述制品库登录请求确定待访问制品库130的访问地址以及登录参数,包括:

在接收到所述客户端110发起的访问请求时,为所述客户端110返回可用的认证接口地址;

在通过所述认证接口地址对应的认证接口接收到来自客户端110的认证请求时,解析所述认证请求确定待访问制品库130的访问地址以及所述待访问制品库130对应的登录账号和登录密码,其中,所述登录参数包括所述登录账号和所述登录密码。

具体的,制品库登录请求包括访问请求和认证请求,访问请求为GET请求,用于请求获取代理服务120的认证接口地址(auth接口地址),auth接口地址用于提供一个可用的认证接口(http接口),代理服务120为客户端110提供一个可用的认证接口后,通过该认证接口接收客户端110发起的认证请求,认证请求中包含了客户端110请求访问的制品库130的标识,认证请求用于请求登录待访问制品库130,因此代理服务120通过解析认证请求确定客户端110所要请求访问的待访问制品库130,进而在配置文件中查询该待访问制品库130的访问地址以及该待访问制品库130对应的登录账号和登录密码,将该待访问制品库130对应的登录账号和登录密码打包成登录参数后发送至访问地址对应的待访问制品库130,登录参数在待访问制品库130进行认证处理以生成认证结果,在认证结果指示认证成功时会包含后续用于请求鉴权的鉴权信息,即待访问制品库130通过鉴权信息为客户端110提供访问权限。

在一个实施例中,所述制品拉取请求包括摘要拉取请求和镜像拉取请求,所述目标制品包括目标摘要文件和目标镜像文件,所述在接收到携带有所述鉴权信息的制品拉取请求时,转发所述制品拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标制品转发至所述客户端110,包括:

在接收到携带有所述鉴权信息的所述摘要拉取请求时,转发所述摘要拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标摘要文件转发至所述客户端110,其中,所述目标摘要文件用于在所述客户端110处解析生成镜像拉取请求;

在接收到携带有所述鉴权信息的所述镜像拉取请求时,转发所述镜像拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标镜像文件转发至所述客户端110。

具体的,制品拉取请求包括摘要拉取请求和镜像拉取请求,摘要拉取请求用于请求拉取摘要文件(maifest文件),镜像拉取请求用于请求拉取镜像文件(layer文件),代理服务120在为客户端110转发了待访问制品库130提供的鉴权信息后,后续客户端110发起的请求均需要携带有鉴权信息,这样待访问制品库130才会响应客户端110通过代理服务120转发的请求,代理服务120在接收到携带有鉴权信息的摘要拉取请求时,将该摘要拉取请求转发至待访问制品库130,由于该摘要拉取请求携带有鉴权信息,所以待访问制品库130会响应摘要拉取请求以提供摘要拉取请求所请求的目标摘要文件至代理服务120,代理服务120将获取到的目标摘要文件转发至客户端110,目标摘要文件经客户端110解析出所要拉取的容器镜像信息并生成对应的镜像拉取请求,代理服务120在接收到镜像拉取请求后转发至待访问制品库130,待访问制品库130响应于镜像拉取请求提供相应的目标镜像文件,代理服务120再将获取到的目标镜像文件转发至客户端110,代理服务120在此过程中充当透明代理角色,用于透传客户端110发起的拉取请求至待访问制品库130,并透传待访问制品库130提供的文件至客户端110。

在一个实施例中,所述方法还包括:

按照第一预设周期定期通过探测接口向所有关联的制品库130发送探测请求;

基于各个所述制品库130依照所述探测请求返回的状态码,确定各个所述制品库130的负载状态;

剔除所述负载状态为负载异常的所述制品库130与所述代理服务120之间的连接关系,并在接收到访问负载异常的所述制品库130的业务请求时,将所述业务请求转发至负载正常的相关制品库130,其中,所述相关制品库130存储有所述业务请求所请求的目标制品。

具体的,代理服务120还会按照第一预设周期定时通过探测接口向与代理服务120关联的所有制品库130发送探测请求,探测请求也是GET请求,探测接口为URI为/v2/的http/https接口,第一预设周期可以根据应用场景需求进行自定义设置,具体可以为1分钟、3分钟、5分钟或10分钟等等,在本实施例中令第一预设周期为5分钟,探测请求用于请求制品库130反馈状态码,状态码为http返回码,在制品库130的负载状态为负载正常的情况下,制品库130响应探测请求反馈的状态码,与在制品库130的负载状态为负载异常情况下制品库130响应探测请求反馈的状态码不同,因此可以根据制品库130对于探测请求反馈的状态码确定制品库130的负载状态。在存在负载状态为负载异常的制品库130时,剔除该制品库130与代理服务120之间的连接关系,并在接收到关于该制品库130的业务请求时,将业务请求转发至其他负载正常的相关制品库130,相关制品库130与负载异常的制品库130都存储有业务请求所请求的目标制品,业务请求具体包括制品库登录请求和制品拉取请求,无论是哪种类型的请求都不会再转发至负载异常的制品库130,而是将流量切换到负载正常的制品库130,即代理服务120会定期探测所有关联制品库130的负载状态,当探测到制品库130发生故障不可用时,代理服务120会剔除与该制品库130之间的连接关系,同时将流量切换到正常制品库130一保证上层业务正常使用,以此实现制品库130多活的目的。

在一个实施例中,所述基于各个所述制品库130依照所述探测请求返回的状态码,确定各个所述制品库130的负载状态,包括:

在接收到所述制品库130返回的状态码为预设码时,确定所述制品库130的负载状态为负载正常;或,

在接收到所述制品库130返回的状态码为非预设码时,按照第二预设周期定期通过所述探测接口向所述制品库130发送探测请求,在连续N次接收到所述制品库130返回的状态码为非预设码时,确定所述制品库130的负载状态为负载异常,其中,所述第二预设周期对应时长短于所述第一预设周期对应时长。

具体的,预设码可以由字符、数字、字母中至少一种或多种组合形成的,在本实施例中预设码为200,代理服务120在接收到制品库130反馈的状态码为200时,表示该制品库130的负载状态为负载正常,意味着该制品库130与代理服务120之间的通信正常,若代理服务120在接收到制品库130反馈的状态码不是200时,表示制品库130与代理服务120之间的通信异常,则按照第二预设周期通过探测接口定期向制品库130发送探测请求,第二预设周期对应时长短语第一预设周期对应时长,在第一预设周期为5分钟时,第二预设周期可以为5秒,并判断按照第二预设周期发送的探测请求所接收到的状态码是否仍为非预设码,若连续N次接收到制品库130返回的状态码为非预设码,即每隔5秒发送探测请求后每次所接收到的状态码并非为200,N为正整数,在本实施例中令N为3,即按照5秒间隔向制品库130发送探测请求,且连续3次接收到的该制品库130基于探测请求反馈的状态码并非为200,则确定该制品库130的负载状态为负载异常,代理服务120将剔除与该制品库130之间的连接关系,同时还发送相应的告警信息至关联的运维终端,令持有运维终端的运维人员及时了解该制品库130的异常状态。

即docker制品库130都会遵循一个统一的约定,制品库130API都会实现一个URI为/v2/的http/https接口,通过向此接口发送GET探测请求,若代理服务120收到http返回码为200的响应,表示该制品库130通信正常;也就是代理服务120内部实现了一个定时轮询机制,每5分钟向所有后端制品库130发起一次探测请求,如返回200的状态码表示负载正常;如返回的状态码code非200则再进行3次重试,每次间隔5秒钟,如连续3次探测反馈的状态码均为非200则认为此制品库130负载异常,系统将故障负载剔除,同时发送告警给运维人员。

在一个实施例中,如图4所示,提供了一种制品拉取方法,该方法应用于域名服务140,所述方法包括:

步骤S302,在接收到规则修改请求时,按照所述规则修改请求将预设制品库域名与预设制品库130地址之间的解析关系修改为,所述预设制品库域名与预设代理服务地址之间的解析关系。

具体的,域名服务140为DNS服务,域名服务140在接收到规则修改请求时,对于制品库域名与制品库130地址之间的解析关系进行修改,更新为规则修改请求中制品库域名与代理服务地址之间的解析关系,即在接收规则修改请求之前,域名服务140会根据接收到的制品库域名解析出对应的制品库130地址,但在接收规则修改请求之后,域名服务140会根据接收到的制品库域名解析出对应的代理服务地址,即域名服务140将访问制品库130地址的流量导向代理服务地址。

步骤S304,在接收到来自客户端110的域名解析请求时,基于所述域名解析请求中的预设制品库域名解析得到相应的所述预设代理服务地址。

具体的,域名解析请求包含客户端110所要请求访问的预设制品库域名,域名服务140对域名解析请求进行解析处理,由于域名服务140中预设制品库域名对应的解析关系为预设制品库域名与预设代理服务地址,因此域名服务140对域名解析请求解析处理得到预设制品库域名所对应的预设代理服务地址,并非是原先的预设制品库130地址。

步骤S306,将所述预设代理服务地址返回至所述客户端110,其中,所述预设代理服务地址用于将所述客户端110的制品拉取请求导向所述预设代理服务地址所对应的代理服务120。

具体的,将预设代理服务地址返回至客户端110,后续客户端110会按照预设代理服务地址向对应的代理服务120发起业务请求,以此将客户端110发起的请求流量从原先的预设制品库130导向预设代理服务地址对应的代理服务120。

在一个实施例中,所述在接收到规则修改请求时,按照所述规则修改请求将预设制品库域名与预设制品库130地址之间的解析关系修改为,所述预设制品库域名与预设代理服务地址之间的解析关系,包括:

在接收到来自代理服务120或配置操作对应的规则修改请求时,按照所述规则修改请求将预设制品库域名与预设制品库130地址之间的解析关系修改为,所述预设制品库域名与预设代理服务地址之间的解析关系。

具体的,即规则修改请求具体可以是由运维人员的配置操作触发发送至域名服务140的,也可以是代理服务120在启动后自动向域名服务140发起的,通过规则修改请求将制品库域名解析为代理服务120IP地址,以此劫持客户端110直接发送至制品库130的业务请求。

在一个具体实施例中,如图5所示,制品拉取方法流程如下:

a)客户端110(docker client)通过访问DNS域名服务140查询制品库域名对应的代理服务地址(IP地址),制品库域名例如为:wesure-docker.pkg.coding.inwesure.com;

b)客户端110按照域名服务140反馈的代理服务地址向代理服务120发起http GET访问请求,从而从代理服务120获取认证接口;

c)客户端110再向认证接口发起认证请求,代理服务120对认证请求进行解析处理确定待访问制品库130的访问地址以及登录待访问制品库130所需的登录参数,代理服务120在成功登录待访问制品库130后待访问制品库130会向代理服务120返回后续请求鉴权需要的token鉴权信息,代理服务120还将鉴权信息转发至客户端110;

d)客户端110通过代理服务120向待访问制品库130发起请求查询指定制品的摘要拉取请求,以请求拉取mainfest文件,代理服务120会将从待访问制品库130拉取到的mainfest文件转发至客户端110;

e)客户端110会根据获取到的maifest文件解析出需要拉取的容器镜像各layer信息,并生成对应的镜像拉取请求,通过代理服务120向待访问制品库130发送镜像拉取请求,以拉取所需的layer文件;

f)代理服务120会将从待访问制品库130拉取到的layer文件转发至客户端110,该步骤会循环执行,直至客户端110拉取完所需的全部layer文件。

图3-图5为一个实施例中制品拉取方法的流程示意图。应该理解的是,虽然图3-图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供了一种制品拉取装置,包括:

第一解析模块410,用于在接收到客户端110发起的制品库登录请求时,解析所述制品库登录请求确定待访问制品库130的访问地址以及登录参数,其中,所述待访问制品库130与所述客户端110位于不同网络系统中;

登录模块420,用于按照所述访问地址发送所述登录参数至所述待访问制品库130,其中,所述登录参数用于登录所述待访问制品库130;

转发模块430,用于在接收到来自所述待访问制品库130的鉴权信息时,转发所述鉴权信息至所述客户端110;在接收到携带有所述鉴权信息的制品拉取请求时,转发所述制品拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标制品转发至所述客户端110。

在一个实施例中,所述第一解析模块410还用于:

在接收到所述客户端110发起的访问请求时,为所述客户端110返回可用的认证接口地址;

在通过所述认证接口地址对应的认证接口接收到来自客户端110的认证请求时,解析所述认证请求确定待访问制品库130的访问地址以及所述待访问制品库130对应的登录账号和登录密码,其中,所述登录参数包括所述登录账号和所述登录密码。

在一个实施例中,所述转发模块430还用于:

在接收到携带有所述鉴权信息的所述摘要拉取请求时,转发所述摘要拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标摘要文件转发至所述客户端110,其中,所述目标摘要文件用于在所述客户端110处解析生成镜像拉取请求;

在接收到携带有所述鉴权信息的所述镜像拉取请求时,转发所述镜像拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标镜像文件转发至所述客户端110。

在一个实施例中,所述装置还包括探测模块,用于:

按照第一预设周期定期通过探测接口向所有关联的制品库130发送探测请求;

基于各个所述制品库130依照所述探测请求返回的状态码,确定各个所述制品库130的负载状态;

剔除所述负载状态为负载异常的所述制品库130与所述代理服务120之间的连接关系,并在接收到访问负载异常的所述制品库130的业务请求时,将所述业务请求转发至负载正常的相关制品库130,其中,所述相关制品库130存储有所述业务请求所请求的目标制品。

在一个实施例中,所述探测模块还用于:

在接收到所述制品库130返回的状态码为预设码时,确定所述制品库130的负载状态为负载正常;或,

在接收到所述制品库130返回的状态码为非预设码时,按照第二预设周期定期通过所述探测接口向所述制品库130发送探测请求,在连续N次接收到所述制品库130返回的状态码为非预设码时,确定所述制品库130的负载状态为负载异常,其中,所述第二预设周期对应时长短于所述第一预设周期对应时长。

在一个实施例中,如图7所示,提供看一种制品拉取装置,所述装置包括:

修改模块510,用于在接收到规则修改请求时,按照所述规则修改请求将预设制品库域名与预设制品库130地址之间的解析关系修改为,所述预设制品库域名与预设代理服务地址之间的解析关系;

第二解析模块520,用于在接收到来自客户端110的域名解析请求时,基于所述域名解析请求中的预设制品库域名解析得到相应的所述预设代理服务地址;

反馈模块530,用于将所述预设代理服务地址返回至所述客户端110,其中,所述预设代理服务地址用于将所述客户端110的制品拉取请求导向所述预设代理服务地址所对应的代理服务120。

在一个实施例中,所述修改模块510还用于:

在接收到来自代理服务120或配置操作对应的规则修改请求时,按照所述规则修改请求将预设制品库域名与预设制品库130地址之间的解析关系修改为,所述预设制品库域名与预设代理服务地址之间的解析关系。

如图8所示,本申请实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,

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

在本申请一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的制品拉取方法。

本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的制品拉取装置可以实现为一种计算机程序的形式,计算机程序可在如图8所示的计算机设备上运行。计算机设备的存储器中可存储组成该制品拉取装置的各个程序模块,比如,图6所示的第一解析模块410、登录模块420和转发模块430。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的制品拉取方法中的步骤。

图8所示的计算机设备可以通过如图6所示的制品拉取装置中的第一解析模块410执行在接收到客户端110发起的制品库登录请求时,解析所述制品库登录请求确定待访问制品库130的访问地址以及登录参数,其中,所述待访问制品库130与所述客户端110位于不同网络系统中。计算机设备可通过登录模块420执行按照所述访问地址发送所述登录参数至所述待访问制品库130,其中,所述登录参数用于登录所述待访问制品库130。计算机设备可通过转发模块430执行在接收到来自所述待访问制品库130的鉴权信息时,转发所述鉴权信息至所述客户端110;在接收到携带有所述鉴权信息的制品拉取请求时,转发所述制品拉取请求至所述待访问制品库130,并将从所述待访问制品库130拉取到的目标制品转发至所述客户端110。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项实施例所述的方法。

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

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

相关技术
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 电子设备控制方法及装置、电子设备及存储介质
  • 数据分布存储方法、装置、存储介质及电子设备
  • 存储清理方法、装置、电子设备及存储介质
  • 多版本数据存储管理方法及装置、电子设备、存储介质
  • 一种信息拉取方法、装置、电子设备及计算机存储介质
  • 一种文件拉取方法、装置、电子设备及存储介质
技术分类

06120116224224