本申請(qǐng)涉及互聯(lián)網(wǎng)大數(shù)據(jù)處理,尤其是一種拓展應(yīng)用程序計(jì)算能力的方法及裝置。
背景技術(shù):
1、對(duì)于大數(shù)據(jù)領(lǐng)域用戶的業(yè)務(wù)數(shù)據(jù)量很大,同時(shí)又需要基于這些元數(shù)據(jù)信息進(jìn)行加工計(jì)算處理,去實(shí)現(xiàn)用戶的各類需求以滿足客戶更好的治理他的業(yè)務(wù)數(shù)據(jù)。業(yè)務(wù)數(shù)據(jù)量大,以及功能的復(fù)雜,對(duì)系統(tǒng)的穩(wěn)定新以及接口時(shí)效性提出了更高的要求。針對(duì)復(fù)雜的業(yè)務(wù)場(chǎng)景,傳統(tǒng)主要有以下兩種實(shí)現(xiàn)方案。
2、1、將復(fù)雜的業(yè)務(wù)系統(tǒng)根據(jù)不同的功能進(jìn)行業(yè)務(wù)拆分,拆分成不同的業(yè)務(wù)子系統(tǒng)使他們各執(zhí)其責(zé)。這種方案缺點(diǎn)是極大的提升了系統(tǒng)復(fù)雜度,增加了開發(fā)維護(hù)成本。
3、2、通過引入線程池進(jìn)行異步處理,由于業(yè)務(wù)數(shù)據(jù)量大、計(jì)算耗時(shí),會(huì)長(zhǎng)時(shí)間占用系統(tǒng)jvm內(nèi)存,后續(xù)隨著業(yè)務(wù)場(chǎng)景的增加有out?of?memory(內(nèi)存溢出)風(fēng)險(xiǎn),這種對(duì)硬件要求高。
4、如何在不過高增加系統(tǒng)復(fù)雜度、且在運(yùn)行環(huán)境要求不高的情況,能夠滿足應(yīng)用程序日益增長(zhǎng)的業(yè)務(wù)場(chǎng)景和業(yè)務(wù)數(shù)據(jù)成為了急需解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)的目的在于克服現(xiàn)有技術(shù)中方便拓展應(yīng)用程序計(jì)算能力需要進(jìn)行系統(tǒng)業(yè)務(wù)拆分以及增加機(jī)器內(nèi)存資源的問題,提供一種拓展應(yīng)用程序計(jì)算能力的方法及裝置。
2、第一方面,提供了一種拓展應(yīng)用程序計(jì)算能力的方法,包括:
3、構(gòu)建包含至少一個(gè)執(zhí)行器的計(jì)算模塊,在所述執(zhí)行器中封裝業(yè)務(wù)中批量處理或耗時(shí)運(yùn)算的規(guī)則;
4、在應(yīng)用程序的應(yīng)用服務(wù)和執(zhí)行器中基于netty實(shí)現(xiàn)客戶端與服務(wù)端之間的遠(yuǎn)程通信和負(fù)載均衡;
5、若執(zhí)行器接收到應(yīng)用程序的參數(shù),則執(zhí)行任務(wù)計(jì)算,并將執(zhí)行任務(wù)計(jì)算的計(jì)算結(jié)果寫入數(shù)據(jù)庫(kù)或緩存中;
6、利用應(yīng)用程序讀取數(shù)據(jù)庫(kù)或緩存中的計(jì)算結(jié)果。
7、在一些可能的實(shí)現(xiàn)方式中,所述執(zhí)行器中封裝業(yè)務(wù)中批量處理或耗時(shí)運(yùn)算的規(guī)則,包括:
8、根據(jù)業(yè)務(wù)需求將通用以及耗時(shí)的業(yè)務(wù)邏輯操作封裝成不同的方法;
9、將所述方法封裝到executclient中定義統(tǒng)一訪問接口,以作為觸發(fā)任務(wù)執(zhí)行的入口。
10、在一些可能的實(shí)現(xiàn)方式中,在應(yīng)用程序的應(yīng)用服務(wù)和執(zhí)行器中基于netty實(shí)現(xiàn)客戶端與服務(wù)端之間的遠(yuǎn)程通信和負(fù)載均衡,包括:
11、應(yīng)用服務(wù)根據(jù)需要操作的大數(shù)據(jù)組件服務(wù),發(fā)起遠(yuǎn)程調(diào)用;
12、客戶端將方法和參數(shù)封裝成能夠進(jìn)行網(wǎng)絡(luò)傳輸?shù)南Ⅲw;
13、客戶端將所述消息體進(jìn)行編碼并發(fā)送到服務(wù)端;
14、服務(wù)端收到所述消息體并進(jìn)行解碼;
15、服務(wù)端通過預(yù)設(shè)負(fù)載均衡策略從所述計(jì)算模塊中選出用于計(jì)算的執(zhí)行器;
16、服務(wù)端根據(jù)解碼結(jié)果,在所選執(zhí)行器的executclient中調(diào)用對(duì)應(yīng)方法的服務(wù);
17、服務(wù)端將對(duì)應(yīng)方法的服務(wù)的執(zhí)行結(jié)果進(jìn)行編碼并發(fā)送至客戶端;
18、客戶端接收到消息并編碼后的執(zhí)行結(jié)果后進(jìn)行解碼,以得到最終的服務(wù)調(diào)用結(jié)果。
19、在一些可能的實(shí)現(xiàn)方式中,執(zhí)行任務(wù)計(jì)算,并將執(zhí)行任務(wù)計(jì)算的計(jì)算結(jié)果寫入數(shù)據(jù)庫(kù)或緩存中,包括:
20、為任務(wù)頂層接口的操作定義統(tǒng)一訪問接口,以作為觸發(fā)任務(wù)執(zhí)行的入口;
21、根據(jù)不同的方法進(jìn)行不同的業(yè)務(wù)邏輯;
22、定義全局線程池;
23、將大批量數(shù)據(jù)拆成不同批次分配到空閑的線程中去執(zhí)行;
24、每個(gè)線程之間進(jìn)行資源隔離;
25、將每個(gè)線程中執(zhí)行的計(jì)算結(jié)果寫入到數(shù)據(jù)庫(kù)或緩存中。
26、在一些可能的實(shí)現(xiàn)方式中,還包括:
27、對(duì)讀取到的計(jì)算結(jié)果進(jìn)行二次計(jì)算;
28、對(duì)所述二次計(jì)算后的結(jié)果進(jìn)行應(yīng)用。
29、第二方面,提供了一種拓展應(yīng)用程序計(jì)算能力的裝置,包括:
30、構(gòu)建模塊,用于構(gòu)建包含至少一個(gè)執(zhí)行器的計(jì)算模塊,在所述執(zhí)行器中封裝業(yè)務(wù)中批量處理或耗時(shí)運(yùn)算的規(guī)則;
31、遠(yuǎn)程調(diào)用及負(fù)載均衡模塊,用于在應(yīng)用程序的應(yīng)用服務(wù)和執(zhí)行器中基于netty實(shí)現(xiàn)客戶端與服務(wù)端之間的遠(yuǎn)程通信和負(fù)載均衡;
32、計(jì)算及寫入模塊,響應(yīng)于執(zhí)行器接收到應(yīng)用程序的參數(shù),則執(zhí)行任務(wù)計(jì)算,并將執(zhí)行任務(wù)計(jì)算的計(jì)算結(jié)果寫入數(shù)據(jù)庫(kù)或緩存中;
33、讀取模塊,用于利用應(yīng)用程序讀取數(shù)據(jù)庫(kù)或緩存中的計(jì)算結(jié)果。
34、在一些可能的實(shí)現(xiàn)方式中,還包括:
35、二次計(jì)算模塊,用于對(duì)讀取到的計(jì)算結(jié)果進(jìn)行二次計(jì)算;
36、應(yīng)用模塊,用于對(duì)所述二次計(jì)算后的結(jié)果進(jìn)行應(yīng)用。
37、第三方面,提供了一種包含指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)其在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行上述第一方面所述的方法。
38、第四方面,提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)用于設(shè)備執(zhí)行的程序代碼,該程序代碼包括用于執(zhí)行如上述第一方面中的任意一種實(shí)現(xiàn)方式中方法的步驟。
39、第五方面,提供了一種電子設(shè)備,所述電子設(shè)備包括處理器、存儲(chǔ)器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的程序或指令,所述程序或指令被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述第一方面中的任意一種實(shí)現(xiàn)方式中的方法。
40、本申請(qǐng)具有如下有益效果:本申請(qǐng)?jiān)诓贿M(jìn)行系統(tǒng)業(yè)務(wù)拆分,且不需要增加機(jī)器內(nèi)存資源得情況下,能夠滿足日益增長(zhǎng)海量的業(yè)務(wù)場(chǎng)景和業(yè)務(wù)數(shù)據(jù),通過對(duì)執(zhí)行器批處理服務(wù)的抽象和封裝,將耗時(shí)的批處理任務(wù)從業(yè)務(wù)系統(tǒng)中抽離,在極小的改動(dòng)成本的情況下,能夠極大的增加應(yīng)用程序的計(jì)算能力;且隨著后續(xù)業(yè)務(wù)的增長(zhǎng),執(zhí)行器批處理服務(wù)還能夠進(jìn)行水平拓展,能有效解決在大數(shù)據(jù)場(chǎng)景下應(yīng)用程序算力不足問題。
1.一種拓展應(yīng)用程序計(jì)算能力的方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的拓展應(yīng)用程序計(jì)算能力的方法,其特征在于,在所述執(zhí)行器中封裝業(yè)務(wù)中批量處理或耗時(shí)運(yùn)算的規(guī)則,包括:
3.根據(jù)權(quán)利要求2所述的拓展應(yīng)用程序計(jì)算能力的方法,其特征在于,在應(yīng)用程序的應(yīng)用服務(wù)和執(zhí)行器中基于netty實(shí)現(xiàn)客戶端與服務(wù)端之間的遠(yuǎn)程通信和負(fù)載均衡,包括:
4.根據(jù)權(quán)利要求1或3所述的拓展應(yīng)用程序計(jì)算能力的方法,其特征在于,執(zhí)行任務(wù)計(jì)算,并將執(zhí)行任務(wù)計(jì)算的計(jì)算結(jié)果寫入數(shù)據(jù)庫(kù)或緩存中,包括:
5.根據(jù)權(quán)利要求1所述的拓展應(yīng)用程序計(jì)算能力的方法,其特征在于,還包括:
6.一種拓展應(yīng)用程序計(jì)算能力的裝置,其特征在于,包括:
7.根據(jù)權(quán)利要求6所述的拓展應(yīng)用程序計(jì)算能力的裝置,其特征在于,還包括:
8.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述計(jì)算機(jī)程序產(chǎn)品內(nèi)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-5中任一項(xiàng)所述方法。
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)用于設(shè)備執(zhí)行的程序代碼,該程序代碼包括用于執(zhí)行如權(quán)利要求1-5中任一項(xiàng)所述方法的步驟。
10.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括處理器、存儲(chǔ)器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的程序或指令,所述程序或指令被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1-5中任一項(xiàng)所述方法。