网易云信:做真正稳定的IM云服务

热度:1 发布时间:2024-01-16 19:48:19来源:贝博ballbet体育网页版

  作为内置在移动APP里的刚需,即时通信的无数坑点,实在不需要开发者们自己去趟。

  国庆假期前的最后一个周末出差回来,趁着北京天气好,去移动开发者大会(MDCC 2016)走了走。人很多,不像大多数行业会议那样,西装革履,反倒是有点像大学里的培训课,开发者们为了某一项技术,听大拿布道,也有机会提问交流,越是有实战经验的技术方案,越被关注。

  每年的技术热点,都和产业里的热门话题脱不开干系。今年也一样,比如人工智能,比如VR,还有直播、物联网、智能硬件。旁听了Android开发论坛,也和现场的开发者简单聊几句,发现一件很有意思的事情——移动IM(即时通信)是一个隐性“刚需”,无论直播、跨平台,或者各种移动APP,很多细致划分领域都绕不开即时通信。

  其实在互联网时代,人们对即时通信一点都不陌生,几乎任何一个人都是QQ、微信、陌陌这些社交工具的重度用户。而当“互联网+”的呼声一浪高过一浪,即时通信在早已被应用在社交工具之外的各种移动应用和场景下。

  比如最常见的,在电商类APP里,买家可以直接联系卖家,售前询问,售后反馈,或者可以联系电子商务平台客服投诉,大多数都是通过即时通信完成的;在一些社区类的产品里,除了1对1的聊天工具,有时候还需要多人会话的聊天室及直播,充分使用户得到满足的分享和交流需求。

  以医疗为例,老年人使用移动医疗服务的比例正在快速增加,抛开对智能设备的“不灵”,单单打字对很多老人来说,就是一件困难的事情,他们更愿意使用语音和医生交流,而有些病症,医生还一定要通过照片甚至视频做出判断。而教育类APP,在教学场景下,老师除了“讲”,还常常需要配合公式、图表等过程演示,教学白板、实时音视频都需要即时通信来支撑。

  从字面上看,即时通信有两个最基本的要求,一是即时性,无论应用是在前台还是后台,都需要能立即收到;二是满足通讯需求,消息不丢、不乱。

  “这两点说起来容易,但真正要做出一套稳定可靠的商用级IM,挑战非常多。”网易云信Android端高级技术架构师周江华说。

  实际上,在IM的背后,还隐藏着诸如稳定可靠、系统不宕机、程序不崩溃、音视频聊天内容流程不卡顿,且延迟低,以及确保用户隐私安全等等,一系列对安全性和稳定能力的挑战。

  一方面,受硬件条件限制,手机的内存、电量、流量都是稀缺资源,特别是大多数Android系统自身的资源限制,Low Memory Killer机制可能强制关闭IM以释放内存。而在复杂的Android生态环境下,各厂商的ROM也逐步加大了对后台应用的控制,IM在后台保活都开始变得困难;

  而另一方面,移动网络的复杂性也是不小的难题。在移动网络的弱网络环境下,基站会自动断开闲置应用的通信,又或者随着用户的位置改变,切换对应的网络,使得长连接频繁断开,这就给即时通信长时间在线提出了考验。不仅如此,在高昂的资费面前,用户也绝不会希望后台进程偷偷消耗自己的流量。

  显然,除了社交工具之外,在大多数垂直应用中,让开发者去完成作为附属功能存在的IM开发,支持数万甚至数十万、数百万用户稳定、流畅的通讯,显然不科学——坑点太多,人少了做不了,人多了不划算,即时通信云服务当属最佳选择。

  “网易云信独有分层架构,对外按照业务划分,只暴露一层接口,开发者只要关注个人需要的功能;内部实现上,则借鉴了微服务架构的思路,和接口分离,将业务解耦合。”周江华说,开发者只需要在网易云信注册一个开发者账号,就能通过客户端SDK和云端OPEN API,在一天之内获得极其稳定可靠的IM功能。

  针对移动场景的弱网环境,为了确认和保证真正的稳定,网易云信在多重维度上采取了优化措施。首先采用了特殊设计的高性能二进制网络协议,并使用了非常精简的协议头,最好能够降低数据包大小,心跳间隔根据网络情况动态调整。掉线后,会有自动重连和快速重登,为了节约流量电量,和防止造成对服务器的信令风暴,重连间隔会指数随机倍增退避。

  在弱网环境下,快速上传下载减少等待时间,能带来更好的使用者真实的体验。网易云信拥有断点续传、Pipeline技术、边录边传三大特色。断点续传能够大大减少因网络问题造成的重复传输,减少传输时间,节省流量。Pipeline技术则可以重叠利用http请求的响应等待时间,加快传输速度。发送语音消息时,录一段就发送一段,等到录制完毕时,只需要发送最后一段数据,能做到录完就传完发送的效果。

  同时,为了可以保证程序在后台的存活,分层架构下还设立了独立的长连接结合多元化推送通道的方式,不仅大幅度减少了CPU和内存资源的占用,更提高了信息到达率,实际做到保活保连。

  有数据显示,目前中国的云计算服务是两头大,中间小,SaaS和IaaS发展相对充分,而PaaS在中国只有10%左右。这也是怎么回事最近涌现出慢慢的变多PaaS厂商。但在PaaS市场里,IM绝对是一个竞争充分的领域,从2013年起,就有不是专注IM的第三方平台在运营,网易云信直到2015年才对外开放,是不折不扣的后来者,而且相当低调。

  对用户而言,接入一项IM服务,通常一天就能完成,但真正重要的是两件事,一是稳定的技术能力,而是后续运维和服务。

  就技术能力而言,网易云信有超过300人的开发团队,一直把提升消息推送达到率和到达速度、优化网络利用效率、节省系统资源作为开发的核心和基础。而其前身是网易杭州研究院通讯基础设施技术组,拥有网易长达16年的IM经验和技术累积。截至2016年9月,网易云信已获得56项技术专利,通过CSA-STAR和ISO27001双重认证。

  而在服务上,网易云信通过技术顾问服务体系、客户顾问服务体系和用户信任服务体系三大板块,提供一站式专业服务,快速响应和解决开发者和用户的问题。目前,网易云信是唯一一家提供1对1、7x24小时即时响应技术上的支持服务的团队,并为用户更好的提供故障赔偿、邮件短信双重预警及信用额度保障等服务。

  当大多数IM平台商都在向功能化发展时,网易云信更注重的是技术沉淀和知识体系的输出。据了解,网易云信平台已接入超过9万名开发者,包括学而思网校、网易云音乐、宝宝树、学吧课堂等APP均使用网易云信IM服务,覆盖教育、医疗、O2O、游戏、社交等领域的3亿用户——用户的选择就是对一个云服务商最好的认可。