日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

看了极光推送技术原理的几点思考

發(fā)布時間:2023/11/27 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 看了极光推送技术原理的几点思考 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

看了極光推送技術原理的幾點思考

分類:?android

目錄(?)[+]

移動互聯(lián)網(wǎng)應用現(xiàn)狀

因為手機平臺本身、電量、網(wǎng)絡流量的限制,移動互聯(lián)網(wǎng)應用在設計上跟傳統(tǒng) PC 上的應用很大不一樣,需要根據(jù)手機本身的特點,盡量的節(jié)省電量和流量,同時又要盡可能的保證數(shù)據(jù)能及時到達客戶端。

為了解決數(shù)據(jù)同步的問題,在手機平臺上,常用的方法有2種。一種是定時去服務器上查詢數(shù)據(jù),也叫Polling,還有一種手機跟服務器之間維護一個 TCP 長連接,當服務器有數(shù)據(jù)時,實時推送到客戶端,也就是我們說的 Push。

從耗費的電量、流量和數(shù)據(jù)送達的及時性來說,Push 都會有明顯的優(yōu)勢,但 Push 的實現(xiàn)和維護成本相對較高。在移動無線網(wǎng)絡下維護長連接,相對也有一些技術上的難度。本文試圖給大家介紹一下我們極光推送在 Android 平臺上是如何維護長連接。

移動無線網(wǎng)絡的特點

因為 IP v4 的 IP 量有限,運營商分配給手機終端的 IP 是運營商內(nèi)網(wǎng)的 IP,手機要連接 Internet,就需要通過運營商的網(wǎng)關做一個網(wǎng)絡地址轉換(Network Address Translation,NAT)。簡單的說運營商的網(wǎng)關需要維護一個外網(wǎng) IP、端口到內(nèi)網(wǎng) IP、端口的對應關系,以確保內(nèi)網(wǎng)的手機可以跟 Internet 的服務器通訊。

圖片源自 cisco.com.?

NAT 功能由圖中的 GGSN 模塊實現(xiàn)。

大部分移動無線網(wǎng)絡運營商都在鏈路一段時間沒有數(shù)據(jù)通訊時,會淘汰 NAT 表中的對應項,造成鏈路中斷。

Android 平臺上長連接的實現(xiàn)

為了不讓 NAT 表失效,我們需要定時的發(fā)心跳,以刷新 NAT 表項,避免被淘汰。

Android 上定時運行任務常用的方法有2種,一種方法用 Timer,另一種是AlarmManager。

Timer

Android 的 Timer 類可以用來計劃需要循環(huán)執(zhí)行的任務,Timer 的問題是它需要用 WakeLock 讓 CPU 保持喚醒狀態(tài),這樣會大量消耗手機電量,大大減短手機待機時間。這種方式不能滿足我們的需求。

AlarmManager

AlarmManager 是 Android 系統(tǒng)封裝的用于管理 RTC 的模塊,RTC (Real Time Clock) 是一個獨立的硬件時鐘,可以在 CPU 休眠時正常運行,在預設的時間到達時,通過中斷喚醒 CPU。

這意味著,如果我們用 AlarmManager 來定時執(zhí)行任務,CPU 可以正常的休眠,只有在需要運行任務時醒來一段很短的時間。極光推送的 Android SDK 就是基于這種技術實現(xiàn)的。

服務器設計

當有大量的手機終端需要與服務器維持長連接時,對服務器的設計會是一個很大的挑戰(zhàn)。

假設一臺服務器維護10萬個長連接,當有1000萬用戶量時,需要有多達100臺的服務器來維護這些用戶的長連接,這里還不算用于做備份的服務器,這將會是一個巨大的成本問題。那就需要我們盡可能提高單臺服務器接入用戶的量,也就是業(yè)界已經(jīng)討論很久了的 C10K 問題。

C2000K

針對這個問題,我們專門成立了一個項目,命名為C2000K,顧名思義,我們的目標是單機維持200萬個長連接。最終我們采用了多消息循環(huán)、異步非阻塞的模型,在一臺雙核、24G內(nèi)存的服務器上,實現(xiàn)峰值維持超過300萬個長連接。

后記

穩(wěn)定維護長連接是推送平臺的一個基礎,極光推送團隊將會在這方面長期投入,以保證用戶能有效的節(jié)省電量、流量,同時數(shù)據(jù)能實時送達。

以上是極光推送官方的文章,但是看了之后不免有幾個疑問。

?

1)他們號稱最高峰值可以達到300W的長連接,但是活躍鏈接的處理最高是多少呢?

2)消息的平均長度和限制各是多少?

3)消息的及時性怎么樣,延時是多少?

4)不知道現(xiàn)在,極光推送的用戶大概有多少,所以這個峰值是在生產(chǎn)環(huán)境,還是測試環(huán)境的數(shù)值?

5)我想不通的是為什么,客戶端要用AlarmManager來做推送消息的獲取?這個消息獲取還及時嗎?鄙人結識android也有N載。

6)我感興趣的是,不是極光方案一個月推送了幾百萬條數(shù)據(jù),而是幾秒鐘或者一分鐘可以處理多少。

?

轉載于:https://www.cnblogs.com/u0mo5/p/4413437.html

總結

以上是生活随笔為你收集整理的看了极光推送技术原理的几点思考的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。