容联云通讯张靖宇:重构架构 IM5.0将更快、更省、更稳

原创
移动开发
业内人士认为,XMPP协议作为PC互联网时代IM通信的标准,已经不能适应移动互联网的发展。正如此,传统的IM产品也必将有所改变,才能适应移动网的发展。什么样的IM产品最契合移动互联网?近日,容联云通讯宣布,针对移动互联网的需求,重构架构,发布IM5.0。51CTO专访容联云通讯产品总监张靖宇,解读移动互联网时代的云通讯IM产品。

随着4G网络和无线大面积覆盖,移动互联网迅速壮大,我们的通讯方式已经发生了巨大的改变。移动端已经逐渐替代PC端,成为最主要的通讯载体。

业内人士认为,XMPP协议作为PC互联网时代IM通信的标准,已经不能适应移动互联网的发展。正如此,传统的IM产品也必将有所改变,才能适应移动网的发展。

什么样的IM产品最契合移动互联网?近日,容联云通讯宣布,针对移动互联网的需求,重构架构,发布IM5.0。51CTO专访容联云通讯产品总监张靖宇,解读移动互联网时代的云通讯IM产品。

记者:容联云通讯IM的基本功能有哪些?

张靖宇:云通讯平台是一个全通讯能力的平台,围绕通讯的各个环节都有产品。IM只是其中一项。基本功能有:单聊,是指点对点之间的功能,支持文本、语音、图片、附件、表情的发送,支持已发送的消息回执,发送的概念是指你发送一个消息,发送到服务端了,服务端会给你确认,说这个消息服务端已经收到了;群聊功能,支持2000人的群组,一个群组可以加入2000人,每个人可以加入500个群组。支持私有群组和公开群组;设备推送功能;服务器发送广播消息,在服务器端给固定的群组或全部的用户发送消息;数据统计:统计在一个时间段内的APP当中有多少用户使用了IM功能,发了多少条消息,分布来自什么设备。

记者:容联云通讯2013年才发布了***个版本,现在已经发布到了5.0版本,经历了怎样的演变?

张靖宇:我们一开始做的时候,商业模式是模仿国外的一家公司,通过网络接口的方式拨打固定电话,在***版本中主要是集成了VoIP功能。企业用VoIP,要解决内部的通讯问题,降低通讯费,因此有了IM的需求,我们在2.0版本中增加了IM功能;到了3.0版本SDK的能力基本全了,有IM能力、视频音频能力、视频会议能力、电话会议能力。这四个版本都是用户需求推着我们走,没有自己的顶层设计。我们团队原来主要是做通讯的,采取的都是PC端的思维,在易用性方面考虑不是太多,所以前期用户反馈回来很多问题。4.0版本时,我们对易用性做了一些优化,用户接入时就会相对轻松。这个问题解决后,用户还反馈了流量、耗电等问题,我们做了比较全面的分析,原有的架构完全适配不了移动端,所以我们就决定把前面这些架构推翻掉,完全基于移动端重构了架构,推出了5.0版本。

记者:推翻原有的架构,重构基于移动端的架构,具体都做了哪些事情?

张靖宇:首先,我们分析移动通讯的特点,网络不稳定、丢包率高、延时高、流量敏感、流量收费高、耗电等等。主要从几个方面来考虑:

网络的考虑:我们有2G、3G、4G、WIFI,且不同运营商网络状况不同,要做出不同的应对;

消息中间件:消息中间件的作用主要是解耦的作用,考虑是否使用消息中间件;

数据库:选择什么样的数据库,是关系型还是非关系型,还是混用?非关系型数据库效率更高;

IM协议:XMPP是文本协议,它的定义协议可读性、扩展性都很强,但是它更适用于PC端;simple协议比较消耗流量;Redis协议,业内用的不多;

***,我们确定了移动端的目标,一个是登陆要快,发送消息要快;二是要省,要省电、省流量;三是要稳定,不要丢消息,稳定性要达到99.99%以上。

记者:基于这些目标,容联云通讯采用了什么样的方案?

张靖宇:我们采取了无DNS设计,满足登录快的需求。移动端登录分为几个过程,首先是建立信道,二是做DNS解析,你有个域名,他去连接你的域名,有个域名解析。第三你要做TCP连接。DNS解析里面,DNS这一步我们认为是可以省掉的,因为DNS解析通常消耗的时间比较多,一般快的情况下是100到200毫秒,慢的甚至3、4秒,所以我们首先采取的是无DNS设计。去掉注册流程,通常用到第三方通讯云的时候会遇到这样的情况,用户在你的平台注册以后,同时要到第三方通讯云去注册一个帐号。现在用户在注册的时候不必再到第三方通讯云来注册了,登录的时候直接输入帐号,第三方通讯会直接验证用户是不是合法登录,如果不是会直接记录到后台里面去,再加上其他的一些应用机制,省去了用户注册返回帐号的流程,因为帐号不能记在客户端。

采用小包体协议,业务层的协议完全可以自定义,但在最小的基础上,消息是一种固定的格式。举个例子,对于文本消息,文本消息是大家发送最多的,在文本消息里面我们把消息类型去掉,服务端收到消息的时候,发现没有消息类型,就认为这是一条文本消息。这样就可以减少很多流量。同时,我们采取了“protobuffer+自定义”的协议,非常省流量。

稳定性方面,我们主要采取多段的ACK确认以及***花存储,发送消息会发送到连接器、中间件到逻辑服务器,在我的消息***化存储之前我们会给用户一个ACK的确认,经过***化之后,才会给用户一个应答的消息,你已经发送成功了。另外,通过架构保证服务稳定性。通常来讲传统一般会有一个导航,用户一开始登录的时候会先到导航服务器,然后拿到对应的IP地址过来登录。我们去掉了导航,所以我们会直连。这是一个连接器的集群,它不做任何的业务逻辑,只去管理连接。目前我们做到的是一台连接器,8核16G的服务器是可以做到80万的长连接。80万是慢负荷,发送文本消息的时候处理速度就会比较慢,所以我们采取了服务端留控的策略,每台可以允许50万,对整个消息的处理是完全没有影响的。在连接器下面我们采取了消息中间件的方式,它虽然可能会带来系统灾难的节点,但是它在编程的时候,在系统维护的时候带来了很多的方便性。

记者:这次5.0的发布,特别指出是架构的重构,这个重构体现在哪里?

张靖宇:我们采取了全新的架构叫push-pull系统架构,微信和陌陌都采用了push-pull系统架构来满足大规模的用户需求。

严格意义上讲的推拉,不仅仅是多媒体消息,对于文本的消息也要采取推拉的方式。文本消息有大文本,有小文本,如果是大文本在你网络状况不小的情况下,接收端的人也会拿不到,所以我们采取的是完全的推拉。原来是推不下去,你就只能等离线了,即使网络状况好,你这条消息也拿不到了。现在是网络状态一旦好,就能够把这条消息拿到。在结构方面主要解决的是接收快,正是因为这个架构我们把原来的架构都推翻掉的,引用了版本号的逻辑。

总结:

采访中,张靖宇一直强调,重构架构后推出的IM5.0产品是最契合移动互联网的需求,它具备更快、更省、更稳的特点。目前,产品已开放下载,期待来自市场的反应。

责任编辑:老门 来源: 51CTO
相关推荐

2015-06-02 11:24:06

容联云通讯

2015-08-06 19:30:58

容联云通讯

2014-12-26 14:53:04

容联云通讯

2015-07-30 15:54:20

容联云通讯IM

2015-07-23 10:14:01

容联云通讯

2015-11-09 13:16:12

2015-11-02 11:50:42

容联云通讯

2015-07-16 18:16:17

容联云通讯注册

2014-07-30 15:18:34

容联云通讯云视频会议

2014-12-19 12:10:04

容联云通讯

2015-02-02 13:26:53

2014-11-14 14:06:01

容联云通讯

2015-09-14 17:32:22

容联即时通讯云

2014-07-24 17:40:26

容联云通讯

2011-07-19 10:18:00

钱伯斯思科裁员

2015-09-28 18:44:25

容联云通讯

2018-05-09 11:40:14

AI

2014-07-18 15:15:50

交换机华为

2016-10-27 15:32:54

合UCloud容联云
点赞
收藏

51CTO技术栈公众号