本發(fā)明涉及實(shí)時(shí)數(shù)據(jù)統(tǒng)一推送,尤其涉及一種實(shí)時(shí)數(shù)據(jù)推送方法、調(diào)度系統(tǒng)、電子設(shè)備和存儲(chǔ)介質(zhì)。
背景技術(shù):
1、隨著技術(shù)的不斷更新迭代以及業(yè)務(wù)的復(fù)雜性增加,系統(tǒng)架構(gòu)也從傳統(tǒng)的單體應(yīng)用發(fā)展到分布式結(jié)構(gòu)再到現(xiàn)在流行的微服務(wù)架構(gòu)。微服務(wù)架構(gòu)是一種應(yīng)用間松耦合的、每個(gè)應(yīng)用服務(wù)之間高度自治并且使用輕量級(jí)協(xié)議進(jìn)行通信的可持續(xù)集成部署的分布式架構(gòu)體系。雖然微服務(wù)架構(gòu)模式能給開(kāi)發(fā)測(cè)試及運(yùn)維人員解決很多問(wèn)題,但同時(shí)也增加了一些負(fù)擔(dān)。
2、一方面,隨著服務(wù)的顆粒度變小,如果要做到各個(gè)應(yīng)用前端與其對(duì)應(yīng)的服務(wù)端都能雙向?qū)崟r(shí)數(shù)據(jù)通信,則應(yīng)用前端(通常為客戶端)必須與所有后端服務(wù)建立長(zhǎng)連接,而無(wú)論是應(yīng)用前端還是后端服務(wù)的數(shù)量不斷增多,都會(huì)導(dǎo)致不同端之間的數(shù)據(jù)通信接口也逐漸地增多,從而給各端服務(wù)造成資源的浪費(fèi)。
3、另一方面,當(dāng)后端數(shù)量增加的時(shí)候,前端都需要重新與新增的后端服務(wù)進(jìn)行數(shù)據(jù)接口對(duì)接,從而增加了應(yīng)用前端代碼的繁瑣管理。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種實(shí)時(shí)數(shù)據(jù)推送方法,以解決實(shí)時(shí)數(shù)據(jù)統(tǒng)一推送的問(wèn)題。
2、第一方面,本發(fā)明提供了一種實(shí)時(shí)數(shù)據(jù)推送方法,應(yīng)用于調(diào)度系統(tǒng),所述調(diào)度系統(tǒng)包括前端的客戶端、中間端的實(shí)時(shí)通信服務(wù)和后端的業(yè)務(wù)服務(wù),所述業(yè)務(wù)服務(wù)包括多個(gè)執(zhí)行不同業(yè)務(wù)類型的業(yè)務(wù)、生產(chǎn)業(yè)務(wù)數(shù)據(jù)的子服務(wù)端;所述實(shí)時(shí)通信服務(wù)中設(shè)置有多個(gè)用于支持不同數(shù)據(jù)對(duì)接方式的服務(wù)組件;
3、所述方法包括:
4、所述實(shí)時(shí)通信服務(wù)接收所述客戶端發(fā)送的訂閱請(qǐng)求;
5、所述實(shí)時(shí)通信服務(wù)基于所述客戶端使用的編程語(yǔ)言確定所述實(shí)時(shí)通信服務(wù)與所述業(yè)務(wù)服務(wù)的數(shù)據(jù)對(duì)接方式;
6、所述實(shí)時(shí)通信服務(wù)采用所述數(shù)據(jù)對(duì)接方式、通過(guò)所述服務(wù)組件從所述業(yè)務(wù)服務(wù)中獲取與所述訂閱請(qǐng)求對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)并發(fā)送給所述客戶端。
7、第二方面,本發(fā)明提供了一種調(diào)度系統(tǒng),所述調(diào)度系統(tǒng)包括前端的客戶端、中間端的實(shí)時(shí)通信服務(wù)和后端的業(yè)務(wù)服務(wù),所述業(yè)務(wù)服務(wù)包括多個(gè)執(zhí)行不同業(yè)務(wù)類型、生產(chǎn)業(yè)務(wù)數(shù)據(jù)的業(yè)務(wù)的子服務(wù)端;所述實(shí)時(shí)通信服務(wù)中設(shè)置有多個(gè)用于支持不同數(shù)據(jù)對(duì)接方式的服務(wù)組件;
8、所述實(shí)時(shí)通信服務(wù)用于接收所述客戶端發(fā)送的訂閱請(qǐng)求;基于所述客戶端使用的編程語(yǔ)言確定所述實(shí)時(shí)通信服務(wù)與所述業(yè)務(wù)服務(wù)的數(shù)據(jù)對(duì)接方式;采用所述數(shù)據(jù)對(duì)接方式、通過(guò)所述服務(wù)組件從所述業(yè)務(wù)服務(wù)中獲取與所述訂閱請(qǐng)求對(duì)應(yīng)的業(yè)務(wù)數(shù)據(jù)并發(fā)送給所述客戶端。
9、第三方面,本發(fā)明提供了一種電子設(shè)備,所述電子設(shè)備包括:
10、至少一個(gè)處理器;以及
11、與所述至少一個(gè)處理器通信連接的存儲(chǔ)器;其中,
12、所述存儲(chǔ)器存儲(chǔ)有可被所述至少一個(gè)處理器執(zhí)行的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述至少一個(gè)處理器執(zhí)行,以使所述至少一個(gè)處理器能夠執(zhí)行本發(fā)明第一方面所述的實(shí)時(shí)數(shù)據(jù)推送方法。
13、第四方面,本發(fā)明提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使處理器執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明第一方面所述的實(shí)時(shí)數(shù)據(jù)推送方法。
14、上述的實(shí)時(shí)數(shù)據(jù)推送方法,實(shí)時(shí)通信服務(wù)作為客戶端(前端)和業(yè)務(wù)服務(wù)(后端)的中間端,由于實(shí)時(shí)通信服務(wù)中設(shè)置有多個(gè)用于支持不同數(shù)據(jù)對(duì)接方式的服務(wù)組件,實(shí)時(shí)通信服務(wù)可以統(tǒng)一管理使用不同編程語(yǔ)言的客戶端發(fā)起的訂閱請(qǐng)求,在使得前端的客戶端和后端的業(yè)務(wù)服務(wù)能夠有效通信的基礎(chǔ)上,將前端的客戶端與后端的業(yè)務(wù)服務(wù)解耦,則前端的客戶端無(wú)需對(duì)接繁多的后端業(yè)務(wù)服務(wù),無(wú)需維護(hù)與多個(gè)后端的子服務(wù)器建立多個(gè)長(zhǎng)連接,減少了前端開(kāi)發(fā)帶來(lái)的聯(lián)調(diào)的復(fù)雜性;此外,由于業(yè)務(wù)服務(wù)中通常具備數(shù)量較多的子服務(wù)端,實(shí)時(shí)推送服務(wù)統(tǒng)一處理不同客戶端的訂閱請(qǐng)求,業(yè)務(wù)服務(wù)中的各個(gè)子服務(wù)端也無(wú)需重復(fù)編寫(xiě)與前端交互的代碼,簡(jiǎn)化了業(yè)務(wù)服務(wù)的開(kāi)發(fā)難度和減少了代碼開(kāi)發(fā)的工作量。無(wú)論是前端或后端的數(shù)量增加,都不需要在另一端(前端或后端)增加對(duì)應(yīng)的數(shù)據(jù)接口,節(jié)約了各端服務(wù)的資源。
15、應(yīng)當(dāng)理解,本部分所描述的內(nèi)容并非旨在標(biāo)識(shí)本發(fā)明的實(shí)施例的關(guān)鍵或重要特征,也不用于限制本發(fā)明的范圍。本發(fā)明的其它特征將通過(guò)以下的說(shuō)明書(shū)而變得容易理解。
1.一種實(shí)時(shí)數(shù)據(jù)推送方法,其特征在于,應(yīng)用于調(diào)度系統(tǒng),所述調(diào)度系統(tǒng)包括前端的客戶端、中間端的實(shí)時(shí)通信服務(wù)和后端的業(yè)務(wù)服務(wù),所述業(yè)務(wù)服務(wù)包括多個(gè)執(zhí)行不同業(yè)務(wù)類型的業(yè)務(wù)、生產(chǎn)業(yè)務(wù)數(shù)據(jù)的子服務(wù)端;所述實(shí)時(shí)通信服務(wù)中設(shè)置有多個(gè)用于支持不同數(shù)據(jù)對(duì)接方式的服務(wù)組件;
2.如權(quán)利要求1所述的方法,其特征在于,在所述實(shí)時(shí)通信服務(wù)接收所述客戶端發(fā)送的訂閱請(qǐng)求之前,還包括:
3.如權(quán)利要求1所述的方法,其特征在于,所述實(shí)時(shí)通信服務(wù)中設(shè)置有分布式緩存和消息隊(duì)列,
4.如權(quán)利要求1所述的方法,其特征在于,所述實(shí)時(shí)通信服務(wù)中設(shè)置有消息隊(duì)列,
5.如權(quán)利要求1所述的方法,其特征在于,所述業(yè)務(wù)服務(wù)中的子服務(wù)端設(shè)置有restful接口,所述實(shí)時(shí)通信服務(wù)將各所述子服務(wù)端的restful接口的調(diào)用參數(shù)預(yù)先配置至數(shù)據(jù)庫(kù)中,所述實(shí)時(shí)通信服務(wù)中設(shè)置有消息隊(duì)列,
6.如權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,所述實(shí)時(shí)通信服務(wù)中還設(shè)置有websocket組件,所述客戶端均通過(guò)所述websocket組件與所述實(shí)時(shí)通信服務(wù)建立連接,所述客戶端包括第一客戶端和除第一客戶端之外的第二客戶端;
7.如權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,所述實(shí)時(shí)通信服務(wù)中設(shè)置有多個(gè)服務(wù)節(jié)點(diǎn),所述服務(wù)節(jié)點(diǎn)用于支持所述客戶端與所述業(yè)務(wù)服務(wù)中的子服務(wù)端對(duì)接,所述實(shí)時(shí)通信服務(wù)通過(guò)哈希算法將所述客戶端的所述訂閱請(qǐng)求分配至所述服務(wù)節(jié)點(diǎn)。
8.一種調(diào)度系統(tǒng),其特征在于,所述調(diào)度系統(tǒng)包括前端的客戶端、中間端的實(shí)時(shí)通信服務(wù)和后端的業(yè)務(wù)服務(wù),所述業(yè)務(wù)服務(wù)包括多個(gè)執(zhí)行不同業(yè)務(wù)類型的業(yè)務(wù)、生產(chǎn)業(yè)務(wù)數(shù)據(jù)的子服務(wù)端;所述實(shí)時(shí)通信服務(wù)中設(shè)置有多個(gè)用于支持不同數(shù)據(jù)對(duì)接方式的服務(wù)組件;
9.一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:
10.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令用于使處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-7中任一項(xiàng)所述的實(shí)時(shí)數(shù)據(jù)推送方法。