本申請屬于容器,尤其涉及一種基于容器的分布式文件處理方法及裝置、介質(zhì)、設(shè)備。
背景技術(shù):
1、隨著容器化的發(fā)展,越來越多的應(yīng)用使用容器進行部署,特別是以k8s為代表的容器編排技術(shù)廣泛運用在軟件研發(fā)、運維等場景。使用容器技術(shù)啟動應(yīng)用時,容器會為應(yīng)用分配相關(guān)的系統(tǒng)資源,包括但不限于存儲、cpu、內(nèi)存、網(wǎng)絡(luò)等,應(yīng)用若出現(xiàn)退出等特殊情況,該應(yīng)用所在容器會被銷毀,因此為該容器分配的資源會被回收。原有的存儲資源被回收后,已經(jīng)存儲在容器當(dāng)中的文件會被一并銷毀,新的容器則不在持有舊容器持久化的文件。
技術(shù)實現(xiàn)思路
1、本申請實施例提供一種基于容器的分布式文件處理方法及裝置、介質(zhì)、設(shè)備,能夠保證應(yīng)用異常退出后文件不會丟失。
2、本申請實施例提供的基于容器的分布式文件處理方法,由客戶端執(zhí)行,所述方法包括:
3、將待寫入的各個文件標(biāo)記為準(zhǔn)備狀態(tài);
4、確定寫入操作對應(yīng)的目標(biāo)服務(wù)器列表;
5、將所述各個文件寫入所述目標(biāo)服務(wù)器列表中的各個目標(biāo)服務(wù)器;
6、在所述各個文件均寫入完成后,將所述各個文件標(biāo)記為中間狀態(tài);
7、通知服務(wù)器集群中的主應(yīng)用進行主副本應(yīng)用之間的文件同步操作;
8、在所述文件同步操作執(zhí)行完成后,將所述各個文件標(biāo)記為結(jié)束狀態(tài);
9、其中,主應(yīng)用具有至少一個副本應(yīng)用,且所述主應(yīng)用和各個副本應(yīng)用分別部署在不同的容器中;在所述主應(yīng)用異常退出后,由所述副本應(yīng)用提供所需文件。
10、本申請實施例提供的基于容器的分布式文件處理裝置,部署在客戶端上,所述裝置包括:
11、第一標(biāo)記模塊,用于將待寫入的各個文件標(biāo)記為準(zhǔn)備狀態(tài);
12、第一確定模塊,用于確定寫入操作對應(yīng)的目標(biāo)服務(wù)器列表;
13、第一寫入模塊,用于將所述各個文件寫入所述目標(biāo)服務(wù)器列表中的各個目標(biāo)服務(wù)器;
14、第二標(biāo)記模塊,用于在所述各個文件均寫入完成后,將所述各個文件標(biāo)記為中間狀態(tài);
15、第一通知模塊,用于通知服務(wù)器集群中的主應(yīng)用進行主副本應(yīng)用之間的文件同步操作;
16、第三標(biāo)記模塊,用于在所述文件同步操作執(zhí)行完成后,將所述各個文件標(biāo)記為結(jié)束狀態(tài);
17、其中,主應(yīng)用具有至少一個副本應(yīng)用,且所述主應(yīng)用和各個副本應(yīng)用分別部署在不同的容器中;在所述主應(yīng)用異常退出后,由所述副本應(yīng)用提供所需文件。
18、本申請實施例提供的計算機可讀存儲介質(zhì),其上存儲有計算機程序,當(dāng)所述計算機程序在計算機中執(zhí)行時,令計算機執(zhí)行實現(xiàn)上述基于容器的分布式文件處理方法。
19、本申請實施例提供的計算設(shè)備,包括存儲器和處理器,所述存儲器中存儲有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時,實現(xiàn)上述基于容器的分布式文件處理方法。
20、本申請實施例的基于容器的分布式文件處理方法及裝置、介質(zhì)、設(shè)備,首先將文件標(biāo)記為準(zhǔn)備狀態(tài),然后確定目標(biāo)服務(wù)器列表,進而將各個文件寫入到目標(biāo)服務(wù)器列表中對應(yīng)的各個目標(biāo)服務(wù)器,在各個文件寫入完成后,將文件標(biāo)記為中間狀態(tài),進而進行主應(yīng)用和副本應(yīng)用之間的文件同步操作,在文件同步操作完成后,才將文件標(biāo)記為結(jié)束狀態(tài)。可見,通過文件同步使得主應(yīng)用和副本應(yīng)用中的文件保持一致,當(dāng)主應(yīng)用異常退出后,由于副本應(yīng)用中存儲有相同的文件,因此可以從副本應(yīng)用中獲取到所需文件,即保證了文件不會丟失。當(dāng)一個副本應(yīng)用異常退出后,不會影響到主應(yīng)用的正常工作,主應(yīng)用的文件也不會丟失。
1.一種基于容器的分布式文件處理方法,其特征在于,由客戶端執(zhí)行,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將所述各個文件寫入所述目標(biāo)服務(wù)器列表中的各個目標(biāo)服務(wù)器,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述主副本應(yīng)用之間的文件同步操作過程包括:所述主應(yīng)用在接收到所述客戶端發(fā)送來的寫入完成通知后,將文件所寫入的目標(biāo)服務(wù)器的地址信息告知對應(yīng)的各個副本應(yīng)用,以使每一個副本應(yīng)用根據(jù)所述主應(yīng)用中的文件信息進行文件同步;一個副本應(yīng)用在文件同步完成后通知所述主應(yīng)用;所述主應(yīng)用在接收到各個副本應(yīng)用發(fā)送來的文件同步完成結(jié)果后,將各個副本應(yīng)用發(fā)送來的文件同步完成結(jié)果發(fā)送給每一個副本應(yīng)用,以使每一個副本應(yīng)用同步所述主應(yīng)用中已存儲的各個副本應(yīng)用的文件同步完成結(jié)果。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述副本應(yīng)用進行文件同步的方式包括閑時同步方式或即時同步方式。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,在一個主應(yīng)用異常退出后,服務(wù)器集群會通過選主策略從該主應(yīng)用的各個副本應(yīng)用中選舉出存活時間最長的副本應(yīng)用作為新的主應(yīng)用,并將選舉結(jié)果通知各個副本應(yīng)用。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在一個副本應(yīng)用異常退出后,容器編排系統(tǒng)根據(jù)預(yù)先配置的副本應(yīng)用數(shù)量重新拉起一個容器,在該容器中部署副本應(yīng)用,從當(dāng)前的主應(yīng)用中獲取文件信息,根據(jù)所述文件信息為重新拉起的容器中的副本應(yīng)用進行文件同步。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述文件信息中包括文件id、文件寫入的目標(biāo)服務(wù)器的地址信息和文件狀態(tài),所述文件狀態(tài)為準(zhǔn)備狀態(tài)、中間狀態(tài)或結(jié)束狀態(tài)。
8.一種基于容器的分布式文件處理裝置,其特征在于,部署在客戶端上,所述裝置包括:
9.一種計算機可讀存儲介質(zhì),其特征在于,其上存儲有計算機程序,當(dāng)所述計算機程序在計算機中執(zhí)行時,令計算機執(zhí)行實現(xiàn)權(quán)利要求1~7中的任一項所述的方法。
10.一種計算設(shè)備,其特征在于,包括存儲器和處理器,所述存儲器中存儲有可執(zhí)行代碼,所述處理器執(zhí)行所述可執(zhí)行代碼時,實現(xiàn)權(quán)利要求1~7中的任一項所述的方法。