一種關注頁信息的分發(fā)裝置、方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種關注頁信息的分發(fā)裝置、方法和系統(tǒng),包括:數據處理模塊、緩存收件箱模塊和調度模塊;所述數據處理模塊設置為確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量,所述緩存收件箱模塊設置為根據所述用戶數量分別存儲所述發(fā)布信息,所述調度模塊設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,通過將關注頁的分發(fā)信息根據用戶數量分別存儲在每個用戶對應的緩存收件箱中,然后按照預定的時間間隔定期收集存儲后的發(fā)布信息進行分發(fā),使得能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息分發(fā)的速度和查詢服務,從而提高了用戶體驗度。
【專利說明】
一種關注頁信息的分發(fā)裝置、方法和系統(tǒng)
技術領域
[0001]本發(fā)明涉及移動互聯網高速存儲技術領域,尤指一種關注頁信息的分發(fā)裝置、方法和系統(tǒng)。
【背景技術】
[0002]目前,隨著移動互聯網的高速發(fā)展,已經進入大數據時代,對于關注頁架構都采用的是推模式來設計分發(fā)系統(tǒng),所謂的推模式,就是為每個用戶維護I個關注頁收件箱,假設I個用戶被1000個人關注,在該用戶發(fā)帖的時候會將發(fā)帖分發(fā)到關注該用戶的粉絲的收件箱,這樣的話查詢時候只要從收件箱中查詢,查詢性能非常高,一種典型的利用空間換時間的優(yōu)化方式,同時這樣相當于I份數據會變成1000份數據,需要短時間大量的寫入,這樣對快速信息共享的要求就越來越高。
[0003]現有技術中,采用的NoSQL數據庫MongoDB來存儲用戶的關注頁收件箱,但是MongoDB在大并發(fā)寫入的時候會出現高1和高CPU的情況,造成MongoDB集群處于高負載的情況,嚴重影響MongoDB寫入速度和對外查詢服務,降低了用戶的體驗度。
【發(fā)明內容】
[0004]為了解決上述技術問題,本發(fā)明提供了一種關注頁信息的分發(fā)裝置、方法和系統(tǒng),能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息的寫入速度和查詢服務,從而提高了用戶體驗度。
[0005]為了達到本發(fā)明目的,第一方面,本發(fā)明提供了一種關注頁信息的分發(fā)裝置,應用于服務器,包括:數據處理模塊、緩存收件箱模塊和調度模塊;
[0006]所述數據處理模塊,設置為確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量;
[0007]所述緩存收件箱模塊,設置為根據所述用戶數量分別存儲所述發(fā)布信息;
[0008]所述調度模塊,設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫。
[0009]本發(fā)明實施例提供了一種關注頁信息的分發(fā)裝置,包括:數據處理模塊、緩存收件箱模塊和調度模塊;所述數據處理模塊設置為確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量,所述緩存收件箱模塊設置為根據所述用戶數量分別存儲所述發(fā)布信息,所述調度模塊設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,通過將關注頁的分發(fā)信息根據用戶數量分別存儲在每個用戶對應的緩存收件箱中,然后按照預定的時間間隔定期收集存儲后的發(fā)布信息進行分發(fā),使得能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息分發(fā)的速度和查詢服務,從而提高了用戶體驗度。
[0010]在一個實施例中,所述緩存收件箱模塊還設置為在根據所述用戶數量分別存儲所述發(fā)布信息之前,還設置為:
[0011]根據所述用戶數量構建每個用戶對應的緩沖收件箱。
[0012]通過緩存收件箱模塊20根據所述用戶數量構建每個用戶對應的緩沖收件箱,從而便于將發(fā)布的信息的分發(fā)給對應的用戶,也便于后續(xù)可以查詢用戶所收到的信息。
[0013]在一個實施例中,所述緩存收件箱模塊設置為根據所述用戶數量分別存儲所述發(fā)布ig息,是指:
[0014]所述緩存收件箱模塊設置為根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱。
[0015]通過緩存收件箱模塊20根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱,從而便于快速地將多個發(fā)布的信息的分發(fā)給對應的用戶,便于后續(xù)可以查詢用戶所收到的信息。
[0016]在一個實施例中,所述調度模塊設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,是指:
[0017]所述調度模塊設置為每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫。
[0018]通過調度模塊每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫,即分批量對關注頁的發(fā)布信息進行大并發(fā)寫入,提高了存儲效率,減輕了系統(tǒng)的高負載狀
??τ O
[0019]在一個實施例中,該裝置還包括:分布式存儲數據庫模塊;
[0020]所述分布式存儲數據庫模塊,設置為永久存儲所收集的發(fā)布信息。
[0021]通過分布式存儲數據庫模塊永久存儲所收集的不同用戶關注的分布信息,從而便于用戶后續(xù)查詢,提高了用戶的滿意度。
[0022]第二方面,本發(fā)明提供了一種關注頁信息的分發(fā)方法,應用于服務器,包括:
[0023]確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量;
[0024]根據所述用戶數量分別存儲所述發(fā)布信息;
[0025]每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫。
[0026]本發(fā)明實施例提供了一種關注頁信息的分發(fā)方法,包括:確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量,根據所述用戶數量分別存儲所述發(fā)布信息,每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,通過將關注頁的分發(fā)信息根據用戶數量分別存儲在每個用戶對應的緩存收件箱中,然后按照預定的時間間隔定期收集存儲后的發(fā)布信息進行分發(fā),使得能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息分發(fā)的速度和查詢服務,從而提高了用戶體驗度。
[0027]在一個實施例中,在根據所述用戶數量分別存儲所述發(fā)布信息之前,還包括:
[0028]根據所述用戶數量構建每個用戶對應的緩沖收件箱。
[0029]通過根據所述用戶數量構建每個用戶對應的緩沖收件箱,從而便于將發(fā)布的信息的分發(fā)給對應的用戶,便于后續(xù)可以查詢用戶所收到的信息。
[0030]在一個實施例中,根據所述用戶數量分別存儲所述發(fā)布信息,包括:
[0031]根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱。
[0032]通過根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱,從而便于快速地將多個發(fā)布的信息的分發(fā)給對應的用戶,便于后續(xù)可以查詢用戶所收到的信息。
[0033]在一個實施例中,每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,包括:
[0034]每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫。
[0035]通過每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫,即分批量對關注頁的發(fā)布信息進行大并發(fā)寫入,提高了存儲效率,減輕了系統(tǒng)的高負載狀態(tài)。
[0036]在一個實施例中,所述方法還包括:
[0037]永久存儲所收集的發(fā)布信息。
[0038]通過永久存儲所收集的不同用戶關注的分布信息,從而便于用戶后續(xù)查詢,提高了用戶的滿意度。
[0039]第三方面,本發(fā)明本發(fā)明提供了一種關注頁信息的分發(fā)系統(tǒng),所述系統(tǒng)包括上述實施例中任一項關注頁信息的分發(fā)裝置和移動終端。
[0040]本發(fā)明實施例提供一種關注頁信息的分發(fā)系統(tǒng),所述系統(tǒng)包括實施例中任一項關注頁信息的分發(fā)裝置和移動終端,通過關注頁信息的分發(fā)系統(tǒng)將關注頁的分發(fā)信息根據用戶數量分別存儲在每個用戶對應的緩存收件箱中,然后按照預定的時間間隔定期收集存儲后的發(fā)布信息進行分發(fā),使得能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息分發(fā)的速度和查詢服務,從而提高了用戶體驗度。
[0041]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。
【附圖說明】
[0042]附圖用來提供對本發(fā)明技術方案的進一步理解,并且構成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術方案,并不構成對本發(fā)明技術方案的限制。
[0043]圖1為實現本發(fā)明提供的一種關注頁信息的分發(fā)系統(tǒng)各個實施例一個可選的移動終端的硬件結構示意圖;
[0044]圖2為本發(fā)明提供的一種關注頁信息的分發(fā)裝置實施例一的結構示意圖;
[0045]圖3為本發(fā)明提供的一種關注頁信息的分發(fā)裝置實施例一的緩沖收件箱的結構示意圖;
[0046]圖4為本發(fā)明提供的一種關注頁信息的分發(fā)方法實施例一的流程示意圖;
[0047]圖5為本發(fā)明提供的一種關注頁信息的分發(fā)系統(tǒng)實施例一的流程示意圖。
[0048]本發(fā)明目的的實現、功能特點及優(yōu)點將結合實施例,參照附圖做進一步說明。
【具體實施方式】
[0049]應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0050]現在將參考附圖描述實現本發(fā)明各個實施例的移動終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
[0051]移動終端可以以各種形式來實施。例如,本發(fā)明中描述的終端可以包括諸如移動電話、智能電話、筆記本電腦、數字廣播接收器、PDA(個人數字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導航裝置等等的移動終端以及諸如數字TV、臺式計算機等等的固定終端。下面,假設終端是移動終端。然而,本領域技術人員將理解的是,除了特別用于移動目的的元件之外,根據本發(fā)明的實施方式的構造也能夠應用于固定類型的終端。
[0052]圖1為實現本發(fā)明提供的一種關注頁信息的分發(fā)系統(tǒng)各個實施例的移動終端一個可選的硬件結構示意圖。
[0053]移動終端100可以包括無線通信單元110、用戶輸入單元130、存儲器160、控制器180和電源單元190等等。圖1示出了具有各種組件的移動終端,但是應理解的是,并不要求實施所有示出的組件??梢蕴娲貙嵤└嗷蚋俚慕M件。將在下面詳細描述移動終端的元件。
[0054]無線通信單元110通常包括一個或多個組件,其允許移動終端100與無線通信系統(tǒng)或網絡之間的無線電通信。例如,無線通信單元可以包括廣播接收模塊111、移動通信模塊112、無線互聯網模塊113和短程通信模塊114中的至少一個。
[0055]廣播接收模塊111經由廣播信道從外部廣播管理服務器接收廣播信號和/或廣播相關信息。廣播信道可以包括衛(wèi)星信道和/或地面信道。廣播管理服務器可以是生成并發(fā)送廣播信號和/或廣播相關信息的服務器或者接收之前生成的廣播信號和/或廣播相關信息并且將其發(fā)送給終端的服務器。廣播信號可以包括TV廣播信號、無線電廣播信號、數據廣播信號等等。而且,廣播信號可以進一步包括與TV或無線電廣播信號組合的廣播信號。廣播相關信息也可以經由移動通信網絡提供,并且在該情況下,廣播相關信息可以由移動通信模塊112來接收。廣播信號可以以各種形式存在,例如,其可以以數字多媒體廣播(DMB)的電子節(jié)目指南(EPG)、數字視頻廣播手持(DVB-H)的電子服務指南(ESG)等等的形式而存在。廣播接收模塊111可以通過使用各種類型的廣播系統(tǒng)接收信號廣播。特別地,廣播接收模塊111可以通過使用諸如多媒體廣播-地面(DMB-T)、數字多媒體廣播-衛(wèi)星(DMB-S)、數字視頻廣播-手持(DVB-H),前向鏈路媒體(MediaFLO?)的數據廣播系統(tǒng)、地面數字廣播綜合服務(ISDB-T)等等的數字廣播系統(tǒng)接收數字廣播。廣播接收模塊111可以被構造為適合提供廣播信號的各種廣播系統(tǒng)以及上述數字廣播系統(tǒng)。經由廣播接收模塊111接收的廣播信號和/或廣播相關信息可以存儲在存儲器160(或者其它類型的存儲介質)中。
[0056]移動通信模塊112將無線電信號發(fā)送到基站(例如,接入點、節(jié)點B等等)、外部終端以及服務器中的至少一個和/或從其接收無線電信號。這樣的無線電信號可以包括語音通話信號、視頻通話信號、或者根據文本和/或多媒體消息發(fā)送和/或接收的各種類型的數據。
[0057]無線互聯網模塊113支持移動終端的無線互聯網接入。該模塊可以內部或外部地耦接到終端。該模塊所涉及的無線互聯網接入技術可以包括WLAN(無線LAN)(W1-Fi)、Wibro(無線寬帶)、Wimax(全球微波互聯接入)、HSDPA(高速下行鏈路分組接入)等等。
[0058]短程通信模塊114是用于支持短程通信的模塊。短程通信技術的一些示例包括藍牙?、射頻識別(RFID)、紅外數據協(xié)會(IrDA)、超寬帶(UWB)、紫蜂?等等。
[0059]用戶輸入單元130可以根據用戶輸入的命令生成鍵輸入數據以控制移動終端的各種操作。用戶輸入單元130允許用戶輸入各種類型的信息,并且可以包括鍵盤、鍋仔片、觸摸板(例如,檢測由于被接觸而導致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當觸摸板以層的形式疊加在顯示單元151上時,可以形成觸摸屏。
[0060]存儲器160可以存儲由控制器180執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時地存儲己經輸出或將要輸出的數據(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。而且,存儲器160可以存儲關于當觸摸施加到觸摸屏時輸出的各種方式的振動和音頻信號的數據。
[0061]存儲器160可以包括至少一種類型的存儲介質,所述存儲介質包括閃存、硬盤、多媒體卡、卡型存儲器(例如,SD或DX存儲器等等)、隨機訪問存儲器(RAM)、靜態(tài)隨機訪問存儲器(SRAM)、只讀存儲器(R0M)、電可擦除可編程只讀存儲器(EEPROM)、可編程只讀存儲器(PROM)、磁性存儲器、磁盤、光盤等等。而且,移動終端100可以與通過網絡連接執(zhí)行存儲器160的存儲功能的網絡存儲裝置協(xié)作。
[0062]控制器180通??刂埔苿咏K端的總體操作。例如,控制器180執(zhí)行與語音通話、數據通信、視頻通話等等相關的控制和處理。另外,控制器180可以包括用于再現(或回放)多媒體數據的多媒體模塊1810,多媒體模塊1810可以構造在控制器180內,或者可以構造為與控制器180分離??刂破?80可以執(zhí)行模式識別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識別為字符或圖像。
[0063]電源單元190在控制器180的控制下接收外部電力或內部電力并且提供操作各元件和組件所需的適當的電力。
[0064]這里描述的各種實施方式可以以使用例如計算機軟件、硬件或其任何組合的計算機可讀介質來實施。對于硬件實施,這里描述的實施方式可以通過使用特定用途集成電路(ASIC)、數字信號處理器(DSP)、數字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設計為執(zhí)行這里描述的功能的電子單元中的至少一種來實施,在一些情況下,這樣的實施方式可以在控制器180中實施。對于軟件實施,諸如過程或功能的實施方式可以與允許執(zhí)行至少一種功能或操作的單獨的軟件模塊來實施。軟件代碼可以由以任何適當的編程語言編寫的軟件應用程序(或程序)來實施,軟件代碼可以存儲在存儲器160中并且由控制器180執(zhí)行。
[0065]至此,己經按照其功能描述了移動終端。下面,為了簡要起見,將描述諸如折疊型、直板型、擺動型、滑動型移動終端等等的各種類型的移動終端中的滑動型移動終端作為示例。因此,本發(fā)明能夠應用于任何類型的移動終端,并且不限于滑動型移動終端。
[0066]本發(fā)明實施例主要應用于分發(fā)上述移動終端關注頁發(fā)布信息的服務器,該服務器可以是計算機、服務器等,該移動終端可以是智能手機、智能手表、手持機、平板電腦等,但并不以此為限。
[0067]本發(fā)明實施例涉及的裝置和方法,旨在解決現有技術中采用的NoSQL數據庫MongoDB來存儲用戶的關注頁收件箱,但是MongoDB在大并發(fā)寫入的時候會出現高1和高CHJ的情況,造成MongoDB集群處于高負載的情況,嚴重影響MongoDB寫入速度和對外查詢服務,降低了用戶的體驗度的技術問題。
[0068]下面以具體地實施例對本發(fā)明的技術方案進行詳細說明。下面這幾個具體的實施例可以相互結合,對于相同或相似的概念或過程可能在某些實施例不再贅述。
[0069]圖2為本發(fā)明提供的一種關注頁信息的分發(fā)裝置實施例一的結構示意圖,如圖2所示,該裝置應用于服務器,包括:數據處理模塊10、緩存收件箱模塊20和調度模塊30;
[0070]所述數據處理模塊10,設置為確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量。
[0071]具體的,數據處理模塊10會在用戶通過移動終端,諸如手機、平板電腦等進行操作關注頁發(fā)布信息的時候,確定所述關注頁有新的信息發(fā)布時,就會查詢該關注頁對應的粉絲用戶數量,例如:央視的微信公眾號,當該賬號發(fā)布文章或者短信息的時候,會查詢該賬號的粉絲用戶數量,如果央視的微信公眾號有100萬粉絲用戶,則會以分頁的方式查詢出這100萬粉絲的賬號,查詢該用戶被多少人關注,將關注該用戶粉絲以分頁的方式查詢出來,但并不限于此。
[0072]所述緩存收件箱模塊20,設置為根據所述用戶數量分別存儲所述發(fā)布信息。
[0073]具體的,該緩存收件箱模塊20可以是Redis(基于內存的Key-Value存儲系統(tǒng))來做數據緩沖,采用Redis的list結構進行構建緩沖收件箱,會為每個粉絲用戶構建緩沖收件箱,并對用戶和關注頁發(fā)布的信息進行編號,圖3為本發(fā)明提供的一種關注頁信息的分發(fā)裝置實施例一的緩沖收件箱的結構示意圖,如圖3所示,例如:key為用戶i d,I i st中儲存了用戶收到的信息識別碼(postld),然后分別緩存到發(fā)布信息的每個粉絲用戶的Redis緩沖收件箱中,其中,每個粉絲用戶可以對應一個Key,例如:Key名是“userid: 12121”,postId將會push到list的左側,但并不限于此。
[0074]所述調度模塊30,設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫。
[0075]具體的,所述調度模塊30可以采用Quartz來實現,Quartz是個定時調度任務框架,只要通過簡單的配置就能實現定時調度,可以每次按照預定的時間間隔定時從Redis集群中查詢數據,其中,該預定的時間間隔可以根據實際情況來定,如每隔6個小時,或者12個小時等等,啟動Quartz后,將會查詢出所有的用戶ID,遍歷用戶ID,將用戶ID組裝成key(userid: 123232)在Redis中收集到預定數量的數據可以循環(huán)定時進行分發(fā),將分發(fā)后的發(fā)布信息持久化寫入分布式存儲數據庫中去,但并不限于此。
[0076]本發(fā)明實施例提供了一種關注頁信息的分發(fā)裝置,包括:數據處理模塊、緩存收件箱模塊和調度模塊;所述數據處理模塊設置為確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量,所述緩存收件箱模塊設置為根據所述用戶數量分別存儲所述發(fā)布信息,所述調度模塊設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,通過將關注頁的分發(fā)信息根據用戶數量分別存儲在每個用戶對應的緩存收件箱中,然后按照預定的時間間隔定期收集存儲后的發(fā)布信息進行分發(fā),使得能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息分發(fā)的速度和查詢服務,從而提高了用戶體驗度。
[0077]進一步地,在上述實施例的基礎上,所述緩存收件箱模塊20設置為在根據所述用戶數量分別存儲所述發(fā)布信息之前,還設置為:
[0078]根據所述用戶數量構建每個用戶對應的緩沖收件箱。
[0079]具體的,所述緩存收件箱模塊20可以是Redis來創(chuàng)建緩沖收件箱,該Redis可以采用list結構進行構建緩沖收件箱,如圖3所示,對發(fā)布信息的粉絲用戶都進行編號,可以用key表示用戶的ID,根據用戶的編號構建對應的緩沖收件箱,即每一個用戶對應一個緩沖收件箱,但并不限于此。
[0080]通過緩存收件箱模塊20根據所述用戶數量構建每個用戶對應的緩沖收件箱,從而便于將發(fā)布的信息的分發(fā)給對應的用戶,也便于后續(xù)可以查詢用戶所收到的信息。
[0081]進一步地,在上述實施例的基礎上,所述緩存收件箱模塊20設置為根據所述用戶數量分別存儲所述發(fā)布信息,是指:
[0082]所述緩存收件箱模塊20設置為根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱。
[0083]具體的,所述緩存收件箱模塊20可以是Redis,該Redis會根據粉絲用戶數量確定緩沖收件箱的數量,保證粉絲用戶與緩沖收件箱一一對應,該Redis可以采用list結構進行構建緩沖收件箱,如圖3所示,并對所接收到的發(fā)布信息進行編號(postld),分別寫入到每個粉絲用戶的Redis緩沖收件箱中,例如:Key名是“userid: 12121”,postld將會push到list的左側,但并不限于此。
[0084]通過緩存收件箱模塊20根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱,從而便于快速地將多個發(fā)布的信息的分發(fā)給對應的用戶,便于后續(xù)可以查詢用戶所收到的信息。
[0085]進一步地,在上述實施例的基礎上,所述調度模塊30設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,是指:
[0086]所述調度模塊30設置為每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫。
[0087]具體的,該調度模塊30可以采用Quartz來實現信息的調度,Quartz是個定時調度任務框架,只要通過簡單的配置就能實現定時調度,這樣可以按照預定的時間間隔從Redis的緩沖收件箱中查詢分發(fā)給每個粉絲用戶的分布信息,其中,預定的時間間隔可以根據實際情況來自行配置,收集每個粉絲用戶在預定的時間間隔內的接收到的發(fā)布信息寫入分布式存儲數據庫,例如:假設6個小時內對每個粉絲用戶進行了 100次分發(fā),如果有100萬用戶,就有I億次的分發(fā),這種分發(fā)量如果扛到MongoDB層面會造成巨大的壓力,如果將6個小時內的100次分發(fā)的數據組裝成一次數據寫入,寫入次數就降低到100萬次,極大的降低了MongoDB的壓力,但并不限于此。
[0088]通過調度模塊每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫,即分批量對關注頁的發(fā)布信息進行大并發(fā)寫入,提高了存儲效率,減輕了系統(tǒng)的高負載狀
??τ O
[0089]進一步地,在上述實施例的基礎上,該裝置還包括:分布式存儲數據庫模塊40;
[0090]所述分布式存儲數據庫模塊40,設置為永久存儲所收集的發(fā)布信息。
[0091]具體的,所述分布式存儲數據庫模塊40可以是MongoDB集群,可以持久化存儲數據,起到了數據持久化的作用,其中,在MongoDB中的數據結構如下:
[0092]{
[0093]userid:232781,
[0094]postlds:[12121,28990,28789,90890,809809]
[0095]},
[0096]通過分布式存儲數據庫模塊40永久存儲所收集的不同用戶關注的分布信息,從而便于用戶后續(xù)查詢,提高了用戶的滿意度。
[0097]圖4為本發(fā)明提供的一種關注頁信息的分發(fā)方法實施例一的流程示意圖,如圖4所示,該方法應用于服務器,包括:
[0098]S101、確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量。
[0099]具體的,在用戶通過移動終端,諸如手機、平板電腦等進行操作關注頁發(fā)布信息的時候,確定所述關注頁有新的信息發(fā)布時,就會查詢該關注頁對應的粉絲用戶數量,如果央視的微信公眾號有100萬粉絲用戶,則會以分頁的方式查詢出這100萬粉絲的賬號,查詢該用戶被多少人關注,將關注該用戶粉絲以分頁的方式查詢出來,將央視的微信公眾號發(fā)布的文章或者短信息批量寫入到緩存收件箱中去,但并不限于此。
[0100]S102、構建用戶的緩沖收件箱,根據所述用戶數量分別存儲所述發(fā)布信息。
[0101]具體的,該緩存收件箱模塊20可以是Redis(基于內存的Key-Value存儲系統(tǒng))來做數據緩沖,采用Redis的list結構進行構建緩沖收件箱,會為每個粉絲用戶構建緩沖收件箱,并對用戶和關注頁發(fā)布的信息進行編號,如圖3所示,例如:key為用戶id,list中儲存了用戶收到的信息識別碼(postld),然后分別緩存到發(fā)布信息的每個粉絲用戶的Redis緩沖收件箱中,其中,每個粉絲用戶可以對應一個Key,例如:Key名是“userid: 12121”,postld將會push到list的左側,但并不限于此。
[0102]S103、每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫。
[0?03] 具體的,可以采用Quartz來實現,Quartz是個定時調度任務框架,只要通過簡單的配置就能實現定時調度,可以每次按照預定的時間間隔定時從Redis集群中查詢數據,其中,該預定的時間間隔可以根據實際情況來定,如每隔6個小時,或者12個小時等等,啟動Quartz后,將會查詢出所有的用戶ID,遍歷用戶ID,將用戶ID組裝成key(uSerId:123232)在Redis中收集到預定數量的數據可以循環(huán)定時進行分發(fā),將分發(fā)后的發(fā)布信息持久化寫入分布式存儲數據庫中去,但并不限于此。
[0104]本發(fā)明實施例提供了一種關注頁信息的分發(fā)方法,包括:確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量,根據所述用戶數量分別存儲所述發(fā)布信息,每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,通過將關注頁的分發(fā)信息根據用戶數量分別存儲在每個用戶對應的緩存收件箱中,然后按照預定的時間間隔定期收集存儲后的發(fā)布信息進行分發(fā),使得能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息分發(fā)的速度和查詢服務,從而提高了用戶體驗度。
[0105]進一步地,在上述實施例的基礎上,在根據所述用戶數量分別存儲所述發(fā)布信息之前,還包括:
[0106]對每個用戶進行編號,根據用戶的編號構建對應的緩沖收件箱。
[0?07]具體的,可以是Redis來創(chuàng)建緩沖收件箱,該Redis可以采用list結構進行構建緩沖收件箱,如圖3所示,對發(fā)布信息的粉絲用戶都進行編號,可以用key表示用戶的ID,根據用戶的編號構建對應的緩沖收件箱,即每一個用戶對應一個緩沖收件箱,但并不限于此。
[0108]通過根據所述用戶數量構建每個用戶對應的緩沖收件箱,從而便于將發(fā)布的信息的分發(fā)給對應的用戶,便于后續(xù)可以查詢用戶所收到的信息。
[0109]進一步地,在上述實施例的基礎上,根據所述用戶數量分別存儲所述發(fā)布信息,包括:
[0110]根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱。
[0111]具體的,可以是Redis,該Redis會根據粉絲用戶數量確定緩沖收件箱的數量,保證粉絲用戶與緩沖收件箱一一對應,該Redis可以采用list結構進行構建緩沖收件箱,如圖3所示,并對所接收到的發(fā)布信息進行編號(postld),分別寫入到每個粉絲用戶的Redis緩沖收件箱中,例如:Key名是“userid: 12121”,postld將會push到list的左側,但并不限于此。
[0112]通過根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱,從而便于快速地將多個發(fā)布的信息的分發(fā)給對應的用戶,便于后續(xù)可以查詢用戶所收到的信息。
[0113]進一步地,在上述實施例的基礎上,每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,包括:
[0114]每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫。
[0115]具體的,可以采用Quartz來實現信息的調度,Quartz是個定時調度任務框架,只要通過簡單的配置就能實現定時調度,這樣可以按照預定的時間間隔從Redis的緩沖收件箱中查詢分發(fā)給每個粉絲用戶的分布信息,其中,預定的時間間隔可以根據實際情況來自行配置,收集每個粉絲用戶在預定的時間間隔內的接收到的發(fā)布信息寫入分布式存儲數據庫,例如:假設6個小時內對每個粉絲進行了 100次分發(fā),如果有100萬用戶,就有I億次的分發(fā),這種分發(fā)量如果扛到MongoDB層面會造成巨大的壓力,如果將6個小時內的100次分發(fā)的數據組裝成一次數據寫入,寫入次數就降低至IjlOO萬次,極大的降低了 MongoDB的壓力,但并不限于此。
[0116]通過每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫,即分批量對關注頁的發(fā)布信息進行大并發(fā)寫入,提高了存儲效率,減輕了系統(tǒng)的高負載狀態(tài)。
[0117]進一步地,在上述實施例的基礎上,該方法還包括:永久存儲所抽取的不同用戶關注的分布信息。
[0118]具體的,可以通過MongoDB集群作為分布式存儲數據庫,可以持久化存儲數據,起到了數據持久化的作用,其中,在MongoDB中的數據結構如下:
[0119]{
[0120]userld:232781,
[0121]postlds:[12121,28990,28789,90890,809809]
[0122]},
[0123]通過永久存儲所收集的不同用戶關注的分布信息,從而便于用戶后續(xù)查詢,提高了用戶的滿意度。
[0124]本發(fā)明實施例提供一種關注頁信息的分發(fā)系統(tǒng),所述系統(tǒng)包括上述實施例中任一項關注頁信息的分發(fā)裝置和移動終端。
[0125]具體的,對于關注頁信息的分發(fā)系統(tǒng)中包括關注頁信息的分發(fā)裝置的服務器和移動終端的交互的過程,下面舉例進行詳細說明:
[0126]圖5為本發(fā)明提供的一種關注頁信息的分發(fā)系統(tǒng)實施例一的流程示意圖,如圖所示,假設央視有10萬粉絲在關注的微信公眾號,可以使用手機或者平板電腦等移動終端100上在微信公眾號上發(fā)布了很多關于國內外最新發(fā)生的新聞信息,這些消息會通過手機或者平板電腦的通信模塊發(fā)送給有關注頁信息的分發(fā)裝置的服務器200,由關注頁信息的分發(fā)裝置的數據處理模塊查詢該央視的微信公眾號的關注粉絲數量,根據粉絲數量將所發(fā)布的新聞信息發(fā)送給粉絲的緩沖收件箱中,再通過關注頁信息的分發(fā)裝置的緩沖模塊根據該央視的微信公眾號的關注粉絲數量構建每一個關注粉絲的緩沖收件箱,緩存該央視的微信公眾號發(fā)布的信息,再關注頁信息的分發(fā)裝置的調度模塊收集該該央視的微信公眾號的每個關注粉絲的緩沖收件箱中預定的信息數量的發(fā)布信息,比如可以每間隔6個小時對每個粉絲的緩沖收件箱中的收到的發(fā)布信息寫入分布式存儲數據庫,作為永久保存,后續(xù)關注粉絲通過手機或者平板電腦等移動終端可以查看到央視公眾號發(fā)布的所有信息。
[0127]本發(fā)明實施例提供一種關注頁信息的分發(fā)系統(tǒng),所述系統(tǒng)包括實施例中任一項關注頁信息的分發(fā)裝置和移動終端,通過關注頁信息的分發(fā)系統(tǒng)將關注頁的分發(fā)信息根據用戶數量分別存儲在每個用戶對應的緩存收件箱中,然后按照預定的時間間隔定期收集存儲后的發(fā)布信息進行分發(fā),使得能夠對關注頁信息進行大并發(fā)寫入的時候減輕系統(tǒng)的高負載狀態(tài),提高了關注頁信息分發(fā)的速度和查詢服務,從而提高了用戶體驗度。
[0128]需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0129]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0130]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,月艮務器,空調器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
[0131]以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發(fā)明的專利保護范圍內。
【主權項】
1.一種關注頁信息的分發(fā)裝置,應用于服務器,其特征在于,包括:數據處理模塊、緩存收件箱模塊和調度模塊; 所述數據處理模塊,設置為確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量; 所述緩存收件箱模塊,設置為根據所述用戶數量分別存儲所述發(fā)布信息; 所述調度模塊,設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫。2.根據權利要求1所述的裝置,其特征在于,所述緩存收件箱模塊還設置為在根據所述用戶數量分別存儲所述發(fā)布信息之前,還設置為: 根據所述用戶數量構建每個用戶對應的緩沖收件箱。3.根據權利要求2所述的裝置,其特征在于,所述緩存收件箱模塊設置為根據所述用戶數量分別存儲所述發(fā)布信息,是指: 所述緩存收件箱模塊設置為根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱。4.根據權利要求1所述的裝置,其特征在于,所述調度模塊設置為每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,是指: 所述調度模塊設置為每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫。5.根據權利要求1所述的裝置,其特征在于,該裝置還包括:分布式存儲數據庫模塊; 所述分布式存儲數據庫模塊,設置為永久存儲所收集的發(fā)布信息。6.—種關注頁信息的分發(fā)方法,應用于服務器,其特征在于,包括: 確定所述關注頁發(fā)布信息時,查詢所述關注頁發(fā)布信息的用戶數量; 根據所述用戶數量分別存儲所述發(fā)布信息; 每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫。7.根據權利要求6所述的方法,其特征在于,在根據所述用戶數量分別存儲所述發(fā)布信息之前,還包括: 根據所述用戶數量構建每個用戶對應的緩沖收件箱。8.根據權利要求6所述的方法,其特征在于,根據所述用戶數量分別存儲所述發(fā)布信息,包括: 根據所述用戶數量確定對應的緩沖收件箱數量,將所述發(fā)布信息進行編號后按照預定的順序分別存儲到每個用戶的緩沖收件箱。9.根據權利要求6所述的方法,其特征在于,每次按照預定的時間間隔收集存儲后的發(fā)布信息分別寫入分布式存儲數據庫,包括: 每次按照預定的時間間隔查詢每個用戶的緩沖收件箱,收集每個用戶的緩沖收件箱中在所述預定的時間間隔內存儲的發(fā)布信息分別寫入分布式存儲數據庫。10.根據權利要求6所述的方法,其特征在于,所述方法還包括: 永久存儲所收集的發(fā)布信息。11.一種關注頁信息的分發(fā)系統(tǒng),其特征在于,所述系統(tǒng)包括上述1-5任一項關注頁信息的分發(fā)裝置和移動終端。
【文檔編號】H04L29/08GK105897440SQ201610214688
【公開日】2016年8月24日
【申請日】2016年4月7日
【發(fā)明人】劉孟焱
【申請人】努比亞技術有限公司