以前好多小夥伴反饋給小編說,好遺憾沒去在深圳舉辦的2017全球架構師峯會,但願能多聽點技術大牛們的講座…docker
這不,小編此次特地邀請了騰訊高級工程師甘恆通Henry和InfoQ美女主持人給咱們360度無死角還原峯會現場!安全
點擊文末連接還能免費下載此次峯會全部大牛講師的ppt資料哦!!性能優化
主持人:歡迎各位隨咱們穿越回2017年架構師峯會深圳現場!服務器
主持人:
首先讓咱們來感覺一下現場的氣氛!多線程
主持人:
好啦,事不宜遲,有請今天的嘉賓,騰訊移動推送(信鴿)的高級工程師甘恆通Henry來到咱們現場~!Henry今天爲咱們帶來的是《百億級推送——騰訊信鴿的研發實戰經驗分享》。有請Henry——架構
大牛講師:甘恆通Henry
2011年加入騰訊TEG數據平臺部,主要負責大數據平臺、推送平臺後臺的研發和優化工做,對構造高可用、高性能的分佈式大數據處理和推送系統有豐富的實戰經驗,近期工做內容是構建信鴿精準推送系統,包括智能分羣、實時推送、實時推送效果跟蹤,解決公司內外部對推送質和量需求。併發
Henry:
謝謝主持人~(笑)框架
主持人:
很是感謝Henry今天給咱們帶來的精彩演講,演講內容中尤爲是單機性能的多層次多角度優化,給我留下了深入印象。從硬件、操做系統、協議棧、架構4個角度優化單機性能,最終實現單機性能優化的極致。運維
Henry:
只有不斷深刻挖掘單機性能,才能實現信鴿如今百億推送的能力,這是用戶對咱們的期許,也是咱們回饋用戶的方式。騰訊移動推送(信鴿)一直都致力於爲用戶提升更優質更穩定的推送服務。優質的服務,是咱們在這個市場上的立足點。分佈式
主持人:
那相對其餘第三方推送服務,信鴿有什麼優點呢?
Henry:
主要是如下4個方面:
1) 信鴿是免費的推送工具,服務的理念是以用戶爲中心提供專業的推送服務。從應用接入、測試、上線都提供了實時專業的技術支持服務。
SDK一鍵集成,極大地提高了接入的效率,測試環境和現網環境隔離,提高測試階段定位問題的效率。秒級更新的多維推送效果統計數據讓應用開發者實時掌握推送運營效果。
2) 共享終端service,聯合保活:騰訊公司內部互娛的不少遊戲是咱們的服務的客戶,包括王者榮耀等過億級的應用,騰訊之外也有上萬的APP用戶。安卓上進行消息推送,終端有不少限制,APP不必定活躍,因此消息抵達率一般比較低,採用共享service,只要有一個APP活躍,信鴿的鏈接就是活的,其餘APP也能借用這個鏈接把消息及時送達。
3) 依託騰訊內部完善的基礎設施,包括豐富的用戶畫像、實時行爲數據,和成熟的運營體系,對構建穩定、高性能的分佈式精準推送服務更有保障。
服務器國內、國外多地部署,終端設備實現了就近接入,保證了可靠穩定的長鏈接,信鴿後臺系統實現了虛擬化,開發、測試、運維一體化保證了敏捷的開發流程,擴縮容也變得簡單。
4) 注重用戶隱私,保證數據安全:
信鴿以可配置的方式給應用提供了數據採集的能力,數據安全作到傳輸加密,防止推送消息被篡改和僞造,多副本存儲,保證萬無一失,應用上用戶創造出來的數據跟騰訊自有的業務數據在物理分隔,不會相互污染。最後信鴿對接了公司內的「宙斯」、「門神」等防護系統,以平臺的實力抵禦惡意的請求。
主持人:
厲害了,個人哥!堅持免費的道路,優化推送效果,對外輸出畫像能力,保證數據安全,對於開發者來講真的頗有吸引力!
那如今信鴿有哪些用戶在使用呢?
Henry:
信鴿平臺活躍App數過萬,日推送消息量60億,有不少優質客戶,好比騰訊遊戲基本都是咱們的客戶,包括王者榮耀這樣的明星App。除此以外,還有京東、KEEP、起點、返利、微店等衆多知名App客戶。
Henry:
是的,王者的活躍量很大,推送也很活躍,確實給咱們帶來了不小的挑戰。但咱們也作了不少相應的優化——
對於後臺的挑戰,主要有這三個關鍵詞:海量、精準和實時。
對海量的併發長鏈接,一方面,須要提升設備資源的利用率,能夠經過一些docker虛擬化的方式來解決;另外一方面,咱們要深刻挖掘單機的性能,從硬件、操做系統、協議棧、架構四個方面進行深刻分析和優化。硬件主要是善於利用Intel AVX,SSE4.2的指令集,例如它裏面包含CRC32等方法,比通常的實現方法有數倍的性能提高。
主持人:
嗯嗯,你帥你說的都對!❤ ❤ ❤
那精準又改如何實現呢?
Henry:
對海量設備進行實時推送主要的解決方案是針對推送的場景優化存儲結構,同時將單個推送的RPC節點間調用轉換成分佈式的批量位圖運算,優化Android終端長鏈接,接入集羣分多地部署,作最近接入,和APNs的交互使用HTTP/2協議,對無效的token自動作數據清理。
對像王者榮耀這些大型的應用,咱們創建了VIP通道,系統上作獨立部署,對硬件資源進行隔離,平時保持良好的溝通,對節假日推送量的突漲提早作好擴容準備,作貼身服務,知足一些個性化推送的需求。
主持人:
看來真的是服務到家啊!
剛剛Henry也提到了實時性,推送的時效性實際上是你們都關注的問題,實時性能咱們要如何保證?
Henry:
實時精準推送系統的關鍵技術有優化存儲——將文本數字化,位圖壓縮存儲和分佈式並行檢索和運算。
實時精準推送系統分兩種不一樣的場景。
第一個場景是實時推送,第二個場景是要作實時的多維分析,這兩套系統實現的核心是對咱們的數據構建倒排索引,倒排索引在業界用得比較多的是在搜索引擎裏面文檔的全文檢索,對於信鴿,倒排索引是根據咱們實現的應用場景進行構建。
主持人:
我好像有點懂了,那實時精準推送的另外一個場景是什麼?
Henry:
另一個場景是,咱們須要對歷史數據、原始數據進行實時的多維分析,好比須要分析最近幾天以內大盤全部用戶的點擊狀況。這裏面可能涉及的數據量就會很是大,須要採用離線的方式進行索引的構建。
只有不斷深刻挖掘單機性能,才能實現信鴿如今百億推送的能力,這是用戶對咱們的期許,也是咱們回饋用戶的方式。騰訊移動推送(信鴿)一直都致力於爲用戶提升更優質更穩定的推送服務。優質的服務,是咱們在這個市場上的立足點。
多維分析的索引和實時推送的索引是不同的,它主要實現的方式是對全部的數據進行規範化的處理,每一個字段的格式基本上保持一致。對於每一條記錄會根據預置的規則進行數據的抽取,須要構建倒排索引的屬性字段會進行規格化和映射的轉換,數據記錄根據設備標識進行分區,每一個分區內的記錄進行獨立的編號,倒排索引即爲屬性字段對應的記錄的編號,離線處理的最後是落地成統一的索引文件,保存在HDFS中。
當一個分析的需求過來的時候,會有一些pull節點,把這些索引的數據拉到本地並加載到內存,通過查詢規則解析後執行相關索引文件的檢索、分組和聚合函數的運算,最後由一些彙總節點將結果進行合併後返回給查詢者。
主持人:
很是感謝Henry給咱們的精彩分享,滿滿的技術幹活,我想我要回去消化一陣了!最後一個小問題,信鴿之後將來發展方向是什麼?有什麼規劃麼?
Henry:
咱們的如今平臺上主要的產品除了騰訊移動推送(信鴿)以外,還有騰訊移動分析MTA,將來咱們的目標是建設整個APP開發者平臺,總體發展方向大體會分爲三塊:
一塊是咱們基礎建設,包括基礎集羣的質量、數據的準確性、系統的穩定性和安全性、推送速度時效性等。
一部分是爲開發者提供更多的服務,例如爲開發者提供Crash分析、推送的通道、系統的監控、熱更新、安全加固這樣一系列的工具類產品。
第三部分是爲產品運營者服務,提供精細化運營的能力,幫運營者作用戶畫像,作精準推送,提供LBS的分析,提供按地址位置的特點推送觸達,幫他實現可視化的埋點,幫他能夠提高運營效率。
以上是咱們的大體方向,爲開發者提供一攬子的工具化平臺服務。
主持人:
哇,工具平臺聽起來好棒棒,感受集成一個就能解決全部問題了,好期待!原來鵝廠的小哥哥不只長得帥,技術還過硬!謝謝Henry接受咱們的採訪~比心!
小編:
最後再提醒你們一句,點擊此連接:2017全取架構師峯會所有PPT,別錯過了~
小編:
好啦,以上就是今天的所有內容~各位看官還滿意嗎?歡迎將您的見解、建議、意見在評論區留言~小編都會記在心上噠
您能夠訪問咱們的官網:
騰訊大數據:data.qq.com/?ADTAG=EXTE…
騰訊移動分析MTA:mta.qq.com/?ADTAG=EXTE…
騰訊移動推送(信鴿):xg.qq.com/?ADTAG=EXTE…
點擊右側在線客服,直接與咱們聯繫;
或者發送郵件至:商務合做郵箱:data@tencent.com技術支持郵箱:dtsupport@tencent.com