專訪極光王豐:解讀高質量智能推送的秘密
2015-05-12 09:35:00 來源:北青網
隨著移動互聯網的發(fā)展,移動終端數量已超過11億。如何實現大量用戶的即時推送,成為開發(fā)者們不可小覷的問題。極光推送作為領先的推送服務提供商,即時推送業(yè)務的成功率達到百分之九十九以上。因此51CTO專訪極光推送首席架構師王豐,為大家解讀極光的高質量推送背后的秘密。
以下是采訪錄音整理:
記者:極光推送的這款產品的初衷是什么?主要覆蓋什么樣的用戶群?
王豐:隨著移動互聯網的持續(xù)火熱,手機APP已經成為剛需。此時,開發(fā)者和用戶之間需要一座溝通的橋梁。推送服務對于大公司來說,無異于一種重復勞動,而小的開發(fā)者又沒有能力和精力去投資機房,搭建系統。所以極光推送應運而生想要為開發(fā)者減輕一些負擔。
記者:中小開發(fā)者如果選擇自己做推送服務,會遇到哪些困難?
王豐:首先中小開發(fā)者需要一個后臺團隊來搭建系統,其次需要耗費很大精力與各個IDC和運營商聯系。第三中國的網絡環(huán)境很復雜,需要考慮在什么地方去布服務器,以及如何進行性能調優(yōu),甚至如果機房的光纜被挖斷,因此產生的斷網情況如何處理?這些都是非常復雜的問題,中小開發(fā)者很難憑借一己之力來完成。
記者:作為國內最早做推送服務的公司,極光在技術選型,以及在協議架構方面有哪些考慮?
王豐:在技術選型方面,極光推送立足于自主研發(fā)。其中把開源的Rabbit MQ作為消息隊列,Couch base做緩存。在這兩種技術中,Erlang都扮演了非常重要的角色。
在協議方面,極光團隊參考了開源的AMQP協議,TCP/IP以及一些電子郵件的協議。我們把各種協議綜合起來,借鑒他們的實現理念,最大程度的滿足我們的需求。
在系統架構方面,我們采用分布式架構的方式。其優(yōu)點在于,系統架構好之后如果用戶 數量突然增大,導致機器不夠,那么直接增加機器的數量就可以保證系統的正常運行。這樣可以避免單點錯誤,舉個例子來說,北京和廣州的機房部署了同一個服務,如果廣州的機房掛了,網絡用戶直接使用北京的機房而不影響用戶體驗。在兩個機房都正常運行時,還可以做到負載均衡,提升用戶體驗。
記者:在容災方面極光是如何做的?
王豐:以SDK的用戶接入為例,極光在北京、香港、廣州,都有機房。如果訪問北京或廣州的機房訪問失敗,那么我們會有一個消息通知SDK,告訴SDK下一個最優(yōu)訪問的機房,所以當一個機房出現問題時,對用戶的體驗是沒有影響的。
記者:Erlong這種語言并不是很流行,為什么極光推送的很多主要模塊都是基于這種語言開發(fā)的?
王豐:Erlang語言在國內不是很出名,但在國外卻是家喻戶曉。Erlang最初是愛立信為其電信業(yè)務所研發(fā)—因為電信業(yè)務需要極高的可靠性。之所以選擇Erlang,我們也是看中了它的可靠性。
第二我們選中的Rabbit MQ,Couch base都是用Erlang開發(fā)的。所以我們只能去研究Erlang,然后進一步地去和官方溝通,提一些修改意見。
第三Erlang很適合我們的后臺推送業(yè)務,因為它開發(fā)效率非常高,而且對開發(fā)人員的要求也比較低,從JAVA或者C到Erlang的學習成本也幾乎沒有。
記者:極光團隊如何保障推送的到達率?
王豐:我們有在線推送和離線推送兩種方式。如果用戶在線,那么我們會立即推送出去。一旦因為網絡原因或者用戶手機緩存導致消息丟失,那么就沒有送達通知反饋回來,因此我們會在他下一次上線或者下一次滿足觸發(fā)條件時,收到一個通知,立即在后臺再發(fā)送一次,這樣推送成功率在99%以上。
記者:您對于一些剛入行的工程師的成長,有沒有一些建議?
王豐:現在我在帶團隊、觀察新人,也有一些感觸。我個人建議,如果想走技術這條路,應該扎實一點,先沉下去,先在底層做一些事情。
第二,學習技術的時候,不要學的太雜,多看一些國外原版的技術書籍、技術文獻,要對自己的領域要有很深的了解。
記者:現在互聯網上的各種語言也非常多,包括swift,還有Java、C,以及Erlang,您工程師在語言的選擇方面應該注意哪些?
王豐:如果用大而化之的一句話來講,要實現一個功能,跟語言沒有關系。
對于計算機專業(yè)來說,C語言一定是要掌握好的。 例如Linux和Windows,蘋果,這些操作系統都是用C語言編寫的.此外一些非常高性能的庫,也離不開C語言。所以想走技術這條路,C語言是必不可少的,否則你就讀不懂操作系統,無法與機器交互。
結語
在王豐看來,未來的推送服務應該是按照二八原則來劃分,80%的用戶會選擇第三方的服務,20%的用戶會選擇自己做!妒Э亍返淖髡邉P文·凱利也曾說過:“互聯網企業(yè)向巨頭聚集,巨頭體量越來越大,在短時間內自然是有利的,但長期看,還是會有一些邊緣化的公司顛覆產業(yè)!
通常這樣的邊緣產業(yè),就是巨頭不夠注意的小眾市場,但是積累到一定程度,它就可能會爆發(fā)。
編輯:殷雨婷
關鍵詞:極光推送;王豐
2015-05-07 16:39:00
2014-01-17 09:25:20
2013-03-18 15:56:23
參與討論
我想說
