數(shù)據(jù)傳輸:移動產(chǎn)品的3種現(xiàn)象級信息傳輸方案

4 評論 8032 瀏覽 13 收藏 9 分鐘

筆者從信息分類出發(fā),對數(shù)據(jù)傳輸進(jìn)行了分析并總結(jié)了三種主要的現(xiàn)象級方案,供大家參考與學(xué)習(xí)。

信息傳輸好比產(chǎn)品的血液流動。

產(chǎn)品經(jīng)理有必要大致了解數(shù)據(jù)傳輸?shù)倪吔?、場景、基本方案,以參與項目的排期、控時、選型。

信息傳輸?shù)姆绞?,決定了可實現(xiàn)場景的邊界。目前的傳輸方式主要如下:

  1. 在線直傳:不經(jīng)過服務(wù)器,進(jìn)行直傳;
  2. 在線代理:消息經(jīng)過服務(wù)器 中轉(zhuǎn) 到達(dá)目標(biāo)賬號;
  3. 離線代理:消息經(jīng)過服務(wù)器 中轉(zhuǎn) 到達(dá)目標(biāo)賬號 對方不在線 消息暫存服務(wù)器的數(shù)據(jù)庫,在其上線再傳發(fā);
  4. 離線擴(kuò)展:將暫存消息以郵件,短信等方式轉(zhuǎn)發(fā)給目標(biāo)賬號。

這些傳輸方式有不同的實現(xiàn)方案。為了更概括抽象,筆者從信息分類角度出發(fā),總結(jié)了三種主要的現(xiàn)象級方案。

一、實時且高頻的信息傳遞——IM

一些功能,對信息響應(yīng)的及時性和頻率要求高,比如App中的實時聊天(就像陌陌的聊天)、匹配交友(類似SOUL的語音匹配),對戰(zhàn)游戲(如王者榮耀)等。

這些場景往往是“在線等”的態(tài)勢,毫秒級別的誤差就可能會導(dǎo)致產(chǎn)品的坍塌。

那么通常是使用什么信息交互技術(shù)實現(xiàn)的呢?

通常會使用IM機(jī)制(Instant Messaging)。即時通訊,就是識別在線用戶,并與他們實時交換消息。

IM是一個成熟的機(jī)制,該體系中最核心的部分是消息系統(tǒng),消息系統(tǒng)中最核心的功能是消息的同步、存儲和檢索。

IM工作流程:

這樣就無需每次信息發(fā)出,都要從客戶端到服務(wù)器進(jìn)行“握手”訪問,減少了大量的延遲和丟失數(shù)據(jù)風(fēng)險。

打比方,IM無需每次都拿鑰匙開門了,而是門就給你開著,進(jìn)出不限次數(shù)。避免了丟鑰匙的風(fēng)險和開門的時間浪費。

IM通常是配合“長鏈接”(后面還會提到)技術(shù)實現(xiàn)的??梢怨咀约貉邪l(fā),多數(shù)時是使用第三方IM的SDK,比如云信。

以IM為內(nèi)核的產(chǎn)品,比如釘釘、微信、QQ等。

非以IM系統(tǒng)為核心的應(yīng)用,最典型的如一些在線游戲、社交應(yīng)用等。

二、及時性要求不太高的信息傳遞——接口

作品評論、點贊、收藏這樣的功能,對時效要求低于上面提到的實時聊天。

這種功能一般是通過常規(guī)的HTTP接口請求方式實現(xiàn)的。也就是信息源頭發(fā)起請求,服務(wù)器收到請求進(jìn)行處理,再返回給目標(biāo)服務(wù)器。

這種信息傳遞機(jī)制在產(chǎn)品中使用的最普遍,研發(fā)成本小。比如雙擊【抖音】的底部【首頁】菜單,視頻刷新。

其流程就是:客戶端觸發(fā)——發(fā)起消息——刷新數(shù)據(jù)。

當(dāng)然用戶不請求,也能自動刷新呢?可以通過定時任務(wù),或死循環(huán)等方式實現(xiàn)。

原理就是按照設(shè)定的頻率,自動請求服務(wù)器。好像每隔一會打開一次朋友圈,看有沒有人點贊一樣。

關(guān)于HTTP請求的擴(kuò)展

(1)短輪詢和長輪詢

輪詢:就是戶端定期去向服務(wù)端詢問是否有新的消息;服務(wù)端見到客戶端來詢問,就告訴它。

這種方案最簡單,但是卻不適用于即時通訊產(chǎn)品,因為即時通訊軟件的消息傳遞機(jī)制與一般的消息推送的區(qū)別就在即時這點,如果采用輪詢的方式,客戶端每幾秒就連一次服務(wù)器,對于手機(jī)電量與流量的消耗是很大的。

  • 短輪詢(short-polling):是指服務(wù)端收到請求后,無論是否有數(shù)據(jù)都立即返回。
  • 長輪詢(long-polling):指服務(wù)端收到請求后若有數(shù)據(jù)立即返回,若無數(shù)據(jù)則保持到有數(shù)據(jù)時返回,或一段時間后超時才結(jié)束。

(2)短連接和長連接

  • 短連接(short connection):就是請求一次,建立一次連接,任務(wù)結(jié)束就中斷,不再復(fù)活。
  • 長連接(long connection):執(zhí)行握手鏈接后,不斷開鏈接,保持客戶端和服務(wù)端通信,直到服務(wù)器超時自動斷開鏈接,或者客戶端主動斷開鏈接。

適用于操作頻繁、點對點通訊,且連接次數(shù)不是太多。

三、退出應(yīng)用或后臺狀態(tài)下的信息發(fā)送——推送

比如App退出之后,還會有頂部橫幅提醒。

這通常是通過服務(wù)器的推送機(jī)制實現(xiàn)的。該推送技術(shù)叫做Serverpush:客戶端是否在線都可以被喚起。

簡單地說,就是不管你要不要消息(在用戶手機(jī)系統(tǒng)設(shè)置為同意接收來自應(yīng)用的消息推送通知情況下),都可以把消息推到你手機(jī)的通知欄,或者app右上角有角標(biāo)。

推送可以第一時間把想要傳達(dá)給用戶的消息發(fā)出去,因為很多用戶其實也不知道自己需要怎么樣的信息。

推送方案的公認(rèn)評價采取4s標(biāo)準(zhǔn):Safe(安全)、Stable(穩(wěn)定)、Save(省電省流量省成本)、Slim(體積小)。

目前國內(nèi)主要使用第三方的推送功能,比如個推、騰訊的信鴿。

(1)為什么要推送

每個月用戶手機(jī)里都裝有幾十款應(yīng)用,而現(xiàn)在生活節(jié)奏快,即便是很不錯的應(yīng)用也可能幾天不用就忘掉了,因此為了提醒用戶應(yīng)用的存在性,同時給用戶帶來一些價值,比如手游類應(yīng)用送道具,電商類應(yīng)用送優(yōu)惠券等。

歸根結(jié)底,推送的目的是提升應(yīng)用的活躍度和留存率。

(2)為什么要用第三方推送

自建通道尤其是創(chuàng)業(yè)團(tuán)隊,會耗費一定的人力,同時在推送的關(guān)鍵指標(biāo)如抵達(dá)率、精準(zhǔn)推送等方便是個很大挑戰(zhàn)。

總結(jié)

由于數(shù)據(jù)量、及時性、容錯、硬件性能、生態(tài)集群、技術(shù)發(fā)展等方面的差別,導(dǎo)致移動產(chǎn)品的數(shù)據(jù)傳輸方案,不同于后臺類產(chǎn)品的數(shù)據(jù)傳輸(參考文章《系統(tǒng)間數(shù)據(jù)對接的邏輯和機(jī)制》)。

本文粗淺的總結(jié),源自于實際工作的積累總結(jié)。

#專欄作家#

唧唧歪歪PM,公眾號:唧唧歪歪PM(ID:jjyypm),人人都是產(chǎn)品經(jīng)理專欄作家。書籍《后端產(chǎn)品經(jīng)理寶典》作者,藥學(xué)碩士轉(zhuǎn)行互聯(lián)網(wǎng)產(chǎn)品多年;熟悉跨境電商業(yè)務(wù),醫(yī)藥領(lǐng)域;擅長大型后臺體系,社交App。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 總結(jié)的很棒@

    來自湖南 回復(fù)
  2. 您總結(jié)的方向有點像大家不太注重的盲區(qū),但是卻很有用,設(shè)計功能時應(yīng)該思考進(jìn)去,但往往現(xiàn)在都有開發(fā)團(tuán)隊代勞了,我覺得產(chǎn)品也應(yīng)該負(fù)責(zé)占比30%左右;傳輸方案的細(xì)節(jié),類似于體育比賽的體能問題,平時不起眼,但是到了加時賽往往決定比賽的勝負(fù);

    來自北京 回復(fù)
  3. 這些需要如何才能學(xué)到,求教。想要了解更多

    來自福建 回復(fù)
  4. 總結(jié)得很棒 ??

    來自浙江 回復(fù)