數據分發方法和系統及數據發送裝置和數據接收裝置的制造方法
【技術領域】
[0001]本發明實施方式涉及數據傳輸技術領域,更具體地,涉及一種數據分發方法和系統及數據發送裝置和數據接收裝置。
【背景技術】
[0002]在當今的信息時代中,各種信息設備應運而生:有用于話音傳輸的固定電話、移動電話;有用于信息資源共享、處理的服務器和個人電腦;有用于視頻數據顯示的各種電視機等等。這些設備都是在特定領域內為解決實際的需求而產生的。隨著電子消費、計算機、通信(3C)融合的到來,人們越來越多地將注意力放到了對各個不同領域的信息設備進行綜合利用的研究上,以充分利用現有資源設備來為人們更好的服務。
[0003]在各種實時系統中,經常需要將最新生成的數據實時投放到應用系統中,以讓實時數據得以應用。這就涉及到了一對多的數據傳輸問題。目前針對一對多的數據傳輸場景,在現有技術中并無直接可用的一對多的數據傳輸協議。相近似的協議有如下3個:(1)、基于 tcp 的 Ftp 協議;(2)、基于 udp 的 tftp 協議;(3)、scp 協議(Secure copy protocol)。
[0004]上述三種協議均為點到點的傳輸協議。然而,當面臨一對多的傳輸需求時:
[0005]首先,需要維護一份數據接收機的列表,然后依據列表通過FTP、tftp、SCP等點到點的數據傳輸方式進行串行的數據分發。由于為串行的數據分發,當一臺接收機阻塞,就會阻塞整個下發過程,從而降低數據傳輸效率。
[0006]而且,這種技術需要維護接收機列表,當新增或減少接收機時,都要修改這份列表,從而增加了運維量。
[0007]另外,接收機有遺漏時無法感知。而且,數據發送端的網絡帶寬無法全部利用,還存在帶寬浪費。
【發明內容】
[0008]本發明實施方式提出一種數據分發方法,以提高數據傳輸效率。
[0009]本發明實施方式還提出了一種數據分發系統,以提高數據傳輸效率。
[0010]本發明實施方式還提出了一種數據發送裝置,以提高數據傳輸效率。
[0011]本發明實施方式還提出了一種數據接收裝置,以提高數據傳輸效率。
[0012]本發明實施方式的具體方案如下:
[0013]一種數據分發方法,該方法包括:
[0014]從至少一個數據接收端并行接收各自發送的數據請求消息,所述數據請求消息包括請求數據描述字段;
[0015]向所述請求數據描述字段合法的數據接收端并行返回對應于所述請求數據描述字段的數據。
[0016]一種數據分發系統,包括:
[0017]至少一個數據接收端,用于向數據發送端并行發送各自的數據請求消息,所述數據請求消息包括請求數據描述字段;
[0018]數據發送端,用于向所述請求數據描述字段合法的數據接收端并行返回對應于所述請求數據描述字段的數據。
[0019]一種數據接收裝置,包括數據請求消息發送單元和數據接收單元,其中:
[0020]數據請求消息發送單元,用于創建數據請求消息,所述數據請求消息包括請求數據描述字段,并發送所述數據請求消息;
[0021]數據接收單元,用于接收對應于所述請求數據描述字段的數據,其中所述數據是當所述請求數據描述字段合法時并行返回的。
[0022]一種數據發送裝置,包括數據請求消息接收單元和數據發送單元,其中:
[0023]數據請求消息接收單元,用于從至少一個數據接收端并行接收各自發送的數據請求消息,所述數據請求消息包括請求數據描述字段;
[0024]數據發送單元,用于向所述請求數據描述字段合法的數據接收端并行返回對應于所述請求數據描述字段的數據。
[0025]從上述技術方案可以看出,在本發明實施方式中,從至少一個數據接收端并行接收各自發送的數據請求消息,所述數據請求消息包括請求數據描述字段;向所述請求數據描述字段合法的數據接收端并行返回對應于所述請求數據描述字段的數據。由此可見,應用本發明實施方式之后,數據發送端不保存數據傳輸狀態,對于數據接收端,都是獨占數據發送端的,各個數據接收端之間保持相互獨立,從而可以提高數據傳輸效率。
【附圖說明】
[0026]圖1為根據本發明實施方式數據分發方法流程圖;
[0027]圖2為根據本發明實施方式數據分發系統結構圖;
[0028]圖3為根據本發明實施方式數據分發系統的示范性結構圖;
[0029]圖4為根據本發明實施方式數據分發的消息流程示意圖;
[0030]圖5為根據本發明實施方式數據分發的消息流程的另一示意圖;
[0031]圖6為根據本發明實施方式數據接收裝置的結構圖;
[0032]圖7為根據本發明實施方式數據發送裝置的結構圖。
【具體實施方式】
[0033]為使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作進一步的詳細描述。
[0034]為了描述上的簡潔和直觀,下文通過描述若干代表性的實施方式來對本發明的方案進行闡述。實施方式中大量的細節僅用于幫助理解本發明的方案。但是很明顯,本發明的技術方案實現時可以不局限于這些細節。為了避免不必要地模糊了本發明的方案,一些實施方式沒有進行細致地描述,而是僅給出了框架。下文中,“包括”是指“包括但不限于”,“根據……”是指“至少根據……,但不限于僅根據……”。由于漢語的語言習慣,下文中沒有特別指出一個成分的數量時,意味著該成分可以是一個也可以是多個,或可理解為至少一個。
[0035]在本發明實施方式中,為解決對多機器下發數據資源(包括但不限于廣告訂單、dsp信息、廣告位信息、ip數據庫以及各種配置文件)的問題,通過設計基于Udp的應用層協議傳輸,來代替串行的使用ftp/tftp/scp協議下發數據的方案。
[0036]比如,在基于互聯網的各種應用中,后臺開發常會遇到這樣的需求:把某臺機器上的內存數據(如:某個寫完數據的內存數據表,某個建好索引排好序的數據結構)單向推送到其他機器的內存中。本發明實施方式提出一種新的單向內存傳輸服務,可以將寫入內存的數據直接單向的傳輸到分布式集群的內存上。基于本發明的一對多傳輸方法,能夠進行各種內存鏡像的快速分發,保證數據的一致性和應用的實時性,并提高分發的可靠性同時也大大降低了運維量。
[0037]圖1為根據本發明實施方式數據分發方法流程圖。
[0038]如圖1所示,該方法包括:
[0039]步驟101:從至少一個數據接收端并行接收各自發送的數據請求消息,所述數據請求消息包括請求數據描述字段。
[0040]步驟102:向所述請求數據描述字段合法的數據接收端并行返回對應于所述請求數據描述字段的數據。
[0041]在一個實施方式中,該方法進一步包括:
[0042]向所述請求數據描述字段不合法的數據接收端并行返回狀態重置消息,在所述狀態重置消息中包含數據描述信息;
[0043]接收所述狀態重置消息的數據接收端基于所述數據描述信息構建更新數據請求消息,所述更新的數據請求消息包括更新的請求數據描述字段;
[0044]接收所述更新的數據請求消息,并向所述更新的請求數據描述字段合法的數據接收端并行返回對應于所述更新的請求數據描述字段的數據。
[0045]在一個實施方式中,所述請求數據描述字段包括數據種類命令號、數據序號、數據類型和數據版本號;其中:
[0046]當所述數據種類命令號與已有數據的數據種類命令號相匹配,且所述數據序號、數據類型和數據版本號中至少有一個與已有數據的數據序號、數據類型和數據版本號不匹配時,判定所述請求數據描述字段不合法;和/或
[0047]當所述數據種類命令號與已有數據的數據種類命令號相匹配,且所述數據序號、數據類型和數據版本號分別與已有數據的數據序號、數據類型和數據版本號匹配時,判定所述請求數據描述字段合法。
[0048]在一個實施方式中,該方法進一步包括:
[0049]數據接收端每次接收完數據之后,在所述請求數據描述字段中遞增所述數據版本號以再次形成數據請求消息;
[0050]接收所述再次形成數據請求消息,并當存在對應于所述遞增數據版本號的數據時,返回對應于所述遞增數據版本號的數據,當不存在對應于所述遞增數據版本號的數據時,停止本流程。
[0051]在一個實施方式中,數據接收端分別維護自身的數據傳輸狀態信息。而且,數據傳輸狀態信息包括下列中的至少一個:
[0052](1)當前數據請求消息序號;
[0053](2)上一次發出數據請求消息的時間;
[0054](3)每個數據請求消息所期望的數據包個數;
[0055](4)當前的數據包是當前數據請求消息的第幾個包;
[0056](5)本次數據更新的時間。
[0057]基于上述分析,圖2為根據本發明實施方式數據分發系統結構圖。
[0058]如圖2所示,該數據分發系統包括:
[0059]至少一個數據接收端201,用于向數據發送端202并行發送各自的數據請求消息,所述