推送服務(wù)(PushKit)是華為提供的消息推送平臺,建立了從云端到終端的消息推送通道。通過集成推送服務(wù),您可以向客戶端應(yīng)用實時推送消息,讓應(yīng)用更精準(zhǔn)觸達用戶,是開發(fā)者提升用戶感知度和活躍度的一件利器。
華為云 GaussDB(forCassandra)是一款基于計算存儲分離架構(gòu)的分布式數(shù)據(jù)庫,致力于提供穩(wěn)定可靠、超高并發(fā),兼容 Cassandra 生態(tài)、彈性伸縮、一鍵部署、快速恢復(fù)、監(jiān)控告警的分布式數(shù)據(jù)庫服務(wù),在 Push 業(yè)務(wù)的高效架構(gòu)建設(shè)中,起到了關(guān)鍵的作用。
業(yè)務(wù)挑戰(zhàn)
Push 服務(wù)能夠協(xié)助開發(fā)者快速觸達用戶,其提供的系統(tǒng)級通道推送速度每秒最高可達百萬級,消息量每日百億級,并且支持實時消息回執(zhí)。如此高到達率的背后,是因為 Push 使用了大量分布式架構(gòu)、高性能隊列、大數(shù)據(jù)分析、數(shù)據(jù)庫、AI 等技術(shù),用來支撐實時推送、精準(zhǔn)送達業(yè)務(wù)的高效開展。
Push 的主要業(yè)務(wù)鏈路是發(fā)送上行消息和下行消息,接下來我們從發(fā)送下行消息流程來了解業(yè)務(wù)在哪些場景上用到了數(shù)據(jù)庫,以及對數(shù)據(jù)庫的要求有哪些?
下行消息交互圖如下所示:
當(dāng)用戶設(shè)備網(wǎng)絡(luò)條件良好且不擁堵的情況下,華為 Push 服務(wù)器在收到消息后,會先將消息存入高性能隊列中,然后隊列消費消息發(fā)送給用戶設(shè)備。但是當(dāng)用戶設(shè)備處于弱網(wǎng)、網(wǎng)絡(luò)異常,或不在線、熄屏狀態(tài)時,消息無法到達設(shè)備,或此時發(fā)送消息價值較低。Push 業(yè)務(wù)為了保障消息不丟失,以及提升消息的有效率,利用數(shù)據(jù)庫為底座,來支持離線消息緩存能力。
離線消息緩存是指當(dāng)消息到達華為 Push 平臺后,如果設(shè)備不在線,華為 Push 平臺會將消息緩存起來,等到設(shè)備上線后,華為 Push 平臺會將緩存的消息再次推送給用戶。如果用戶很長時間不在線,這些緩存的消息默認保存 24 小時,最長保存 15 天,超期的消息會被 Push 平臺丟棄。
此時,在數(shù)據(jù)庫的選型上就需要考慮以下幾個問題:
推送速度每秒百萬級,極端場景下,大部分寫入數(shù)據(jù)庫,會有每秒百萬寫入請求,數(shù)據(jù)庫需要具備超高的寫入能力;
當(dāng)設(shè)備恢復(fù)正常狀態(tài)時,消息會從數(shù)據(jù)庫中讀出發(fā)送給用戶,消息的實時性會直接影響到消息的價值,此時就要求數(shù)據(jù)庫的讀時延低且長尾時延穩(wěn)定;
推送的消息中,多與時事熱點相關(guān),容易引發(fā)流量突增,且不可預(yù)知,這就要求數(shù)據(jù)庫具有快速彈性伸縮的能力;
為達成 AI 智能推送的能力,可能需要對數(shù)據(jù)庫中的數(shù)據(jù)進行數(shù)據(jù)挖掘和分析,從而實施智能推送策略,數(shù)據(jù)庫需支持與主流大數(shù)據(jù)引擎兼容的接口和解決方案。
為什么選擇 GaussDB(forCassandra)?
基于以上挑戰(zhàn),Push 業(yè)務(wù)經(jīng)過一系列技術(shù)選型,最終選擇了 GaussDB(forCassandra)數(shù)據(jù)庫。GaussDB(forCassandra)憑借豐富強大的特性,可以幫助 Push 業(yè)務(wù)很好地應(yīng)對消息緩存的挑戰(zhàn):
從請求量上看,GaussDB(forCassandra)輕松支持千萬級并發(fā)訪問,高并發(fā)不在話下;
從時延上看,GaussDB(forCassandra)除了本身具備超低時延的能力外,在并發(fā)量大的情況下,可通過擴容和規(guī)格變更,增加分區(qū)和負載均衡保證業(yè)務(wù)時延基本無變化;
從彈性伸縮上看,GaussDB(forCassandra)基于存算分離架構(gòu),支持秒級存儲擴容,分鐘級計算擴容,輕松應(yīng)對流量高峰;
從兼容能力看,GaussDB(forCassandra)支持 CQL 語法和靈活的數(shù)據(jù)定義,同時兼容主流的批式/流式處理引擎(Spark/Flink 等),且提供動態(tài)增量+全量的解決方案,供大數(shù)據(jù)分析引擎接入,充分滿足不同類型數(shù)據(jù)的接入需求。
如何利用 GaussDB(forCassandra)提升消息緩存體驗
下面,我們將從具體的幾個技術(shù)改進來聊聊,GaussDB(forCassandra)是如何幫助 Push 業(yè)務(wù)獲得更好的消息緩存體驗。
降本增效
降低 Push 集群對數(shù)據(jù)庫請求量:
表結(jié)構(gòu)設(shè)計時,將同一用戶設(shè)備的多條信息存入同一 partition 中
在讀取時,可使用范圍查詢將同一用戶設(shè)備的多條信息批量查出,且時延較低
在寫入時,使用 Batch 寫入,降低客戶端與數(shù)據(jù)庫的交互次數(shù)
降低存儲使用量:業(yè)務(wù)科通過 TTL、范圍刪除、單行刪除等多種手段,根據(jù)業(yè)務(wù)情況靈活使用達到數(shù)據(jù)消亡的目的,降低存儲用量。
彈性伸縮,熱點無憂
每當(dāng)出現(xiàn)重大新聞,各大應(yīng)用均產(chǎn)生了海量的推送消息,Push 業(yè)務(wù)收到消息后,流量激增,集群規(guī)模難以支撐巨大的流量。但依靠 GaussDB(forCassandra)的快速擴容能力,Push 業(yè)務(wù)實現(xiàn)了分鐘級別的計算擴容,業(yè)務(wù)不受影響,而且當(dāng)流量回歸正常后,可以進行縮容降低成本。
超強可靠性,底座無憂
GaussDB(forCassandra)不僅在讀寫性能上表現(xiàn)優(yōu)異,在數(shù)據(jù)可靠性上也表現(xiàn)突出。因為采用多節(jié)點分布式架構(gòu),當(dāng)任意盤或節(jié)點出現(xiàn)故障,讀寫操作會自動切換至其他節(jié)點,理論上可以達到 N-1 個節(jié)點故障容忍,即集群任一節(jié)點存活即可提供完整服務(wù)。同時還支持異地雙活,實現(xiàn)業(yè)務(wù)恢復(fù)和故障恢復(fù)解耦,Region 級高可用。
綜上所述,GaussDB(forCassandra)為 Push 業(yè)務(wù)提供了高效、穩(wěn)定、安全的數(shù)據(jù)庫底座,助力 Push 業(yè)務(wù)實現(xiàn)了離線消息緩存架構(gòu)。我們相信,借助 GaussDB(forCassandra),Push 業(yè)務(wù)在消息推送領(lǐng)域,會為開發(fā)者提供更優(yōu)質(zhì)的服務(wù)和工具,助力企業(yè)提升業(yè)務(wù)價值和用戶體驗。
審核編輯黃宇
-
華為云
+關(guān)注
關(guān)注
3文章
2756瀏覽量
18058
發(fā)布評論請先 登錄
智能語音新風(fēng)尚:WTK6900語音識別芯片賦能未來家居,讓涼爽觸“聲”可及

RAKsmart服務(wù)器如何重塑AI高并發(fā)算力格局
智能推送系統(tǒng)的全鏈路統(tǒng)計功能:數(shù)據(jù)閉環(huán)下的運營增效革命
華為云 GaussDB 助力國家統(tǒng)計局, 開啟統(tǒng)計現(xiàn)代化改革新篇章
華為云GaussDB助力統(tǒng)計現(xiàn)代化改革
Payment Kit(華為支付服務(wù))概述
英偉達78%員工已成百萬富翁
解鎖企業(yè)級郵件服務(wù),在華為云 FlexusX 上部署 Mailcow 開源方案

英偉達AI服務(wù)器將革新采用插槽式設(shè)計
元服務(wù)體驗-服務(wù)使用
高危行業(yè)的安全守護者,頂堅防爆手機無懼挑戰(zhàn)

ECAD無法PUSH,疑似文件過大
華為云函數(shù)工作流:引領(lǐng)未來無服務(wù)器計算時代

遠景達無感智慧考勤解決方案讓考勤管理更智能

評論