IM(即时通讯)云服务已发展数年,不少企业与开发者都倾向于选择第三方 IM 云服务,短平快地为应用添加即时通讯能力,但如何选择服务商却是个难题,单从简单的功能介绍来看无法判断,因为 IM 云服务接入后,更重要的是检验服务是否稳定。近期艾瑞发布的《全球互联网通信云行业研究报告》指出,通信云行业的竞争壁垒将在于核心技术关键指标,包括质量和性能指标。
在 IM 领域,艾瑞认为核心质量指标为可靠性,即消息的不丢失和不重复。此外 IM 服务还需要考量并发处理能力等性能指标等。在艾瑞报告中,融云是被评定为IM领域市场占有率第一的互联网通信云服务商,也是业内唯一承诺消息不丢、不重、不乱序的厂商。下面便来从技术上剖析下,融云利用了哪些手段实现稳定可靠的IM云服务。
一、基于融云私有通讯协议,实现服务的可靠性与安全性。
1.可靠性
即时通讯系统的可靠性体现在消息的可达率,也是 IM 最基本的质量要求:融云是业内唯一承诺消息可靠性 100% 的厂商。融云基于私有通讯协议,可实现:弱网环境下,消息发送方消息只要发送到服务器端,则服务器端能确保消息不丢、不乱、不重。
“不丢”是因为消息接收方客户端与服务器端通过推拉相结合的方式,确保消息一定能收到接收方客户端。“不乱”是因为在协议层面上针对每个数据包都做了序号标识处理。“不重”是当消息接收方收到消息后,因网络问题导致消息收到的回执未能发送给服务器端,服务器端超时处理会进行消息的重发,当客户端再次收到同一条消息时,会抛弃一条,只给用户显示一条。
2.安全性
基于融云自有知识产权的连接加密技术,可以防止黑客中间人方式进行数据窃听,数据在传输过程中不可破解,NAV 导航服务与 CMP 连接管理服务的安全算法一致,每个客户端从导航服务获取到加密校验值(SM2 标准),均按照安全算法与所连接的 CMP 服务进行安全协商,针对校验值 CMP 会进行合法性验证(SM3 标准),协商的校验值不能在其他 CMP 连接管理服务上使用,消息在传输之前,通过 SM4 对数据进行加密,并且通过加密连接传输将信息发送到发送方所在 CMP 连接管理服务。之后,由发送方所在 CMP 连接管理服务进行解密并将解密后的消息发给消息服务,依据协议内容,由消息服务负责将信息传递给接收方所在 CMP 连接管理服务,而后 CMP 连接管理服务依据接收方的密钥进行信息加密,通过加密连接下发信息。
二、基于分布式微服务架构,保障亿级高并发性。
对于 IM 云服务,海量消息并发的稳定性也至关重要,比如一些场景出现同时在线人数飙升,需要实现自动水平扩展,应对海量并发。融云 IM 云服务采用分布式的微服务架构可以实现亿级消息的高并发,主要分为网关服务和应用服务两大类,各服务通过 Zookeeper 完成服务注册以及服务发现。所有的服务均可以采用集群化的方式部署,服务间的数据调用采用一致性哈希的方式进行集群负载。
1. 服务的高可用性
服务节点通过 Zookeeper 在集群中同步自己节点状态,各节点可以快速的发现其他节点变化。通过哈希算法的散列特性,可以将请求均匀的分配到应用节点上,以达到均衡服务器资源利用的目的。
当同一服务节点的个数为 N+1(N>0)时,某一个服务节点发生关闭或宕机,其余节点会立刻收到问题节点的状态变化通知,将其从一致性哈希环中将其剔除,后续请求将不会分配到此节点上,而剩余节点依然可以继续提供服务。通过一致性哈希的特性,问题节点的请求可以均匀的分布到其他节点上,不会出现连锁雪崩现象。
2. 服务的可扩展性
以“服务的启动及发现流程”为例,所有的服务都可以在线添加。而服务完成注册及发现流程后既可以对外提供服务。
三、基于全球多节点覆盖,保障全球服务的稳定性。
IM 云服务依赖于广域 IP 网络进行实时消息传递,通信质量对网络稳定性比较敏感,主要体现在网络延时、网络丢包和连通率等多方面。若实现跨地域跨国家的高质量通信,则需要降低网络延时与网络丢包的出现以及提高连接率。融云通过搭建全球通信加速网络解决上述问题,通过专线网络有效控制延迟、丢包等问题,以及搭建了更多的边缘节点解决了地域连通率等问题。
融云在全球设立了多数据中心,具备 3000 多个加速点,通信网络已经覆盖全球所有国家及地区(233 个),可为客户随时随地保障至少 3 个就近节点提供接入,少次跳转就能链接到目的地,连接速度更快,连通效率更高。此外,通过海外链路优化,可实现更智能的链路调度,向客户端同时提供多条可选链路,自动切换的解决模式,有效解决客户通信跨地域、跨国家的“网络延迟”及“丢包”等问题。通过实时监控全球网络,基于融云分布全球的数据中心与节点建设,向客户提供链路接入方案。
通过融云全球通信网络加速,欧洲用户直接访问北美数据中心网络延时一般在 350~500 ms 之间,丢包率 6%,网络连接成功率只有 90%;采用融云全球链路加速后,欧洲用户直接访问北美数据中心,网络延时可缩短至 200~250 ms 之间,丢包率几乎为 0,最高不超过 0.1%;再借助融云全球智能动态网络优化策略,网络连接成功率可提升到 99.5% 以上。
结语:IM 即时通讯做不好将是一个填不完的“坑”,尤其是用户量起来后,收发消息延迟等等各种问题都会出来,严重影响用户的体验,试错成本也非常大。IM的稳定性背后需要厂商多年的技术积累,才能帮助用户把“坑”跳过去,实现一个稳定可靠的服务。目前市场上的服务很多,竞争越激烈,使用即时通讯云的企业或者开发者必须做到“火眼金睛”,对以上因素进行综合性判断,然后做出一个好的选型。
想了解更多技术干货请登录融云官网查看