建立聊天應用程式的系統設計圖
關於框架
這個架構範例包含 11 個元件與 12 條連線。行動版或 Web 用戶端會連到負載平衡器,再由負載平衡器連接兩台 WebSocket 伺服器與一台 REST API 伺服器。兩台 WebSocket 伺服器都會連到 Redis Pub/Sub,而 REST 伺服器則連到 Kafka。
其餘箭頭分別連接 Redis 與 PostgreSQL,以及 Kafka 與 PostgreSQL、S3、Elasticsearch 和推播通知。這些都是示意性的連線:範例沒有畫出負責資料持久化、建立索引、媒體處理或通知傳遞的應用程式工作程序,也未說明線上狀態、訊息排序與重新連線行為。
你可以使用這張圖,圍繞單則訊息的傳遞歷程展開設計討論。加入必要的服務與確認回應,說明寄件者看到成功狀態前會發生什麼事、離線收件者會收到什麼,以及重試的訊息要如何處理。選定這些細節前,請先提供規模與傳遞需求。
包含內容
聊天應用程式系統設計
✦ Free preview · Sign in to use
常見問題
不會。它只呈現元件之間的連線,沒有依序呈現訊息傳送、確認回應或重試步驟。若要了解特定情境,例如傳送訊息給離線使用者,請改為要求查看序列圖。
範例中雖然畫出了 Redis Pub/Sub 到 PostgreSQL 的箭頭,但沒有說明背後的應用程式邏輯。實作前,請先加入資料持久化服務並定義其職責。
範例中,S3 Media Store 和 Push Notification 都是從 Kafka 連出。圖中未呈現上傳啟動、媒體存取、通知服務供應商及傳遞失敗等流程。
免費開始,無需信用卡。