極光筆記 | 極光PUSH服務助力企業提升搶單速度

隨着硬件、軟件、網絡等不斷髮展、完善,互聯網已經滲透到了日常生活中的方方面面,在直接賦能原有行業服務的同時也帶來了很多新的服務模式,給人們日常生活帶來了極大便利。例如:外賣、快遞、跑腿等相關業務更是在我們日常生活中隨處可見。業務終端經常處在弱網環境下,對連通性、業務處理及時性有很高的要求。

企業要實現優質的服務,通常有2個方式:

完全自研

依賴已有的成熟第三方通道服務
企業可以選擇兩者取其一或者兩個方式並存。
作爲中國領先的客戶互動和營銷科技服務商,極光在行業內深耕多年,有着豐富的行業經驗和深厚的技術積累,極光推送爲外賣、快遞、跑腿等搶單類業務提供了優質穩定的通道服務,幫助開發者快速下發訂單、幫助終端設備的使用者實現快速搶單。

那麼極光推送是如何實現的呢?

訂單搶單的相關訴求

外賣、快遞、跑腿類的終端設備通常使用專業的手持設備或者常規的手機。這些設備通常使用的是運營商移動網絡,在移動過程中可能出現信號弱甚至信號中斷的場景。因此這一類的業務,對於網絡連通性有比較高的要求,需要儘量保證能夠穩定在線、及時重新在線,以便服務端的業務消息能夠及時送達到設備。另外一方面,從相關的業務角度看,開發者有給單一終端設備下發業務消息的場景,也有給特定用戶羣下發業務消息的場景,例如給一定地理區域範圍或者某些類別的用戶下發訂單消息等等。

極光的優勢

極光的推送服務已經有10年左右的歷史,給各行各業衆多的企業提供服務,有着非常豐富的各種場景的落地實踐經驗,同時我們也在不斷夯實技術,每天處理大量的數據,推送百億級別的消息,爲日活超過4億的終端用戶提供高效、穩定的服務。

極光如何通過技術實現達到賦能的目的

極光推送提供的服務就是要快速的將消息發送給目標設備,並提供專業的數據分析讓開發者能夠及時瞭解推送的結果,方便業務運營,通過以下幾個方面來達到這個目的:

  • 專業的SDK便於方便集成,高效穩定,滿足合規要求。
  • 高效穩定的連接,讓消息更加快速的發送到終端設備。
  • 高效的數據訪問方式,在大數據量、高併發場景也能夠實現快速訪問。
  • 大規模集羣並行處理,能夠滿足高併發要求,並且能夠應對突增的流量高峯。
  • 多個下發通道的支持,儘量保證消息下發觸達到目標終端設備。
  • 專業的數據統計分析,推送結果一目瞭然,方便開發者進行業務運營。

專業的SDK

當前極光支持多個主流平臺的SDK,能夠讓開發者快速地集成到自身的應用當中,幾分鐘就可以實現App的推送功能,也能夠滿足各開發者對SDK體積大小、功耗等方面的要求。在數據採集方面,基於最小化原則,只採集必要的數據,滿足相關合規條款的要求,在此基礎之上,推送相關的數據例如送達、展示、點擊等數據儘量上報,方便數據統計分析。

多個終端接入節點,就近接入

極光推送連接着開發者和終端設備用戶,而終端設備上集成極光SDK,那麼SDK和極光推送的連接質量就特別重要了。在推送系統架構上,把SDK和極光推送系統連接的部分抽離出來,形成接入網關服務,接入網關服務負責連接終端設備,並將消息分發到指定的SDK連接上,本身並不進行具體的業務邏輯,起到連接和業務中轉的功能。接入網關服務部署在全國各個區域,跟核心機房的推送系統主要是通過運營商的骨幹網絡進行通信,網絡質量基本上都很穩定。

SDK首先向推送系統請求獲取連接接入網關服務的地址,推送系統根據SDK的相關信息例如IP運營商、IP屬地等從接入網關服務的地址列表中,選擇最優的接入網關服務地址返回給SDK進行連接。這通常來說會考慮SDK的IP運營商、IP屬地、接入網關服務的網絡線路例如是否特定線路或者BGP網絡、接入網關服務部署地域、接入網關服務本身的負載等等機房方面。儘量讓SDK連接到網絡線路友好的、距離最近的接入網關服務。

此外,SDK在保持連接方面也有一些相關的工作,綜合考慮功耗、流量消耗、連接斷開敏感性等因素設置合適的心跳間隔時間,以便及時感知網絡斷開的情況,進而重新連接到推送系統。爲了快速建立連接,採用並行建立連接的方式,以最快的速度建立SDK和推送系統的網絡鏈路。

接入網關服務目前基本上都是對接BGP網絡,從而滿足從各個運營商網絡連接的設備的連接穩定性,同時根據就近連接策略,減少數據在網絡傳輸的時延,儘量保證連接質量。

推送業務數據存儲優化

極光推送目前有超過650億的累計註冊用戶數據,並且還在持續增長中,除了基礎的用戶數據,還有用於推送的各個維度的數據,例如標籤別名、智能標籤、定時任務等等。這麼大量級的數據,如何組織數據、存儲數據,以便快速訪問數據,實現高併發的業務處理,就需要有相應的處理策略來達到這個目的。

  • 按照子業務功能拆分數據,最小化訪問數據。每個子業務功能所訪問的數據通常來說只是訪問用戶的一部分數據,其他數據維度往往不需要訪問,因此可以從子業務的維度進行數據的拆分並獨立存儲。例如別名標籤、用戶在線狀態、離線消息等等,通過獨立存儲數據,能夠減少網絡IO,減少存儲系統過濾不相關數據的處理,降低業務耦合,提升系統的穩定性、可用性和整體性能。

  • 緩存優化。推送任務的及時性要求非常高,並且系統中有大量的推送任務同時進行,因此對數據的訪問時延也有很高的要求,以便快速的數據訪問。根據數據集的規模和特性、訪問時延、總體QPS、存儲成本等方面的因素,設計合適的存儲結構存儲到合適的存儲系統中。採用多級緩存的機制,通常來說是基於內存的存儲結合基於磁盤的存儲,例如使用Redis和PIKA進行存儲,也會根據業務適當的使用本地緩存。特別的,針對大數據集羣或者big key,採用數據分片處理。

  • 冷熱數據分離。我們的系統中有大量的數據,有一些高頻訪問,也有一些是很少訪問甚至基本不訪問例如已經長時間不活躍的用戶。綜合考慮存儲成本、訪問時延、維護成本,採用不同的存儲系統來保存這些數據,高頻訪問的數據存儲在Redis中,低頻訪問的數據存儲在PIKA或者MySQL。

  • 讀寫分離、一主多從。對於讀多寫少的場景,可以採用這個策略進行讀寫業務的隔離,同時通過多個從節點進行讀數據,提升系統的併發處理能力、整體吞吐能力。

大規模集羣並行處理

推送系統是一個包含多個子業務功能的龐大的系統,在大規模的數據集、大量併發請求的這個場景下,我們把各子業務拆分獨立成子系統,構造相關的服務,把業務處理流程化,通過消息驅動串聯業務流,各個業務節點/服務並行的處理。我們主要採用MQ或者RPC的方式進行各個服務的調用,異步調用處理爲主,少部分使用同步請求處理,一方面解耦業務,另一方面也提升系統整體性能。

推送的各個業務服務集羣化部署,每個子服務都是部署多個節點並行處理各個請求,同時爲了應對突發的大量請求流量,基於K8S的部署能夠快速的實現相關服務的自動擴容,快速處理各個業務請求。

下發通道選擇策略優化

當前極光推送系統中,有基於SDK和推送系統長鏈接的自有通道,也對接了主流的各個設備廠商的推送通道。自有通道由於權限的限制,並不一定能夠時時刻刻的保持長鏈接,但是並沒有限制下發頻率和下發數量;廠商推送通道使用系統級別的長鏈接,連通性更加好,但是每個廠商都有自己的消息下發限制規則,例如每日推送配額限制、推送速率限制、單個設備每日營銷類消息數量限制等等。

我們根據這些因素選擇合適的推送通道進行下發給目標用戶,以達到快速把消息送達給目標用戶。默認情況下,如果廠商通道能夠下發則選擇廠商通道下發消息,廠商通道不能夠下發例如沒有推送配額則使用極光自有通道進行消息下發。也可以選擇只通過廠商通道或者只通過極光自有通道下發消息。

專業的數據統計分析

當完成一個消息推送時,極光提供專業的漏斗分析工具,向開發者提供推送耗時、推送結果分析;同時也有推送用戶分析、推送消息統計分析等等工具,方便業務運營。



如何處理一個推送請求

當開發者需要發送一個訂單消息時,會調用我們的API接口,API服務器接收到請求後將進行權限校驗和參數校驗,判斷推送目標是否存在;然後將消息流轉到下游,下游根據參數的目標信息進行判斷,如果是推送給單一目標用戶,從用戶信息服務中獲取用戶信息;如果是推送給特定標籤,從標籤服務中獲取相關聯的目標用戶集合,這個過程已經做了相關的優化,即使是大量的用戶集合,也能夠快速的獲取。再根據用戶的通道信息流轉到指定的下發通道,由下發通道下發給目標設備的用戶。

目標設備的用戶收到消息後處理相應的業務邏輯,例如訂單的處理、搶單等等。

這個過程的處理耗時單推情況下能夠200ms內推送到目標設備,具體如下:

API處理耗時:10ms 以內

目標用戶選擇:單推情況下10ms 以內,多推情況跟目標用戶數量有關

廠商通道:10ms以內的數據訪問,http請求廠商接口10~40ms

極光自有通道:10ms以內的數據訪問,核心機房到達最遠的接入機房40ms,接入機房到達目標設備20ms

結 語

通過使用精準、高效、穩定、安全的極光推送服務,將幫助企業有效提升搶單速度,進而有效提升客戶觸達效率和互動需求。期待通過使用極光推送服務,幫助您實現快速增長。

關於極光

極光(Aurora Mobile,納斯達克股票代碼:JG)成立於2011年,是中國領先的客戶互動和營銷科技服務商。成立之初,極光專注於爲企業提供穩定高效的消息推送服務,憑藉先發優勢,已經成長爲市場份額遙遙領先的移動消息推送服務商。隨着企業對客戶觸達和營銷增長需求的不斷加強,極光前瞻性地推出了消息雲和營銷雲等解決方案,幫助企業實現多渠道的客戶觸達和互動需求,以及人工智能和大數據驅動的營銷科技應用,助力企業數字化轉型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章