0%

系統設計文,探討交友app背後的設計理念

ref: https://medium.com/.../dating-application-system-design...
本篇是一個系統設計文,探討設計一個如 Tinder 的應用程式該如何去思考整體架構

Tinder 這種交友應用程式有幾個特點

  1. 透過 FB 走 OAuth 登入
  2. 左滑右滑
  3. 配對機制
  4. 聊天對話
  5. 通知功能
    其中 (3) 這個特色是說當使用者開啟 app 之後系統要根據一系列的條件們去推薦可能的對象,條件包含很多
  6. 從 FB 中抓到的個人資料,喜好等
  7. 地理位置,通常這類型的交友軟體都可以設定希望對象與自己的距離,譬如 10km 內, 50 km 內。
    同時這類型的交友軟體支援多語言,支援多語言基本上就是意味多地區,簡單的說法可以說支援全世界不同地區的使用者共同使用,
    因此基於效能考量上,通常不會使用單獨使用一個地區的伺服器來提供全球的服務,取而代之的則劃分地區讓每個地方都有一個稍微近的伺服器可以使用。
    所以整體架構上還需要考量這類型的分散式架構設計,特別是有一些交友軟體還支援切換地點的功能,使用者可以切換到不同地區去匹配
    不同地區的使用者,這意味該使用者的資料也會需要同步到不同地區的伺服器之間,因此資料部分也需要特別注意處理。
    接下來就是當使用者希望配對範圍 100km 的使用者,該功能到底該如何實作,要如何將實體的地理位置劃分出來並且有辦法根據該敘述, 100km 內的使用者進行配對。
    文章內有針對這部分進行詳細解釋,如何拆分不同的小區塊然後如何後續處理,有興趣的可以參閱全文

個人資訊

我目前於 Hiskio 平台上面有開設 Kubernetes 相關課程,歡迎有興趣的人參考並分享,裡面有我從底層到實戰中對於 Kubernetes 的各種想法

詳細可以參閱
線上課程詳細資訊: https://course.hwchiu.com/

另外,歡迎按讚加入我個人的粉絲專頁,裡面會定期分享各式各樣的文章,有的是翻譯文章,也有部分是原創文章,主要會聚焦於 CNCF 領域
https://www.facebook.com/technologynoteniu

如果有使用 Telegram 的也可以訂閱下列頻道來,裡面我會定期推播通知各類文章
https://t.me/technologynote

你的捐款將給予我文章成長的動力

Welcome to my other publishing channels