作為國內領先的第三方云推送平臺,極光推送始終堅持在技術進步的道路上永不止步。
在經歷了三次大規(guī)模系統(tǒng)重構之后,極光推送基于 ICE 打造了高可用云推送平臺,在擴容縮容、系統(tǒng)配置集中統(tǒng)一、自動負載均衡等方面更加便利。
但極光推送并不因為有了 ICE 就止步不前。
極光推送認為僅僅ICE是不夠的。
ICE是一個分布式的網絡中間件,提供了通信層的完全封裝,能自動處理網絡異常,負載均衡,業(yè)務部署等基礎性的工作,避免在這些地方重復發(fā)明輪子,省時省力,讓研發(fā)人員的工作變得更輕松。
但是,還是需要做一些調整工作,比如負載的調度策略、計劃支持客戶端語言選擇,以及 ICE 對象的設計。推送系統(tǒng)是多種技術結合的綜合體系,需要緩存、需要數(shù)據(jù)庫、需要 MQ 等大量的其它技術配合。
下圖是 ICE 的體系架構,這個 C/S 架構左邊藍色代碼部分,是通過IDL生成的相應平臺的接口,各平臺下可以直接調用;右邊是對應的接口骨架類,用來容納具體的服務端業(yè)務邏輯。
ICE 本身提供的原生服務如 Ice Grid,它可以管理 Glacier2,極光內部服務節(jié)點很多都是在內網,如果需要跨網訪問的時候要跨外網,不可能把成千上萬節(jié)點都給它,可以通過這樣做一個流量的轉發(fā),就是防火墻穿越。
Ice Patch2 是一個自動化的部署,有點像交付,它提供專用的服務,把 Server 放在這樣一個目錄結構里面更新一下,重新計算數(shù)值后發(fā)通知,所有的節(jié)點會全部更新。在更新的過程中,節(jié)點可能會停一下或重啟。正在處理的請求處理完之后,再重新啟動。請求不會在啟動和停止之間丟失,因為 ICE 的客戶端會把這個請求正常定位到其他正在運行的節(jié)點上,客戶端的調用是沒有感知的。
像 DBAgent、STC、TagAlias 等集群都用到了 ICE,在研發(fā)過程中能節(jié)省不少精力,例如不需要從 Socket 做起,通過 IDL 簡化協(xié)議設計,提高效率;擴容縮容方便;不用再專門處理容災;不同語言之間的差異由框架代勞;系統(tǒng)配置集中統(tǒng)一;自動負載均衡,連接池管理等等。
極光推送始終不忘初心,在用戶與負載日益增加的情況下,不斷用新的技術保持高效穩(wěn)定的服務,做國內最專業(yè)的開發(fā)者服務。
榜單收錄、高管收錄、融資收錄、活動收錄可發(fā)送郵件至news#citmt.cn(把#換成@)。
海報生成中...