成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

個推技術實現原理介紹

移動開發
傳統互聯網上數據交互一般有poll和push兩種方式。poll典型使用場景是瀏覽網頁,是用戶主動發起請求,向服務器獲取數據;push剛好相反,通過服務器直接發送數據給客戶端,用戶被動接受消息,類似于更加及時的短信。Push的使用場景有以下兩特點:時間不確定性、時效性,如發送團購信息,發送電子消費賬單等。

概述

PUSH是互聯網上內容提供者和內容定制方之間的一種通信機制,利用在服務器端的程序把數據源源不斷地推向客戶端,大大提高客戶機和服務器之間的交互性能。

傳統互聯網上數據交互一般有poll和push兩種方式。poll典型使用場景是瀏覽網頁,是用戶主動發起請求,向服務器獲取數據;push剛好相反,通過服務器直接發送數據給客戶端,用戶被動接受消息,類似于更加及時的短信。Push的使用場景有以下兩特點:時間不確定性、時效性,如發送團購信息,發送電子消費賬單等。

個推為第三方應用提供了跨手機平臺一致的、穩定可靠的消息推送服務,實現服務端到客戶端的消息主動推送。第三方應用可以實現針對單一目標地址的推送,也可以實現群發消息推送,還可以通過指定tag進行定向群組推送。個推除了為第三方提供基本的透明消息傳輸,還提供了一些消息展示方式,實現在客戶端的通知提示、彈框操作等,幫助客戶快速實現更為定制化的消息推送服務。

個推目前支持Android、iOS手機平臺。

技術原理

首先我們來看一下組成一個推送系統的幾個要素

1. 個推SDK:

以jar的方式出現,集成于第三方客戶端,解析第三方下行的數據,并把結果透傳給第三方客戶端;也可以上行第三方定制的客戶端信息。

2. 個推服務器:

一側負責維護與成千上萬的個推SDK的長時連接,另一側與第三方服務器對接,將第三方定制數據下行推送至個推SDK。

3. 第三方服務器:

數據推送的發起者,通過對接個推服務器,將數據發送至第三方客戶端。

4. 第三方客戶端:

第三方集成個推SDK的客戶端,推送數據正真的接收者和展現者。

以上是個推推送系統中的四個不同角色,看起來比較抽象,可以通過以下圖片來加強理解:

說明:

AppID:應用ID,第三方在個推系統注冊帳號并創建生成的唯一的應用標識。

ClientID:用于標識客戶端身份,由第三方客戶端獲取并保存到第三方服務端。

UID:一般為第三方系統帳號體系中的用戶標識。第三方服務端一般需要保存UID和ClientID的映射關系,進行消息推送時,通過UID查找到相應的ClientID,便可進行定向推送了。

我們用一個更加形象的方式來描述一下這個系統:淘寶購物相信很多人都體驗過,就拿它舉個例子。

淘寶賣家——第三方服務器

淘寶買家——第三方客戶端

快遞公司(比如順風)——個推服務器

集淘寶買家中的地址管理、快遞查收、包裹檢驗等一系列工作的集合——個推SDK(這個有點不形象,但是大概理解意思就好)。

假設淘寶買家下了一單,首先需要填寫寄件地址(假設不用默認的),這個相當于個推SDK根據客戶端的信息,建立了一條通道(快遞配送地址)。

當買家付款成功后,賣家需要發貨(第三方服務端要推送數據),當然先叫快遞公司拿件(把推送數據發送給個推服務器),快遞公司根據包裹上的地址(第三方客戶端的身份信息,就是上面所說的ClientID)將包裹(數據)寄送到買家(第三方客戶端),買家收貨后,先驗收一下貨物是否有損壞(數據是否符合定制要求),獲取到包裹內容(獲得服務端推送的數據),并簽單驗收(個推SDK反饋數據發送成功)。

與上面的例子相對應,我們再描述一遍整個推送過程的技術流程:

1. 第三方客戶端集成個推SDK。

2. 第三方客戶端啟動的時候,調用SDK接口,啟動推送服務,SDK后臺運行并維護和個推服務端的長連接,實現SDK注冊和登錄。

3. 第三方服務端調用個推服務器的接口,將要發送的數據通過個推服務器發送到指定身份的個推SDK當中。

4. 個推SDK解析定制數據,并且把第三方服務器透傳的數據發送給第三方客戶端,第三方客戶端根據服務器的數據做出相應的動作或者展現。

陷阱

初步看來,實現一個推送系統并不是特別復雜,然后實際上,尤其是針對Android移動終端來說,仍然有相當多的技術問題需要克服。

1. 電源管理

Android系統為了***程度降低手機功耗、延長待機時間,在電源管理方面做了非常大量的底層工作,對電池的使用到了精打細算的地步。然而Android系統在電源管理方面做出的這些努力,很輕易地就能被不守規矩的應用程序消耗殆盡。個推SDK服務作為需要長期后臺穩定運行的程序,在電源管理方面能夠做到取之有度,日均耗電量能夠控制在40mAh左右,對用戶日常手機使用幾乎沒有影響。

2. 網絡穩定性

在國內移動運營商網絡條件下,地區差異、時間段差異、運營商差異都比較明顯,使得手機上實現穩定的聯網困難重重。為了在各種網絡條件下,都能實現穩定聯網和流量消耗的兼顧平衡,個推研發了能夠根據網絡狀況動態調整心跳間隔的自適應算法,以最小的網絡代價實現最穩定的聯網質量。目前個推SDK空載流量消耗每月僅有0.8M-1.2M,不會對用戶的錢袋造成損失。

3. 性能問題

為了實現千萬SDK同時連接到服務端,同時又能控制系統運營成本,推送平臺需要具備平行可擴展能力,以及較高的接入服務器性能。目前個推系統通過內核調優、代碼優化、層級架構設計等技術手段,已經實現單擊200w穩定在線,理論上支持無限平行擴展,并且經得起實踐考驗,正在在線上為超過千萬的用戶提供穩定的推送服務。

總結

推送服務是伴隨著移動互聯網的發展,逐漸顯露出來的商業化訴求。越來越多的移動應用、電商、游戲意識到推送服務對于自身業務的重要性,然后國內的現狀,導致Android系統上并沒有穩定可靠的推送服務可供使用,于是個推應運而生。本文概要介紹了個推系統的結構和消息推送流程,并對實踐中必須解決的技術問題做了探討。個推致力于實現Android系統上最穩定可靠的推送服務,并在相關技術參數上做到了***。

責任編輯:閆佳明 來源: 51CTO
相關推薦

2010-04-12 15:35:42

2022-05-24 12:34:32

Docker容器Linux容器進程

2015-09-25 09:56:37

負載均衡

2017-05-16 15:33:42

Python網絡爬蟲核心技術框架

2020-04-05 11:01:03

虛擬機備份組網

2013-07-24 15:22:41

個推功能

2012-08-20 09:41:05

開源技術推特

2015-07-10 16:26:00

個推

2024-06-24 00:09:00

零拷貝技術MMapsendFile

2013-07-01 18:43:35

個推公共平臺云推送優勢

2015-07-23 10:14:56

個推

2009-11-25 13:08:48

PHP內存緩存技術me

2014-01-03 09:28:32

物聯網技術

2010-09-16 15:28:00

PPPoE原理

2024-10-10 08:33:06

2011-03-18 10:26:47

Java對象

2013-07-01 18:16:37

個推公共平臺地震速報

2013-07-01 18:34:47

個推案例新浪微博

2009-07-02 10:27:20

JSP技術JSP入門

2009-07-02 12:56:01

JSP技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.夜夜骑.com | 97精品超碰一区二区三区 | 欧美一区二区三区在线观看视频 | 久久久一区二区三区 | 农夫在线精品视频免费观看 | 国产精品视频97 | 国产精品美女 | 男女视频在线观看网站 | 亚洲国产一区二区三区在线观看 | 91久久久久久久 | 中文字幕在线免费视频 | 欧美亚洲国产一区二区三区 | 国产欧美日韩久久久 | 亚洲福利片 | 久久久久国产一区二区三区四区 | 国产精品免费一区二区三区 | 成人综合视频在线观看 | 在线观看av中文字幕 | 精品国产乱码久久久久久丨区2区 | 国产精品99久久久久久www | 在线伊人网 | 国产九九九| 三级欧美 | 一区二区不卡 | 日本久久精品视频 | 久久久久久成人 | av在线一区二区三区 | 五月婷婷视频 | 91亚洲精选| 日韩影院在线 | 国产在线网站 | 久久久久网站 | 久草青青| 精品久久久久一区二区国产 | 亚洲高清在线观看 | 国产精品亚洲综合 | 国户精品久久久久久久久久久不卡 | 日本午夜精品一区二区三区 | 有码在线 | 性欧美精品一区二区三区在线播放 | 国产福利在线 |