摘要:推送服務(Push Kit)是華為提供的訊息推送平臺,建立了從云端到終端的訊息推送通道,通過集成推送服務,您可以向客戶端應用實時推送訊息,讓應用更精準觸達用戶,是開發者提升用戶感知度和活躍度的一件利器,
本文分享自華為云社區《無懼百萬級并發,GaussDB(for Cassandra)讓華為Push推送服務更快觸達》,作者:GaussDB 資料庫,
推送服務(Push Kit)是華為提供的訊息推送平臺,建立了從云端到終端的訊息推送通道,通過集成推送服務,您可以向客戶端應用實時推送訊息,讓應用更精準觸達用戶,是開發者提升用戶感知度和活躍度的一件利器,

華為云GaussDB(for Cassandra) 是一款基于計算存盤分離架構的分布式資料庫,致力于提供穩定可靠、超高并發,兼容Cassandra生態、彈性伸縮、一鍵部署、快速恢復、監控告警的分布式資料庫服務,在Push業務的高效架構建設中,起到了關鍵的作用,
業務挑戰
Push服務能夠協助開發者快速觸達用戶,其提供的系統級通道推送速度每秒最高可達百萬級,訊息量每日百億級,并且支持實時訊息回執,如此高到達率的背后,是因為Push使用了大量分布式架構、高性能佇列、大資料分析、資料庫、AI等技術,用來支撐實時推送、精準送達業務的高效開展,
Push的主要業務鏈路是發送上行訊息和下行訊息,接下來我們從發送下行訊息流程來了解業務在哪些場景上用到了資料庫,以及對資料庫的要求有哪些?
下行訊息互動圖如下所示:

當用戶設備網路條件良好且不擁堵的情況下,華為Push服務器在收到訊息后,會先將訊息存入高性能佇列中,然后佇列消費訊息發送給用戶設備,但是當用戶設備處于弱網、網路例外,或不在線、熄屏狀態時,訊息無法到達設備,或此時發送訊息價值較低,Push業務為了保障訊息不丟失,以及提升訊息的有效率,利用資料庫為底座,來支持離線訊息快取能力,
離線訊息快取是指當訊息到達華為Push平臺后,如果設備不在線,華為Push平臺會將訊息快取起來,等到設備上線后,華為Push平臺會將快取的訊息再次推送給用戶,如果用戶很長時間不在線,這些快取的訊息默認保存24小時,最長保存15天,超期的訊息會被Push平臺丟棄,
此時,在資料庫的選型上就需要考慮以下幾個問題:
- 推送速度每秒百萬級,極端場景下,大部分寫入資料庫,會有每秒百萬寫入請求,資料庫需要具備超高的寫入能力;
- 當設備恢復正常狀態時,訊息會從資料庫中讀出發送給用戶,訊息的實時性會直接影響到訊息的價值,此時就要求資料庫的讀時延低且長尾時延穩定;
- 推送的訊息中,多與時事熱點相關,容易引發流量突增,且不可預知,這就要求資料庫具有快速彈性伸縮的能力;
- 為達成AI智能推送的能力,可能需要對資料庫中的資料進行資料挖掘和分析,從而實施智能推送策略,資料庫需支持與主流大資料引擎兼容的介面和解決方案,
為什么選擇GaussDB(for Cassandra)?
基于以上挑戰,Push業務經過一系列技術選型,最終選擇了GaussDB(for Cassandra)資料庫,GaussDB(for Cassandra)憑借豐富強大的特性,可以幫助Push業務很好地應對訊息快取的挑戰:
- 從請求量上看,GaussDB(for Cassandra)輕松支持千萬級并發訪問,高并發不在話下;
- 從時延上看,GaussDB(for Cassandra)除了本身具備超低時延的能力外,在并發量大的情況下,可通過擴容和規格變更,增加磁區和負載均衡保證業務時延基本無變化;
- 從彈性伸縮上看,GaussDB(for Cassandra)基于存算分離架構,支持秒級存盤擴容,分鐘級計算擴容,輕松應對流量高峰;
- 從兼容能力看,GaussDB(for Cassandra)支持CQL語法和靈活的資料定義,同時兼容主流的批式/流式處理引擎(Spark/Flink等),且提供動態增量+全量的解決方案,供大資料分析引擎接入,充分滿足不同型別資料的接入需求,
如何利用GaussDB(for Cassandra)提升訊息快取體驗
下面,我們將從具體的幾個技術改進來聊聊,GaussDB(for Cassandra)是如何幫助Push業務獲得更好的訊息快取體驗,
降本增效
- 降低Push集群對資料庫請求量:
- 表結構設計時,將同一用戶設備的多條資訊存入同一partition中
- 在讀取時,可使用范圍查詢將同一用戶設備的多條資訊批量查出,且時延較低
- 在寫入時,使用Batch寫入,降低客戶端與資料庫的互動次數
- 降低存盤使用量:業務科通過TTL、范圍洗掉、單行洗掉等多種手段,根據業務情況靈活使用達到資料消亡的目的,降低存盤用量,
彈性伸縮,熱點無憂
每當出現重大新聞,各大應用均產生了海量的推送訊息,Push業務收到訊息后,流量激增,集群規模難以支撐巨大的流量,但依靠GaussDB(for Cassandra)的快速擴容能力,Push業務實作了分鐘級別的計算擴容,業務不受影響,而且當流量回歸正常后,可以進行縮容降低成本,
超強可靠性,底座無憂
GaussDB(for Cassandra)不僅在讀寫性能上表現優異,在資料可靠性上也表現突出,因為采用多節點分布式架構,當任意盤或節點出現故障,讀寫操作會自動切換至其他節點,理論上可以達到N-1個節點故障容忍,即集群任一節點存活即可提供完整服務,同時還支持異地雙活,實作業務恢復和故障恢復解耦,Region級高可用,
綜上所述,GaussDB(for Cassandra) 為Push業務提供了高效、穩定、安全的資料庫底座,助力Push業務實作了離線訊息快取架構,我們相信,借助GaussDB(for Cassandra), Push業務在訊息推送領域,會為開發者提供更優質的服務和工具,助力企業提升業務價值和用戶體驗,
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/550996.html
標籤:其它
上一篇:華為云GaussDB支撐華為MetaERP系統全面替換
下一篇:返回列表