前兩天看了篇文章,我也轉發過來了,說的feed流框架,看著了就搞一搞,涉及到的技術也蠻實用的。
一、主流架構
主流架構
上圖是對Feed流的最簡單抽象,完成一個從生產者向消費者傳遞消息的過程。那看完這個過程先來建立三個項目,分別對應這三個模塊。
生產模塊
1.1 業務場景
用微博舉例子,消息生產者就是千百萬正在客戶端發推文的用戶。客戶端的推文到達后端的server之后,微博系統需要讓其他一些關注了這部分推主的用戶在短時間內收到這部分消息。
為什么說是短時間內而不是實時
理由有很多,簡單來講,消費者端并不都是實時在線,而且同時也需要推送給可能會關聯到的用戶(例如一些品牌的關聯品牌或者個人興趣推薦)。何況百萬級QPS的同步請求非常的耗資源、服務器一旦宕機消息就會丟失、體驗會很不好。(這段是我編的)
1.2 設計思路
生產者模塊需要抗住超高的并發量,所以處理的業務需要盡可能的少。
所以后端接口在接到請求后、經過簡單的處理后轉發至消息隊列中,本項目中使用的是kafka。
1.3 實現
(我會同步更新到github上)
https://github.com/nds15763/Feed