本發(fā)明屬于數(shù)據(jù)處理,具體為一種支持高并發(fā)順序消費的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)。
背景技術:
1、隨著物聯(lián)網(wǎng)(i?ot)技術的迅速發(fā)展,我們周圍的世界正變得越來越“智能”。從智能家居到工業(yè)自動化,從智能交通到智慧醫(yī)療,物聯(lián)網(wǎng)的觸角已經(jīng)延伸到了各個領域。物聯(lián)網(wǎng)系統(tǒng)通過對海量數(shù)據(jù)的實時分析,企業(yè)或個人可以快速獲取有價值的信息,從而更加高效地進行決策。隨著物聯(lián)網(wǎng)設備數(shù)量的增加和數(shù)據(jù)量的擴大,物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng)需要具備更強大的數(shù)據(jù)處理能力。隨著物聯(lián)網(wǎng)設備類型的增多,以及業(yè)務場景越來越復雜,針對不同的設備類型和業(yè)務場景需要有更合理,更靈活,以及高效方式來處理數(shù)據(jù)。同時隨著物聯(lián)網(wǎng)數(shù)據(jù)量的增長,對數(shù)據(jù)存儲能力也有極高的要求。
2、專利cn115914376a的專利中提到了一種物聯(lián)網(wǎng)數(shù)據(jù)處理方法及系統(tǒng),該系統(tǒng)借助消息中間件的發(fā)布和訂閱機制對物聯(lián)網(wǎng)數(shù)據(jù)進行消費,并實現(xiàn)了對多種物聯(lián)網(wǎng)類型的物聯(lián)網(wǎng)數(shù)據(jù)采集后處理。
3、專利cn117194540a的專利中提到了一種物聯(lián)網(wǎng)設備多源數(shù)據(jù)處理方法,該方法通過順序讀取物聯(lián)網(wǎng)數(shù)據(jù)庫中的已有數(shù)據(jù),分析數(shù)據(jù)中的設備信息,根據(jù)設備信息選擇不同的規(guī)則鏈對設備數(shù)據(jù)進行處理。
4、專利cn117035645a的專利中提到了一種果園物聯(lián)網(wǎng)數(shù)據(jù)處理方法,其將設備消息傳輸?shù)较⒅虚g件kafka中,然后通過消息處理程序從kafka中獲取數(shù)據(jù)并處理,然后存儲至e?l?ast?i?csearch中。
技術實現(xiàn)思路
1、本發(fā)明的目的在于提供一種支持高并發(fā)順序消費的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),以解決背景技術中提出的現(xiàn)有技術中,無法滿足需要順序消費物聯(lián)網(wǎng)數(shù)據(jù)的業(yè)務場景,不能實時處理設備上報的數(shù)據(jù)的問題。
2、為解決上述技術問題,本發(fā)明所采用的技術方案是:
3、一種支持高并發(fā)順序消費的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),包括以下步驟:
4、步驟s1,根據(jù)設備類型判斷設備是否需要順序消費,如果需要順序消費,則將其依照數(shù)據(jù)投遞算法將其投遞到對應的數(shù)據(jù)隊列中,保證同一個設備的數(shù)據(jù)被投遞到相同的隊列中;如果不需要順序消費,則只需要將數(shù)據(jù)投遞到一個公共的隊列中,然后使用一個線程池來消費該隊列,線程池中的每個線程都從這個公共隊列中讀取數(shù)據(jù),由最先讀取到數(shù)據(jù)的線程進行數(shù)據(jù)處理;
5、步驟s2,消費數(shù)據(jù)處理;使用業(yè)務處理器對消費數(shù)據(jù)進行處理,包括記錄業(yè)務處理器的信息以及根據(jù)待消費數(shù)據(jù)中的設備類型,選擇一個業(yè)務處理器,然后將該數(shù)據(jù)交由該業(yè)務處理器進行處理。
6、根據(jù)上述技術方案,步驟s1中,數(shù)據(jù)投遞算法具體為:
7、步驟s101,定義n個隊列,對這n個隊列進行編號,n∈(0到n-1);
8、步驟s102,根據(jù)設備類型字符串以及設備編號字符串,采用murmur3hash算法,獲取設備的hash值;
9、步驟s103,使用hash值對n求余,得到0到n-1之間的數(shù)字;
10、步驟s104,根據(jù)得到的數(shù)字,將設備數(shù)據(jù)投遞對應編號的隊列中。
11、根據(jù)上述技術方案,獲取隊列編號的邏輯為:murmur3(設備類型+設備編號)%n。
12、根據(jù)上述技術方案,步驟s2中,定義一個統(tǒng)一的數(shù)據(jù)消費接口,一個或者多個設備類型實現(xiàn)一個數(shù)據(jù)消費接口,用于業(yè)務處理;根據(jù)待消費數(shù)據(jù)中的設備類型,選擇一個業(yè)務處理器,然后將該數(shù)據(jù)交由該業(yè)務處理器進行處理。
13、與現(xiàn)有技術相比,本發(fā)明具有以下有益效果:
14、本發(fā)明中的技術方案,是一種實時的、高并發(fā)的物聯(lián)網(wǎng)數(shù)據(jù)處理方案,支持物聯(lián)網(wǎng)數(shù)據(jù)順序和無序消費,同時本發(fā)明可支持多種設備類型的數(shù)據(jù)處理,可按照不同的設備類型分配不同的業(yè)務邏輯處理器來處理設備數(shù)據(jù),在數(shù)據(jù)入庫前提供數(shù)據(jù)聚合器,支持數(shù)據(jù)批量入庫。順序消費時可保證同一個設備的數(shù)據(jù)按照其上報順序處理,不同設備并發(fā)執(zhí)行,在保證順序性的同時保證其數(shù)據(jù)處理效率。
1.一種支持高并發(fā)順序消費的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),其特征在于:包括以下步驟:
2.根據(jù)權利要求1所述的一種支持高并發(fā)順序消費的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),其特征在于:步驟s1中,數(shù)據(jù)投遞算法具體為:
3.根據(jù)權利要求2所述的一種支持高并發(fā)順序消費的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),其特征在于:獲取隊列編號的邏輯為:murmur3(設備類型+設備編號)%n。
4.根據(jù)權利要求1所述的一種支持高并發(fā)順序消費的物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng),其特征在于:步驟s2中,定義一個統(tǒng)一的數(shù)據(jù)消費接口,一個或者多個設備類型實現(xiàn)一個數(shù)據(jù)消費接口,用于業(yè)務處理;根據(jù)待消費數(shù)據(jù)中的設備類型,選擇一個業(yè)務處理器,然后將該數(shù)據(jù)交由該業(yè)務處理器進行處理。