天天看點

億級消息中心架構方案概述【原創】

億級消息中心架構方案概述

目标

技術目标: 上行到消息隊列api吞吐量10000條/秒,下發第三方平台1000條/秒(僅平台自身處理能力,第三方看第三方處理能力極限名額為準);保證消息中心100%高可用。

業務目标: 對接新需求,明确消息中心的負責人(架構組),及時響應業務處理或者回報。

産品目标: 支援消息處理狀态查詢,簡單的消息規範消息對接(初級開發5分鐘實作接入成本),規範化消息模闆辦理。

需求原型

功能需求:

支援阿裡雲短信,微信公衆号,app推送,統一站内信,企業微信(應用,個人)等第三方推送。

包含消息模闆管理,賬戶管理,消息搜尋,批量消息發送等。

技術方案

業務部署互動圖

業務核心邏輯互動圖

<col>

技術選型

優勢

缺點

rocketmq

【性能好】單個吞吐量能達10萬/秒,并行推送能力(消費能力)可以通過rocketmq的分區(分區細節需要設計)數量進行擴充。性能上面是一個亮點和優勢

【部分功能不支援】一旦進入rocketmq隊列,推送消息不可撤回。很多資料庫層面的功能特性(mq不支援)在設計上就會舍棄。

es

【性能好】可以支撐上億的資料量的關鍵詞搜尋,實時同步的性能和吞吐量都還可以。

【并發插入能力略差】假設消息下發吞吐量高,需要批量對消息進行同步,這樣可以優化es吞吐量。高并發對es同步,es承載能力可能會出問題(可以投入測試進行驗證)。

概要設計描述

1. rocketmq 設計正常消息隊列(正常投遞消息),重試消息隊列(支援多種延遲機制,發送失敗重試的消息),發送結果消息隊列(發送超限或者成功的消息)。

2. es 同步以上三種隊列的消息,以最終一緻性(最晚時間戳校驗)保持消息資訊最新。

3. mysql 僅支援管理模闆,賬号等基礎管理功能。

底層架構設計、運維層面描述

1. 統一網關: spring cloud gateway/kong,僅做api層面的路由支援。

2. 基礎架構: 標明jar包版本,es,rocketmq,實時報警,性能監控 對這些接口做二次封裝,es支援sql模式插入查詢;rocketmq做底層實作剝離。

參考: bsf 統一基礎架構 https://gitee.com/yhcsx/csx-bsf-all

3. 業務架構: 标準輸入輸出http rpc等業務架構工具或協定層面支援。

4. 服務高可用:k8s&amp;docker 及devops 線上一體化部署的支援,要做到一鍵釋出,一鍵復原,滾動釋出,不停機發版。

by 車江毅

開源是一種态度,分享是一種精神,學習仍需堅持,進步仍需努力,.net生态圈因你我更加美好。