一種海量數據的實時傳輸處理方法、服務器及處理系統的制作方法
【專利摘要】本發明公開了一種海量數據的實時傳輸處理方法、服務器及處理系統,其中,所述海量數據的實時傳輸處理方法,包括接收客戶端的基于數據單向傳輸協議發送來的數據;將接收的數據寫入消息中間件中進行緩存,來保證數據在傳輸過程中的完整性;啟動消費線程組,消費線程組中的各個消費線程啟動后均處于空閑等待任務狀態;從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理;將每個消費線程處理任務完成后的結果數據保存至緩存隊列中;啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中。
【專利說明】
一種海量數據的實時傳輸處理方法、服務器及處理系統
技術領域
[0001]本發明屬于數據處理領域,尤其涉及一種海量數據的實時傳輸處理方法、服務器及處理系統。
【背景技術】
[0002]計算機和網絡技術及智能終端的高速發展,數據以一種不可估量的量級高速增長。而如何接受并完整、快速、安全、有效地處理海量數據顯得尤為重要。目前,國內的數據傳輸系統或產品都不能兼容完整、快速、安全、有效地處理海量數據這些特點。一般情況下,在保證數據完整性的前提下,數據卻不能快速、安全地傳輸并保存至數據庫中;如果兼容速度,那么又不能保障數據的完整性。
[0003]因此,目前亟需一種能夠完整、快速、安全、有效地處理海量數據的海量數據的實時傳輸處理方法、服務器及處理系統來解決上述問題。
【發明內容】
[0004]為了解決現有技術的缺點,本發明提供一種海量數據的實時傳輸處理方法、服務器及處理系統。本發明通過數據單向傳輸、消息中間件、多線程及隊列機制技術,解決了目前海量數據傳輸過程中普遍存在的完整與效率無法兼得的問題,亦保證了數據在整個傳輸過程中的安全問題。
[0005]為實現上述目的,本發明采用以下技術方案:
[0006]本發明提供了一種海量數據的實時傳輸處理方法,該方法包括:
[0007]接收客戶端的基于數據單向傳輸協議發送來的數據;
[0008]將接收的數據寫入消息中間件中進行緩存,來保證數據在傳輸過程中的完整性;
[0009]啟動消費線程組,消費線程組中的各個消費線程啟動后均處于空閑等待任務狀態;
[0010]從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理;
[0011]將每個消費線程處理任務完成后的結果數據保存至緩存隊列中;
[0012]啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中。
[0013]當每次消費線程組處理任務完成后,從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理。
[0014]在本發明的海量數據的實時傳輸處理方法中,客戶端采用數據單向傳輸協議進行發送數據,在數據由客戶端傳輸至內網即高密級端時,內網的數據不會泄露,從而保證數據的安全性。
[0015]本發明還將接收的數據寫入消息中間件中進行緩存,這樣保證了高并發數據在傳輸過程中的完整性,而且不同業務數據,消息中間件還可以按照不同的名稱進行緩存,大大地提高了數據傳輸過程中的業務處理能力。
[0016]當每次消費線程組處理任務完成后且消息中間件中無數據時,消費線程組處于空閑等待任務狀態。
[0017]在本發明的海量數據的實時傳輸處理方法中,調用相應接口將數據批量存儲至不同數據庫。
[0018]由于數據傳輸的最終目的是將數據進行存儲,因此,通過配置和調用不同接口,則可將數據向一種或者多種數據庫中批量寫入,提高了數據傳輸協議的開發效率。
[0019]通過配置參數決定啟動工作線程組中工作線程的數目。
[0020]啟動各工作線程,各線程在隊列上等待任務;就像一個工廠中有很多的工人,把任務放到一個隊列中,那些工人就會自動的獲取任務,每次處理任務完成后,再次在隊列中等待新的任務。有任務時,取出任務進行處理;無任務時,空閑等待。每個任務只能被一個線程取出并處理。隊列機制是解決多線程并行協同工作的可靠和高效的手段。
[0021]本發明還提供了一種用于海量數據的實時傳輸處理的服務器,包括:
[0022]數據接收模塊,其被配置為接收客戶端的基于數據單向傳輸協議發送來的數據;
[0023]數據寫入模塊,其被配置為將接收的數據寫入消息中間件中進行緩存,來保證數據在傳輸過程中的完整性;
[0024]消費線程啟動模塊,其被配置為啟動消費線程組,消費線程組中的各個消費線程啟動后均處于空閑等待任務狀態;
[0025]數據調取分配模塊,其被配置為從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理;
[0026]數據列隊緩存模塊,其被配置為將每個消費線程處理任務完成后的結果數據保存至緩存隊列中;
[0027]工作線程啟動模塊,其被配置為啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中。
[0028]在消費線程啟動模塊中,當每次消費線程組處理任務完成后且消息中間件中無數據時,消費線程組處于空閑等待任務狀態。
[0029]所述用于海量數據的實時傳輸處理的服務器還包括接口調用模塊,其被配置為調用相應接口將數據批量存儲至不同數據庫。
[0030]所述工作線程啟動模塊通過配置參數決定啟動工作線程組中工作線程的數目。
[0031]所述工作線程啟動模塊還按照數據的規模大小以及所述服務器的處理能力進行調整啟動工作線程組中工作線程的數目。
[0032]此外,本發明還提供了一種用于海量數據的實時傳輸處理系統,該處理系統包括上述用于海量數據的實時傳輸處理的服務器。
[0033]本發明的有益效果為:
[0034](I)在本發明的海量數據的實時傳輸處理方法中,客戶端采用數據單向傳輸協議進行發送數據,在數據由客戶端傳輸至內網即高密級端時,內網的數據不會泄露,從而保證數據的安全性;
[0035](2)本發明還將接收的數據寫入消息中間件中進行緩存,這樣保證了高并發數據在傳輸過程中的完整性,而且不同業務數據,消息中間件還可以按照不同的名稱進行緩存,大大地提高了數據傳輸過程中的業務處理能力;
[0036](3)本發明還采用多線程模式,啟動消費線程組接收處理任務并將每個消費線程處理任務完成后的結果數據保存至緩存隊列中,以及啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中;結合列隊機制,將數據處理后放入各任務隊列當中和從隊列中順序讀取數據進行批量存儲,隊列機制解決了多線程并行協同工作的可靠性和高效性;
[0037](4)本發明以多線程并行工作的方式代替傳統的工作方式,并可通過配置文件調整最大的工作線程數限制;而且允許使用者根據實際數據的規模,調優參數,達到實際環境的最佳性能。
【附圖說明】
[0038]圖1是本發明的海量數據的實時傳輸處理方法的流程示意圖;
[0039]圖2是本發明的用于海量數據的實時傳輸處理的服務器的結構示意圖。
【具體實施方式】
[0040]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0041]本發明實施例中提及的客戶端可以包括個人電腦、平板電腦和智能手機。本發明實施例中的服務器可直接通過網絡與客戶端相互通信。
[0042]圖1是本發明實施例中一種海量數據的實時傳輸處理方法的流程示意圖,本實施例主要是從服務器一側來描述,如圖所示本實施例中的海量數據的實時傳輸處理方法,包括:
[0043]SlOl,接收客戶端的基于數據單向傳輸協議發送來的數據;
[0044]具體實現中,客戶端采用的數據單向傳輸協議(比如TFTP的單向文件傳輸、單向文件傳輸協議FLUTE傳輸),進行傳送數據。這樣使得數據在客戶端傳輸至內網即高密級端時,內網的數據不會泄露,從而保證數據的安全性。
[0045]S102,將接收的數據寫入消息中間件中進行緩存,來保證數據在傳輸過程中的完整性;
[0046]具體實現中,消息中間件以由LinkedIn開發的一個分布式的消息系統kafka為例:
[0047]通過kafka,可將高并發數據進行緩存,客戶端可逐步進行消費,保證了數據在傳輸過程中的完整性。不同業務數據,又可以通過kafka中不同TOPIC名稱進行緩存,大大地提高了此數據傳輸過程中的業務處理能力。
[0048]S103,啟動消費線程組,消費線程組中的各個消費線程啟動后均處于空閑等待任務狀態;
[0049]具體實現中,當每次消費線程組處理任務完成后,從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理。
[0050]S104,從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理;
[0051]在此過載中,接收數據格式與存儲時的格式存在不一致的情況,使用者可根據業務需求自行定義。
[0052]具體實現中,當每次消費線程組處理任務完成后且消息中間件中無數據時,消費線程組處于空閑等待任務狀態。
[0053]S105,將每個消費線程處理任務完成后的結果數據保存至緩存隊列中。
[0054]當每次消費線程組處理任務完成后,從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理。
[0055]S106,啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中。
[0056]在具體實現中,還調用相應接口將數據批量存儲至不同數據庫。
[0057]由于數據傳輸的最終目的是將數據進行存儲,因此,通過配置和調用不同接口,則可將數據向一種或者多種數據庫中批量寫入,提高了數據傳輸協議的開發效率。
[0058]此外,本實施例還通過配置參數決定啟動工作線程組中工作線程的數目。
[0059]啟動各工作線程,各線程在隊列上等待任務;就像一個工廠中有很多的工人,把任務放到一個隊列中,那些工人就會自動的獲取任務,每次處理任務完成后,再次在隊列中等待新的任務。有任務時,取出任務進行處理;無任務時,空閑等待。每個任務只能被一個線程取出并處理。隊列機制是解決多線程并行協同工作的可靠和高效的手段。
[0060]本實施例中,客戶端采用數據單向傳輸協議進行發送數據,在數據由客戶端傳輸至內網即高密級端時,內網的數據不會泄露,從而保證數據的安全性;
[0061]本實施例還采用多線程模式,啟動消費線程組接收處理任務并將每個消費線程處理任務完成后的結果數據保存至緩存隊列中,以及啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中;結合列隊機制,將數據處理后放入各任務隊列當中和從隊列中順序讀取數據進行批量存儲,隊列機制解決了多線程并行協同工作的可靠性和高效性;
[0062]本實施例以多線程并行工作的方式代替傳統的工作方式,并可通過配置文件調整最大的工作線程數限制;而且允許使用者根據實際數據的規模,調優參數,達到實際環境的最佳性能。
[0063]圖2是本發明實施例中一種用于海量數據的實時傳輸處理的服務器的結構示意圖,本發明實施例中提及的客戶端可以包括個人電腦、平板電腦和智能手機。本發明實施例中的服務器可直接通過網絡與客戶端相互通信。
[0064]如圖2所示本實施例中的用于海量數據的實時傳輸處理的服務器,包括數據接收模塊、數據寫入模塊、消費線程啟動模塊、數據調取分配模塊、數據列隊緩存模塊和工作線程啟動模塊這六大模塊。
[0065]其中,數據接收模塊,其被配置為接收客戶端的基于數據單向傳輸協議發送來的數據。
[0066]客戶端采用的數據單向傳輸協議(比如TFTP的單向文件傳輸、單向文件傳輸協議FLUTE傳輸),進行傳送數據。這樣使得數據在客戶端傳輸至內網即高密級端時,內網的數據不會泄露,從而保證數據的安全性。
[0067]數據寫入模塊,其被配置為將接收的數據寫入消息中間件中進行緩存,來保證數據在傳輸過程中的完整性。
[0068]具體實現中,消息中間件以由LinkedIn開發的一個分布式的消息系統kafka為例:
[0069]通過kafka,可將高并發數據進行緩存,客戶端可逐步進行消費,保證了數據在傳輸過程中的完整性。不同業務數據,又可以通過kafka中不同TOPIC名稱進行緩存,大大地提高了此數據傳輸過程中的業務處理能力。
[0070]消費線程啟動模塊,其被配置為啟動消費線程組,消費線程組中的各個消費線程啟動后均處于空閑等待任務狀態。
[0071]具體實現中,當每次消費線程組處理任務完成后且消息中間件中無數據時,消費線程組處于空閑等待任務狀態。
[0072]在消費線程啟動模塊中,當每次消費線程組處理任務完成后且消息中間件中無數據時,消費線程組處于空閑等待任務狀態。
[0073]數據調取分配模塊,其被配置為從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理。
[0074]數據列隊緩存模塊,其被配置為將每個消費線程處理任務完成后的結果數據保存至緩存隊列中。
[0075]工作線程啟動模塊,其被配置為啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中。
[0076]本實施例中的用于海量數據的實時傳輸處理的服務器還包括接口調用模塊,其被配置為調用相應接口將數據批量存儲至不同數據庫。
[0077]其中,工作線程啟動模塊通過配置參數決定啟動工作線程組中工作線程的數目。
[0078]優選地,工作線程啟動模塊還按照數據的規模大小以及所述服務器的處理能力進行調整啟動工作線程組中工作線程的數目。
[0079]本實施例中,客戶端采用數據單向傳輸協議進行發送數據,在數據由客戶端傳輸至內網即高密級端時,內網的數據不會泄露,從而保證數據的安全性;
[0080]本實施例還采用多線程模式,啟動消費線程組接收處理任務并將每個消費線程處理任務完成后的結果數據保存至緩存隊列中,以及啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中;結合列隊機制,將數據處理后放入各任務隊列當中和從隊列中順序讀取數據進行批量存儲,隊列機制解決了多線程并行協同工作的可靠性和高效性;
[0081]本實施例以多線程并行工作的方式代替傳統的工作方式,并可通過配置文件調整最大的工作線程數限制;而且允許使用者根據實際數據的規模,調優參數,達到實際環境的最佳性能。
[0082]此外,本發明還提供了一種用于海量數據的實時傳輸處理系統,該處理系統包括上述用于海量數據的實時傳輸處理的服務器。具體地該服務器的具體結構將不再累述。
[0083]本發明還提供了一種用于海量數據的實時傳輸處理系統,接收客戶端采用數據單向傳輸協議進行發送數據,在數據由客戶端傳輸至內網即高密級端時,內網的數據不會泄露,從而保證數據的安全性;
[0084]還將接收的數據寫入消息中間件中進行緩存,這樣保證了高并發數據在傳輸過程中的完整性,而且不同業務數據,消息中間件還可以按照不同的名稱進行緩存,大大地提高了數據傳輸過程中的業務處理能力;
[0085]本發明還采用多線程模式,啟動消費線程組接收處理任務并將每個消費線程處理任務完成后的結果數據保存至緩存隊列中,以及啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中;結合列隊機制,將數據處理后放入各任務隊列當中和從隊列中順序讀取數據進行批量存儲,隊列機制解決了多線程并行協同工作的可靠性和高效性;
[0086]本發明以多線程并行工作的方式代替傳統的工作方式,并可通過配置文件調整最大的工作線程數限制;而且允許使用者根據實際數據的規模,調優參數,達到實際環境的最佳性能。
[0087]本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。
[0088]上述雖然結合附圖對本發明的【具體實施方式】進行了描述,但并非對本發明保護范圍的限制,所屬領域技術人員應該明白,在本發明的技術方案的基礎上,本領域技術人員不需要付出創造性勞動即可做出的各種修改或變形仍在本發明的保護范圍以內。
【主權項】
1.一種海量數據的實時傳輸處理方法,其特征在于,包括: 接收客戶端的基于數據單向傳輸協議發送來的數據; 將接收的數據寫入消息中間件中進行緩存,來保證數據在傳輸過程中的完整性; 啟動消費線程組,消費線程組中的各個消費線程啟動后均處于空閑等待任務狀態; 從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理; 將每個消費線程處理任務完成后的結果數據保存至緩存隊列中; 啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中。2.如權利要求1所述的一種海量數據實時傳輸方法,其特征在于,當每次消費線程組處理任務完成后且消息中間件中無數據時,消費線程組處于空閑等待任務狀態。3.如權利要求1所述的一種海量數據實時傳輸方法,其特征在于,調用相應接口將數據批量存儲至不同數據庫。4.如權利要求1所述的一種海量數據實時傳輸方法,其特征在于,通過配置參數決定啟動工作線程組中工作線程的數目。5.—種用于海量數據的實時傳輸處理的服務器,其特征在于,包括: 數據接收模塊,其被配置為接收客戶端的基于數據單向傳輸協議發送來的數據; 數據寫入模塊,其被配置為將接收的數據寫入消息中間件中進行緩存,來保證數據在傳輸過程中的完整性; 消費線程啟動模塊,其被配置為啟動消費線程組,消費線程組中的各個消費線程啟動后均處于空閑等待任務狀態; 數據調取分配模塊,其被配置為從消息中間件中取出數據,并轉化成處理任務分配至消費線程組中的各個消費線程中進行處理; 數據列隊緩存模塊,其被配置為將每個消費線程處理任務完成后的結果數據保存至緩存隊列中; 工作線程啟動模塊,其被配置為啟動工作線程組,從緩存隊列中獲取結果數據并批量存儲至數據庫中。6.如權利要求5所述的一種用于海量數據的實時傳輸處理的服務器,其特征在于,在消費線程啟動模塊中,當每次消費線程組處理任務完成后且消息中間件中無數據時,消費線程組處于空閑等待任務狀態。7.如權利要求5所述的一種用于海量數據的實時傳輸處理的服務器,其特征在于,所述用于海量數據的實時傳輸處理的服務器還包括接口調用模塊,其被配置為調用相應接口將數據批量存儲至不同數據庫。8.如權利要求5所述的一種用于海量數據的實時傳輸處理的服務器,其特征在于,所述工作線程啟動模塊通過配置參數決定啟動工作線程組中工作線程的數目。9.如權利要求8所述的一種用于海量數據的實時傳輸處理的服務器,其特征在于,所述工作線程啟動模塊還按照數據的規模大小以及所述服務器的處理能力進行調整啟動工作線程組中工作線程的數目。10.—種用于海量數據的實時傳輸處理系統,其特征在于,該處理系統包括如權利要求5-9任一所述的用于海量數據的實時傳輸處理的服務器。
【文檔編號】H04L29/08GK105978968SQ201610309434
【公開日】2016年9月28日
【申請日】2016年5月11日
【發明人】陳浩, 王可鑫, 段文良, 高軍, 王恒
【申請人】山東合天智匯信息技術有限公司