天天看點

極光筆記 | 極光PUSH服務助力企業提升搶單速度訂單搶單的相關訴求極光的優勢極光如何通過技術實作達到賦能的目的專業的SDK多個終端接入節點,就近接入推送業務資料存儲優化大規模叢集并行處理下發通道選擇政策優化專業的資料統計分析如何處理一個推送請求結 語

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

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

  1. 完全自研
  1. 依賴已有的成熟第三方通道服務

企業可以選擇兩者取其一或者兩個方式并存。

作為中國領先的客戶互動和營銷科技服務商,極光在行業内深耕多年,有着豐富的行業經驗和深厚的技術積累,極光推送為外賣、快遞、跑腿等搶單類業務提供了優質穩定的通道服務,幫助開發者快速下發訂單、幫助終端裝置的使用者實作快速搶單。

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

訂單搶單的相關訴求

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

極光的優勢

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

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

極光推送提供的服務就是要快速的将消息發送給目标裝置,并提供專業的資料分析讓開發者能夠及時了解推送的結果,友善業務營運,通過以下幾個方面來達到這個目的:

  • 專業的SDK便于友善內建,高效穩定,滿足合規要求。
  • 高效穩定的連接配接,讓消息更加快速的發送到終端裝置。
  • 高效的資料通路方式,在大資料量、高并發場景也能夠實作快速通路。
  • 大規模叢集并行處理,能夠滿足高并發要求,并且能夠應對突增的流量高峰。
  • 多個下發通道的支援,盡量保證消息下發觸達到目标終端裝置。
  • 專業的資料統計分析,推送結果一目了然,友善開發者進行業務營運。

專業的SDK

目前極光支援多個主流平台的SDK,能夠讓開發者快速地內建到自身的應用當中,幾分鐘就可以實作App的推送功能,也能夠滿足各開發者對SDK體積大小、功耗等方面的要求。在資料采集方面,基于最小化原則,隻采集必要的資料,滿足相關合規條款的要求,在此基礎之上,推送相關的資料例如送達、展示、點選等資料盡量上報,友善資料統計分析。

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

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

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

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

接入網關服務目前基本上都是對接BGP網絡,進而滿足從各個營運商網絡連接配接的裝置的連接配接穩定性,同時根據就近連接配接政策,減少資料在網絡傳輸的時延,盡量保證連接配接品質。

極光筆記 | 極光PUSH服務助力企業提升搶單速度訂單搶單的相關訴求極光的優勢極光如何通過技術實作達到賦能的目的專業的SDK多個終端接入節點,就近接入推送業務資料存儲優化大規模叢集并行處理下發通道選擇政策優化專業的資料統計分析如何處理一個推送請求結 語

推送業務資料存儲優化

極光推送目前有超過650億的累計注冊使用者資料,并且還在持續增長中,除了基礎的使用者資料,還有用于推送的各個次元的資料,例如标簽别名、智能标簽、定時任務等等。這麼大量級的資料,如何組織資料、存儲資料,以便快速通路資料,實作高并發的業務處理,就需要有相應的處理政策來達到這個目的。

  • 按照子業務功能拆分資料,最小化通路資料。每個子業務功能所通路的資料通常來說隻是通路使用者的一部分資料,其他資料次元往往不需要通路,是以可以從子業務的次元進行資料的拆分并獨立存儲。例如别名标簽、使用者線上狀态、離線消息等等,通過獨立存儲資料,能夠減少網絡IO,減少存儲系統過濾不相關資料的處理,降低業務耦合,提升系統的穩定性、可用性和整體性能。
  • 緩存優化。推送任務的及時性要求非常高,并且系統中有大量的推送任務同時進行,是以對資料的通路時延也有很高的要求,以便快速的資料通路。根據資料集的規模和特性、通路時延、總體QPS、存儲成本等方面的因素,設計合适的存儲結構存儲到合适的存儲系統中。采用多級緩存的機制,通常來說是基于記憶體的存儲結合基于磁盤的存儲,例如使用Redis和PIKA進行存儲,也會根據業務适當的使用本地緩存。特别的,針對大資料叢集或者big key,采用資料分片處理。
  • 冷熱資料分離。我們的系統中有大量的資料,有一些高頻通路,也有一些是很少通路甚至基本不通路例如已經長時間不活躍的使用者。綜合考慮存儲成本、通路時延、維護成本,采用不同的存儲系統來儲存這些資料,高頻通路的資料存儲在Redis中,低頻通路的資料存儲在PIKA或者MySQL。
  • 讀寫分離、一主多從。對于讀多寫少的場景,可以采用這個政策進行讀寫業務的隔離,同時通過多個從節點進行讀資料,提升系統的并發處理能力、整體吞吐能力。

大規模叢集并行處理

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

極光筆記 | 極光PUSH服務助力企業提升搶單速度訂單搶單的相關訴求極光的優勢極光如何通過技術實作達到賦能的目的專業的SDK多個終端接入節點,就近接入推送業務資料存儲優化大規模叢集并行處理下發通道選擇政策優化專業的資料統計分析如何處理一個推送請求結 語

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

下發通道選擇政策優化

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

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

專業的資料統計分析

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

極光筆記 | 極光PUSH服務助力企業提升搶單速度訂單搶單的相關訴求極光的優勢極光如何通過技術實作達到賦能的目的專業的SDK多個終端接入節點,就近接入推送業務資料存儲優化大規模叢集并行處理下發通道選擇政策優化專業的資料統計分析如何處理一個推送請求結 語
極光筆記 | 極光PUSH服務助力企業提升搶單速度訂單搶單的相關訴求極光的優勢極光如何通過技術實作達到賦能的目的專業的SDK多個終端接入節點,就近接入推送業務資料存儲優化大規模叢集并行處理下發通道選擇政策優化專業的資料統計分析如何處理一個推送請求結 語
極光筆記 | 極光PUSH服務助力企業提升搶單速度訂單搶單的相關訴求極光的優勢極光如何通過技術實作達到賦能的目的專業的SDK多個終端接入節點,就近接入推送業務資料存儲優化大規模叢集并行處理下發通道選擇政策優化專業的資料統計分析如何處理一個推送請求結 語

如何處理一個推送請求

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

目标裝置的使用者收到消息後處理相應的業務邏輯,例如訂單的處理、搶單等等。

這個過程的處理耗時單推情況下能夠200ms内推送到目标裝置,具體如下:

API處理耗時:10ms 以内

目标使用者選擇:單推情況下10ms 以内,多推情況跟目标使用者數量有關

廠商通道:10ms以内的資料通路,http請求廠商接口10~40ms

極光自有通道:10ms以内的資料通路,核心機房到達最遠的接入機房40ms,接入機房到達目标裝置20ms

結 語

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

關于極光

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

繼續閱讀