極客大學架構師訓練營 - 同城快遞業務架構設計 - 大作業一

2020-09-19 12:04:42

極客大學架構師訓練營畢業設計完成,筆者把所有文章彙集如下點選連結☞ 架構師資源彙總 從入門到精通 文章彙總

題目

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

1 設計概述

同城快遞系統是同一個城市裡面方便使用者快速寄送快遞的業務,公司作為新切入快遞業務,對使用者體驗,收發快遞的速度都要有競爭力。

1.1 功能概述

同城快遞系統主要功能包括使用者下單,使用者提供貨品,使用者收貨;快遞員搶單,快遞員去指定地點收貨,快遞員送貨達到目的地。常用場景如下:
* a) 使用者下訂單,快遞員搶單。
* b) 快遞員與使用者溝通取貨時間地點,快遞員按照資訊去取貨品,送回站點,重新規劃派送路徑。
* c) 快遞員從服務點拿取要送的貨品,送達目標客戶。
* d) 快遞員app自動上報位置。
* e) 有新訂單,搶單微服務給 5km 內的快遞員 發可以搶單資訊。
* 7)快遞員上班地理位置資訊。
以下為用例圖,主要角色有使用者,快遞員,貨品,訂單, 訊息系統。
在這裡插入圖片描述

1.2 ⾮功能約束

同城快遞系統上線3個月 日訂單超過1萬(按照2萬計),使用者量預計20萬,日UV達2萬;未來預計⼀年,日訂單超過50萬(按照100萬計),使用者量預計1000萬,⽇UV達到100萬。

  1. 查詢效能⽬標:平均響應時間<300m s,95% 響應時間<500m s,單機T PS>100;
  2. 下單效能⽬標:平均響應時間<800m s,95% 響應時間<1000m s,單機T PS>30;
  3. 監控效能⽬標:平均響應時間<800m s,95% 響應時間<1000m s,單機T PS>30;
  4. 系統核⼼功能可⽤性⽬標:>99.97% ;
  5. 系統安全性⽬標:系統可攔截DDDOS攻擊,密碼資料雜湊加密,使用者端資料HT T PS加密,外部系統間通訊對稱加密;
  6. 資料持久化⽬標:>99.99999% 。

2.系統部署圖與整體設計

系統上線時預計部署120臺物理機,需要閘道器伺服器,微服務伺服器,負載均衡,分散式快取,訊息佇列伺服器,訊息消費者伺服器,Redis記憶體資料庫,資料庫伺服器等。

2.1 系統部署圖

在這裡插入圖片描述

  1. 閘道器服務主要是使用者鑑權,防止攻擊,第一個面向使用者系統,需要10臺伺服器。
  2. 訊息佇列伺服器,負責快速響應使用者請求,需要5臺伺服器。
  3. 負責均衡伺服器,需要對流量進行均衡到業務伺服器,需要5臺伺服器。
  4. 分散式快取伺服器,這是減輕伺服器的重要手段,需要10臺伺服器。
  5. 使用者微服務,正常在註冊、登入才會存取,流量不是很大,需要5臺伺服器。
  6. 訂單微服務,大流量入口,使用者下單的時候,快遞搶單,使用者狀態等操作頻繁,需要50臺伺服器。
  7. 搶單微服務,使用者下單成功以後,搶單微服務給附近5km 的快遞員傳送新訂單推播;快遞員會搶單,通過搶單微服務,最終確定接單的快遞員;需要5臺伺服器;
  8. Redis 記憶體資料庫,記錄快遞員的最新地理位置資訊;需要5臺伺服器;
  9. 資料採集系統的功能職責為查詢使用者消費資料,生成統計報表,部署5臺伺服器,依賴使用者系統和訂單新系統,實現訂單資訊和報表統計功能。
  10. 資料庫系統,業務系統與資料採集服務資料分離,都需要主資料庫、重資料庫,需要20臺伺服器。
  11. 第三方支付系統為外部系統,支援使用者用微信、支付寶、銀聯等第三方支付充值。這裡是訂單微服務的一部分。

2.2 下單搶單場景系統序列圖

在這裡插入圖片描述

3. 使用者下單搶單場景系統設計

3.1 下單搶單場景的業務活動圖(角色領域泳道模型)

在這裡插入圖片描述

3.2 訂單狀態圖模型

在這裡插入圖片描述