专访极光王丰:解读高质量智能推送的秘密互联网+
随着移动互联网的发展,移动终端数量已超过11亿。如何实现大量用户的即时推送,成为开发者们不可小觑的问题。极光推送作为领先的推送服务提供商,即时推送业务的成功率达到百分之九十九以上。因此51CTO专访极光推送首席架构师王丰,为大家解读极光的高质量推送背后的秘密。
以下是采访录音整理:
记者:极光推送的这款产品的初衷是什么?主要覆盖什么样的用户群?
王丰:随着移动互联网的持续火热,手机APP已经成为刚需。此时,开发者和用户之间需要一座沟通的桥梁。推送服务对于大公司来说,无异于一种重复劳动,而小的开发者又没有能力和精力去投资机房,搭建系统。所以极光推送应运而生想要为开发者减轻一些负担。
记者:中小开发者如果选择自己做推送服务,会遇到哪些困难?
王丰:首先中小开发者需要一个后台团队来搭建系统,其次需要耗费很大精力与各个IDC和运营商联系。第三中国的网络环境很复杂,需要考虑在什么地方去布服务器,以及如何进行性能调优,甚至如果机房的光缆被挖断,因此产生的断网情况如何处理?这些都是非常复杂的问题,中小开发者很难凭借一己之力来完成。
记者:作为国内最早做推送服务的公司,极光在技术选型,以及在协议架构方面有哪些考虑?
王丰:在技术选型方面,极光推送立足于自主研发。其中把开源的Rabbit MQ作为消息队列,Couch base做缓存。在这两种技术中,Erlang都扮演了非常重要的角色。
在协议方面,极光团队参考了开源的AMQP协议,TCP/IP以及一些电子邮件的协议。我们把各种协议综合起来,借鉴他们的实现理念,最大程度的满足我们的需求。
在系统架构方面,我们采用分布式架构的方式。其优点在于,系统架构好之后如果用户 数量突然增大,导致机器不够,那么直接增加机器的数量就可以保证系统的正常运行。这样可以避免单点错误,举个例子来说,北京和广州的机房部署了同一个服务,如果广州的机房挂了,网络用户直接使用北京的机房而不影响用户体验。在两个机房都正常运行时,还可以做到负载均衡,提升用户体验。
记者:在容灾方面极光是如何做的?
王丰:以SDK的用户接入为例,极光在北京、香港、广州,都有机房。如果访问北京或广州的机房访问失败,那么我们会有一个消息通知SDK,告诉SDK下一个最优访问的机房,所以当一个机房出现问题时,对用户的体验是没有影响的。
记者:Erlong这种语言并不是很流行,为什么极光推送的很多主要模块都是基于这种语言开发的?
王丰:Erlang语言在国内不是很出名,但在国外却是家喻户晓。Erlang最初是爱立信为其电信业务所研发—因为电信业务需要极高的可靠性。之所以选择Erlang,我们也是看中了它的可靠性。
第二我们选中的Rabbit MQ,Couch base都是用Erlang开发的。所以我们只能去研究Erlang,然后进一步地去和官方沟通,提一些修改意见。
第三Erlang很适合我们的后台推送业务,因为它开发效率非常高,而且对开发人员的要求也比较低,从JAVA或者C到Erlang的学习成本也几乎没有。
记者:极光团队如何保障推送的到达率?
王丰:我们有在线推送和离线推送两种方式。如果用户在线,那么我们会立即推送出去。一旦因为网络原因或者用户手机缓存导致消息丢失,那么就没有送达通知反馈回来,因此我们会在他下一次上线或者下一次满足触发条件时,收到一个通知,立即在后台再发送一次,这样推送成功率在99%以上。
记者:您对于一些刚入行的工程师的成长,有没有一些建议?
王丰:现在我在带团队、观察新人,也有一些感触。我个人建议,如果想走技术这条路,应该扎实一点,先沉下去,先在底层做一些事情。
第二,学习技术的时候,不要学的太杂,多看一些国外原版的技术书籍、技术文献,要对自己的领域要有很深的了解。
记者:现在互联网上的各种语言也非常多,包括swift,还有Java、C,以及Erlang,您工程师在语言的选择方面应该注意哪些?
王丰:如果用大而化之的一句话来讲,要实现一个功能,跟语言没有关系。
对于计算机专业来说,C语言一定是要掌握好的。 例如Linux和Windows,苹果,这些操作系统都是用C语言编写的.此外一些非常高性能的库,也离不开C语言。所以想走技术这条路,C语言是必不可少的,否则你就读不懂操作系统,无法与机器交互。
结语
在王丰看来,未来的推送服务应该是按照二八原则来划分,80%的用户会选择第三方的服务,20%的用户会选择自己做。《失控》的作者凯文·凯利也曾说过:“互联网企业向巨头聚集,巨头体量越来越大,在短时间内自然是有利的,但长期看,还是会有一些边缘化的公司颠覆产业。”
通常这样的边缘产业,就是巨头不够注意的小众市场,但是积累到一定程度,它就可能会爆发。
1.金沙手机网投app 遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.金沙手机网投app 的原创文章,请转载时务必注明文章作者和"来源:金沙手机网投app ",不尊重原创的行为金沙手机网投app 或将追究责任;3.作者投稿可能会经金沙手机网投app 编辑修改或补充。