一種社交網(wǎng)站Feed流推送方法
【專利摘要】本發(fā)明涉及社交網(wǎng)站【技術(shù)領(lǐng)域】,具體公開了一種社交網(wǎng)站Feed流推送方法;包括:客戶端提交或變更SNS社交網(wǎng)站的動(dòng)態(tài)信息的Feed流數(shù)據(jù);動(dòng)態(tài)信息進(jìn)行數(shù)據(jù)入庫,先將數(shù)據(jù)插入Newsfeed表中,生成對(duì)應(yīng)的短鏈接字符ID,對(duì)應(yīng)的短鏈接字符ID匹配動(dòng)態(tài)信息對(duì)應(yīng)內(nèi)容模版ID和對(duì)應(yīng)TypeID;然后將數(shù)據(jù)插入到客戶端自己的TimeLine表中;調(diào)用異步消息隊(duì)列服務(wù),按照客戶端的粉絲列表,將動(dòng)態(tài)信息的數(shù)據(jù)實(shí)時(shí)分發(fā)給粉絲列表中每一位粉絲ID下的TimeLine表中。本發(fā)明使網(wǎng)友在訪問網(wǎng)站時(shí)保持流暢、動(dòng)態(tài)、及時(shí)和準(zhǔn)確,給網(wǎng)友提供優(yōu)越的用戶體驗(yàn),增加了網(wǎng)站訪問量和用戶量。
【專利說明】一種社交網(wǎng)站Feed流推送方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及社交網(wǎng)站【技術(shù)領(lǐng)域】,尤其是涉及一種社交網(wǎng)站Feed流推送方法。
【背景技術(shù)】
[0002]SNS泛指社會(huì)性網(wǎng)絡(luò)服務(wù),旨在幫助人們建立社會(huì)性網(wǎng)絡(luò)的互聯(lián)網(wǎng)應(yīng)用服務(wù)。SNS社交網(wǎng)站,全稱Social Network Site,是面向社會(huì)性網(wǎng)絡(luò)的互聯(lián)網(wǎng)服務(wù),通過“熟人的熟人”來進(jìn)行網(wǎng)絡(luò)社交拓展。SNS社交網(wǎng)站是依據(jù)六度分隔理論建立的網(wǎng)站,六度分隔理論簡單地說就是:“你和任何一個(gè)陌生人之間所間隔的人不會(huì)超過六個(gè),也就是說,最多通過六個(gè)人你就能夠認(rèn)識(shí)任何一個(gè)陌生人?!卑凑樟确指衾碚?,每個(gè)個(gè)體的社交圈都不斷放大,最后成為Iv大型網(wǎng)絡(luò)。
[0003]SNS社交網(wǎng)站具有聞度的黏粘性和及時(shí)性,人和人的關(guān)系比較復(fù)雜;為了能將一個(gè)網(wǎng)友的動(dòng)態(tài)及時(shí)、準(zhǔn)確的展示給相關(guān)人群以提高該網(wǎng)友的關(guān)注度,web服務(wù)器需要同時(shí)處理大量的動(dòng)態(tài)數(shù)據(jù),從而影響了 web服務(wù)器的性能,導(dǎo)致網(wǎng)友訪問網(wǎng)站出現(xiàn)慢、卡、死等現(xiàn)象。如何能將網(wǎng)友的動(dòng)態(tài)及時(shí)、準(zhǔn)確的展示給相關(guān)人群而不影響web服務(wù)器的性能,目前還沒有有效的解決方案。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所解決的技術(shù)問題是提供一種社交網(wǎng)站Feed流推送方法,本發(fā)明將以MongoDB作為數(shù)據(jù)庫,利用異步Memcache Q消息隊(duì)列調(diào)用Windows服務(wù)分發(fā)用戶產(chǎn)生動(dòng)態(tài),解決了 SNS網(wǎng)站不能及時(shí)的將網(wǎng)友動(dòng)態(tài)展示給相關(guān)人群以提高該網(wǎng)友的關(guān)注度,同時(shí)因web服務(wù)器處理大量動(dòng)態(tài)數(shù)據(jù)而影響web服務(wù)器性能,導(dǎo)致用戶訪問網(wǎng)站出現(xiàn)慢、卡、死等問題。本發(fā)明使網(wǎng)友在訪問網(wǎng)站時(shí)保持流暢、動(dòng)態(tài)、及時(shí)和準(zhǔn)確,給網(wǎng)友提供優(yōu)越的用戶體驗(yàn),增加了網(wǎng)站訪問量和用戶量。
[0005]為了解決上述技術(shù)問題,本發(fā)明提供了一種社交網(wǎng)站Feed流推送方法;包括:
[0006]步驟一:客戶端提交或變更SNS社交網(wǎng)站的動(dòng)態(tài)信息的Feed流數(shù)據(jù);
[0007]步驟二:所述動(dòng)態(tài)信息進(jìn)行數(shù)據(jù)入庫,先將所述數(shù)據(jù)插入Newsfeed表中,生成對(duì)應(yīng)的短鏈接字符ID,對(duì)應(yīng)的所述短鏈接字符ID匹配所述動(dòng)態(tài)信息對(duì)應(yīng)內(nèi)容模版ID和對(duì)應(yīng)TypeID ;然后將所述數(shù)據(jù)插入到所述客戶端自己的TimeLine表中;
[0008]步驟三:調(diào)用異步消息隊(duì)列服務(wù),按照所述客戶端的粉絲列表,將所述動(dòng)態(tài)信息的所述數(shù)據(jù)實(shí)時(shí)分發(fā)給所述粉絲列表中每一位粉絲ID下的TimeLine表中。
[0009]優(yōu)選地,所述Feed流包括圖片流、視頻流和音頻流。
[0010]更加優(yōu)選地,所述Timeline表存儲(chǔ)最近的1000條,所述Timeline表中字段Index存儲(chǔ)O到999的索引值。
[0011]更加優(yōu)選地,所述客戶端更新所述動(dòng)態(tài)信息時(shí),所述Timeline表從O?999 一次循環(huán)更新,獲取或設(shè)置所述Timeline表中數(shù)據(jù)的索引位置,對(duì)所述動(dòng)態(tài)信息進(jìn)行覆蓋操作,保持存儲(chǔ)所述客戶端的1000條最近的所述動(dòng)態(tài)信息。
[0012]更加優(yōu)選地,所述客戶端更新所述動(dòng)態(tài)信息時(shí),當(dāng)插入一條所述Timeline表中數(shù)據(jù)i,則所述字段Index自增I,然后求余1000,得到Timeline表中的字段Index的值。
[0013]更加優(yōu)選地,所述步驟三中,所述動(dòng)態(tài)信息存儲(chǔ)在MongoDB數(shù)據(jù)庫中。
[0014]更加優(yōu)選地,所述步驟三中,調(diào)用異步消息隊(duì)列服務(wù)時(shí),采用MemcacheQ消息隊(duì)列服務(wù)器。
[0015]其中,所述Feed流是指客戶端產(chǎn)生的動(dòng)態(tài)流;所述Newsfeed是Facebook3月8日發(fā)布的以重新設(shè)計(jì)后的最新信息流,這是該公司到目前為止對(duì)這項(xiàng)功能做出的重要改動(dòng),新版信息流將突出照片和音樂類內(nèi)容,一位Facebook社交廣告部門員工透露,用戶將在新版信息流中看到更大尺寸的圖片。用戶可以看到好友上傳到Facebook和Instagram的照片,照片展示方式可能會(huì)加入"全屏"功能。音樂流中則將包括好友正在聽的音樂信息,以及附近地區(qū)的音樂會(huì)和藝人上傳的信息。
[0016]其中,所述Timeline的中文譯文是時(shí)間軸、時(shí)光軸,時(shí)間線等,它是一種新興的展現(xiàn)方式,以時(shí)間軸的形式展現(xiàn)分享,讓用戶更直觀的看到自己想要的信息,Timeline的展現(xiàn)形式的多種多樣,能夠讓網(wǎng)友更加直觀的看到,我的這一刻在做什么,那一刻做過什么,頁面清爽,表現(xiàn)形式特別,給人耳目一新的感覺,受到廣大網(wǎng)友的喜愛。隨著科技的不斷發(fā)達(dá),Timeline陸續(xù)推出更多的新功能,用戶可以更好的分享電影、新聞和音樂,還可以記錄自己的故事,讓用戶對(duì)個(gè)人主頁進(jìn)行大幅修改,制作出像雜志一樣包涵眾多照片的主頁,用戶還可以過濾照片,能夠?qū)ψ约旱碾[私完全控制。
[0017]其中,所述MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。MongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似jSon的bSon格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是他支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。MongoDB具有高性能、易部署、易使用,存儲(chǔ)數(shù)據(jù)方便的特點(diǎn)。
[0018]其中,所述消息隊(duì)列是在消息的傳輸過程中保存消息的容器。消息隊(duì)列管理器在將消息從它的源中繼到它的目標(biāo)時(shí)充當(dāng)中間人。隊(duì)列的主要目的是提供路由并保證消息的傳遞;如果發(fā)送消息時(shí)接收者不可用,消息隊(duì)列會(huì)保留消息,直到可以成功地傳遞它。所述MemcacheQ是一個(gè)由新浪網(wǎng)的開發(fā)人員開放出來的開源項(xiàng)目,給memcached分布式緩存服務(wù)器添加了 berkeleydb的持久化存儲(chǔ)機(jī)制和異步主輔復(fù)制機(jī)制,讓memcached具備了事務(wù)恢復(fù)能力、持久化能力和分布式復(fù)制能力。它非常適合于需要超高性能讀寫速度,但是不需要嚴(yán)格事務(wù)約束,能夠被持久化保存的應(yīng)用場景,例如memcachedb被應(yīng)用在新浪博客上面。memcacheq依賴于Iibevent和berkleydb。berkleydb用于持久化存儲(chǔ)隊(duì)列的數(shù)據(jù)。這樣在memcacheq崩潰或者服務(wù)器掛掉的時(shí)候,不至于使隊(duì)列中的數(shù)據(jù)丟失。
[0019]本發(fā)明與現(xiàn)有技術(shù)相比,具有如下有益效果:
[0020]本發(fā)明提供了一種社交網(wǎng)站Feed流推送方法,解決了 SNS網(wǎng)站不能及時(shí)的將網(wǎng)友動(dòng)態(tài)展示給相關(guān)人群以提高該網(wǎng)友的關(guān)注度,同時(shí)因web服務(wù)器處理大量動(dòng)態(tài)數(shù)據(jù)而影響web服務(wù)器性能,導(dǎo)致用戶訪問網(wǎng)站出現(xiàn)慢、卡、死等問題。本發(fā)明使網(wǎng)友在訪問網(wǎng)站時(shí)保持流暢、動(dòng)態(tài)、及時(shí)和準(zhǔn)確,給網(wǎng)友提供優(yōu)越的用戶體驗(yàn),增加了網(wǎng)站訪問量和用戶量。
【專利附圖】
【附圖說明】
[0021]圖1示例性地示出了一種社交網(wǎng)站Feed流推送方法的流程示意圖。
【具體實(shí)施方式】
[0022]為了更好地理解本發(fā)明所解決的技術(shù)問題、所提供的技術(shù)方案,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。此處所描述的具體實(shí)施例僅用以解釋本發(fā)明的實(shí)施,但并不用于限定本發(fā)明。
[0023]在優(yōu)選的實(shí)施例中,圖1示例性地示出了一種社交網(wǎng)站Feed流推送方法的流程示意圖;包括:
[0024]步驟一:客戶端提交或變更SNS社交網(wǎng)站的動(dòng)態(tài)信息的Feed流數(shù)據(jù);
[0025]步驟二:所述動(dòng)態(tài)信息進(jìn)行數(shù)據(jù)入庫,先將所述數(shù)據(jù)插入Newsfeed表中,生成對(duì)應(yīng)的短鏈接字符ID,對(duì)應(yīng)的所述短鏈接字符ID匹配所述動(dòng)態(tài)信息對(duì)應(yīng)內(nèi)容模版ID和對(duì)應(yīng)TypeID ;然后將所述數(shù)據(jù)插入到所述客戶端自己的TimeLine表中;
[0026]步驟三:調(diào)用異步消息隊(duì)列服務(wù),按照所述客戶端的粉絲列表,將所述動(dòng)態(tài)信息的所述數(shù)據(jù)實(shí)時(shí)分發(fā)給所述粉絲列表中每一位粉絲ID下的TimeLine表中。
[0027]在更加優(yōu)選的實(shí)施例中,所述Feed流包括圖片流、視頻流和音頻流。
[0028]在更加優(yōu)選的實(shí)施例中,所述Timeline表存儲(chǔ)最近的1000條,所述Timeline表中字段Index存儲(chǔ)O到999的索引值。
[0029]在更加優(yōu)選的實(shí)施例中,所述客戶端更新所述動(dòng)態(tài)信息時(shí),所述Timeline表從O?999 一次循環(huán)更新,獲取或設(shè)置所述Timeline表中數(shù)據(jù)的索引位置,對(duì)所述動(dòng)態(tài)信息進(jìn)行覆蓋操作,保持存儲(chǔ)所述客戶端的1000條最近的所述動(dòng)態(tài)信息。
[0030]在更加優(yōu)選的實(shí)施例中,所述客戶端更新所述動(dòng)態(tài)信息時(shí),當(dāng)插入一條所述Timeline表中數(shù)據(jù)i,則所述字段Index自增I,然后求余1000,得到Timeline表中的字段Index的值。
[0031]具體的實(shí)施例中:
[0032]S1:客戶端在首頁發(fā)表一條信息;
[0033]S2:先將所述信息的數(shù)據(jù)插入Newsfeed表中并生成相應(yīng)的短鏈接字符ID ;
[0034]S3:及時(shí)在當(dāng)前頁面顯示發(fā)表的所述信息;
[0035]S4:異步調(diào)用消息隊(duì)列,開啟線程將所述信息推送給當(dāng)前客戶端的所有粉絲,在粉絲的TimeLine表中插入所述信息的記錄;
[0036]S5:打開粉絲的首頁,或粉絲登錄自己的首頁,讀取TimeLine表,顯示新的所述信肩、O
[0037]以上通過具體的和優(yōu)選的實(shí)施例詳細(xì)的描述了本發(fā)明,但本領(lǐng)域技術(shù)人員應(yīng)該明白,本發(fā)明并不局限于以上所述實(shí)施例,凡在本發(fā)明的基本原理之內(nèi),所作的任何修改、組合及等同替換等,均包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種社交網(wǎng)站Feed流推送方法,其特征在于,包括: 步驟一:客戶端提交或變更SNS社交網(wǎng)站的動(dòng)態(tài)信息的Feed流數(shù)據(jù); 步驟二:所述動(dòng)態(tài)信息進(jìn)行數(shù)據(jù)入庫,先將所述數(shù)據(jù)插入Newsfeed表中,生成對(duì)應(yīng)的短鏈接字符ID,對(duì)應(yīng)的所述短鏈接字符ID匹配所述動(dòng)態(tài)信息對(duì)應(yīng)內(nèi)容模版ID和對(duì)應(yīng)TypeID;然后將所述數(shù)據(jù)插入到所述客戶端自己的TimeLine表中; 步驟三:調(diào)用異步消息隊(duì)列服務(wù),按照所述客戶端的粉絲列表,將所述動(dòng)態(tài)信息的所述數(shù)據(jù)實(shí)時(shí)分發(fā)給所述粉絲列表中每一位粉絲ID下的TimeLine表中。
2.根據(jù)權(quán)利要求1所述的社交網(wǎng)站Feed流推送方法,其特征在于,所述Feed流包括圖片流、視頻流和音頻流。
3.根據(jù)權(quán)利要求1所述的社交網(wǎng)站Feed流推送方法,其特征在于,所述Timeline表存儲(chǔ)最近的1000條,所述Timeline表中字段Index存儲(chǔ)O到999的索引值。
4.根據(jù)權(quán)利要求3所述的社交網(wǎng)站Feed流推送方法,其特征在于,所述客戶端更新所述動(dòng)態(tài)信息時(shí),所述Timeline表從O?999 一次循環(huán)更新,獲取或設(shè)置所述Timeline表中數(shù)據(jù)的索引位置,對(duì)所述動(dòng)態(tài)信息進(jìn)行覆蓋操作,保持存儲(chǔ)所述客戶端的1000條最近的所述動(dòng)態(tài)信息。
5.根據(jù)權(quán)利要求4所述的社交網(wǎng)站Feed流推送方法,其特征在于,所述客戶端更新所述動(dòng)態(tài)信息時(shí),當(dāng)插入一條所述Timeline表中數(shù)據(jù)i,則所述字段Index自增I,然后求余1000,得到Timeline表中的字段Index的值。
6.根據(jù)權(quán)利要求1所述的社交網(wǎng)站Feed流推送方法,其特征在于,所述步驟三中,所述動(dòng)態(tài)信息存儲(chǔ)在MongoDB數(shù)據(jù)庫中。
7.根據(jù)權(quán)利要求1所述的社交網(wǎng)站Feed流推送方法,其特征在于,所述步驟三中,調(diào)用異步消息隊(duì)列服務(wù)時(shí),采用MemcacheQ消息隊(duì)列服務(wù)器。
【文檔編號(hào)】G06F17/30GK104281605SQ201310283385
【公開日】2015年1月14日 申請(qǐng)日期:2013年7月8日 優(yōu)先權(quán)日:2013年7月8日
【發(fā)明者】張世晨 申請(qǐng)人:北京齊爾布萊特科技有限公司