本申请属于容器,尤其涉及一种基于容器的分布式文件处理方法及装置、介质、设备。
背景技术:
1、随着容器化的发展,越来越多的应用使用容器进行部署,特别是以k8s为代表的容器编排技术广泛运用在软件研发、运维等场景。使用容器技术启动应用时,容器会为应用分配相关的系统资源,包括但不限于存储、cpu、内存、网络等,应用若出现退出等特殊情况,该应用所在容器会被销毁,因此为该容器分配的资源会被回收。原有的存储资源被回收后,已经存储在容器当中的文件会被一并销毁,新的容器则不在持有旧容器持久化的文件。
技术实现思路
1、本申请实施例提供一种基于容器的分布式文件处理方法及装置、介质、设备,能够保证应用异常退出后文件不会丢失。
2、本申请实施例提供的基于容器的分布式文件处理方法,由客户端执行,所述方法包括:
3、将待写入的各个文件标记为准备状态;
4、确定写入操作对应的目标服务器列表;
5、将所述各个文件写入所述目标服务器列表中的各个目标服务器;
6、在所述各个文件均写入完成后,将所述各个文件标记为中间状态;
7、通知服务器集群中的主应用进行主副本应用之间的文件同步操作;
8、在所述文件同步操作执行完成后,将所述各个文件标记为结束状态;
9、其中,主应用具有至少一个副本应用,且所述主应用和各个副本应用分别部署在不同的容器中;在所述主应用异常退出后,由所述副本应用提供所需文件。
10、本申请实施例提供的基于容器的分布式文件处理装置,部署在客户端上,所述装置包括:
11、第一标记模块,用于将待写入的各个文件标记为准备状态;
12、第一确定模块,用于确定写入操作对应的目标服务器列表;
13、第一写入模块,用于将所述各个文件写入所述目标服务器列表中的各个目标服务器;
14、第二标记模块,用于在所述各个文件均写入完成后,将所述各个文件标记为中间状态;
15、第一通知模块,用于通知服务器集群中的主应用进行主副本应用之间的文件同步操作;
16、第三标记模块,用于在所述文件同步操作执行完成后,将所述各个文件标记为结束状态;
17、其中,主应用具有至少一个副本应用,且所述主应用和各个副本应用分别部署在不同的容器中;在所述主应用异常退出后,由所述副本应用提供所需文件。
18、本申请实施例提供的计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行实现上述基于容器的分布式文件处理方法。
19、本申请实施例提供的计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述基于容器的分布式文件处理方法。
20、本申请实施例的基于容器的分布式文件处理方法及装置、介质、设备,首先将文件标记为准备状态,然后确定目标服务器列表,进而将各个文件写入到目标服务器列表中对应的各个目标服务器,在各个文件写入完成后,将文件标记为中间状态,进而进行主应用和副本应用之间的文件同步操作,在文件同步操作完成后,才将文件标记为结束状态。可见,通过文件同步使得主应用和副本应用中的文件保持一致,当主应用异常退出后,由于副本应用中存储有相同的文件,因此可以从副本应用中获取到所需文件,即保证了文件不会丢失。当一个副本应用异常退出后,不会影响到主应用的正常工作,主应用的文件也不会丢失。
1.一种基于容器的分布式文件处理方法,其特征在于,由客户端执行,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述各个文件写入所述目标服务器列表中的各个目标服务器,包括:
3.根据权利要求1所述的方法,其特征在于,所述主副本应用之间的文件同步操作过程包括:所述主应用在接收到所述客户端发送来的写入完成通知后,将文件所写入的目标服务器的地址信息告知对应的各个副本应用,以使每一个副本应用根据所述主应用中的文件信息进行文件同步;一个副本应用在文件同步完成后通知所述主应用;所述主应用在接收到各个副本应用发送来的文件同步完成结果后,将各个副本应用发送来的文件同步完成结果发送给每一个副本应用,以使每一个副本应用同步所述主应用中已存储的各个副本应用的文件同步完成结果。
4.根据权利要求3所述的方法,其特征在于,所述副本应用进行文件同步的方式包括闲时同步方式或即时同步方式。
5.根据权利要求1所述的方法,其特征在于,在一个主应用异常退出后,服务器集群会通过选主策略从该主应用的各个副本应用中选举出存活时间最长的副本应用作为新的主应用,并将选举结果通知各个副本应用。
6.根据权利要求1所述的方法,其特征在于,在一个副本应用异常退出后,容器编排系统根据预先配置的副本应用数量重新拉起一个容器,在该容器中部署副本应用,从当前的主应用中获取文件信息,根据所述文件信息为重新拉起的容器中的副本应用进行文件同步。
7.根据权利要求6所述的方法,其特征在于,所述文件信息中包括文件id、文件写入的目标服务器的地址信息和文件状态,所述文件状态为准备状态、中间状态或结束状态。
8.一种基于容器的分布式文件处理装置,其特征在于,部署在客户端上,所述装置包括:
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行实现权利要求1~7中的任一项所述的方法。
10.一种计算设备,其特征在于,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1~7中的任一项所述的方法。