他們三個人沒想到陳景已經把這個事情想的這麼透徹了。
趙圓圓頓了一下,把馬克筆換到另一隻手上,在白板上把陳景說的全部畫了出來。
陳景則是在“群紅包”下面畫了第三條支線。
“還有一個維度需要考慮,紅包型別。”
“一種是等額紅包,每個人搶到的金額完全一樣,適合正式場合。”
“一種是拼手氣紅包,總金額隨機分配到每個紅包,金額有多有少,搶紅包的過程有遊戲性,更適合日常娛樂。”
“這個遊戲性,就是你不知道下一個紅包裡有多少錢,才是紅包功能的真正鉤子。”
“需要點選一個開字按鈕,才能知道多少錢,這就是多了一層含義。”
“就是不知道這個底層架構怎麼做。”
這個時候,大家開始深入討論。
陳景畢竟不知道專業術語,只能把自己的話說給他們聽,讓他們去翻譯成專業術語。
王一凡把所有東西都記下了,旋即把筆記型電腦推到一邊,站起來走到白板前面,從趙圓圓手裡接過另一支馬克筆。
在“群紅包”旁邊畫了個技術架構的簡要拓撲圖。
他的字跡還是一如既往地工整,每一條線都畫得筆直,不同模組之間用不同顏色的箭頭連線,看上去像是直接從系統設計文件裡拓下來的。
“底層架構分四層。”
“前端互動層,負責紅包卡片的動畫渲染、點選領取的互動邏輯、金額展示的即時重新整理。”
“移動端需要做兩套,iOS用Object-C寫原生介面,安卓用Java寫,兩套程式碼同步開發,工作量翻倍。”
“P業務邏輯層是核心,需要處理的事包括紅包的建立規則,個人紅包一對一、群紅包一對多。”
“金額分配演算法,等額紅包就是總金額除以個數,拼手氣紅包需要用二倍均值隨機演算法,先設定每個人能搶到的最大金額為剩餘金額均值的兩倍,在這個範圍內隨機分配,既能保證每個人都有機會搶到較大的金額,又能確保總金額不會超額。”
“領取狀態同步,同一個紅包不能同時被兩個人領取,需要在高併發環境下保證資料一致性。”
“還有超時退款機制,紅包發出後規定時間內未被領完,剩餘金額自動退回原賬戶。”
“資料儲存層。”
“紅包訂單表,記錄每筆紅包的唯一ID、傳送者賬戶、金額、個數、型別、群ID、建立時間、過期時間。”
“領取記錄表,每條領取記錄繫結對應的紅包ID,包含領取者賬戶、領取金額、領取時間戳。”
“賬戶餘額變動表,每一次發紅包的扣款和領紅包的入賬都需要記錄流水並即時更新賬戶餘額。”
“資料量方面,紅包是典型的高頻小額交易,假設同時線上使用者數達到某個量級。”
“其中一部分使用者同時發紅包,每個群紅包又對應多個領取動作,資料庫每秒需要處理的事務量會很大。”
“需要做讀寫分離,主庫負責寫入紅包訂單和領取記錄,從庫負責查詢紅包狀態和領取詳情,減輕主庫壓力。”
。的譯翻話的景陳是都些這
。員人技強最前目是愧不也凡一王
。了化消西東些這把就快很
”。層全安“








