聊天應用程式系統設計

圖解13 個節點工程 · 聊天應用程式架構由一則提示生成
唯讀預覽

原始提示

建立聊天應用程式的系統設計圖

做一份自己的版本

關於框架

探索聊天服務的元件

這個架構範例包含 11 個元件與 12 條連線。行動版或 Web 用戶端會連到負載平衡器,再由負載平衡器連接兩台 WebSocket 伺服器與一台 REST API 伺服器。兩台 WebSocket 伺服器都會連到 Redis Pub/Sub,而 REST 伺服器則連到 Kafka。

其餘箭頭分別連接 Redis 與 PostgreSQL,以及 Kafka 與 PostgreSQL、S3、Elasticsearch 和推播通知。這些都是示意性的連線:範例沒有畫出負責資料持久化、建立索引、媒體處理或通知傳遞的應用程式工作程序,也未說明線上狀態、訊息排序與重新連線行為。

你可以使用這張圖,圍繞單則訊息的傳遞歷程展開設計討論。加入必要的服務與確認回應,說明寄件者看到成功狀態前會發生什麼事、離線收件者會收到什麼,以及重試的訊息要如何處理。選定這些細節前,請先提供規模與傳遞需求。

包含內容

你會得到

  • 11 個標示清楚的架構元件與 12 條連線
  • 負載平衡器後方配置兩台 WebSocket 伺服器與一台 REST API 伺服器
  • 將 Redis Pub/Sub 與 Kafka 顯示為獨立的訊息傳遞元件
  • PostgreSQL、S3、Elasticsearch 與推播通知元件
圖解

聊天應用程式系統設計

系統設計聊天WebSocket架構技術

✦ Free preview · Sign in to use

常見問題

常見問題

這張圖是否呈現完整的訊息傳遞序列?

不會。它只呈現元件之間的連線,沒有依序呈現訊息傳送、確認回應或重試步驟。若要了解特定情境,例如傳送訊息給離線使用者,請改為要求查看序列圖。

在這個設計中,資料庫寫入是由 Redis 直接處理的嗎?

範例中雖然畫出了 Redis Pub/Sub 到 PostgreSQL 的箭頭,但沒有說明背後的應用程式邏輯。實作前,請先加入資料持久化服務並定義其職責。

附件和通知在圖中的哪個位置?

範例中,S3 Media Store 和 Push Notification 都是從 Kafka 連出。圖中未呈現上傳啟動、媒體存取、通知服務供應商及傳遞失敗等流程。

聊天應用程式系統設計

免費開始,無需信用卡。

Free preview · Sign in to use