一份完整的億級(jí)消息中心架構(gòu)方案!

- 目標(biāo) -

- 需求原型 -


- 功能需求 -
技術(shù)方案


| 技術(shù)選型 | 優(yōu)勢(shì) | 缺點(diǎn) |
|---|---|---|
| rocketmq | 【性能好】單個(gè)吞吐量能達(dá)10萬(wàn)/秒,并行推送能力(消費(fèi)能力)可以通過(guò)rocketmq的分區(qū)(分區(qū)細(xì)節(jié)需要設(shè)計(jì))數(shù)量進(jìn)行擴(kuò)展。性能上面是一個(gè)亮點(diǎn)和優(yōu)勢(shì) | 【部分功能不支持】一旦進(jìn)入rocketmq隊(duì)列,推送消息不可撤回。很多數(shù)據(jù)庫(kù)層面的功能特性(mq不支持)在設(shè)計(jì)上就會(huì)舍棄。 |
| es | 【性能好】可以支撐上億的數(shù)據(jù)量的關(guān)鍵詞搜索,實(shí)時(shí)同步的性能和吞吐量都還可以。 | 【并發(fā)插入能力略差】假設(shè)消息下發(fā)吞吐量高,需要批量對(duì)消息進(jìn)行同步,這樣可以優(yōu)化es吞吐量。高并發(fā)對(duì)es同步,es承載能力可能會(huì)出問(wèn)題(可以投入測(cè)試進(jìn)行驗(yàn)證)。 |
概要設(shè)計(jì)描述:
rocketmq 設(shè)計(jì)正常消息隊(duì)列(正常投遞消息),重試消息隊(duì)列(支持多種延遲機(jī)制,發(fā)送失敗重試的消息),發(fā)送結(jié)果消息隊(duì)列(發(fā)送超限或者成功的消息)。 es 同步以上三種隊(duì)列的消息,以最終一致性(最晚時(shí)間戳校驗(yàn))保持消息信息最新。 mysql 僅支持管理模板,賬號(hào)等基礎(chǔ)管理功能。
底層框架設(shè)計(jì)、運(yùn)維層面描述:
統(tǒng)一網(wǎng)關(guān): spring cloud gateway/kong,僅做api層面的路由支持。 基礎(chǔ)框架: 選定jar包版本,es,rocketmq,實(shí)時(shí)報(bào)警,性能監(jiān)控對(duì)這些接口做二次封裝,es支持sql模式插入查詢;rocketmq做底層實(shí)現(xiàn)剝離。參考: bsf 統(tǒng)一基礎(chǔ)框架 https://gitee.com/yhcsx/csx-bsf-all 。 業(yè)務(wù)框架: 標(biāo)準(zhǔn)輸入輸出http rpc等業(yè)務(wù)框架工具或協(xié)議層面支持。 服務(wù)高可用:k8s&docker 及devops 線上一體化部署的支持,要做到一鍵發(fā)布,一鍵回滾,滾動(dòng)發(fā)布,不停機(jī)發(fā)版。
作者:車(chē)江毅
來(lái)源:
https://www.cnblogs.com/chejiangyi/p/14884931.html

評(píng)論
圖片
表情
