基于P2P的文件分发系统和方法
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种基于P2P的文件分发系统和方法。
背景技术
随着互联网规模的不断增长,如何在大规模网络节点间进行不同种类文件的高效传输成为文件共享服务的重点和难点。在传统的C/S(Client-Server,客户端-服务器)结构构建的分发体系中,单一服务器向大量对等主机分发文件的副本,中央服务器承受较大的请求负载。P2P(Peer to Peer,点对点)技术的出现,使得应用程序可以在间断连接的主机之间直接通信,对位于数据中心的专用服务器有最小的依赖,成为大规模文件分发中普遍采用的技术。
但是现有的基于P2P的文件分发方法对分发任务的发起还是本地单节点式。对于私有云、公有云、容器云等环境下,用户通常需要对包含多个任务节点的主机集群进行文件分发,现有方案只支持本地任务的模式限制了P2P技术在云环境下的应用。
发明内容
针对现有技术问题,本发明实施例提供一种基于P2P的文件分发系统和方法。
第一方面,本发明实施例提供一种基于P2P的文件分发系统,所述系统包括P2P网络层、分发服务层以及用户操作层,其中:
所述P2P网络层包括多个异构集群,所有集群中的各节点互为对等节点,各对等节点之间用于进行文件与镜像的直接传输;
所述分发服务层包括通用功能模块和存储模块,所述通用功能模块包括接入鉴权单元、流量控制单元、分发控制单元、状态查询单元以及配置管理单元,分别用于为用户提供系统接入审核、分发流量限制、镜像与文件的分发控制、任务状态查询以及集群信息、分发任务相关信息与用户信息的存储;所述存储模块包括镜像存储单元和文件存储单元,分别用于保存用户上传的镜像和文件;
所述用户操作层包括多个客户端,各客户端用于为用户提供窗口化的上传和分发操作界面。
第二方面,本发明实施例提供一种基于P2P的文件分发方法,所述方法包括:
客户端创建用户的分发任务请求,并将所述分发任务请求转发给分发控制单元,所述分发任务请求携带目标集群ID或指定的集群IP;
分发控制单元接收客户端转发的分发任务请求,并对所述分发任务请求进行权限鉴定,如果通过所述权限鉴定,根据所述目标集群ID或指定的集群IP获取目标集群,设置分发任务参数,将文件或镜像分发至所述目标集群的各节点,并向所述客户端返回分发任务完成消息。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第二方面提供的方法。
第四方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述第二方面提供的方法。
本发明实施例通过在异构集群间进行P2P组网,实现不同集群下容器镜像与多种文件格式下的高效分发,增强了系统的通用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于P2P的文件分发系统的结构示意图;
图2为本发明一实施例提供的基于P2P文件分发系统的网络拓扑结构示意图;
图3为本发明一实施例提供的基于P2P的文件分发方法的流程示意图;
图4为本发明一实施例提供的基于P2P的镜像与文件分发控制接口交互流程的示意图;
图5为本发明一实施例提供的基于P2P的接入鉴权接口交互流程的示意图;
图6为本发明一实施例提供的基于P2P的流量控制接口交互流程的示意图;
图7为本发明一实施例提供的基于P2P的状态查询接口交互流程的示意图;
图8为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例提供的基于P2P的文件分发系统的结构示意图。
如图1所示,所述系统包括P2P网络层、分发服务层以及用户操作层,其中:
所述P2P网络层包括多个异构集群,所有集群中的各节点互为对等节点,各对等节点之间用于进行文件与镜像的直接传输;
具体地,P2P网络层是由不同的异构集群构成的点对点分发网络,网络中存在多个异构集群,例如虚拟机集群、物理机集群以及容器集群。所有集群中的节点彼此都是对等方,可以直接进行文件与镜像的传输。
P2P网络层将P2P技术进一步拓展到容器应用领域,在已支持的文件种类基础上,增加了对容器镜像文件类型的兼容,丰富了P2P技术的应用场景。
需要说明的是,所述系统支持多个异构集群的接入。
所述分发服务层包括通用功能模块和存储模块,所述通用功能模块包括接入鉴权单元、流量控制单元、分发控制单元、状态查询单元以及配置管理单元,分别用于为用户提供系统接入审核、分发流量限制、镜像与文件的分发控制、任务状态查询以及集群信息、分发任务相关信息与用户信息的存储;所述存储模块包括镜像存储单元和文件存储单元,分别用于保存用户上传的镜像和文件;
具体地,分发服务层是整个通用分发系统的核心架构。主要由两大部分构成:通用功能模块和存储模块。其中,功能模块主要由用户接入鉴权、流量控制、分发控制、状态查询接口和配置信息数据库构成,为用户提供系统接入审核、任务集群带宽控制、镜像与文件的P2P分发控制以及任务状态查询,集群信息、分发任务相关信息与用户信息的存储等功能。存储模块将提供保存用户上传至系统的镜像或者文件的统一存储功能。
所述用户操作层包括多个客户端,各客户端用于为用户提供窗口化的上传和分发操作界面。
具体地,用户操作层由任意数量的用户客户端构成。用户可通过客户端的窗口化操作实现镜像和文件的上传与分发操作。
本发明实施例提供用户统一操作界面,屏蔽了后台命令行细节,对用户操作更加友好,简化了系统的使用复杂度,提高了系统操作的效率。
本发明实施例提供的基于P2P的文件分发系统,通过在异构集群间进行P2P组网,实现不同集群下容器镜像与多种文件格式下的高效分发,增强了系统的通用性。
在上述实施例的基础上,所述客户端,用于创建用户的分发任务请求,并将所述分发任务请求转发给所述分发控制单元,所述分发任务请求携带目标集群ID或指定的集群IP,并将分发任务信息保存至配置管理单元;
所述分发控制单元,用于接收客户端转发的分发任务请求,并对所述分发任务请求进行权限鉴定,如果通过所述权限鉴定,根据所述目标集群ID或指定的集群IP获取目标集群,设置分发任务参数,将文件或镜像分发至所述目标集群的各节点,并向所述客户端返回分发任务完成消息;
所述状态查询单元,用于实现对所述分发任务的状态信息查询;
所述配置管理单元,用于保存所述网络层的集群信息、分发任务配置与状态信息以及用户信息。
具体地,客户端的用户统一操作界面为用户提供镜像与文件分发功能,具体为用户通过客户端建立镜像或文件分发任务;分发控制单元首先通过鉴权功能判断用户是否具有分发功能的权限;如果用户通过鉴权,需要设置分发任务参数,包括任务目标集群,分发流量限制,文件下载保存路径等;用户只需提供集群ID,系统即可从配置管理单元数据库读取集群配置信息实现集群节点的自主发现,用户也可以指定多个节点IP作为自定义集群;分发控制单元通过调用流量控制接口提供用户对任务目标集群的分发流量限制,也可采用默认参数省略具体参数的设置;根据分发类型的不同,分发控制单元进行不同的处理:如果分发的是普通文件,用户需要指定文件保存路径(或使用默认路径);系统提供MD5(MessageDigest Algorithm,消息摘要算法)加密校验功能,确保节点接收镜像与文件的完整性;分发控制单元将文件和镜像分发至目标集群的各节点,并向所述客户端返回分发任务完成消息。
在任务进行的过程中,会将任务进度与任务事件日志写入配置管理单元数据库以提供查询能力。
本发明实施例实现了集群主机自主发现,异构集群的接入与节点间快速组网,支持私有云等云化环境下,以集群视角进行统一化操作。
在上述实施例的基础上,各集群的每个节点均包括一个容器化代理和一个容器服务集合;
所述分发控制单元包括:集群发现子单元、设置子单元、分发子单元,其中:
所述集群发现子单元,用于根据目标集群ID或集群IP从所述配置管理单元获取所述目标集群的各节点;
所述设置子单元,用于设置分发带宽和文件保存路径;
所述分发子单元,用于分发文件时,将所述分发任务请求转换为容器化代理统一文件下载命令;用于分发镜像时,将所述分发任务请求转换成镜像下载命令;还用于通过远程调用所述目标集群的容器服务集合,将统一文件下载命令或镜像下载命令下发至目标集群各节点的容器化代理。
所述容器服务集合,用于在分发任务时,接收所述分发子单元的远程调用请求并启动所述容器化代理,当接收到所述统一文件下载命令时,在容器化代理中执行该命令;当接收到所述镜像下载命令时,在所述目标集群节点本地执行镜像下载命令发起镜像下载请求;
所述容器化代理,用于接收到统一文件下载命令,并下载所述分发子单元分发的文件,将下载的文件保存在所述文件保存路径中;还用于获取所述镜像下载命令请求,将所述镜像下载请求转换为统一文件下载命令,下载所述分发子单元分发的镜像,并保存在本地镜像存储路径中,下载完成后将向分发子单元和配置管理单元上报状态信息。
具体地,容器化代理是容器化P2P节点代理的简称,是一个容器化的轻量级集群对等节点代理,负责接收分发任务,完成镜像的下载与节点间的分发。当集群节点被选为任务节点时,会检测代理容器是否存在。若不存在则下载并启动该容器。因此,当集群扩展时,可更加快捷的以容器部署的方式在扩展节点启动代理。
容器服务集是容器远程API(Application Programming Interface,应用程序编程接口)调用服务集合,通过接收远程调用请求启动容器化代理并执行统一文件下载或镜像下载命令。
具体地,当节点被选入目标集群时,容器服务集接收分发子单元发起的远程调用请求在集群节点上启动容器化代理并执行ufile-get统一文件下载命令向分发子单元请求文件下载。如果分发的是镜像文件,容器服务集将在目标集群本地执行docker-pull发起镜像下载请求,容器化代理获取该请求并转换为ufile-get统一文件下载命令向分发子单元请求下载镜像并保存至本地镜像存储路径中。
本发明实施例优化了P2P网络结构,将传统的对等节点代理改造为更加灵活的轻量级容器形式,当任务发起时可在网络节点快速获取并启动容器,当任务终止或节点删除时,可删除容器,提高了系统的可扩展性。减少了对宿主机系统的入侵性。
在上述实施例的基础上,所述配置管理单元,还用于保存完成文件下载或镜像下载的目标集群的节点信息;
所述容器化代理,还用于根据所述分发控制单元保存的节点信息进行对等节点间的文件与镜像的直接传输。
具体地,分发控制单元还负责存储已完成下载任务的对等节点网络信息,后续节点可根据分发控制单元提供的信息,寻找完成下载任务的对等节点以P2P方式直接传输。
本发明实施例支持Mesos、Kubernetes等容器管理集群,以及物理机与虚拟机集群之间的镜像与文件分发,实现不同集群下主机的自动发现与集群统一任务处理,增强了系统在集群环境下的通用性与组网的灵活性。
在上述实施例的基础上,所述客户端,用于创建用户的上传文件或镜像任务请求,并将所述上传文件或镜像任务请求转发给所述接入鉴权单元;
所述接入鉴权单元,用于接收客户端转发的上传文件或镜像任务请求,并对所述上传任务请求进行权限鉴定,如果通过所述权限鉴定,向所述客户端返回对应的令牌信息,如果未通过所述权限鉴定,向所述客户端返回无权访问信息;
所述客户端,用于在接收到接入鉴权单元返回的令牌信息后,根据所述令牌信息访问镜像存储单元或者文件存储单元。
具体地,客户端的用户统一操作界面提供面向用户的个性化功能,如用户使用客户端上传镜像文件,具体为用户使用客户端上传镜像文件;接入鉴权单元对用户进行权限鉴定,如果通过鉴权,将为用户返回对应的Token(令牌)信息。如果未通过鉴权,则返回无权访问信息;Token是用户访问镜像与文件存储服务的唯一标识。用户根据上传需求访问镜像或文件存储服务。
本发明实施例实现了用户权限管理,提供不同权限用户的不同操作视图,加强了系统的安全效能,更加符合生产环境需求。
在上述实施例的基础上,所述客户端,用于创建用户的流量控制任务请求,并将所述流量控制任务请求转发给所述流量控制单元,所述流量控制任务请求携带流量控制集群ID;
所述流量控制单元,用于接收客户端转发的流量控制任务请求,并对所述流量控制任务请求进行权限鉴定,如果通过所述权限鉴定,通过配置管理单元获取所述流量控制集群的各节点,根据流量控制任务请求重新配置各节点的流量参数,并向所述客户端返回流量控制任务完成消息;
所述容器化代理,用于更新所述流量控制集群的各节点的流量参数。
具体地,客户端的用户统一操作界面为用户提供对任务目标集群节点进行分发流量带宽使用限制功能。具体为用户通过客户端对任务目标集群节点进行分发流量带宽使用限制;流量控制单元的鉴权功能将判断用户是否有相应集群的设置权限;通过鉴权后,用户指定需要进行下载流量限制的任务集群ID;系统通过集群配置信息获取集群节点;删除集群原容器化代理,并根据用户流量参数重新配置并且启动容器化代理;完成配置,并将配置修改记录同步至配置管理单元。
需要说明的是,由于容器的轻量化,删除与重启集群原容器化代理的操作在集群节点并不会消耗大量的时间。
本发明实施例实现了流量控制,系统可根据用户需要在任务集群之间灵活地设置下载带宽的限制,防止集群节点间因为镜像下载分发导致的带宽占满,影响其他业务的正常运行。
在上述实施例的基础上,所述客户端,用于创建用户的任务状态查询请求,并将所述任务状态查询请求转发给所述状态查询单元;
所述状态查询单元,用于接收客户端转发的任务状态查询请求,并对所述任务状态查询请求进行权限鉴定,如果通过所述权限鉴定,通过状态查询单元在配置管理单元中查询任务集群各节点的完成状态,并向所述客户端返回查询结果。
具体地,客户端的用户统一操作界面为用户提供状态查询功能。具体为:用户通过客户端提交任务状态查询申请;状态查询单元对用户查询权限进行判断。通过鉴定后,根据相应的任务标识,查询配置管理单元的任务状态缓存数据库,如果缓存数据库未同步当前任务的状态数据,则查询配置管理单元配置管理数据库;返回任务状态信息。
本发明实施例系统采用了异步查询接口模式,提供镜像与文件的分发状态查询服务,使用户对分发进度有更直观的了解。
本发明实施例实现了用户权限管理,在接入鉴权单元、分发控制单元、流量控制单元以及状态查询单元分别提供不同权限用户的不同操作视图,加强了系统的安全效能,更加符合生产环境需求。
图2示出了本发明实施例提供的基于P2P文件分发系统的网络拓扑结构示意图。
如图2所示,Client为用户客户端,用户可通过Client的UI(User Interface,用户界面交互)界面建立分发任务。例如:选择分发的集群ID,任务占用集群带宽限制,下载目录等参数,并通过Client可实时查看任务进度。
Minio适合于存储大容量非结构化的数据,因此在系统中作为存储端用于存储不同类型的文件。
Harbor作为私有镜像仓库,在系统中用于存储用户上传至系统的容器镜像。
MySQL作为CMDB(Configuration Management Database,配置管理数据库)用来存储集群状态和节点等配置信息,同时保存用户信息以及系统操作事件日志。Redis数据缓存服务用于保持分发任务的状态信息,提供高并发、低延迟的任务状态查询访问请求处理。
UAG(Universal API Gateway,通用API网关)是具备API网关功能的模块,封装了系统内部架构,可提供定制化的API。作为Client各种操作请求的唯一入口,接收并转发任务请求,并与MySQL与Redis数据库交互,返回Client状态信息。同时,还提供用户权限校验、用户安全隔离等功能。
UCI(Unified Core Interface,统一核心接口)是一个无状态的,可动态横向扩展的统一核心接口层,具备系统高可用性。用户的分发任务请求通过UGA由UCI转换为dockerpull命令统一下发至任务集群多节点的Agent容器,是实现用户集群化操作的关键。
NDC(Network Distribute Controller,网络分发控制器)是分发系统的核心节点,控制分发任务的整个过程。在接收到任务请求后,完成镜像准备,并将任务下发至各个对等节点。NDC还负责存储已完成下载任务的对等节点网络信息,后续节点可根据NDC提供的信息,寻找完成下载任务的对等节点以P2P方式直接传输。
NCA(Node Containerized Agents,容器化代理)是一个容器化的轻量级集群对等节点代理,负责接收分发任务,配合NDC完成文件或镜像的下载与节点间的分发。当集群节点被选为任务节点时,会检测代理容器是否存在。若不存在则下载并启动该容器。因此,当集群扩展时,可更加快捷的以容器部署的方式在扩展节点启动Agent。
Docker Service是由Docker Remote Api组成的Docker远程API调用服务集合,UCI通过远程调用Docker Servic,启动Container Agent,并根据下载类型执行相应的下载命令。
图3示出了本发明实施例提供的一种基于P2P的文件分发方法的流程示意图。
如图3所示,本发明实施例提供的基于P2P的文件分发方法具体包括以下步骤:
S11、客户端创建用户的分发任务请求,并将所述分发任务请求转发给分发控制单元,所述分发任务请求携带目标集群ID或指定的集群IP;
具体地,用户通过客户端建立镜像或文件分发任务,指定任务目标集群ID或者指定多个节点IP作为自定义集群。
S12、分发控制单元接收客户端转发的分发任务请求,并对所述分发任务请求进行权限鉴定,如果通过所述权限鉴定,根据所述目标集群ID或指定的集群IP获取目标集群,设置分发任务参数,将文件或镜像分发至所述目标集群的各节点,并向所述客户端返回分发任务完成消息。
具体地,分发控制单元首先通过鉴权功能判断用户是否具有分发功能的权限,如果有权限,从配置管理单元数据库读取集群配置信息实现集群节点的自主发现,设置文件保存路径、流量带宽限制和MD5校验等参数,根据参数对任务目标集群的分发流量限制,也可采用默认参数省略具体参数,如果分发的是普通文件,分发至指定文件保存路径(或使用默认路径),最后向客户端返回分发任务完成消息。
本发明实施例提供的基于P2P的文件分发方法,实现了集群主机自主发现,实现不同集群下容器镜像与多种文件格式下的高效分发,增强了系统的通用性。
在上述实施例的基础上,各集群的每个节点均包括一个容器化代理和一个容器服务集合。
具体地,结合图2,容器化代理NCA是一个容器化的轻量级集群对等节点代理,负责接收分发任务,完成镜像的下载与节点间的分发。当集群节点被选为任务节点时,会检测代理容器是否存在。若不存在则下载并启动该容器。因此,当集群扩展时,可更加快捷的以容器部署的方式在扩展节点启动代理。
结合图2,容器服务集合(Docker Service)是容器远程API调用服务集合,UCI通过远程调用Docker Servic,启动Container Agent,并根据下载类型执行相应的下载命令。
具体地,所述方法还包括:
集群发现子单元根据目标集群ID或集群IP从所述配置管理单元获取所述目标集群的各节点;
设置子单元设置分发流量带宽和文件保存路径;
分发子单元分发文件时,将所述分发任务请求转换为容器化代理统一文件下载命令;分发镜像时,将所述分发任务请求转换成镜像下载命令,通过远程调用所述目标集群的容器服务集合,将统一文件下载命令或镜像下载命令下发至目标集群各节点的容器化代理;
容器服务集合在分发任务时,接收所述分发子单元的远程调用请求并启动所述容器化代理,当接收到所述统一文件下载命令时,在容器化代理中执行该命令;当接收到所述镜像下载命令时,在所述目标集群节点本地执行镜像下载命令发起镜像下载请求;
容器化代理接收到统一文件下载命令,并下载所述分发子单元分发的文件,将下载的文件保存在所述文件保存路径中;或者,获取所述镜像下载命令请求,将所述镜像下载请求转换为统一文件下载命令,下载所述分发子单元分发的镜像,并保存在本地镜像存储路径中,下载完成后将向分发子单元和配置管理单元上报状态信息。
本发明实施例优化了P2P网络结构,将传统的对等节点代理改造为更加灵活的轻量级容器形式,当任务发起时可在网络节点快速获取并启动容器,当任务终止或节点删除时,可删除容器,提高了系统的可扩展性。减少了对宿主机系统的入侵性。
具体地,所述方法还包括:
配置管理单元保存完成文件下载或镜像下载的目标集群的节点信息;
容器化代理根据所述分发控制单元保存的节点信息进行对等节点间的文件与镜像的直接传输。
本发明实施例支持Mesos、Kubernetes等容器管理集群,以及物理机与虚拟机集群之间的镜像与文件分发,实现不同集群下主机的自动发现与集群统一任务处理,增强了系统在集群环境下的通用性与组网的灵活性。
图4示出了本发明实施例提供的基于P2P的镜像与文件分发控制接口交互流程的示意图。
结合图2和图4,分发控制接口交互流程具体包括以下步骤:
用户通过Client建立镜像或文件分发任务;
分发模块首先通过UAG的鉴权功能判断用户是否具有分发功能的权限;
用户通过鉴权后,需要设置分发任务参数。包括任务目标集群,分发流量限制,文件下载保存路径、MD5校验等。用户只需提供集群ID,系统即可从MySQL数据库读取集群配置信息实现集群节点的自主发现。用户也可以指定多个节点IP作为自定义集群。分发模块通过调用流量控制接口提供用户对任务目标集群的分发流量限制,也可采用默认参数省略具体参数的设置;
根据分发类型的不同,分发模块进行不同的处理。如果分发的是普通文件,用户需要指定文件保存路径(或使用默认路径)。如果分发的是普通文件,UCI调用Docker Service服务在集群节点上启动NCA,NCA执行ufile-get命令向NDC请求文件下载。如果分发的是镜像文件,Docker Service将在集群节点本地执行docker-pull命令,NCA获取docker-pull发起的下载请求并转换为ufile-get命令向NDC请求镜像下载至本地Register(本地镜像存储路径)。
在任务进行的过程中,会将任务进度与任务事件日志分别写入Redis与MySQL数据库提供查询能力。
在上述实施例的基础上,所述方法还包括:
客户端创建用户的上传文件或镜像任务请求,并将所述上传文件或镜像任务请求转发给所述接入鉴权单元;
所述接入鉴权单元,用于接收客户端转发的上传文件或镜像任务请求,并对所述上传任务请求进行权限鉴定,如果通过所述权限鉴定,向所述客户端返回对应的令牌信息,如果未通过所述权限鉴定,向所述客户端返回无权访问信息;
客户端在接收到接入鉴权单元返回的令牌信息后,根据所述令牌信息访问镜像存储单元或者文件存储单元。
本发明实施例实现了用户权限管理,提供不同权限用户的不同操作视图,加强了系统的安全效能,更加符合生产环境需求。
图5示出了本发明实施例提供的基于P2P的接入鉴权接口交互流程的示意图。
结合图2和图5,接入鉴权接口交互流程具体包括以下步骤:
用户使用客户端上传镜像文件;
Client调用接入鉴权接口对用户进行权限鉴定,如果通过鉴权,将为用户返回对应的Token信息。如果未通过鉴权,则返回无权访问信息;
Token是用户访问镜像与文件存储服务的唯一标识。用户根据上传需求访问镜像或文件存储服务。
在上述实施例的基础上,所述方法还包括:
客户端创建用户的流量控制任务请求,并将所述流量控制任务请求转发给所述流量控制单元,所述流量控制任务请求携带流量控制集群ID;
流量控制单元接收客户端转发的流量控制任务请求,并对所述流量控制任务请求进行权限鉴定,如果通过所述权限鉴定,通过配置管理单元获取所述流量控制集群的各节点,根据流量控制任务请求重新配置各节点的流量参数,并向所述客户端返回流量控制任务完成消息;
容器化代理单元更新所述流量控制集群的各节点的流量参数。
本发明实施例实现了流量控制,系统可根据用户需要在任务集群之间灵活地设置下载带宽的限制,防止集群节点间因为镜像下载分发导致的带宽占满,影响其他业务的正常运行。
图6示出了本发明实施例提供的基于P2P的流量控制接口交互流程的示意图。
结合图2和图6,流量控制接口交互流程具体包括以下步骤:
用户通过Client对任务目标集群节点进行分发流量带宽使用限制;
UAG的鉴权功能将判断用户是否有相应集群的设置权限。通过鉴权后,用户指定需要进行下载流量限制的任务集群ID。系统通过集群配置信息获取集群节点;
通过UCI,删除集群原NCA,并根据用户流量参数重新配置并且启动NCA容器。由于容器的轻量化,该删除与重启操作在集群节点并不会消耗大量的时间;
完成配置,并将配置修改记录同步至MySQL。
在上述实施例的基础上,所述方法还包括:
客户端创建用户的任务状态查询请求,并将所述任务状态查询请求转发给所述状态查询单元;
状态查询单元接收客户端转发的任务状态查询请求,并对所述任务状态查询请求进行权限鉴定,如果通过所述权限鉴定,通过状态查询单元在配置管理单元中查询任务集群各节点的完成状态,并向所述客户端返回查询结果。
本发明实施例系统采用了异步查询接口模式,提供镜像与文件的分发状态查询服务,使用户对分发进度有更直观的了解。
图7示出了本发明实施例提供的基于P2P的状态查询接口交互流程的示意图。
结合图2和图7,状态查询接口交互流程具体包括以下步骤:
用户通过Client提交任务状态查询申请;
状态查询模块通过UAG对用户查询权限进行判断。通过鉴定后,根据相应的job_id(任务标识),先到Redis数据库进行任务状态信息查询,如果Redis未同步当前任务的状态数据,则查询MySQL数据库;
返回任务状态信息。
本发明实施例实现了用户权限管理,在接入鉴权接口、分发控制接口、流量控制接口以及状态查询接口的设计分别提供了不同权限用户的不同操作视图,加强了系统的安全效能,更加符合生产环境需求。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如图3的方法。
图8示出了本发明一实施例提供的电子设备的结构示意图。
如图8所示,本发明实施例提供的电子设备包括存储器21、处理器22、总线23以及存储在存储器21上并可在处理器22上运行的计算机程序。其中,所述存储器21、处理器22通过所述总线23完成相互间的通信。
所述处理器22用于调用所述存储器21中的程序指令,以执行所述程序时实现如图3的方法。
例如,所述处理器执行所述程序时实现如下方法:
客户端创建用户的分发任务请求,并将所述分发任务请求转发给分发控制单元,所述分发任务请求携带目标集群ID或指定的集群IP;
分发控制单元接收客户端转发的分发任务请求,并对所述分发任务请求进行权限鉴定,如果通过所述权限鉴定,根据所述目标集群ID或指定的集群IP获取目标集群,设置分发任务参数,将文件或镜像分发至所述目标集群的各节点,并向所述客户端返回分发任务完成消息。
本发明实施例提供的电子设备,实现了集群主机自主发现,实现不同集群下容器镜像与多种文件格式下的高效分发,增强了系统的通用性。
本发明实施例还提供一种非暂态计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现如图3的步骤。
例如,所述处理器执行所述程序时实现如下方法:
客户端创建用户的分发任务请求,并将所述分发任务请求转发给分发控制单元,所述分发任务请求携带目标集群ID或指定的集群IP;
分发控制单元接收客户端转发的分发任务请求,并对所述分发任务请求进行权限鉴定,如果通过所述权限鉴定,根据所述目标集群ID或指定的集群IP获取目标集群,设置分发任务参数,将文件或镜像分发至所述目标集群的各节点,并向所述客户端返回分发任务完成消息。
本发明实施例提供的非暂态计算机可读存储介质,实现了集群主机自主发现,实现不同集群下容器镜像与多种文件格式下的高效分发,增强了系统的通用性。
本发明一实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
客户端创建用户的分发任务请求,并将所述分发任务请求转发给分发控制单元,所述分发任务请求携带目标集群ID或指定的集群IP;
分发控制单元接收客户端转发的分发任务请求,并对所述分发任务请求进行权限鉴定,如果通过所述权限鉴定,根据所述目标集群ID或指定的集群IP获取目标集群,设置分发任务参数,将文件或镜像分发至所述目标集群的各节点,并向所述客户端返回分发任务完成消息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。