騰訊社交LBS服務技術要點解讀
“如何在激烈的移動社交市場競爭中脫穎而出?”這是當前移動社交應用領域眾多開發者們所面臨的現實問題。在產品功能特性同質化越來越嚴重的形勢下,動用最小的研發資源實現“附近的人”,進而將更多的團隊資源投入到產品創新,是大家的深層訴求。
據了解騰訊云分析(mta.qq.com)近日推出的“社交LBS”SDK服務,其覆蓋Android和iOS兩大主流平臺,所有功能免費。開發者只需花10分鐘集成SDK之后,便可無視各項復雜的技術挑戰,輕松實現“附近的人”。
騰訊社交LBS提供何種服務?
首先,社交LBS服務主要圍繞實現“附近的人”,以及與之相關的路徑軌跡、授權分享等功能,為開發者提供快速有效的管理自己App產品用戶群在基于地理位置的社交關系鏈的能力。它不僅提供了如:時間、地理圍欄等固定條件維度的管理和查詢,還支持APP產品自身的自定義業務維度。同時,據悉該團隊在多年海量數據挖掘分析的基礎上,幫助開發者構建自己的用戶畫像體系,如下圖:
這套用戶畫像體系是一個海量數據存儲和實時計算集群平臺,支持上億級別的用戶毫秒級別查詢,滿足大并發用戶請求,保證系統高效可用。換句話說,社交LBS是開發者可使用的免費“關系鏈存儲和查詢”神器。
10年技術沉淀,只為助力開發者成功
騰訊云分析團隊,歷經10年的技術沉淀,先后成功打造騰訊內部“點擊流”平臺、騰訊分析(ta.qq.com)、騰訊移動分析(mta.qq.com)以及騰訊信鴿移動推送(xg.qq.com),在互聯網海量服務下的網絡通信、數據傳輸、數據處理以及技術運維等方面積累了豐富的經驗。借助上述平臺產品,將騰訊優秀的技術及運營經驗分享出來,助力行業開發者成功。
一、終端: 我們從基礎組件、功能模塊、業務集成、層層深入,如圖:
1) 網絡層面:DNS緩存的優化;云端控制就近接入解決跨運營商的難題;針對手機硬件性能高低,安卓系統版本動態調整的網絡連接超時,緩存,處理線程數等參數;針對所有2G/3G/4G/WAP和WIFI網絡提供***路由選擇和***重連策略;針對手機信號的強弱變化,動態調整發包MSS大小;TCP,Http雙通道,進一步解決復雜網絡環境,保證不丟包;針對TCP加快了SOCKET連接回收,采用跟帶寬相關的擁塞算法,采用尾部優化減少重傳;圖片,語音根據網絡實際情況動態調整分片大小,類似TCP擁塞管理,挖掘帶寬的***利用率;圖片,語音還支持斷點續傳,續傳時可快速恢復原來狀態,真正做到斷點續傳和秒傳的目的。
2) 電量流量:單通道,一臺設備上的所有接入雙向通信的APP共享同一數據通道,通過動態心跳保持與后臺的長連接,既省電省流量又提升抵達率。
3) 通訊協議:采用高度定制的私有協議:小包頭,高擴展,保證每次都盡可能傳輸***的數據段,大幅減少通訊消耗的流量。
二、后臺:我們從CPU、驅動、內核、協議棧層層優化,如圖:
1) 十億級別長連接之接入系統:8G內存單機支撐260w連接,
通過對Linux內核協議棧中socket數據結構的優化,使得每個TCP長連接耗費內核態內存僅為3KB。
2) 千萬億并發數據之分發系統(C10M):我們的思想就是將控制層留給Linux做,其它數據層全部由應用程序來處理。沒有線程調度、沒有系統調用、沒有中斷等,將程序仍運行在Linux用戶空間,并僅僅對數據進行高效的分析和處理。網卡:摒棄Linux內核協議棧,使用Intel DPDK來自己實現驅動; CPU:使用多核編程技術替代多線程,將OS綁在指定核上運行。
3) 層層加固之安全系統:每種通道都使用SSL通信;雙向通信要求雙向認證,公鑰在上傳時使用HTTPS協議,防止公鑰被截獲篡改,私鑰保存在開發者手中;APP用戶證書在用戶登錄APP時,APP后臺驗證用戶登錄成功后,使用APP私鑰對用戶ID進行加密和簽名,生成一個證書,并隨登錄Response返回證書和用戶ID;本地數據使用動態KEY加密,KEY由云端下發。
開放的平臺,等待你的參與
對于廣大開發者來講,最珍貴的莫過于開發時間和成本了。而集成了該社交法寶之后,簡單敲入幾行代碼,輕松實現基于地理位置信息的用戶多維查詢管理,屏蔽諸多的技術細節和復雜環境,大大提升開發效率。
據騰訊云分析產品負責人透露,目前已覆蓋全球22億設備,同時為60萬APP提供技術服務,對于廣大開發者來講,在***程度上為他們節省了開發時間和成本。
這只是起步,開放的平臺,等待你的參與。
了解詳情請咨詢QQ群: 471944841, 或官網http://mta.qq.com/ 。