本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種流式數(shù)據(jù)處理的方法及系統(tǒng)。
背景技術(shù):
1、目前系統(tǒng)中都存在大部分的流式數(shù)據(jù)的功能,主要用于上下游模塊的解耦,通常上游模塊中會(huì)把各種消息通過流的方式,使用流通道傳遞到下游模塊中,下游模塊接收到這些消息后,進(jìn)行流式數(shù)據(jù)的解析操作,再進(jìn)行后續(xù)的消息處理,由于流式數(shù)據(jù)無法知曉數(shù)據(jù)類型,因此在進(jìn)行數(shù)據(jù)傳輸時(shí),通常是針對(duì)不用類型的流式數(shù)據(jù)建立不同的流通道,通過對(duì)應(yīng)的流通道對(duì)流式數(shù)據(jù)進(jìn)行傳輸,以便區(qū)分流式數(shù)據(jù)的類型,但隨著流通道的增加,增加了資源消耗,降低系統(tǒng)的性能,后續(xù)雖然做了一些改進(jìn),如:將2-3種類型的流式數(shù)據(jù)通過一個(gè)流通道進(jìn)行傳遞,以減少流通道的數(shù)量,降低資源消耗,但在后續(xù)下游模塊的解析中,由于多種類型的流式數(shù)據(jù)使用同一個(gè)流通道進(jìn)行傳輸,下游模塊不知道具體流式數(shù)據(jù)的類型,只能進(jìn)行多種解析,當(dāng)一種解析失敗后,采用另一種方式進(jìn)行解析,導(dǎo)致解析時(shí)間過長(zhǎng),增加耗時(shí)同時(shí)也增加了資源消耗,影響流式數(shù)據(jù)的處理效率。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題是:本發(fā)明提供一種流式數(shù)據(jù)處理的方法及系統(tǒng),提高流式數(shù)據(jù)的處理效率,降低資源消耗,保證系統(tǒng)性能。
2、為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:
3、第一方面,本發(fā)明提供一種流式數(shù)據(jù)處理的方法,包括步驟:
4、在流通道中建立內(nèi)部消息隊(duì)列,當(dāng)流消息產(chǎn)生時(shí),通過所述流通道將所述流消息轉(zhuǎn)化為流式數(shù)據(jù)同時(shí)生成所述流消息的消息格式,將所述消息格式傳遞至所述內(nèi)部消息隊(duì)列;
5、當(dāng)對(duì)所述流式數(shù)據(jù)進(jìn)行消費(fèi)時(shí),同步從所述內(nèi)部消息隊(duì)列中獲取所述消息格式,根據(jù)所述消息格式對(duì)所述流式數(shù)據(jù)進(jìn)行消費(fèi)。
6、本發(fā)明的有益效果在于:當(dāng)流消息產(chǎn)生時(shí),通過流通道將其轉(zhuǎn)化為流式數(shù)據(jù)的同時(shí)還會(huì)生成該流消息的消息格式,并將該消息格式傳遞到建立在流通道中的內(nèi)部消息隊(duì)列中,使得在對(duì)流式數(shù)據(jù)進(jìn)行消費(fèi)時(shí),同步從內(nèi)部消息隊(duì)列中獲取對(duì)應(yīng)的消息格式對(duì)流式數(shù)據(jù)進(jìn)行消費(fèi),即,在流通道中直接實(shí)現(xiàn)了流式數(shù)據(jù)的轉(zhuǎn)化,使得上游模塊、下游模塊以及消費(fèi)者只需要針對(duì)對(duì)象進(jìn)行處理,不需要進(jìn)行消息轉(zhuǎn)換,且根據(jù)消息格式對(duì)流式數(shù)據(jù)進(jìn)行消費(fèi),即,上游模塊和下游模塊也不需進(jìn)行流式數(shù)據(jù)的解析,減少工作量的同時(shí)降低資源消耗,并且以生成消息格式將其傳遞至內(nèi)部消息隊(duì)列的形式實(shí)現(xiàn)了支持一個(gè)流通道傳遞多種類型的流式數(shù)據(jù),且無需進(jìn)行多種解析,只需要根據(jù)消息格式即可進(jìn)行消費(fèi),降低資源消耗,提高整體流式數(shù)據(jù)的處理效率,保證系統(tǒng)性能。
7、可選地,所述通過所述流通道將所述流消息轉(zhuǎn)化為流式數(shù)據(jù)同時(shí)生成所述流消息的消息格式包括:
8、通過所述流通道將所述流消息轉(zhuǎn)化為流式數(shù)據(jù)同時(shí)獲取所述流消息的消息類型,根據(jù)所述消息類型從預(yù)設(shè)映射關(guān)系表中得到與所述消息類型對(duì)應(yīng)的消息格式。
9、根據(jù)上述描述可知,以預(yù)設(shè)映射關(guān)系表的方式得到與流消息的消息類型對(duì)應(yīng)的消息格式,保證消息格式的準(zhǔn)確性。
10、可選地,所述根據(jù)所述消息格式對(duì)所述流式數(shù)據(jù)進(jìn)行消費(fèi)包括:
11、判斷消費(fèi)是否成功,若是,則將所述流式數(shù)據(jù)的消費(fèi)狀態(tài)標(biāo)記為正常消費(fèi),若否,則將所述流式數(shù)據(jù)的消費(fèi)狀態(tài)標(biāo)記為異常消費(fèi)。
12、根據(jù)上述描述可知,根據(jù)消費(fèi)是否成功對(duì)流式數(shù)據(jù)的消費(fèi)狀態(tài)進(jìn)行正常消費(fèi)和異常消費(fèi)的標(biāo)記,便于了解消費(fèi)情況同時(shí)便于后續(xù)進(jìn)行管理。
13、可選地,還包括:
14、將所述消費(fèi)狀態(tài)為異常消費(fèi)的流式數(shù)據(jù)位移至異常消息隊(duì)列,對(duì)所述異常消息隊(duì)列中的流式數(shù)據(jù)進(jìn)行預(yù)設(shè)次數(shù)的重新消費(fèi),若預(yù)設(shè)次數(shù)的重新消費(fèi)均失敗,則對(duì)所述流式數(shù)據(jù)進(jìn)行告警,若預(yù)設(shè)次數(shù)的重新消費(fèi)至少有一次成功,則將所述流式數(shù)據(jù)的消費(fèi)狀態(tài)更新為正常消費(fèi)。
15、根據(jù)上述描述可知,將異常消費(fèi)的流式數(shù)據(jù)位移至異常消費(fèi)隊(duì)列進(jìn)行重新消費(fèi),提高消費(fèi)成功率的同時(shí),避免其對(duì)內(nèi)部消息隊(duì)列造成影響,提高整體流式數(shù)據(jù)的處理效率,保證系統(tǒng)性能。
16、可選地,所述預(yù)設(shè)次數(shù)為[1,3]。
17、第二方面,本發(fā)明提供一種流式數(shù)據(jù)處理的系統(tǒng),包括:
18、轉(zhuǎn)化模塊,用于在流通道中建立內(nèi)部消息隊(duì)列,當(dāng)流消息產(chǎn)生時(shí),通過所述流通道將所述流消息轉(zhuǎn)化為流式數(shù)據(jù)同時(shí)生成所述流消息的消息格式,將所述消息格式傳遞至所述內(nèi)部消息隊(duì)列;
19、消費(fèi)模塊,用于當(dāng)對(duì)所述流式數(shù)據(jù)進(jìn)行消費(fèi)時(shí),同步從所述內(nèi)部消息隊(duì)列中獲取所述消息格式,根據(jù)所述消息格式對(duì)所述流式數(shù)據(jù)進(jìn)行消費(fèi)。
20、本發(fā)明的有益效果在于:當(dāng)流消息產(chǎn)生時(shí),通過流通道將其轉(zhuǎn)化為流式數(shù)據(jù)的同時(shí)還會(huì)生成該流消息的消息格式,并將該消息格式傳遞到建立在流通道中的內(nèi)部消息隊(duì)列中,使得在對(duì)流式數(shù)據(jù)進(jìn)行消費(fèi)時(shí),同步從內(nèi)部消息隊(duì)列中獲取對(duì)應(yīng)的消息格式對(duì)流式數(shù)據(jù)進(jìn)行消費(fèi),即,在流通道中直接實(shí)現(xiàn)了流式數(shù)據(jù)的轉(zhuǎn)化,使得上游模塊、下游模塊以及消費(fèi)者只需要針對(duì)對(duì)象進(jìn)行處理,不需要進(jìn)行消息轉(zhuǎn)換,且根據(jù)消息格式對(duì)流式數(shù)據(jù)進(jìn)行消費(fèi),即,上游模塊和下游模塊也不需進(jìn)行流式數(shù)據(jù)的解析,減少工作量的同時(shí)降低資源消耗,并且以生成消息格式將其傳遞至內(nèi)部消息隊(duì)列的形式實(shí)現(xiàn)了支持一個(gè)流通道傳遞多種類型的流式數(shù)據(jù),且無需進(jìn)行多種解析,只需要根據(jù)消息格式即可進(jìn)行消費(fèi),降低資源消耗,提高整體流式數(shù)據(jù)的處理效率,保證系統(tǒng)性能。
21、可選地,所述轉(zhuǎn)化模塊具體為:
22、通過所述流通道將所述流消息轉(zhuǎn)化為流式數(shù)據(jù)同時(shí)獲取所述流消息的消息類型,根據(jù)所述消息類型從預(yù)設(shè)映射關(guān)系表中得到與所述消息類型對(duì)應(yīng)的消息格式。
23、根據(jù)上述描述可知,以預(yù)設(shè)映射關(guān)系表的方式得到與流消息的消息類型對(duì)應(yīng)的消息格式,保證消息格式的準(zhǔn)確性。
24、可選地,所述消費(fèi)模塊包括:
25、判斷模塊,用于判斷消費(fèi)是否成功,若是,則將所述流式數(shù)據(jù)的消費(fèi)狀態(tài)標(biāo)記為正常消費(fèi),若否,則將所述流式數(shù)據(jù)的消費(fèi)狀態(tài)標(biāo)記為異常消費(fèi)。
26、根據(jù)上述描述可知,根據(jù)消費(fèi)是否成功對(duì)流式數(shù)據(jù)的消費(fèi)狀態(tài)進(jìn)行正常消費(fèi)和異常消費(fèi)的標(biāo)記,便于了解消費(fèi)情況同時(shí)便于后續(xù)進(jìn)行管理。
27、還包括:
28、重試模塊,用于將所述消費(fèi)狀態(tài)為異常消費(fèi)的流式數(shù)據(jù)位移至異常消息隊(duì)列,對(duì)所述異常消息隊(duì)列中的流式數(shù)據(jù)進(jìn)行預(yù)設(shè)次數(shù)的重新消費(fèi),若預(yù)設(shè)次數(shù)的重新消費(fèi)均失敗,則對(duì)所述流式數(shù)據(jù)進(jìn)行告警,若預(yù)設(shè)次數(shù)的重新消費(fèi)至少有一次成功,則將所述流式數(shù)據(jù)的消費(fèi)狀態(tài)更新為正常消費(fèi)。
29、根據(jù)上述描述可知,將異常消費(fèi)的流式數(shù)據(jù)位移至異常消費(fèi)隊(duì)列進(jìn)行重新消費(fèi),提高消費(fèi)成功率的同時(shí),避免其對(duì)內(nèi)部消息隊(duì)列造成影響,提高整體流式數(shù)據(jù)的處理效率,保證系統(tǒng)性能。
30、可選地,所述預(yù)設(shè)次數(shù)為[1,3]。
1.一種流式數(shù)據(jù)處理的方法,其特征在于,包括:
2.如權(quán)利要求1所述的一種流式數(shù)據(jù)處理的方法,其特征在于,所述通過所述流通道將所述流消息轉(zhuǎn)化為流式數(shù)據(jù)同時(shí)生成所述流消息的消息格式包括:
3.如權(quán)利要求1所述的一種流式數(shù)據(jù)處理的方法,其特征在于,所述根據(jù)所述消息格式對(duì)所述流式數(shù)據(jù)進(jìn)行消費(fèi)包括:
4.如權(quán)利要求3所述的一種流式數(shù)據(jù)處理的方法,其特征在于,還包括:
5.如權(quán)利要求4所述的一種流式數(shù)據(jù)處理的方法,其特征在于,所述預(yù)設(shè)次數(shù)為[1,3]。
6.一種流式數(shù)據(jù)處理的系統(tǒng),其特征在于,包括:
7.如權(quán)利要求6所述的一種流式數(shù)據(jù)處理的系統(tǒng),其特征在于,所述轉(zhuǎn)化模塊具體為:
8.如權(quán)利要求6所述的一種流式數(shù)據(jù)處理的系統(tǒng),其特征在于,所述消費(fèi)模塊包括:
9.如權(quán)利要求8所述的一種流式數(shù)據(jù)處理的系統(tǒng),其特征在于,還包括:
10.如權(quán)利要求9所述的一種流式數(shù)據(jù)處理的系統(tǒng),其特征在于,所述預(yù)設(shè)次數(shù)為[1,3]。