CN110196843B - 一种基于容器集群的文件分发方法及容器集群 - Google Patents
一种基于容器集群的文件分发方法及容器集群 Download PDFInfo
- Publication number
- CN110196843B CN110196843B CN201910410147.0A CN201910410147A CN110196843B CN 110196843 B CN110196843 B CN 110196843B CN 201910410147 A CN201910410147 A CN 201910410147A CN 110196843 B CN110196843 B CN 110196843B
- Authority
- CN
- China
- Prior art keywords
- file
- distribution
- distributed
- message
- client
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种基于容器集群的文件分发方法及容器集群,涉及容器技术领域,该方法包括:文件分发服务端获取待分发文件和待分发文件的属性信息,然后将待分发文件和待分发文件的属性信息对应保存在存储系统中,并发布分发消息至消息分发端。消息分发端根据分发消息确定消息主题,并将分发消息发送至订阅消息主题的文件分发客户端。文件分发客户端从分发消息中获取待分发文件的属性信息,并根据待分发文件的属性信息从存储系统中获取待分发文件并保存,故在文件分发客户端没有固定IP地址的情况下,文件分发服务端仍能够将文件分发给对应的文件分发客户端,实现容器集群中的文件分发,保证了容器集群中的消息可靠性和数据一致性。
Description
技术领域
本发明实施例涉及容器技术领域,尤其涉及一种基于容器集群的文件分发方法及容器集群。
背景技术
传统的服务集群都是构建在大规模的物理机或虚拟机上,每台机器都有一个固定的网际协议地址(Internet Protocol Address,简称IP地址)挂载一个或多块硬盘。文件分发系统采用的是服务端—客户端模式,在服务端提前配置好需要下发文件的客户端IP地址列表和路径。使用者在页面控制台上将编辑好的文件上传到文件服务器上,文件服务器上的文件分发服务接收到请求后,通过配置好的IP地址与客户端进行通信,将文件传递给客户端,客户端接收文件后,将文件存放在指定的路径。
在微服务技术逐渐成熟后,传统的物理机或虚拟机集群逐步升级为容器集群,而容器集群中容器的IP地址是随机的,在容器重启时,容器的IP地址将会变化,因此不能通过固定IP进行下发文件。
发明内容
由于容器集群中容器的IP地址是随机的,导致不能采用传统的通过固定IP地址下发文件的问题,本发明实施例提供了一种基于容器集群的文件分发方法及容器集群。
一方面,本发明实施例提供了一种基于容器集群的文件分发方法,所述容器集群包括文件分发服务端、消息分发端及文件分发客户端,包括:
所述文件分发服务端获取待分发文件和所述待分发文件的属性信息;
所述文件分发服务端将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中,并发布分发消息至所述消息分发端,所述分发消息包括所述待分发文件的属性信息;
所述消息分发端根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端;
所述文件分发客户端从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
一方面,本发明实施例提供了一种容器集群,包括:
文件分发服务端、消息分发端及文件分发客户端;
所述文件分发服务端,用于获取待分发文件和所述待分发文件的属性信息;将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中,并发布分发消息至所述消息分发端,所述分发消息包括所述待分发文件的属性信息;
所述消息分发端,用于根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端;
所述文件分发客户端,用于从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
可选地,所述待分发文件的属性信息包括待分发文件对应的模块名称、待分发文件对应的保存路径;
所述文件分发客户端具体用于:
根据所述待分发文件对应的模块名称从所述存储系统中获取所述待分发文件;
根据所述待分发文件对应的保存路径保存所述待分发文件。
可选地,所述文件分发客户端还用于:
在重启时,获取所述文件分发客户端中的目标模块的名称;
根据所述目标模块的名称从所述存储系统中获取目标文件以及所述目标文件的保存路径;
根据所述目标文件的保存路径保存所述目标文件。
可选地,所述文件分发客户端,还用于向所述消息分发端发布分发完成消息;
所述消息分发端,还用于将所述分发完成消息发送至所述文件分发服务端;
所述文件分发服务端,还用于保存所述分发完成消息。
可选地,所述文件分发服务端还用于:
将接收的所述分发完成消息的数量与预分发文件的文件分发客户端的数量进行比较;
在接收的所述分发完成消息的数量与预分发文件的文件分发客户端的数量相等时,所述文件分发服务端将所述待分发文件的分发状态标记为已分发状态。
可选地,所述文件分发服务端还用于:
将所述待分发文件的分发状态发送至前端控制平台,以使所述前端控制平台展示所述待分发文件的分发状态。
一方面,本发明实施例提供了一种文件分发服务端,包括:
获取模块,用于获取待分发文件和所述待分发文件的属性信息;
第一处理模块,用于将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中;
发布模块,用于发布分发消息至消息分发端,所述分发消息包括所述待分发文件的属性信息,以使所述消息分发端根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端;所述文件分发客户端从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
一方面,本发明实施例提供了一种消息分发端,包括:
第一接收模块,用于接收文件分发服务端发布的分发消息,所述分发消息包括待分发文件的属性信息,所述文件分发服务端同时将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中;
第二处理模块,用于根据所述分发消息确定消息主题;
发送模块,用于将所述分发消息发送至订阅所述消息主题的文件分发客户端,以使所述文件分发客户端从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
一方面,本发明实施例提供了一种文件分发客户端,包括:
第二接收模块,用于接收消息分发端发送的分发消息,所述分发消息是文件分发服务端发布至所述消息分发端的,所述消息分发端根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端,所述分发消息包括所述待分发文件的属性信息,所述文件分发服务端同时将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中;
第三处理模块,用于从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
一方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现基于容器集群的文件分发方法的步骤。
一方面,本发明实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行基于容器集群的文件分发方法的步骤。
本发明实施中,由于文件分发服务端将待分发文件写入存储系统,然后发布分发消息至消息分发端,由消息分发端通知对应的文件分发客户端从存储系统中获取待分发文件,实现在容器集群中文件分发服务端和文件分发客户端的解耦,文件分发服务端不需要关心文件分发客户端的状态,专注将文件写入存储系统和发布分发消息至消息分发端。文件分发客户端专注接收消息分发端转发的分发消息,然后从存储系统读取文件,故在文件分发客户端没有固定IP地址的情况下,文件分发服务端仍旧能够将文件分发给对应的文件分发客户端,实现容器集群中的文件分发,保证了容器集群中消息的可靠性和数据的一致性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例适用的一种应用场景示意图;
图2为本发明实施例提供的一种容器集群的结构示意图;
图3为本发明实施例提供的一种基于容器集群的文件分发方法的流程示意图;
图4为本发明实施例提供的一种恢复文件的方法的流程示意图;
图5为本发明实施例提供的一种基于容器集群的文件分发方法的流程示意图;
图6为本发明实施例提供的一种容器集群的结构示意图;
图7为本发明实施例提供的一种文件分发服务端的结构示意图;
图8为本发明实施例提供的一种消息分发端的结构示意图;
图9为本发明实施例提供的一种文件分发客户端的结构示意图;
图10为本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了方便理解,下面对本发明实施例中涉及的名词进行解释。
容器技术:是轻量级的操作系统级虚拟化,可以在一个资源隔离的进程中运行应用及其依赖项,将运行应用程序所必需的组件都将打包成一个镜像并可以复用。执行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存、中央处理器(CentralProcessing Unit,简称CPU)以及磁盘,保证容器内进程不能监控容器外的任何进程。
容器集群:是一套用于自动化部署、扩展和管理容器的编排系统。实现容器配置、发布和发现、系统监控和故障恢复、声明式系统配置以及有关容器布置和性能的规则和约束定义。
文件分发:是指将需要更新的文件通过网络分发到相关的模块,主要用来解决线上业务进行发布更新。中心管理节点上有各个服务的配置信息,用户在中心节点选择相关模块,上传更新的文件后,文件发放系统即将文件分发到集群上各个模块,提供接口给中心模块查询是否分发成功,针对失败的情况,可以选择重试。
消息队列:是分布式系统中重要的组件,主要解决应用耦合、异步消息、流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。作为在客户端(消费者,Consumer)与服务端(生产者,Producer)之间引入的间接层,可以有效地解除二者之间的耦合。只要实现规定双方需要通信的消息格式,以及处理消息的机制与时机,就可以做到消费者对生产者的无感知。
分布式存储系统:是将数据分散存储在多台独立的设备上。分布式存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,增强数据可靠性,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
在具体实践过程中,本发明的发明人发现,传统的服务集群都是构建在大规模的物理机或虚拟机上,每台机器都有一个固定的IP地址挂载一个或多块硬盘。因此,服务端提前配置好需要下发文件的服务器IP地址列表和路径,然后根据固定的IP地址下发文件。然而,在容器集群中容器的IP地址是随机的,在容器重启时,容器的IP地址将会变化,因此不能通过固定IP进行文件下发。目前,考虑到容器集群管理节点(Master)是物理机或虚拟机部署,有固定的IP地址,于是文件统一下发到容器集群的Master节点,在Master节点上触发ConfigMap配置更新,将文件更新到各个容器节点。但是由于ConfigMap技术主要用于少量配置更新场景,在容器集群中的存储空间只有1MB,因此只能将每次同步小于1MB的文件,限制了业务的逻辑,不能满足大量文件分发的场景。而且ConfigMap技术只适用于文本配置,针对图片、二进制文件不适应,需要将这些文件进行编码,转换成文本文件,使得文件大小增大,容易超出ConfigMap大小限制,导致文件下发失败。
鉴于此,本发明实施例提供了一种基于容器集群的文件分发方法,其中,容器集群包括文件分发服务端、消息分发端及文件分发客户端,文件分发服务端获取待分发文件和待分发文件的属性信息,然后将待分发文件和待分发文件的属性信息对应保存在存储系统中,并发布分发消息至消息分发端,分发消息包括待分发文件的属性信息。消息分发端根据分发消息确定消息主题,并将分发消息发送至订阅消息主题的文件分发客户端。文件分发客户端从分发消息中获取待分发文件的属性信息,并根据待分发文件的属性信息从存储系统中获取待分发文件并保存。
由于文件分发服务端将待分发文件写入存储系统,然后发布分发消息至消息分发端,由消息分发端通知对应的文件分发客户端从存储系统中获取待分发文件,实现在容器集群中文件分发服务端和文件分发客户端的解耦,文件分发服务端不需要关心文件分发客户端的状态,专注将文件写入存储系统和发布分发消息至消息分发端。文件分发客户端专注接收消息分发端转发的分发消息,然后从存储系统读取文件,故在文件分发客户端没有固定IP地址的情况下,文件分发服务端仍旧能够将文件分发给对应的文件分发客户端,实现容器集群中的文件分发,保证了容器集群中消息的可靠性和数据的一致性。
本发明实施例中的基于容器集群的文件分发方法可以应用于如图1所示的应用场景,在该应用场景中包括终端设备101、容器集群102以及存储系统103。终端设备101是具备网络通信能力的电子设备,该电子设备可以是智能手机、平板电脑或便携式个人计算机等等。用户可以在终端设备101上的浏览器中输入特定的域名来访问容器集群102。容器集群102预先为用户部署了服务,用户可以为企业用户,也可以为个人用户。比如,用户为企业用户时,容器集群102中可以部署企业用户的业务系统,企业用户可以通过访问容器集群102更新业务系统中相关功能模块的文件,实现对业务系统的业务更新。容器集群102可以将数据存储在存储系统103中,存储系统103可以是分布式存储系统。容器集群102采用Overlay虚拟网络技术方案,实现容器服务访问外部Underlay网络的存储系统服务。容器集群102内部采用域名系统(Domain Name System,简称DNS)和Ingress技术方案对外提供服务。在系统的高可用方面,针对存储系统,将后端多个服务节点绑定到负载均衡器上,通过一个虚拟IP对外访问,保证服务的高可用性。针对容器内部服务的高可用,每个服务启用多个容器副本,通过容器集群内部负载均衡,给每个模块分配虚拟IP,通过虚拟IP实现容器之间相互通信。
进一步地,在图1所示的应用场景图中,容器集群102的结构示意图如图2所示,容器集群102包括:前端控制平台1021、文件分发服务端1022、消息分发端1023及文件分发客户端1024。用户可以在终端设备101上的浏览器中上传待分发文件以及待分发文件的属性信息。终端设备101将待分发文件以及待分发文件的属性信息发送至前端控制平台1021,前端控制平台1021以容器的形式部署在容器集群中。前端控制平台1021将待分发文件以及待分发文件的属性信息发送至文件分发服务端1022,文件分发服务端1022以容器的形式部署在容器集群中。文件分发服务端1022将待分发文件以及待分发文件的属性信息对应写入存储系统103,然后向消息分发端1023发布分发消息。消息分发端1023以容器的形式部署在容器集群中,文件分发服务端1022和文件分发客户端1024预先向消息分发端1023订阅消息主题,且都可以向消息分发端1023发布消息。消息分发端1023根据分发消息确定消息主题,并将分发消息发送至订阅消息主题的文件分发客户端1024。文件分发客户端1024以容器的形式部署在容器集群中,文件分发客户端1024可以为一个或多个。文件分发客户端1024从分发消息中获取待分发文件的属性信息,并根据待分发文件的属性信息从存储系统103中获取待分发文件并保存。文件分发客户端1024向消息分发端1023发布分发完成消息,消息分发端1023将分发完成消息发送至文件分发服务端1022,文件分发服务端1022保存分发完成消息。
基于图1所示的应用场景图和图2所示的容器集群的结构示意图,本发明实施例提供了一种基于容器集群的文件分发方法的流程,该方法的流程可以由容器集群执行,如图3所示,包括以下步骤:
步骤S301,文件分发服务端获取待分发文件和待分发文件的属性信息。
具体地,待分发文件可以是需要更新的文件,也可以是首次下发的文件。待分发文件的属性信息包括待分发文件对应的模块名称、待分发文件对应的保存路径等,其中模块可以是提供服务的功能模块。
用户在终端设备上的浏览器中输入域名,登录容器集群中的前端控制平台,然后在浏览器页面中选择需要分发文件的模块,配置保存路径等属性信息,然后上传待分发文件。前端控制平台接收到待分发文件以及待分发文件的属性信息后,将待分发文件以及待分发文件的属性信息发送至文件分发服务端。前端控制平台与文件分发服务端通过HTTP协议实现文件上传。
步骤S302,文件分发服务端将待分发文件和待分发文件的属性信息对应保存在存储系统中。
具体地,文件分发服务端可以先将待分发文件和待分发文件的属性信息存储在本地目录,然后创建一个文件存储任务,将待分发文件和待分发文件的属性信息封装为消息体,向存储系统发起写入请求。存储系统可以将待分发文件、待分发文件对应的模块名称、待分发文件对应的保存路径对应保存。文件分发服务端异步等待存储系统返回的写入完成消息。存储系统可以是分布式存储系统。
步骤S303,文件分发服务端发布分发消息至消息分发端。
文件分发服务端和文件分发客户端可以作为消费者预先向消息分发端订阅特定的消息主题,每个消息主题可以与特定的模块对应。文件分发服务端和文件分发客户端也可以作为生产者向消息分发端的消息主题中发布分发消息。消息分发端可以为消息队列。
文件分发服务端可以先根据待分发文件对应的模块名称确定消息主题,然后向消息分发端中发布分发消息,其中,分发消息包括待分发文件的属性信息。
步骤S304,消息分发端根据分发消息确定消息主题。
步骤S305,消息分发端将分发消息发送至订阅消息主题的文件分发客户端。
具体地,消息分发端可以根据分发消息中待分发文件对应的模块名称确定分发消息对应的消息主题,然后确定订阅了该消息主题的文件分发客户端。具体实施中,一个消息主题可能存在多个订阅的文件分发客户端。将文件分发消息发送至所有订阅了该消息主题的文件分发客户端。
步骤S306,文件分发客户端从分发消息中获取待分发文件的属性信息。
步骤S307,文件分发客户端根据待分发文件的属性信息从存储系统中获取待分发文件并保存。
具体地,文件分发客户端从分发消息中获取待分发文件对应的模块名称和待分发文件对应的保存路径,然后根据待分发文件对应的模块名称从存储系统中获取待分发文件,文件分发客户端根据待分发文件对应的保存路径保存待分发文件。
由于文件分发服务端将待分发文件写入存储系统,然后发布分发消息至消息分发端,由消息分发端通知对应的文件分发客户端从存储系统中获取待分发文件,实现在容器集群中文件分发服务端和文件分发客户端的解耦,文件分发服务端不需要关心文件分发客户端的状态,专注将文件写入存储系统和发布分发消息至消息分发端。文件分发客户端专注接收消息分发端转发的分发消息,然后从存储系统读取文件,故在文件分发客户端没有固定IP地址的情况下,文件分发服务端仍旧能够将文件分发给对应的文件分发客户端,实现容器集群中的文件分发,保证了容器集群中消息的可靠性和数据的一致性。
可选地,在上述步骤S307之后,文件分发客户端向消息分发端发布分发完成消息。消息分发端将分发完成消息发送至文件分发服务端。文件分发服务端保存分发完成消息。
具体实施中,每个文件分发客户端在获取待分发文件并保存在本地后,向消息分发端返回分发完成消息,分发完成消息中包括待分发文件的属性信息。消息分发端根据待分发文件的属性信息可以确定消息主题,然后将分发完成消息发送至订阅了该消息主题的文件分发服务端。文件分发服务端可以将分发完成消息保存在本地数据库。
为了保证所有的文件分发客户端都完成了文件分发,文件分发服务端可以预先确定预分发文件的文件分发客户端的数量,在分发文件一段时间后,将接收的分发完成消息的数量与预分发文件的文件分发客户端的数量进行比较。在接收的分发完成消息的数量与预分发文件的文件分发客户端的数量相等时,文件分发服务端将待分发文件的分发状态标记为已分发状态,否则可以将待分发文件的分发状态标记为分发超时状态或者分发失败状态,从而保证容器集群中各文件分发客户端的文件的一致性。
可选地,文件分发服务端将待分发文件的分发状态发送至前端控制平台,以使前端控制平台展示待分发文件的分发状态。具体实施中,前端控制平台可以调用文件分发服务端提供的查询接口获取待分发文件的分发状态。前端控制平台在接收到用户的查询请求后,将待分发文件的分发状态发送至终端设备上的浏览器进行展示,也可以在待分发文件的分发状态发生变化时,将待分发文件的分发状态发送至终端设备上的浏览器进行展示,从而保证用户实时获取文件分发结果。
针对容器集群没有挂载数据卷的场景,容器重启会导致之前分发的文件丢失,因此在容器重启过程中,文件分发客户端服务需要恢复之前分发的文件。鉴于此,本发明实施例提供一种恢复文件的方法的流程,该方法的流程由文件分发客户端与存储系统交互执行,如图4所示,包括以下步骤:
步骤S401,文件分发客户端重启时,获取文件分发客户端中的目标模块的名称。
步骤S402,文件分发客户端根据目标模块的名称从存储系统中获取目标文件以及目标文件的保存路径。
具体地,文件分发客户端中可能包括多个模块,在重启后,文件客户端中各个模块对应的文件会丢失。由于文件分发服务端在分发文件时,将待分发文件、待分发文件对应的模块名称、待分发文件对应保存路径对应保存在存储系统中,故文件分发客户端重启后,可以先获取文件分发客户端包括的各个目标模块的名称,然后向存储系统发起请求,从存储系统中获取目标文件以及目标文件的保存路径,请求中包括目标模块的名称。
步骤S403,存储系统返回目标文件以及目标文件的保存路径。
具体地,存储系统根据请求中的目标模块的名称查询对应保存的目标文件以及目标文件的保存路径,然后将查询获得的目标文件以及目标文件的保存路径发送至文件分发客户端。
步骤S404,文件分发客户端根据目标文件的保存路径保存目标文件。
由于文件分发服务端在分发文件时,将文件保存在存储系统中,故存储系统中保存了各个模块对应的最新文件,当文件分发客户端重启时,采用模块名称从存储系统中获取模块对应的文件,实现了文件分发客户端重启后的文件恢复。
为了更好的解释本发明实施例,下面结合具体的实施场景描述本发明实施例提供的一种基于容器集群的文件分发方法的流程,如图5所示,该方法包括以下步骤:
步骤S501,前端控制平台接收企业用户上传的待分发文件和待分发文件的属性信息。
待分发文件的属性信息包括待分发文件对应的模块名称、待分发文件对应的保存路径。
步骤S502,前端控制平台上传待分发文件和待分发文件的属性信息至文件分发服务端。
步骤S503,文件分发服务端将待分发文件和待分发文件的属性信息对应保存在存储系统中。
步骤S504,文件分发服务端发布分发消息至消息分发端。
文件分发服务端和文件分发客户端可以作为消费者预先向消息分发端订阅特定的消息主题,每个消息主题可以与特定的模块对应。文件分发服务端和文件分发客户端也可以作为生产者向消息分发端的消息主题中发布分发消息。分发消息包括待分发文件的属性信息。
步骤S505,消息分发端根据分发消息确定消息主题。
步骤S506,消息分发端将分发消息发送至订阅消息主题的文件分发客户端。
步骤S507,文件分发客户端从分发消息中获取待分发文件的属性信息。
步骤S508,文件分发客户端根据待分发文件的属性信息向存储系统发送读取请求。
步骤S509,存储系统返回待分发文件至文件分发客户端。
步骤S510,文件分发客户端根据待分发文件对应的保存路径保存待分发文件。
步骤S511,文件分发客户端向消息分发端发布分发完成消息。
步骤S512,消息分发端将分发完成消息发送至文件分发服务端。
步骤S513,文件分发服务端保存分发完成消息。
步骤S514,在接收的分发完成消息的数量与预分发文件的文件分发客户端的数量相等时,文件分发服务端将待分发文件的分发状态标记为已分发状态。
步骤S515,文件分发服务端将待分发文件的分发状态发送至前端控制平台。
步骤S516,前端控制平台展示待分发文件的分发状态。
由于文件分发服务端将待分发文件写入存储系统,然后发布分发消息至消息分发端,由消息分发端通知对应的文件分发客户端从存储系统中获取待分发文件,实现在容器集群中文件分发服务端和文件分发客户端的解耦,文件分发服务端不需要关心文件分发客户端的状态,专注将文件写入存储系统和发布分发消息至消息分发端。文件分发客户端专注接收消息分发端转发的分发消息,然后从存储系统读取文件,故在文件分发客户端没有固定IP地址的情况下,文件分发服务端仍旧能够将文件分发给对应的文件分发客户端,实现容器集群中的文件分发,保证了容器集群中消息的可靠性和数据的一致性。
基于相同的技术构思,本发明实施例提供了一种容器集群,如图6所示,该容器集群600包括:
文件分发服务端601、消息分发端602及文件分发客户端603。
所述文件分发服务端601,用于获取待分发文件和所述待分发文件的属性信息;将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中,并发布分发消息至所述消息分发端,所述分发消息包括所述待分发文件的属性信息;
所述消息分发端602,用于根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端;
所述文件分发客户端603,用于从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
可选地,所述待分发文件的属性信息包括待分发文件对应的模块名称、待分发文件对应的保存路径;
所述文件分发客户端603具体用于:
根据所述待分发文件对应的模块名称从所述存储系统中获取所述待分发文件;
根据所述待分发文件对应的保存路径保存所述待分发文件。
可选地,所述文件分发客户端603还用于:
在重启时,获取所述文件分发客户端中的目标模块的名称;
根据所述目标模块的名称从所述存储系统中获取目标文件以及所述目标文件的保存路径;
根据所述目标文件的保存路径保存所述目标文件。
可选地,所述文件分发客户端603,还用于向所述消息分发端发布分发完成消息;
所述消息分发端602,还用于将所述分发完成消息发送至所述文件分发服务端;
所述文件分发服务端601,还用于保存所述分发完成消息。
可选地,所述文件分发服务端601还用于:
将接收的所述分发完成消息的数量与预分发文件的文件分发客户端的数量进行比较;
在接收的所述分发完成消息的数量与预分发文件的文件分发客户端的数量相等时,所述文件分发服务端将所述待分发文件的分发状态标记为已分发状态。
可选地,所述文件分发服务端601还用于:
将所述待分发文件的分发状态发送至前端控制平台,以使所述前端控制平台展示所述待分发文件的分发状态。
基于相同的技术构思,本发明实施例提供了一种文件分发服务端,如图7所示,该文件分发服务端700包括:
获取模块701,用于获取待分发文件和所述待分发文件的属性信息;
第一处理模块702,用于将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中;
发布模块703,用于发布分发消息至消息分发端,所述分发消息包括所述待分发文件的属性信息,以使所述消息分发端根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端;所述文件分发客户端从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
基于相同的技术构思,本发明实施例提供了一种消息分发端,如图8所示,该消息分发端800包括:
第一接收模块801,用于接收文件分发服务端发布的分发消息,所述分发消息包括待分发文件的属性信息,所述文件分发服务端同时将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中;
第二处理模块802,用于根据所述分发消息确定消息主题;
发送模块803,用于将所述分发消息发送至订阅所述消息主题的文件分发客户端,以使所述文件分发客户端从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
基于相同的技术构思,本发明实施例提供了一种文件分发客户端,如图9所示,该文件分发客户端900包括:
第二接收模块901,用于接收消息分发端发送的分发消息,所述分发消息是文件分发服务端发布至所述消息分发端的,所述消息分发端根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端,所述分发消息包括所述待分发文件的属性信息,所述文件分发服务端同时将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中;
第三处理模块902,用于从所述分发消息中获取所述待分发文件的属性信息,并根据所述待分发文件的属性信息从所述存储系统中获取所述待分发文件并保存。
基于相同的技术构思,本发明实施例提供了一种计算机设备,如图10所示,包括至少一个处理器1001,以及与至少一个处理器连接的存储器1002,本发明实施例中不限定处理器1001与存储器1002之间的具体连接介质,图10中处理器1001和存储器1002之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本发明实施例中,存储器1002存储有可被至少一个处理器1001执行的指令,至少一个处理器1001通过执行存储器1002存储的指令,可以执行前述的基于容器集群的文件分发方法中所包括的步骤。
其中,处理器1001是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器1002内的指令以及调用存储在存储器1002内的数据,从而分发文件。可选的,处理器1001可包括一个或多个处理单元,处理器1001可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1001中。在一些实施例中,处理器1001和存储器1002可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器1001可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器1002作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1002可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本发明实施例中的存储器1002还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本发明实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行基于容器集群的文件分发方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于容器集群的文件分发方法,所述容器集群包括文件分发服务端、消息分发端及文件分发客户端,其特征在于,包括:
所述文件分发服务端获取待分发文件和所述待分发文件的属性信息;
所述文件分发服务端将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中,并发布分发消息至所述消息分发端,所述分发消息包括所述待分发文件的属性信息;
所述消息分发端根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端;
所述文件分发客户端从所述分发消息中获取所述待分发文件的属性信息,所述待分发文件的属性信息包括:待分发文件对应的模块名称和待分发文件对应的保存路径;
所述文件分发客户端根据所述待分发文件对应的模块名称从所述存储系统中获取所述待分发文件,并根据所述待分发文件对应的保存路径保存所述待分发文件。
2.如权利要求1所述的方法,其特征在于,还包括:
所述文件分发客户端重启时,获取所述文件分发客户端中的目标模块的名称;
所述文件分发客户端根据所述目标模块的名称从所述存储系统中获取目标文件以及所述目标文件的保存路径;
所述文件分发客户端根据所述目标文件的保存路径保存所述目标文件。
3.如权利要求1至2任一所述的方法,其特征在于,还包括:
所述文件分发客户端向所述消息分发端发布分发完成消息;
所述消息分发端将所述分发完成消息发送至所述文件分发服务端;
所述文件分发服务端保存所述分发完成消息。
4.如权利要求3所述的方法,其特征在于,还包括:
所述文件分发服务端将接收的所述分发完成消息的数量与预分发文件的文件分发客户端的数量进行比较;
在接收的所述分发完成消息的数量与预分发文件的文件分发客户端的数量相等时,所述文件分发服务端将所述待分发文件的分发状态标记为已分发状态。
5.如权利要求4所述的方法,其特征在于,还包括:
所述文件分发服务端将所述待分发文件的分发状态发送至前端控制平台,以使所述前端控制平台展示所述待分发文件的分发状态。
6.一种容器集群,其特征在于,包括:
文件分发服务端、消息分发端及文件分发客户端;
所述文件分发服务端,用于获取待分发文件和所述待分发文件的属性信息;将所述待分发文件和所述待分发文件的属性信息对应保存在存储系统中,并发布分发消息至所述消息分发端,所述分发消息包括所述待分发文件的属性信息;
所述消息分发端,用于根据所述分发消息确定消息主题,并将所述分发消息发送至订阅所述消息主题的文件分发客户端;
所述文件分发客户端,用于从所述分发消息中获取所述待分发文件的属性信息,所述待分发文件的属性信息包括:待分发文件对应的模块名称和待分发文件对应的保存路径;
所述文件分发客户端,还用于根据所述待分发文件对应的模块名称从所述存储系统中获取所述待分发文件,并根据所述待分发文件对应的保存路径保存所述待分发文件。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1~5任一权利要求所述方法的步骤。
8.一种计算机可读存储介质,其特征在于,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行权利要求1~5任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410147.0A CN110196843B (zh) | 2019-05-17 | 2019-05-17 | 一种基于容器集群的文件分发方法及容器集群 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910410147.0A CN110196843B (zh) | 2019-05-17 | 2019-05-17 | 一种基于容器集群的文件分发方法及容器集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110196843A CN110196843A (zh) | 2019-09-03 |
CN110196843B true CN110196843B (zh) | 2023-08-08 |
Family
ID=67752887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910410147.0A Active CN110196843B (zh) | 2019-05-17 | 2019-05-17 | 一种基于容器集群的文件分发方法及容器集群 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196843B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110730205B (zh) * | 2019-09-06 | 2023-06-20 | 深圳平安通信科技有限公司 | 集群系统部署的方法、装置、计算机设备和存储介质 |
CN112751892B (zh) * | 2019-10-30 | 2022-06-17 | 腾讯科技(深圳)有限公司 | 一种信息分发方法、装置、设备及存储介质 |
CN113220435A (zh) * | 2021-05-27 | 2021-08-06 | 深圳市商汤科技有限公司 | 任务处理方法及相关产品 |
CN113342552B (zh) * | 2021-07-05 | 2024-09-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据处理方法及装置、存储介质及电子设备 |
CN116112569B (zh) * | 2023-02-23 | 2023-07-21 | 安超云软件有限公司 | 微服务调度方法及管理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
CN106953901A (zh) * | 2017-03-10 | 2017-07-14 | 重庆邮电大学 | 一种提高消息传递性能的集群通信系统及其方法 |
CN108549580A (zh) * | 2018-03-30 | 2018-09-18 | 平安科技(深圳)有限公司 | 自动部署Kubernetes从节点的方法及终端设备 |
CN108683720A (zh) * | 2018-04-28 | 2018-10-19 | 金蝶软件(中国)有限公司 | 一种容器集群服务配置方法及装置 |
US10284670B1 (en) * | 2016-06-07 | 2019-05-07 | Amazon Technologies, Inc. | Network-controlled device management session |
-
2019
- 2019-05-17 CN CN201910410147.0A patent/CN110196843B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092767A (zh) * | 2014-07-21 | 2014-10-08 | 北京邮电大学 | 一种增加消息队列模型的发布/订阅系统及其工作方法 |
US10284670B1 (en) * | 2016-06-07 | 2019-05-07 | Amazon Technologies, Inc. | Network-controlled device management session |
CN106953901A (zh) * | 2017-03-10 | 2017-07-14 | 重庆邮电大学 | 一种提高消息传递性能的集群通信系统及其方法 |
CN108549580A (zh) * | 2018-03-30 | 2018-09-18 | 平安科技(深圳)有限公司 | 自动部署Kubernetes从节点的方法及终端设备 |
CN108683720A (zh) * | 2018-04-28 | 2018-10-19 | 金蝶软件(中国)有限公司 | 一种容器集群服务配置方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110196843A (zh) | 2019-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110196843B (zh) | 一种基于容器集群的文件分发方法及容器集群 | |
CN108513657B (zh) | 数据转换方法及备份服务器 | |
CN109379448B (zh) | 一种文件分布式部署方法、装置、电子设备及存储介质 | |
CN105337923B (zh) | 数据分发方法和系统及数据发送装置和数据接收装置 | |
CN102333029A (zh) | 一种服务器集群系统中的路由方法 | |
CN106302640A (zh) | 数据请求处理方法及装置 | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
CN110532493B (zh) | 数据的处理方法及装置、存储介质和电子装置 | |
WO2017095820A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
CN106878382A (zh) | 一种分布式仲裁集群中动态改变集群规模的方法及装置 | |
CN111813868B (zh) | 数据同步方法及装置 | |
CN112579622A (zh) | 业务数据的处理方法、装置及设备 | |
CN112351068A (zh) | 信息同步方法、系统、装置、计算机设备和存储介质 | |
CN110740155A (zh) | 分布式系统中的请求处理方法及装置 | |
US10749921B2 (en) | Techniques for warming up a node in a distributed data store | |
CN107547593B (zh) | 一种实现日志同步的方法、装置及分布式系统 | |
CN115080479A (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
WO2014190700A1 (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN110677443A (zh) | 数据发送和接收方法、发送端、接收端、系统及存储介质 | |
CN106682198B (zh) | 一种实现自动化部署数据库的方法和装置 | |
CN117435569A (zh) | 缓存系统动态扩容方法、装置、设备、介质和程序产品 | |
CN112597406A (zh) | 一种文件传输方法、装置、终端设备及存储介质 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN110233791B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |