本文作者:kaifamei

基于消息隊(duì)列的批量物理灰度方法及裝置與流程

更新時(shí)間:2025-12-28 09:44:34 0條評(píng)論

基于消息隊(duì)列的批量物理灰度方法及裝置與流程



1.本公開涉及云計(jì)算技術(shù)領(lǐng)域,具體涉及灰度更新技術(shù)領(lǐng)域,更具體地涉及一種基于消息隊(duì)列的批量物理灰度方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)和程序產(chǎn)品。


背景技術(shù):



2.隨著信息技術(shù)的發(fā)展,數(shù)字信息海量增加,尤其是客戶量巨大的企業(yè)如電信業(yè),銀行業(yè),大型互聯(lián)網(wǎng)公司等而言,有著大量日間及夜間的批量數(shù)據(jù)處理。這些客戶數(shù)據(jù)影響范圍大,信息數(shù)據(jù)處理程序的穩(wěn)定性則變得非常重要,但軟件需要不斷地更新迭代,而程序的更新將增大不穩(wěn)定性,隨著企業(yè)的發(fā)展,使得這對(duì)矛盾變得突出。
3.相關(guān)技術(shù)中,會(huì)定期對(duì)服務(wù)器停機(jī)以完成批量程序的升級(jí)維護(hù),,這種方式一定程度影響了業(yè)務(wù)的正常開展,影響用戶體驗(yàn)。
4.需要說(shuō)明的是,在上述背景技術(shù)部分公開的信息僅用于加強(qiáng)對(duì)本公開的背景的理解,因此可以包括不構(gòu)成對(duì)本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。


技術(shù)實(shí)現(xiàn)要素:



5.鑒于上述問(wèn)題,本公開提供了實(shí)現(xiàn)新舊版本程序平穩(wěn)過(guò)渡的基于消息隊(duì)列的批量物理灰度方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品。
6.根據(jù)本公開的第一個(gè)方面,提供了一種基于消息隊(duì)列的批量物理灰度方法,所述方法包括:
7.響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染;
8.按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,其中,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序;
9.根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中;以及
10.消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。
11.根據(jù)本公開的實(shí)施例,所述按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配包括:
12.獲取容器資源信息,所述容器資源信息包括容器cpu和容器內(nèi)存;
13.根據(jù)所述容器cpu和所述容器內(nèi)存確定每一容器的最大容量值,所述最大容量值為所述容器能夠處理的批量數(shù)據(jù)的最大條數(shù);以及
14.根據(jù)容器編號(hào)、容器的灰白標(biāo)識(shí)和所述最大容量值確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào)。
15.根據(jù)本公開的實(shí)施例,所述根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染包括:
16.根據(jù)所述灰度參數(shù)確定染策略;
17.根據(jù)所述染策略確定待染的批量數(shù)據(jù);
18.在所述待染的批量數(shù)據(jù)的頭部加入灰度染標(biāo)識(shí),以完成灰度染。
19.根據(jù)本公開的實(shí)施例,所述消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)包括:
20.從分區(qū)組中通過(guò)組偏移變量讀取批量數(shù)據(jù)的頭部數(shù)據(jù),以確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào);
21.若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)相同,則由當(dāng)前容器直接處理該條批量數(shù)據(jù);
22.若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)不同,則根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)。
23.根據(jù)本公開的實(shí)施例,所述根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)包括:
24.將所述執(zhí)行權(quán)值變量減去1;
25.若確定所述執(zhí)行權(quán)值變量等于預(yù)設(shè)閾值,則處理該條批量數(shù)據(jù),并重置執(zhí)行權(quán)值變量;
26.若確定所述執(zhí)行權(quán)值變量大于預(yù)設(shè)閾值,則將消息狀態(tài)設(shè)為未處理,并重置分區(qū)組偏移回到原來(lái)的位置。
27.根據(jù)本公開的實(shí)施例,所述主題分區(qū)包括灰度主題分區(qū)和非灰度主題分區(qū),所述灰度主題分區(qū)的批量數(shù)據(jù)由灰度容器消費(fèi),所述非灰度主題分區(qū)的批量數(shù)據(jù)由白版容器消費(fèi)。
28.本公開的第二方面提供了一種基于消息隊(duì)列的批量物理灰度裝置,所述裝置包括:
29.灰度染模塊,用于響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染;
30.容器預(yù)分配模塊,用于按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,其中,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序;
31.發(fā)送模塊,用于根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中;以及
32.數(shù)據(jù)處理模塊,用于消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。
33.根據(jù)本公開的實(shí)施例,容器預(yù)分配模塊包括獲取子模塊、第一確定子模塊和第二確定子模塊。
34.獲取子模塊,用于獲取容器資源信息,所述容器資源信息包括容器cpu和容器內(nèi)存;
35.第一確定子模塊,用于根據(jù)所述容器cpu和所述容器內(nèi)存確定每一容器的最大容量值,所述最大容量值為所述容器能夠處理的批量數(shù)據(jù)的最大條數(shù);以及
36.第二確定子模塊,用于根據(jù)容器編號(hào)、容器的灰白標(biāo)識(shí)和所述最大容量值確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào)。
37.根據(jù)本公開的實(shí)施例,灰度染模塊包括:第三確定子模塊、第四確定子模塊和染子模塊。
38.第三確定子模塊,用于根據(jù)所述灰度參數(shù)確定染策略;
39.第四確定子模塊,用于根據(jù)所述染策略確定待染的批量數(shù)據(jù);
40.染子模塊,用于在所述待染的批量數(shù)據(jù)的頭部加入灰度染標(biāo)識(shí),以完成灰度染。
41.根據(jù)本公開的實(shí)施例,數(shù)據(jù)處理模塊包括:第五確定子模塊、第一處理子模塊和第二處理子模塊。
42.第五確定子模塊,用于從分區(qū)組中通過(guò)組偏移變量讀取批量數(shù)據(jù)的頭部數(shù)據(jù),以確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào);
43.第一處理子模塊,用于若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)相同,則由當(dāng)前容器直接處理該條批量數(shù)據(jù);
44.第二處理子模塊,用于若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)不同,則根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)。
45.根據(jù)本公開的實(shí)施例,第二處理子模塊包括:執(zhí)行權(quán)值變量更新單元、第一處理單元和第二處理單元。
46.執(zhí)行權(quán)值變量更新單元,用于將所述執(zhí)行權(quán)值變量減去1;
47.第一處理單元,用于若確定所述執(zhí)行權(quán)值變量等于預(yù)設(shè)閾值,則處理該條批量數(shù)據(jù),并重置執(zhí)行權(quán)值變量;
48.第二處理單元,用于若確定所述執(zhí)行權(quán)值變量大于預(yù)設(shè)閾值,則將消息狀態(tài)設(shè)為未處理,并重置分區(qū)組偏移回到原來(lái)的位置。
49.本公開的第三方面提供了一種電子設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序,其中,當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得一個(gè)或多個(gè)處理器執(zhí)行上述基于消息隊(duì)列的批量物理灰度方法。
50.本公開的第四方面還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有可執(zhí)行指令,該指令被處理器執(zhí)行時(shí)使處理器執(zhí)行上述基于消息隊(duì)列的批量物理灰度方法。
51.本公開的第五方面還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述基于消息隊(duì)列的批量物理灰度方法。
52.通過(guò)本公開的實(shí)施例提供的一種基于消息隊(duì)列的批量物理灰度方法,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染,同時(shí)將容器區(qū)分為灰度容器和白版容器,使得批量作業(yè)程序能夠快速迭代更新,降低發(fā)布帶來(lái)的影響,按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,由于容器運(yùn)行在云平臺(tái)中,具有彈性伸縮特點(diǎn),充分利用計(jì)算機(jī)資源,無(wú)需關(guān)心灰度容器以及白版容器的實(shí)際運(yùn)行數(shù)量,系統(tǒng)將根據(jù)實(shí)際數(shù)據(jù)量自動(dòng)伸縮增減,為企業(yè)產(chǎn)品升級(jí)決策提供了極大的靈活性和穩(wěn)定性。
附圖說(shuō)明
53.通過(guò)以下參照附圖對(duì)本公開實(shí)施例的描述,本公開的上述內(nèi)容以及其他目的、特征和優(yōu)點(diǎn)將更為清楚,在附圖中:
54.圖1示意性示出了根據(jù)本公開實(shí)施例的基于消息隊(duì)列的批量物理灰度方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品的應(yīng)用場(chǎng)景圖;
55.圖2示意性示出了根據(jù)本公開實(shí)施例提供的基于消息隊(duì)列的批量物理灰度方法的系統(tǒng)架構(gòu)圖;
56.圖3示意性示出了根據(jù)本公開實(shí)施例提供的一種基于消息隊(duì)列的批量物理灰度方法的流程圖;
57.圖4示意性示出了根據(jù)本公開實(shí)施例提供的灰度染方法的流程圖;
58.圖5示意性示出了根據(jù)本公開實(shí)施例提供的染后批量數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的示意圖;
59.圖6示意性示出了根據(jù)本公開實(shí)施例提供的均衡處理方法的流程圖;
60.圖7示意性示出了根據(jù)本公開實(shí)施例提供的消息交互通道分區(qū)的示意圖;
61.圖8示意性示出了根據(jù)本公開實(shí)施例提供的消費(fèi)主題分區(qū)批量數(shù)據(jù)過(guò)程的示意圖;
62.圖9示意性示出了根據(jù)本公開實(shí)施例的一種基于消息隊(duì)列的批量物理灰度裝置的結(jié)構(gòu)框圖;
63.圖10示意性示出了根據(jù)本公開實(shí)施例的適于實(shí)現(xiàn)基于消息隊(duì)列的批量物理灰度方法的電子設(shè)備的方框圖。
具體實(shí)施方式
64.以下,將參照附圖來(lái)描述本公開的實(shí)施例。但是應(yīng)該理解,這些描述只是示例性的,而并非要限制本公開的范圍。在下面的詳細(xì)描述中,為便于解釋,闡述了許多具體的細(xì)節(jié)以提供對(duì)本公開實(shí)施例的全面理解。然而,明顯地,一個(gè)或多個(gè)實(shí)施例在沒(méi)有這些具體細(xì)節(jié)的情況下也可以被實(shí)施。此外,在以下說(shuō)明中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本公開的概念。
65.在此使用的術(shù)語(yǔ)僅僅是為了描述具體實(shí)施例,而并非意在限制本公開。在此使用的術(shù)語(yǔ)“包括”、“包含”等表明了所述特征、步驟、操作和/或部件的存在,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、步驟、操作或部件。
66.在此使用的所有術(shù)語(yǔ)(包括技術(shù)和科學(xué)術(shù)語(yǔ))具有本領(lǐng)域技術(shù)人員通常所理解的含義,除非另外定義。應(yīng)注意,這里使用的術(shù)語(yǔ)應(yīng)解釋為具有與本說(shuō)明書的上下文相一致的含義,而不應(yīng)以理想化或過(guò)于刻板的方式來(lái)解釋。
67.在使用類似于“a、b和c等中至少一個(gè)”這樣的表述的情況下,一般來(lái)說(shuō)應(yīng)該按照本領(lǐng)域技術(shù)人員通常理解該表述的含義來(lái)予以解釋(例如,“具有a、b和c中至少一個(gè)的系統(tǒng)”應(yīng)包括但不限于單獨(dú)具有a、單獨(dú)具有b、單獨(dú)具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系統(tǒng)等)。
68.基于上述技術(shù)問(wèn)題,本公開的實(shí)施例提供了基于消息隊(duì)列的批量物理灰度方法,所述方法包括:響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染;按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,其中,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序;根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中;消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。
69.圖1示意性示出了根據(jù)本公開實(shí)施例的基于消息隊(duì)列的批量物理灰度方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品的應(yīng)用場(chǎng)景圖。
70.如圖1所示,根據(jù)該實(shí)施例的應(yīng)用場(chǎng)景100可以包括灰度發(fā)布場(chǎng)景。網(wǎng)絡(luò)104用以在
終端設(shè)備101、102、103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)104可以包括各種連接類型,例如有線、無(wú)線通信鏈路或者光纖電纜等等。
71.用戶可以使用終端設(shè)備101、102、103通過(guò)網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種通訊客戶端應(yīng)用,例如購(gòu)物類應(yīng)用、網(wǎng)頁(yè)瀏覽器應(yīng)用、搜索類應(yīng)用、即時(shí)通信工具、郵箱客戶端、社交平臺(tái)軟件等(僅為示例)。
72.終端設(shè)備101、102、103可以是具有顯示屏并且支持網(wǎng)頁(yè)瀏覽的各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。
73.服務(wù)器105可以是為數(shù)據(jù)交互服務(wù)器,針對(duì)用戶通過(guò)服務(wù)器發(fā)起的批量程序更新指令進(jìn)行灰度更新,例如響應(yīng)于用戶利用終端設(shè)備101、102、103所發(fā)出的程序更新指令,該數(shù)據(jù)交互服務(wù)器根據(jù)預(yù)先配置的灰度參數(shù)和云平臺(tái)容器資源使用情況對(duì)容器和批量數(shù)據(jù)進(jìn)行灰度染,并將染后的批量數(shù)據(jù)推送到數(shù)據(jù)交互通道中,由容器的執(zhí)行器進(jìn)行消費(fèi)。
74.需要說(shuō)明的是,本公開實(shí)施例所提供的基于消息隊(duì)列的批量物理灰度方法一般可以由服務(wù)器105執(zhí)行。相應(yīng)地,本公開實(shí)施例所提供的基于消息隊(duì)列的批量物理灰度裝置一般可以設(shè)置于服務(wù)器105中。本公開實(shí)施例所提供的基于消息隊(duì)列的批量物理灰度方法也可以由不同于服務(wù)器105且能夠與終端設(shè)備101、102、103和/或服務(wù)器105通信的服務(wù)器或服務(wù)器集執(zhí)行。相應(yīng)地,本公開實(shí)施例所提供的基于消息隊(duì)列的批量物理灰度也可以設(shè)置于不同于服務(wù)器105且能夠與終端設(shè)備101、102、103和/或服務(wù)器105通信的服務(wù)器或服務(wù)器集中。
75.應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目?jī)H僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
76.需要說(shuō)明的是,本公開實(shí)施例確定的基于消息隊(duì)列的批量物理灰度方法和裝置可用于云計(jì)算技術(shù)領(lǐng)域,也可用于金融技術(shù)領(lǐng)域,還可用于除金融領(lǐng)域之外的任意領(lǐng)域,本公開實(shí)施例確定的基于消息隊(duì)列的批量物理灰度方法和裝置的應(yīng)用領(lǐng)域不做限定。
77.圖2示意性示出了根據(jù)本公開實(shí)施例提供的基于消息隊(duì)列的批量物理灰度方法的系統(tǒng)架構(gòu)圖。結(jié)合圖2對(duì)本公開實(shí)施例的批量作業(yè)物理灰度方法中各組件進(jìn)行說(shuō)明,如圖2所示,包括:文件服務(wù)器、數(shù)據(jù)灰度配置中心、數(shù)據(jù)交互服務(wù)器、數(shù)據(jù)交互通道、灰度容器、白版容器和數(shù)據(jù)庫(kù)。其中文件服務(wù)器:與外部系統(tǒng)交互的數(shù)據(jù)存儲(chǔ)系統(tǒng),鏈接應(yīng)用系統(tǒng)服務(wù)器,提供大容量存儲(chǔ)空間,具有高可靠性和穩(wěn)定性。
78.數(shù)據(jù)灰度配置中心:灰度參數(shù)的配置與管理,參數(shù)統(tǒng)一發(fā)布。灰度參數(shù)可靈活配置,根據(jù)不同的策略,支持按百分比進(jìn)行灰度;按客戶特征進(jìn)行灰度,如客戶唯一標(biāo)識(shí)鍵,客戶設(shè)備id,地域,年齡段等信息;按特定算法計(jì)算等。
79.數(shù)據(jù)交互服務(wù)器:連接數(shù)據(jù)灰度配置中心,文件服務(wù)器或者數(shù)據(jù)源數(shù)據(jù)庫(kù),消息處理系統(tǒng),以及云平臺(tái)資源控制器。通過(guò)數(shù)據(jù)灰度配置中心,獲取策略配置參數(shù)。從文件服務(wù)器或者數(shù)據(jù)源數(shù)據(jù)庫(kù)獲取源數(shù)據(jù),按照策略配置參數(shù)進(jìn)行計(jì)算處理,給符合條件的源數(shù)據(jù)進(jìn)行染,打上灰度標(biāo)簽。通過(guò)云平臺(tái)資源控制器取的批量執(zhí)行容器的資源使用情況,按照負(fù)載均衡策略,對(duì)源數(shù)據(jù)分配實(shí)際批量執(zhí)行器,達(dá)到均衡使用。在對(duì)源數(shù)據(jù)經(jīng)過(guò)加工處理后,其推送至數(shù)據(jù)交互通道系統(tǒng)。
80.數(shù)據(jù)交互通道:核心組件由消息處理系統(tǒng),連接生產(chǎn)方與消費(fèi)方。可配置多分區(qū)多通道,具備快速讀寫能力,接收生產(chǎn)方數(shù)據(jù),并由消費(fèi)方按指定通道和分區(qū)對(duì)數(shù)據(jù)進(jìn)行消
費(fèi)。
81.灰度容器:容器中運(yùn)行新版本批量處理程序,容器由云平臺(tái)統(tǒng)一管理。支持彈性伸縮,當(dāng)批量作業(yè)處理數(shù)據(jù)量大時(shí),根據(jù)整體資源情況自動(dòng)增加處理容器數(shù)量,當(dāng)數(shù)據(jù)量少時(shí),自動(dòng)減少容器數(shù)量。通過(guò)云平臺(tái)資源管理器將容器實(shí)時(shí)啟動(dòng)數(shù)量,以及使用資源情況通知數(shù)據(jù)交互服務(wù)器
82.白版容器:容器中運(yùn)行舊版本批量處理程序,容器由云平臺(tái)統(tǒng)一管理。支持彈性伸縮,當(dāng)批量作業(yè)處理數(shù)據(jù)量大時(shí),根據(jù)整體資源情況自動(dòng)增加處理容器數(shù)量,當(dāng)數(shù)據(jù)量少時(shí),自動(dòng)減少容器數(shù)量。通過(guò)云平臺(tái)資源管理器將容器實(shí)時(shí)啟動(dòng)數(shù)量,以及使用資源情況通知數(shù)據(jù)交互服務(wù)器
83.數(shù)據(jù)庫(kù):存儲(chǔ)批量業(yè)務(wù)數(shù)據(jù),不區(qū)分白版與灰度,根據(jù)企業(yè)業(yè)務(wù)形式制定數(shù)據(jù)庫(kù)變更規(guī)范進(jìn)行升級(jí)管理。
84.以下將基于圖1描述的場(chǎng)景和圖2的系統(tǒng)架構(gòu),通過(guò)圖3~圖6本公開實(shí)施例的基于消息隊(duì)列的批量物理灰度方法進(jìn)行詳細(xì)描述。
85.圖3示意性示出了根據(jù)本公開實(shí)施例提供的一種基于消息隊(duì)列的批量物理灰度方法的流程圖。如圖3所示,該實(shí)施例的基于消息隊(duì)列的批量物理灰度方法包括操作s210~操作s240,該方法可以由服務(wù)器或其他計(jì)算設(shè)備執(zhí)行。
86.當(dāng)系統(tǒng)接收到批量執(zhí)行器程序的更新指令后,為了不影響業(yè)務(wù)的正常處理,本公開實(shí)施例采用灰度更新以實(shí)現(xiàn)批量程序的平穩(wěn)更新。批量數(shù)據(jù)根據(jù)數(shù)據(jù)來(lái)源分為交互式批量數(shù)據(jù)和應(yīng)用內(nèi)批量數(shù)據(jù)兩大類,與外系統(tǒng)有關(guān)聯(lián)交互的,通過(guò)文件或者消息或其他形式數(shù)據(jù)傳輸示為交互式批量,由應(yīng)用內(nèi)部發(fā)起的,與外部系統(tǒng)無(wú)數(shù)據(jù)交互的稱為應(yīng)用內(nèi)批量。以文件服務(wù)器與外部系統(tǒng)數(shù)據(jù)交互為例進(jìn)行說(shuō)明,對(duì)于應(yīng)用內(nèi)批量,除了數(shù)據(jù)來(lái)源不同,其他處理流程與交互式批量相同。
87.在操作s210,響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染。
88.一個(gè)示例中,文件服務(wù)器負(fù)責(zé)接收外部系統(tǒng)文件,并存放到磁盤指定位置。交互時(shí)使用消息方式進(jìn)行,則先通過(guò)消息處理組件對(duì)消息進(jìn)行處理后,再存入磁盤。若交互以數(shù)據(jù)流方式進(jìn)行,則通過(guò)流式處理組件對(duì)流數(shù)據(jù)進(jìn)行格式化后存入磁盤。數(shù)據(jù)交互服務(wù)器可對(duì)文件進(jìn)行讀取。數(shù)據(jù)交互服務(wù)器啟動(dòng)時(shí)從數(shù)據(jù)灰度配置中心獲取灰度參數(shù),灰度參數(shù)由數(shù)據(jù)灰度配置中心配置和管理,不同灰度參數(shù)表征不同的染策略。當(dāng)交互式批量作業(yè)通過(guò)定時(shí)或者其他方式觸發(fā)啟動(dòng)時(shí),數(shù)據(jù)交互服務(wù)器將從文件服務(wù)器獲取數(shù)據(jù)文件,逐一讀取數(shù)據(jù)文件中的記錄,根據(jù)灰度參數(shù),對(duì)部分批量數(shù)據(jù)進(jìn)行灰度染,打上灰度標(biāo)簽。染處理后,將記錄按照業(yè)務(wù)唯一鍵記錄跟蹤數(shù)據(jù)庫(kù),記錄內(nèi)容為業(yè)務(wù)唯一鍵以及灰度標(biāo)識(shí)。灰度染處理的具體過(guò)程可參見圖4示出的操作s211~操作s213,在此不再贅述。
89.在操作s220,按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配。
90.在對(duì)批量數(shù)據(jù)染后,為了充分利用計(jì)算機(jī)資源,根據(jù)云平臺(tái)容器資源的使用情況按照負(fù)載均衡策略對(duì)數(shù)據(jù)進(jìn)行預(yù)分配實(shí)際的批量執(zhí)行器。本公開的批量數(shù)據(jù)由云平臺(tái)的容器執(zhí)行,具體的,容器中加載有不同版本的批量執(zhí)行器程序,其中裝載新版本批量執(zhí)行程序的容器為灰度容器,裝載舊版本批量執(zhí)行程序的容器為白版容器,根據(jù)預(yù)設(shè)算法和獲取到的容器資源使用情況確定當(dāng)前容器能夠處理批量數(shù)據(jù)的最大容量,對(duì)批量數(shù)據(jù)進(jìn)行容器
的預(yù)分配,具體過(guò)程可參見圖6所示出的操作s211~操作s213,在此不再贅述。
91.在操作s230,根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中。
92.在操作s240,消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。
93.根據(jù)本公開的實(shí)施例,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序。
94.根據(jù)本公開的實(shí)施例,在對(duì)批量數(shù)據(jù)染之后,根據(jù)批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中,所述主題分區(qū)包括灰度主題分區(qū)和非灰度主題分區(qū),即消息中間件中有灰度分區(qū)和非灰度分區(qū)兩種topic主題,灰度數(shù)據(jù)推送至灰度主題分區(qū)中,非灰度數(shù)據(jù)推送至非灰度主題分區(qū)中。云平臺(tái)的容器按照配置策略,區(qū)分為白版容器和灰度容器,批量作業(yè)的具體業(yè)務(wù)邏輯處理由這兩組容器負(fù)責(zé)。批量執(zhí)行器作為消費(fèi)方,白版容器和灰度容器分兩個(gè)維度從消息隊(duì)列中獲取數(shù)據(jù)。灰度主題分區(qū)的批量數(shù)據(jù)由灰度容器消費(fèi),所述非灰度主題分區(qū)的批量數(shù)據(jù)由白版容器消費(fèi)。從而完成新舊批量執(zhí)行器程序的平穩(wěn)更新。對(duì)用戶無(wú)感,不影響業(yè)務(wù)的正常運(yùn)行,不影響用戶的體驗(yàn)。
95.通過(guò)本公開的實(shí)施例提供的一種基于消息隊(duì)列的批量物理灰度方法,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染,同時(shí)將容器區(qū)分為灰度容器和白版容器,使得批量作業(yè)程序能夠快速迭代更新,降低發(fā)布帶來(lái)的影響,按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,由于容器運(yùn)行在云平臺(tái)中,具有彈性伸縮特點(diǎn),充分利用計(jì)算機(jī)資源,無(wú)需關(guān)心灰度容器以及白版容器的實(shí)際運(yùn)行數(shù)量,系統(tǒng)將根據(jù)實(shí)際數(shù)據(jù)量自動(dòng)伸縮增減,為企業(yè)產(chǎn)品升級(jí)決策提供了極大的靈活性和穩(wěn)定性。下面將結(jié)合圖4介紹本公開實(shí)施例提供的灰度染的過(guò)程。
96.圖4示意性示出了根據(jù)本公開實(shí)施例提供的灰度染方法的流程圖,圖5示意性示出了根據(jù)本公開實(shí)施例提供的染后批量數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)的示意圖。如圖4所示,操作s210包括操作s211~操作s213。
97.在操作s211,根據(jù)所述灰度參數(shù)確定染策略。
98.在操作s212,根據(jù)所述染策略確定待染的批量數(shù)據(jù)。
99.在操作s213,在所述待染的批量數(shù)據(jù)的頭部加入灰度染標(biāo)識(shí),以完成灰度染。
100.一個(gè)示例中,對(duì)從數(shù)據(jù)灰度配置中心獲取的灰度參數(shù)進(jìn)行解析,確定染策略。其中,染策略主要包括三種方式:
101.1)按一定比例進(jìn)行染,例如灰度比例30%,白比例70%。
102.2)按特征值進(jìn)行染,根據(jù)具體的業(yè)務(wù)需求,例如可以是針對(duì)某地區(qū)的用戶批量數(shù)據(jù)進(jìn)行染,可以是根據(jù)用戶性別進(jìn)行染,可以是根據(jù)客戶id編號(hào)區(qū)間進(jìn)行染。
103.3)按特定算法進(jìn)行染,如記錄業(yè)務(wù)唯一鍵進(jìn)行哈希計(jì)算,符合特定條件的記錄進(jìn)行灰度處理,比方說(shuō)計(jì)算哈希值后取尾號(hào)為0-9某一數(shù)字。
104.參數(shù)解析處理后,循環(huán)處理所有記錄,在每條記錄數(shù)據(jù)最開始的地方加入灰度染標(biāo)志位,對(duì)符合灰度的數(shù)據(jù)打上灰度標(biāo)簽,進(jìn)行灰度染。比如標(biāo)記位值為1表示為灰度,0表示非灰度。染后批量數(shù)據(jù)如圖5所示。
105.圖6示意性示出了根據(jù)本公開實(shí)施例提供的均衡處理方法的流程圖,圖7示意性示出了根據(jù)本公開實(shí)施例提供的消息交互通道分區(qū)的示意圖。如圖6所示,操作s220包括操作s221~操作s223。
106.在操作s221,獲取容器資源信息,所述容器資源信息包括容器cpu和容器內(nèi)存。
107.在操作s222,根據(jù)所述容器cpu和所述容器內(nèi)存確定每一容器的最大容量值。
108.根據(jù)本公開的實(shí)施例,所述最大容量值為所述容器能夠處理的批量數(shù)據(jù)的最大條數(shù)。
109.在操作s223,根據(jù)容器編號(hào)、容器的灰白標(biāo)識(shí)和所述最大容量值確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào)。
110.一個(gè)示例中,云平臺(tái)資源管理器能夠收集容器資源使用情況,容器數(shù)量等信息。與數(shù)據(jù)交互服務(wù)器進(jìn)行數(shù)據(jù)交互,數(shù)據(jù)交互服務(wù)器取得容器資源信息。假定只使用容器數(shù)量,容器cup和內(nèi)存作為資源使用指標(biāo),為闡述方便起見,假設(shè)1個(gè)容器內(nèi)單位時(shí)間1個(gè)cpu指令和1個(gè)內(nèi)存空間(注:實(shí)施時(shí)將按具體指令數(shù)和具體內(nèi)存占用空間,此處只作理論說(shuō)明)可以處理一條記錄。設(shè)cup當(dāng)前單位時(shí)間內(nèi)可執(zhí)行指令數(shù)為x個(gè),內(nèi)存可用空間為y個(gè),容器v可處理記錄數(shù)為k條,則:
111.k=min(x,y)
112.對(duì)于n個(gè)容器vn,每個(gè)容器可處理記錄數(shù)為:
113.v1=k1,v2=k2,v3=k3......vn=kn,其中kn=min(xn,yn)
114.設(shè)定某個(gè)批次需處理總記錄數(shù)為r,則對(duì)于某一容器n所需要處理的記錄rn有
115.rn=kn/(k1+k2+k3+...+kn)*r
116.數(shù)據(jù)交互服務(wù)器根據(jù)上述算法對(duì)數(shù)據(jù)記錄設(shè)置容器編號(hào)(也稱之為執(zhí)行編號(hào)),例如容器1需處理3條記錄,則將3條記錄的容器編號(hào)設(shè)為1。灰度數(shù)據(jù)只由灰度容器處理,非灰度數(shù)據(jù)由白版容器處理。消息通道根據(jù)灰度與非灰度設(shè)置不同分區(qū)組,同一分區(qū)組內(nèi)只有灰度或非灰度數(shù)據(jù)。最后數(shù)據(jù)交互服務(wù)器區(qū)分灰白分區(qū)后,摘除灰度標(biāo)志位,再將處理后的數(shù)據(jù)推送到消息交互通道中,如圖7所示。
117.圖8示意性示出了根據(jù)本公開實(shí)施例提供的消費(fèi)主題分區(qū)批量數(shù)據(jù)過(guò)程的示意圖。如圖8所示,包括操作s310~操作s330。
118.在操作s310,從分區(qū)組中通過(guò)組偏移變量讀取批量數(shù)據(jù)的頭部數(shù)據(jù),以確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào);
119.在操作s320,若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)相同,則由當(dāng)前容器直接處理該條批量數(shù)據(jù);
120.在操作s330,若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)不同,則根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)。
121.根據(jù)本公開的實(shí)施例,根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)包括:將所述執(zhí)行權(quán)值變量減去1;若確定所述執(zhí)行權(quán)值變量等于預(yù)設(shè)閾值,則處理該條批量數(shù)據(jù),并重置執(zhí)行權(quán)值變量;若確定所述執(zhí)行權(quán)值變量大于預(yù)設(shè)閾值,則將消息狀態(tài)設(shè)為未處理,并重置分區(qū)組偏移回到原來(lái)的位置。
122.一個(gè)示例中,由于本公開實(shí)施例中對(duì)批量數(shù)據(jù)進(jìn)行了容器的預(yù)分配,為了避免對(duì)應(yīng)該條記錄處理的容器宕機(jī),后續(xù)所有容器無(wú)法處理該記錄,本公開實(shí)施例增加了容錯(cuò)機(jī)
制以提高批量數(shù)據(jù)處理的高可用性。具體的,容器根據(jù)自身灰白屬性,分別從對(duì)應(yīng)的分區(qū)組中獲取數(shù)據(jù)。容器從分區(qū)組中通過(guò)組偏移變量offset讀取消息頭部數(shù)據(jù),獲取容器編號(hào)判斷是否為本容器處理。如果為本容器處理,則獲取數(shù)據(jù)內(nèi)容,正常處理該記錄。如果為非本容器處理,則按如下方式處理:執(zhí)行器內(nèi)部維護(hù)一個(gè)執(zhí)行權(quán)值變量,假定為w,開始設(shè)置w為某一數(shù)值(可根據(jù)具體資源情況設(shè)置),比如5。當(dāng)讀取到的消息并非本容器處理時(shí),將權(quán)值減去1,當(dāng)權(quán)值為0時(shí)。則處理該條數(shù)據(jù)。如果權(quán)值不為0,則將消息狀態(tài)設(shè)為未處理,并重置分區(qū)組偏移回到原來(lái)的位置,并等待一個(gè)設(shè)定時(shí)間(比如200毫秒),讓該條消息對(duì)應(yīng)處理的容器去讀取處理。白版或者灰度容器中批量執(zhí)行器對(duì)各自數(shù)據(jù)進(jìn)行處理,作業(yè)處理結(jié)果寫入數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)使用的是同一套schemer,并不區(qū)分灰度與白版,這就要求數(shù)據(jù)庫(kù)的升級(jí)需同時(shí)兼任白版執(zhí)行器與灰度執(zhí)行器,應(yīng)根據(jù)具體業(yè)務(wù)邏輯編制相應(yīng)的企業(yè)數(shù)據(jù)庫(kù)升級(jí)規(guī)范,按照規(guī)范指引進(jìn)行數(shù)據(jù)庫(kù)升級(jí)。
123.基于上述基于消息隊(duì)列的批量物理灰度方法,本公開還提供了一種基于消息隊(duì)列的批量物理灰度裝置。以下將結(jié)合圖9對(duì)該裝置進(jìn)行詳細(xì)描述。
124.圖9示意性示出了根據(jù)本公開實(shí)施例的一種基于消息隊(duì)列的批量物理灰度裝置的結(jié)構(gòu)框圖。
125.如圖9所示,該實(shí)施例的基于消息隊(duì)列的批量物理灰度裝置800包括灰度染模塊810、容器預(yù)分配模塊820、發(fā)送模塊830和數(shù)據(jù)處理模塊840。
126.灰度染模塊810用于響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染。在一實(shí)施例中,灰度染模塊810可以用于執(zhí)行前文描述的操作s210,在此不再贅述。
127.容器預(yù)分配模塊820用于按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,其中,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序。在一實(shí)施例中,容器預(yù)分配模塊820可以用于執(zhí)行前文描述的操作s220,在此不再贅述。
128.發(fā)送模塊830用于根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中。在一實(shí)施例中,發(fā)送模塊830可以用于執(zhí)行前文描述的操作s230,在此不再贅述。
129.數(shù)據(jù)處理模塊840用于消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。在一實(shí)施例中,數(shù)據(jù)處理模塊840可以用于執(zhí)行前文描述的操作s240,在此不再贅述。
130.根據(jù)本公開的實(shí)施例,容器預(yù)分配模塊820包括獲取子模塊、第一確定子模塊和第二確定子模塊。
131.獲取子模塊,用于獲取容器資源信息,所述容器資源信息包括容器cpu和容器內(nèi)存。在一實(shí)施例中,獲取子模塊可以用于執(zhí)行前文描述的操作s221,在此不再贅述。
132.第一確定子模塊,用于根據(jù)所述容器cpu和所述容器內(nèi)存確定每一容器的最大容量值,所述最大容量值為所述容器能夠處理的批量數(shù)據(jù)的最大條數(shù)。在一實(shí)施例中,第一確定子模塊可以用于執(zhí)行前文描述的操作s222,在此不再贅述。
133.第二確定子模塊,用于根據(jù)容器編號(hào)、容器的灰白標(biāo)識(shí)和所述最大容量值確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào)。在一實(shí)施例中,第二確定子模塊可以用于執(zhí)行前文描述的操作s223,在此不再贅述。
134.根據(jù)本公開的實(shí)施例,灰度染模塊810包括:第三確定子模塊、第四確定子模塊和染子模塊。
135.第三確定子模塊,用于根據(jù)所述灰度參數(shù)確定染策略。在一實(shí)施例中,第三確定子模塊可以用于執(zhí)行前文描述的操作s211,在此不再贅述。
136.第四確定子模塊,用于根據(jù)所述染策略確定待染的批量數(shù)據(jù)。在一實(shí)施例中,第四確定子模塊可以用于執(zhí)行前文描述的操作s212,在此不再贅述。
137.染子模塊,用于在所述待染的批量數(shù)據(jù)的頭部加入灰度染標(biāo)識(shí),以完成灰度染。在一實(shí)施例中,染子模塊可以用于執(zhí)行前文描述的操作s213,在此不再贅述。
138.根據(jù)本公開的實(shí)施例,數(shù)據(jù)處理模塊840包括:第五確定子模塊、第一處理子模塊和第二處理子模塊。
139.第五確定子模塊,用于從分區(qū)組中通過(guò)組偏移變量讀取批量數(shù)據(jù)的頭部數(shù)據(jù),以確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào)。在一實(shí)施例中,第五子模塊可以用于執(zhí)行前文描述的操作s310,在此不再贅述。
140.第一處理子模塊,用于若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)相同,則由當(dāng)前容器直接處理該條批量數(shù)據(jù)。在一實(shí)施例中,第一處理子模塊可以用于執(zhí)行前文描述的操作s320,在此不再贅述。
141.第二處理子模塊,用于若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)不同,則根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)。在一實(shí)施例中,第二處理子模塊可以用于執(zhí)行前文描述的操作s330,在此不再贅述。
142.根據(jù)本公開的實(shí)施例,第二處理子模塊包括:執(zhí)行權(quán)值變量更新單元、第一處理單元和第二處理單元。
143.執(zhí)行權(quán)值變量更新單元,用于將所述執(zhí)行權(quán)值變量減去1。在一實(shí)施例中,執(zhí)行權(quán)值變量更新單元可以用于執(zhí)行前文描述的操作s330,在此不再贅述。
144.第一處理單元,用于若確定所述執(zhí)行權(quán)值變量等于預(yù)設(shè)閾值,則處理該條批量數(shù)據(jù),并重置執(zhí)行權(quán)值變量。執(zhí)行權(quán)值變量更新單元可以用于執(zhí)行前文描述的操作s330,在此不再贅述。
145.第二處理單元,用于若確定所述執(zhí)行權(quán)值變量大于預(yù)設(shè)閾值,則將消息狀態(tài)設(shè)為未處理,并重置分區(qū)組偏移回到原來(lái)的位置。第二處理單元可以用于執(zhí)行前文描述的操作s330,在此不再贅述。
146.輸出子模塊用于輸出所述待分揀報(bào)文的分類結(jié)果。在一實(shí)施例中,決策樹生成單元可以用于執(zhí)行前文描述的操作s223,在此不再贅述。
147.根據(jù)本公開的實(shí)施例,獲取模塊810、分類模塊820和分揀模塊830中的任意多個(gè)模塊可以合并在一個(gè)模塊中實(shí)現(xiàn),或者其中的任意一個(gè)模塊可以被拆分成多個(gè)模塊。或者,這些模塊中的一個(gè)或多個(gè)模塊的至少部分功能可以與其他模塊的至少部分功能相結(jié)合,并在一個(gè)模塊中實(shí)現(xiàn)。根據(jù)本公開的實(shí)施例,灰度染模塊810、容器預(yù)分配模塊820、發(fā)送模塊830和數(shù)據(jù)處理模塊840中的至少一個(gè)可以至少被部分地實(shí)現(xiàn)為硬件電路,例如現(xiàn)場(chǎng)可編程門陣列(fpga)、可編程邏輯陣列(pla)、片上系統(tǒng)、基板上的系統(tǒng)、封裝上的系統(tǒng)、專用集成電路(asic),或可以通過(guò)對(duì)電路進(jìn)行集成或封裝的任何其他的合理方式等硬件或固件來(lái)實(shí)現(xiàn),或以軟件、硬件以及固件三種實(shí)現(xiàn)方式中任意一種或以其中任意幾種的適當(dāng)組合來(lái)實(shí)
現(xiàn)。或者,灰度染模塊810、容器預(yù)分配模塊820、發(fā)送模塊830和數(shù)據(jù)處理模塊840中的至少一個(gè)可以至少被部分地實(shí)現(xiàn)為計(jì)算機(jī)程序模塊,當(dāng)該計(jì)算機(jī)程序模塊被運(yùn)行時(shí),可以執(zhí)行相應(yīng)的功能。
148.圖10示意性示出了根據(jù)本公開實(shí)施例的適于實(shí)現(xiàn)基于消息隊(duì)列的批量物理灰度方法的電子設(shè)備的方框圖。
149.如圖10所示,根據(jù)本公開實(shí)施例的電子設(shè)備900包括處理器901,其可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(rom)902中的程序或者從存儲(chǔ)部分908加載到隨機(jī)訪問(wèn)存儲(chǔ)器(ram)903中的程序而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。處理器901例如可以包括通用微處理器(例如cpu)、指令集處理器和/或相關(guān)芯片組和/或?qū)S梦⑻幚砥?例如,專用集成電路(asic))等等。處理器901還可以包括用于緩存用途的板載存儲(chǔ)器。處理器901可以包括用于執(zhí)行根據(jù)本公開實(shí)施例的方法流程的不同動(dòng)作的單一處理單元或者是多個(gè)處理單元。
150.在ram 903中,存儲(chǔ)有電子設(shè)備900操作所需的各種程序和數(shù)據(jù)。處理器901、rom 902以及ram 903通過(guò)總線904彼此相連。處理器901通過(guò)執(zhí)行rom 902和/或ram 903中的程序來(lái)執(zhí)行根據(jù)本公開實(shí)施例的方法流程的各種操作。需要注意,所述程序也可以存儲(chǔ)在除rom 902和ram 903以外的一個(gè)或多個(gè)存儲(chǔ)器中。處理器901也可以通過(guò)執(zhí)行存儲(chǔ)在所述一個(gè)或多個(gè)存儲(chǔ)器中的程序來(lái)執(zhí)行根據(jù)本公開實(shí)施例的方法流程的各種操作。
151.根據(jù)本公開的實(shí)施例,電子設(shè)備900還可以包括輸入/輸出(i/o)接口905,輸入/輸出(i/o)接口905也連接至總線904。電子設(shè)備900還可以包括連接至i/o接口905的以下部件中的一項(xiàng)或多項(xiàng):包括鍵盤、鼠標(biāo)等的輸入部分906;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚(yáng)聲器等的輸出部分907;包括硬盤等的存儲(chǔ)部分908;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分909。通信部分909經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動(dòng)器910也根據(jù)需要連接至i/o接口905。可拆卸介質(zhì)911,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器910上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分908。
152.本公開還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是上述實(shí)施例中描述的設(shè)備/裝置/系統(tǒng)中所包含的;也可以是單獨(dú)存在,而未裝配入該設(shè)備/裝置/系統(tǒng)中。上述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)承載有一個(gè)或者多個(gè)程序,當(dāng)上述一個(gè)或者多個(gè)程序被執(zhí)行時(shí),實(shí)現(xiàn)根據(jù)本公開實(shí)施例的基于消息隊(duì)列的批量物理灰度方法。
153.根據(jù)本公開的實(shí)施例,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是非易失性的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如可以包括但不限于:便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)訪問(wèn)存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦式可編程只讀存儲(chǔ)器(eprom或閃存)、便攜式緊湊磁盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本公開中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。例如,根據(jù)本公開的實(shí)施例,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括上文描述的rom 902和/或ram 903和/或rom 902和ram 903以外的一個(gè)或多個(gè)存儲(chǔ)器。
154.本公開的實(shí)施例還包括一種計(jì)算機(jī)程序產(chǎn)品,其包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。當(dāng)計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)系統(tǒng)中運(yùn)行時(shí),該程序代碼用于使計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)本公開實(shí)施例所提供的基于消息隊(duì)列的批量物理灰度方法。
155.在該計(jì)算機(jī)程序被處理器901執(zhí)行時(shí)執(zhí)行本公開實(shí)施例的系統(tǒng)/裝置中限定的上述功能。根據(jù)本公開的實(shí)施例,上文描述的系統(tǒng)、裝置、模塊、單元等可以通過(guò)計(jì)算機(jī)程序模塊來(lái)實(shí)現(xiàn)。
156.在一種實(shí)施例中,該計(jì)算機(jī)程序可以依托于光存儲(chǔ)器件、磁存儲(chǔ)器件等有形存儲(chǔ)介質(zhì)。在另一種實(shí)施例中,該計(jì)算機(jī)程序也可以在網(wǎng)絡(luò)介質(zhì)上以信號(hào)的形式進(jìn)行傳輸、分發(fā),并通過(guò)通信部分909被下載和安裝,和/或從可拆卸介質(zhì)911被安裝。該計(jì)算機(jī)程序包含的程序代碼可以用任何適當(dāng)?shù)木W(wǎng)絡(luò)介質(zhì)傳輸,包括但不限于:無(wú)線、有線等等,或者上述的任意合適的組合。
157.在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過(guò)通信部分909從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)911被安裝。在該計(jì)算機(jī)程序被處理器901執(zhí)行時(shí),執(zhí)行本公開實(shí)施例的系統(tǒng)中限定的上述功能。根據(jù)本公開的實(shí)施例,上文描述的系統(tǒng)、設(shè)備、裝置、模塊、單元等可以通過(guò)計(jì)算機(jī)程序模塊來(lái)實(shí)現(xiàn)。
158.根據(jù)本公開的實(shí)施例,可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫用于執(zhí)行本公開實(shí)施例提供的計(jì)算機(jī)程序的程序代碼,具體地,可以利用高級(jí)過(guò)程和/或面向?qū)ο蟮木幊陶Z(yǔ)言、和/或匯編/機(jī)器語(yǔ)言來(lái)實(shí)施這些計(jì)算程序。程序設(shè)計(jì)語(yǔ)言包括但不限于諸如java,c++,python,“c”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算設(shè)備上執(zhí)行、部分地在用戶設(shè)備上執(zhí)行、部分在遠(yuǎn)程計(jì)算設(shè)備上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算設(shè)備或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算設(shè)備的情形中,遠(yuǎn)程計(jì)算設(shè)備可以通過(guò)任意種類的網(wǎng)絡(luò),包括局域網(wǎng)(lan)或廣域網(wǎng)(wan),連接到用戶計(jì)算設(shè)備,或者,可以連接到外部計(jì)算設(shè)備(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
159.附圖中的流程圖和框圖,圖示了按照本公開各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,上述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖或流程圖中的每個(gè)方框、以及框圖或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
160.本領(lǐng)域技術(shù)人員可以理解,本公開的各個(gè)實(shí)施例和/或權(quán)利要求中記載的特征可以進(jìn)行多種組合或/或結(jié)合,即使這樣的組合或結(jié)合沒(méi)有明確記載于本公開中。特別地,在不脫離本公開精神和教導(dǎo)的情況下,本公開的各個(gè)實(shí)施例和/或權(quán)利要求中記載的特征可以進(jìn)行多種組合和/或結(jié)合。所有這些組合和/或結(jié)合均落入本公開的范圍。
161.以上對(duì)本公開的實(shí)施例進(jìn)行了描述。但是,這些實(shí)施例僅僅是為了說(shuō)明的目的,而并非為了限制本公開的范圍。盡管在以上分別描述了各實(shí)施例,但是這并不意味著各個(gè)實(shí)施例中的措施不能有利地結(jié)合使用。本公開的范圍由所附權(quán)利要求及其等同物限定。不脫離本公開的范圍,本領(lǐng)域技術(shù)人員可以做出多種替代和修改,這些替代和修改都應(yīng)落在本公開的范圍之內(nèi)。

技術(shù)特征:


1.一種基于消息隊(duì)列的批量物理灰度方法,其特征在于,所述方法包括:響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染;按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,其中,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序;根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中;以及消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配包括:獲取容器資源信息,所述容器資源信息包括容器cpu和容器內(nèi)存;根據(jù)所述容器cpu和所述容器內(nèi)存確定每一容器的最大容量值,所述最大容量值為所述容器能夠處理的批量數(shù)據(jù)的最大條數(shù);以及根據(jù)容器編號(hào)、容器的灰白標(biāo)識(shí)和所述最大容量值確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào)。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染包括:根據(jù)所述灰度參數(shù)確定染策略;根據(jù)所述染策略確定待染的批量數(shù)據(jù);在所述待染的批量數(shù)據(jù)的頭部加入灰度染標(biāo)識(shí),以完成灰度染。4.根據(jù)權(quán)利要求1中所述的方法,其特征在于,所述消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)包括:從分區(qū)組中通過(guò)組偏移變量讀取批量數(shù)據(jù)的頭部數(shù)據(jù),以確定所述批量數(shù)據(jù)的執(zhí)行容器編號(hào);若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)相同,則由當(dāng)前容器直接處理該條批量數(shù)據(jù);若確定所述執(zhí)行容器編號(hào)和當(dāng)前容器編號(hào)不同,則根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)當(dāng)前容器的執(zhí)行權(quán)值變量處理該條批量數(shù)據(jù)包括:將所述執(zhí)行權(quán)值變量減去1;若確定所述執(zhí)行權(quán)值變量等于預(yù)設(shè)閾值,則處理該條批量數(shù)據(jù),并重置執(zhí)行權(quán)值變量;若確定所述執(zhí)行權(quán)值變量大于預(yù)設(shè)閾值,則將消息狀態(tài)設(shè)為未處理,并重置分區(qū)組偏移回到原來(lái)的位置。6.根據(jù)權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,所述主題分區(qū)包括灰度主題分區(qū)和非灰度主題分區(qū),所述灰度主題分區(qū)的批量數(shù)據(jù)由灰度容器消費(fèi),所述非灰度主題分區(qū)的批量數(shù)據(jù)由白版容器消費(fèi)。7.一種基于消息隊(duì)列的批量物理灰度裝置,其特征在于,所述裝置包括:灰度染模塊,用于響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)
行灰度染;容器預(yù)分配模塊,用于按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,其中,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序;發(fā)送模塊,用于根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中;以及數(shù)據(jù)處理模塊,用于消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。8.一種電子設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,其中,當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得所述一個(gè)或多個(gè)處理器執(zhí)行根據(jù)權(quán)利要求1~6中任一項(xiàng)所述的基于消息隊(duì)列的批量物理灰度方法。9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有可執(zhí)行指令,該指令被處理器執(zhí)行時(shí)使處理器執(zhí)行根據(jù)權(quán)利要求1~6中任一項(xiàng)所述的基于消息隊(duì)列的批量物理灰度方法。10.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)根據(jù)權(quán)利要求1~6中任一項(xiàng)所述的基于消息隊(duì)列的批量物理灰度方法。

技術(shù)總結(jié)


本公開提供了一種基于消息隊(duì)列的批量物理灰度方法,涉及云計(jì)算技術(shù)領(lǐng)域,可以應(yīng)用于金融科技領(lǐng)域。該方法包括:響應(yīng)于批量執(zhí)行器程序的更新指令,根據(jù)灰度參數(shù)對(duì)批量數(shù)據(jù)進(jìn)行灰度染;按照負(fù)載均衡策略對(duì)所述批量數(shù)據(jù)進(jìn)行容器預(yù)分配,其中,所述容器設(shè)置有灰白標(biāo)識(shí),所述容器包括白版容器和灰度容器,所述白版容器裝載舊版本批量執(zhí)行器程序,所述灰度容器裝載新版本批量執(zhí)行器程序;根據(jù)所述批量數(shù)據(jù)的灰度染標(biāo)識(shí)將所述批量數(shù)據(jù)發(fā)送至消息隊(duì)列對(duì)應(yīng)的主題分區(qū)中;消費(fèi)所述主題分區(qū)的批量數(shù)據(jù)并將處理結(jié)果寫入數(shù)據(jù)庫(kù)。本公開還提供了一種基于消息隊(duì)列的批量物理灰度裝置、設(shè)備、存儲(chǔ)介質(zhì)和程序產(chǎn)品。儲(chǔ)介質(zhì)和程序產(chǎn)品。儲(chǔ)介質(zhì)和程序產(chǎn)品。


技術(shù)研發(fā)人員:

賴俊朝 陳月珠 曾現(xiàn)元 高冶

受保護(hù)的技術(shù)使用者:

中國(guó)工商銀行股份有限公司

技術(shù)研發(fā)日:

2022.09.14

技術(shù)公布日:

2022/12/12


文章投稿或轉(zhuǎn)載聲明

本文鏈接:http://m.newhan.cn/zhuanli/patent-1-45702-0.html

來(lái)源:專利查詢檢索下載-實(shí)用文體寫作網(wǎng)版權(quán)所有,轉(zhuǎn)載請(qǐng)保留出處。本站文章發(fā)布于 2022-12-18 01:01:56

發(fā)表評(píng)論

驗(yàn)證碼:
用戶名: 密碼: 匿名發(fā)表
評(píng)論列表 (有 條評(píng)論
2人圍觀
參與討論