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