總體架構圖如下:
複製**
3.2 feed流實現模式
3.2.1 拉模式
a. 發布帖子簡單,a發布帖子,只需要儲存到帖子表即可
b. 關注取消流程簡單,a取消關注b:此時只需要在a的關注列表裡刪除b,並在b的粉絲列表裡刪除a。
c. a獲取feed流複雜,首先獲取a的所有關注使用者,然後獲取這些使用者所發布的帖子並進行排序,分頁取出對應的一頁帖子。
3.2.2 推模式
當乙個使用者觸發行為(比如發帖子),自身行為記錄到行為表中,同時也對應到這個使用者的粉絲表,為每個粉絲插入一條feed。粉絲讀取feed流,只需要讀取feed流,排序即可。
3.2.3 推拉模式結合
粉絲很多的使用者稱為大v。普通使用者發布feed時,採用推模式。離線使用者上線後定時拉取feed,後台將大v的feed同步到該使用者的feed流中,來完成動態的拉和推。此模式避免了大v使用者發布feed時,fee流儲存急速擴大,導致使用者查詢feed 延遲。
3.3.1 傳統count計數法
比如統計使用者發帖數 select count(*) from post where user_id = *** 來統計,次方法就是 count 計數法。
count計數法實現簡單,統計也比較精準,適合數量量小、低併發的業務。
乙個計數乙個count,實現業務往往需要多次查詢
3.3.2 計數(外接)冗餘法
通過對社群計數業務分析,得出2個維度的計數
這2個維度的指標可以通過在使用者表、帖子表中新增屬性來單獨儲存,也可以新建2張表 使用者計數、帖子計數表儲存。
這種方式就是計數外接法,也是一種資料冗餘方法。
3.3.3 計數外接改進方案
針對年糕媽媽社群業務,我們抽象出計數服務中心(氣泡服務),通過redis快取實時計數,定時將redis計數資料同步到db。 這樣避免了高並發給db帶來的壓力,同時提高了計數讀寫能力。
3.4.1 搜尋選型:
mysql5.6.4 及以上的innodb 也引入了全文檢索,可直接通過match 查詢,方案簡單,但內建的分詞、搜尋效果不一定能滿足要求。 還是選擇了更專業的搜尋引擎elasticsearch 、opensearch
3.4.2 索引同步實現
3.4.3 索引查詢
nicomama:清風笑
年糕媽媽親子學院,給你實用婦科保養小貼士
關於 疾病 女性健康,媽媽們想了解的有很多。作為女性,總有些 難言之隱 上網查,內容很多,靠譜的很少,甚至還有誤導 去醫院,有時候自己不懂就會被各種忽悠,花了冤枉錢不說,還受罪。針對媽媽們關於 疾病方面的困惑,年糕媽媽親子學院特意請來了有著10多年臨床經驗程式設計客棧的婦產科醫生楊程式設計客棧曦,為...
誰說年糕媽媽離過婚?聽粉絲講述糕媽婚史
最近在搜尋看到 曝年糕媽媽離過婚?年糕媽媽離婚了嗎?作為一路跟隨糕媽的老粉絲感到很憤怒,年糕媽媽李丹陽和丈夫林威感情明明一直就很好!對於網上這些謠言是真的不能信!為此,我整理了一些糕媽和糕爸林威的戀愛日常分享,拿來給大家感受一下幸福的婚姻是什麼樣子!之前有人問糕媽,你以前理想中的愛情,是現在這樣的嗎...
年糕媽媽數學盒子,專注孩子數學能力的培養
對於數學啟蒙,家長們都存在很多疑惑。孩子這麼小,教他數學能聽得懂嗎?其實研究表明,2 6 歲是孩子數學啟蒙敏感期,這個年齡段孩子的吸收能力是最強的,是思維發展關鍵期,最容易拉開差距,必須抓住最佳時機。為了真正能解決家長教孩子數www.cppcns.com學的問題,讓更多的孩子得到優質的數學早期啟蒙,...