惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
月光博客
月光博客
IT之家
IT之家
B
Blog RSS Feed
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
MyScale Blog
MyScale Blog
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - Franky
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
博客园_首页
B
Blog
V
V2EX
腾讯CDC
Vercel News
Vercel News
量子位
Microsoft Security Blog
Microsoft Security Blog

hwchiu learning note Blog

Kubernetes 怎麼計算 imageFS | hwchiu learning note Nginx Proxy_Pass 不會重新查詢 DNS | hwchiu learning note Multus 下如何透過 network policy 設定 | hwchiu learning note Linux Bridge MTU | hwchiu learning note Kubevirt 初體驗 | hwchiu learning note [MacOS ]隨手筆記 Sed 與 Rename 的使用 | hwchiu learning note Docusaurus 使用 blog mode 後連結一直反白的問題 | hwchiu learning note gcloud 切換帳號 | hwchiu learning note k8s 內安裝 redis-cluster | hwchiu learning note Helm Chart 中如何根據條件來動態安裝 Template 內的物件 | hwchiu learning note GCS 操作上注意事項 | hwchiu learning note istio 操作記錄 | hwchiu learning note terraform | hwchiu learning note Kubernetes GKE 維運上小筆記 | hwchiu learning note Git 修改 author/committer | hwchiu learning note GCP NAT 相關筆記 | hwchiu learning note gcloud ssh 到 GCP VM | hwchiu learning note CloudSQL 收費注意事項 | hwchiu learning note Loki 安裝上的參數調整以及 Ring 的問題除錯 | hwchiu learning note kustomize + helm | hwchiu learning note 觀測 K8s 內 OOM 事件 | hwchiu learning note GKE 上的 RBAC 筆記 | hwchiu learning note 本地產生 jwt token | hwchiu learning note ArgoCD 安裝筆記 | hwchiu learning note CircleCI Context 的使用 | hwchiu learning note 透過 GCP IAP Gateway 來保護 GKE 內的網站 | hwchiu learning note 閱讀筆記: 「SRE 的工作介绍」 | hwchiu learning note 閱讀筆記: 「DevOps is a failure」 | hwchiu learning note 閱讀筆記: 「面試人生 - 設計一個簡易的分散式 Job Scheduler」 | hwchiu learning note 閱讀筆記: 「Cloudflare 06/21 災後報告」 | hwchiu learning note
系統設計文,探討交友app背後的設計理念 | hwchiu learning note
HungWei ChiuBlogger · 2021-12-30 · via hwchiu learning note Blog

連結: 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 內的使用者進行配對。 文章內有針對這部分進行詳細解釋,如何拆分不同的小區塊然後如何後續處理,有興趣的可以參閱全文