久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 微博feed系統(tǒng)的推模式和拉模式的架構(gòu)是怎樣的?

        微博feed系統(tǒng)的推模式和拉模式的架構(gòu)是怎樣的?

        來(lái)源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-10-13 13:28:55 1697174935

        一、微博feed系統(tǒng)的推模式架構(gòu)

        1、發(fā)布服務(wù)

        負(fù)責(zé)生成用戶(hù)的消息,將消息推送到數(shù)據(jù)發(fā)布中心。

        2、推送服務(wù)

        在接收到新消息后,根據(jù)消息的類(lèi)型和內(nèi)容信息進(jìn)行用戶(hù)匹配,向用戶(hù)推送個(gè)性化的消息流。

        3、數(shù)據(jù)發(fā)布中心

        接收發(fā)布服務(wù)推送的消息,將消息進(jìn)行轉(zhuǎn)換、去重和分級(jí)處理,同時(shí)創(chuàng)建索引,為后續(xù)的消息處理提供支持。

        4、移動(dòng)終端

        接收用戶(hù)推送的消息流。

        二、微博feed系統(tǒng)的拉模式架構(gòu)

        1、消息查詢(xún)服務(wù)

        提供消息查詢(xún)接口,支持按時(shí)間線(xiàn)查詢(xún)消息。

        2、推送服務(wù)

        維護(hù)用戶(hù)的消息流,當(dāng)有新的消息到達(dá)或舊的消息需要更新時(shí),會(huì)將更新后的消息推送到用戶(hù)的消息流中。

        3、移動(dòng)終端

        根據(jù)用戶(hù)請(qǐng)求,向消息查詢(xún)服務(wù)發(fā)送查詢(xún)請(qǐng)求,通過(guò)推送服務(wù)獲取需要展示的消息。

        三、Feed系統(tǒng)介紹

        1、簡(jiǎn)介

        當(dāng)互聯(lián)網(wǎng)開(kāi)始進(jìn)入移動(dòng)互聯(lián)網(wǎng)時(shí)代,具代表性的產(chǎn)品就是微博、微信,以及后來(lái)的今日頭條、快手等。這些移動(dòng)互聯(lián)網(wǎng)時(shí)代的新產(chǎn)品在過(guò)去幾年間借著智能手機(jī)的風(fēng)高速成長(zhǎng)。這些產(chǎn)品都是Feed流類(lèi)型產(chǎn)品,由于Feed流一般是按照時(shí)間“從上往下流動(dòng)”,非常適合在移動(dòng)設(shè)備端瀏覽,最終這一類(lèi)應(yīng)用就脫穎而出,迅速搶占了上一代產(chǎn)品的市場(chǎng)空間。

        Feed流是Feed+流,F(xiàn)eed的本意是飼料,F(xiàn)eed流的本意就是有人一直在往一個(gè)地方投遞新鮮的飼料,如果需要飼料,只需要盯著投遞點(diǎn)就可以了,這樣就能源源不斷獲取到新鮮的飼料。在信息學(xué)里面,F(xiàn)eed其實(shí)是一個(gè)信息單元,比如一條朋友圈狀態(tài)、一條微博、一條咨詢(xún)或一條短視頻等,所以Feed流就是不停更新的信息單元,只要關(guān)注某些發(fā)布者就能獲取到源源不斷的新鮮信息,我們的用戶(hù)也就可以在移動(dòng)設(shè)備上逐條去瀏覽這些信息單元。

        當(dāng)前最流行的Feed流產(chǎn)品有微博、微信朋友圈、頭條的資訊推薦、快手抖音的視頻推薦等,還有一些變種,比如私信、通知等,這些系統(tǒng)都是Feed流系統(tǒng),接下來(lái)我們會(huì)介紹如何設(shè)計(jì)一個(gè)Feed流系統(tǒng)架構(gòu)。

        2、Feed流系統(tǒng)特點(diǎn)

        Feed流本質(zhì)上是一個(gè)數(shù)據(jù)流,是將 “N個(gè)發(fā)布者的信息單元” 通過(guò) “關(guān)注關(guān)系” 傳送給 “M個(gè)接收者”。

        3、Feed流系統(tǒng)的數(shù)據(jù)

        Feed流系統(tǒng)是一個(gè)數(shù)據(jù)流系統(tǒng),所以我們核心要看數(shù)據(jù)。從數(shù)據(jù)層面看,數(shù)據(jù)分為三類(lèi),分別是:

        發(fā)布者的數(shù)據(jù):發(fā)布者產(chǎn)生數(shù)據(jù),然后數(shù)據(jù)需要按照發(fā)布者組織,需要根據(jù)發(fā)布者查到所有數(shù)據(jù),比如微博的個(gè)人頁(yè)面、朋友圈的個(gè)人相冊(cè)等。關(guān)注關(guān)系:系統(tǒng)中個(gè)體間的關(guān)系,微博中是關(guān)注,是單向流,朋友圈是好友,是雙向流。不管是單向還是雙向,當(dāng)發(fā)布者發(fā)布一條信息時(shí),該條信息的流動(dòng)永遠(yuǎn)是單向的。接收者的數(shù)據(jù):從不同發(fā)布者那里獲取到的數(shù)據(jù),然后通過(guò)某種順序(一般為時(shí)間)組織在一起,比如微博的首頁(yè)、朋友圈首頁(yè)等。這些數(shù)據(jù)具有時(shí)間熱度屬性,越新的數(shù)據(jù)越有價(jià)值,越新的數(shù)據(jù)就要排在最前面。

        針對(duì)這三類(lèi)數(shù)據(jù),我們可以有如下定義:

        存儲(chǔ)庫(kù):存儲(chǔ)發(fā)布者的數(shù)據(jù),永久保存。關(guān)注表:用戶(hù)關(guān)系表,永久保存。同步庫(kù):存儲(chǔ)接收者的時(shí)間熱度數(shù)據(jù),只需要保留最近一段時(shí)間的數(shù)據(jù)即可。

        4、排序

        目前的Feed流系統(tǒng)中的排序方式有兩種,一種是時(shí)間,一種是分?jǐn)?shù)。我們常用的微博、朋友圈、私信這些都是時(shí)間線(xiàn)類(lèi)型的,因?yàn)檫@些產(chǎn)品定義中,需要我們主動(dòng)關(guān)注某些人后才會(huì)看到這些人發(fā)表的內(nèi)容,這個(gè)時(shí)候,最重要的是實(shí)時(shí)性,而不是發(fā)布質(zhì)量,就算關(guān)注人發(fā)布了一條垃圾信息,我們也會(huì)被動(dòng)看到。這種類(lèi)型的產(chǎn)品適用于按照時(shí)間線(xiàn)排序。這一篇我們介紹的架構(gòu)都是基于時(shí)間類(lèi)型的。

        另外一種是不需要關(guān)注任何人,我們能看到的都是系統(tǒng)希望我們看到的,系統(tǒng)在后臺(tái)會(huì)分析我們的每個(gè)人的愛(ài)好,然后給每個(gè)人推送差異化的、各自喜歡的內(nèi)容,這一種的架構(gòu)和基于時(shí)間的完全不一樣,我們?cè)诤罄m(xù)的推薦類(lèi)型中專(zhuān)門(mén)介紹。

        延伸閱讀1:如何刪除Feed內(nèi)容

        在Feed流應(yīng)用中有一個(gè)問(wèn)題,就是如果用戶(hù)刪除了之前發(fā)表的內(nèi)容,系統(tǒng)該如何處理?因?yàn)橄到y(tǒng)里面有寫(xiě)擴(kuò)散,那么刪除的時(shí)候是不是也要寫(xiě)擴(kuò)散一遍?這樣的話(huà),刪除就不及時(shí)了,很難應(yīng)對(duì)法律法規(guī)要求的快速刪除。針對(duì)這個(gè)問(wèn)題,我們?cè)谥霸O(shè)計(jì)的時(shí)候,同步表中只有消息ID,沒(méi)有消息內(nèi)容,在用戶(hù)讀取的時(shí)候需要到存儲(chǔ)庫(kù)中去讀消息內(nèi)容,那么我們可以直接刪除存儲(chǔ)庫(kù)中的這一條消息,這樣用戶(hù)讀取的時(shí)候使用消息ID是讀不到數(shù)據(jù)的,也就相當(dāng)于刪除的內(nèi)容,而且刪除速度會(huì)很快。除了直接刪除外,另外一種辦法是邏輯刪除,對(duì)于刪除的feed內(nèi)容,只做標(biāo)記,當(dāng)查詢(xún)到帶有標(biāo)記的數(shù)據(jù)時(shí)就認(rèn)為刪除了。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        java開(kāi)發(fā)需要會(huì)什么?

        一、Java基礎(chǔ)知識(shí)要成為一名合格的Java開(kāi)發(fā)人員,首先需要掌握J(rèn)ava的基礎(chǔ)知識(shí)。這包括了解Java的語(yǔ)法、變量、數(shù)據(jù)類(lèi)型、運(yùn)算符和控制流程等基本...詳情>>

        2023-10-13 15:23:26
        數(shù)據(jù)庫(kù)Union連接兩張表之前,怎么判斷要連接的另一張表是否存在?

        一、Union連接兩張表之前,怎么判斷要連接的另一張表是否存在那你這個(gè)必須通過(guò)程序判斷 或者存儲(chǔ)過(guò)程去實(shí)現(xiàn),只用一條SQL是解決不了的。若是MyS...詳情>>

        2023-10-13 15:20:02
        mysql 不加條件查詢(xún)速度挺快,加上過(guò)濾條件就特別慢是為什么?

        一、mysql 不加條件查詢(xún)速度挺快,加上過(guò)濾條件就特別慢是為什么不加條件查詢(xún),如果是自增主鍵的話(huà),會(huì)順序讀盤(pán),順序讀取磁盤(pán)數(shù)據(jù)的話(huà),速度可...詳情>>

        2023-10-13 15:18:26
        mysql中,replace into后怎么連接where子句?

        一、mysql中,replace into后怎么連接where子句REPLACE INTO?語(yǔ)法完全?與?INSERT INTO?一樣工作,只是在新行已插入。這意味著您應(yīng)該將主鍵...詳情>>

        2023-10-13 15:13:31
        什么是數(shù)據(jù)庫(kù)表結(jié)構(gòu)?

        一、什么是數(shù)據(jù)庫(kù)表結(jié)構(gòu)數(shù)據(jù)庫(kù)表結(jié)構(gòu)是指數(shù)據(jù)庫(kù)中表的組織和定義方式。它描述了表的名稱(chēng)、列(字段)的定義和屬性,以及表與其他表之間的關(guān)系。...詳情>>

        2023-10-13 14:52:13
        快速通道
        安化县| 喀喇沁旗| 郑州市| 龙江县| 安图县| 保德县| 泽库县| 宁城县| 正阳县| 吉林省| 曲麻莱县| 星子县| 安陆市| 宜君县| 政和县| 永新县| 晋中市| 六盘水市| 怀仁县| 辉南县| 内黄县| 拜泉县| 吉隆县| 贵州省| 云阳县| 汤阴县| 桃园县| 涟源市| 门头沟区| 南木林县| 安图县| 休宁县| 丰都县| 拜城县| 商南县| 锦州市| 区。| 许昌县| 乐清市| 康定县| 图们市|