【融云分析】选择IM云服务,需要看哪些核心技术指标?

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~500ms之间,丢包率6%,网络连接成功率只有90%;采用融云全球链路加速后,欧洲用户直接访问北美数据中心,网络延时可缩短至200~250ms之间,丢包率几乎为0,最高不超过0.1%;再借助融云全球智能动态网络优化策略,网络连接成功率可提升到99.5%以上。

结语IM即时通讯做不好将是一个填不完的“坑”,尤其是用户量起来后,收发消息延迟等等各种问题都会出来,严重影响用户的体验,试错成本也非常大。IM的稳定性背后需要厂商多年的技术积累,才能帮助用户“坑”跳过去,实现一个稳定可靠的服务。目前市场上的服务很多,竞争越激烈,使用即时通讯云的企业或者开发者必须做到“火眼金睛”,对以上因素进行综合性判断,然后做出一个好的选型。

注册融云账号查看更多详情

转载于:https://www.cnblogs.com/rongcloud/p/11212188.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx 配置详解

序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。 Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI…

jeeCMS首页加载流程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gyshun/article/details/79669293 如果JEECMS部署完毕之后,在浏览器中输入http://localhost:8080/jeecms,系统直接会按照以下步骤执行: 首…

VSCode 汉化、设置为 中文语言显示 、中文界面

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Vscode是一款开源的跨平台编辑器。默认情况下,vscode使用的语言为英文(us),如何将其显示语言修改成中文了&#…

Python-21-socket编程

一、基础知识 1. C/S架构 C/S架构即客户机/服务器模式。 它可以分为客户机和服务器两层: 第一层: 在客户机系统上结合了界面显示与业务逻辑; 第二层: 通过网络结合了数据库服务器。 简单的说就是第一层是用户表示层,第二层是数据库层。 这里…

解决:VScode 汉化后 、设置中文后 还显示英文的问题

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 按f1 搜索 Configore Display Language 设置 zh-cn 关闭软件重启。 如果重启菜单等还是英文的,在商店查看已安装的插件&…

linux :Docker 方式 安装 zookeeper、阿里服务器上 Docker 运行 zookeeper

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 查找官方镜像,并下载镜像: # 搜索镜像: docker search zookeeper# 拉取镜像:docker …

Java 中去除字符串中空格的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1、方法分类 str.trim(); //去掉首尾空格str.replace(" ",""); //去除所有空格,包括首尾、中间str.re…

WEB 请求处理二:Nginx 请求 反向代理

上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求。本文将讲述请求到达反向代理服务器的一个处理过程,比如:在…

WEB 请求处理 一:浏览器 请求发起处理

最近,终于要把《WEB请求处理系列》提上日程了,一直答应小伙伴们给分享一套完整的WEB请求处理流程:从浏览器、Nginx、Servlet容器,最终到应用程序WEB请求的一个处理流程,前段时间由于其他工作事情的安排,一直…

Biztalk Server 2006安装配置

前段时间收到了来自beta.microsoft.com的BTS20006 Beta2的下载地址,这两天对它进行了一番安装配置。下面把一些经过和步骤和大家分享一下,手中有一些去年的Biztalk Server2004版本的培训资料,里面有11个Lab。需要的朋友请留下mail&#xff0c…

apache 官方 Dubbo 文档

只是分享、记录一下 dubbo 的文档地址:apache 官方 Dubbo 文档 其页面内容如下:(我是用 chrome 直接右键翻译的,原文档是英文的)

CSS Framework 960 Grid System (收)

CSS框架 :960 Grid System 官网:http://960.gs/ 什么是框架?框架是一种你能够使用在你的web项目中概念上的结构。CSS框架一般是CSS文件的集合,包括基本风格的字体排版,表单样式,表格布局等等,比…

发动机的工作原理,你知道吗?

http://auto.jxedt.com/info/5352.htm 发动机是汽车的动力装置,性能优劣直接影响到汽车性能,发动机的类型很多,结构各异,以适应不同车型的需要。按发动机使用燃料划分,可分成汽油发动机和柴油发动机等类别。按发动机汽…

官方文档: Dubbo 框架设计、模块说明、依赖关系

以下内容全文转自 apache 官方 dubbo文档:http://dubbo.apache.org/en-us/docs/dev/design.html 框架设计 图片描述: 浅蓝色背景的左侧区域显示服务用户界面,浅绿色背景的右侧区域显示服务提供者界面,中心区域显示两个侧面界面。…

那些花儿

今天上海下雨了,心绪也变得低落,突然很想念宿舍的姐妹。毕业后就自作聪明地和她们失去了联系,今天去QQ群遛了一圈。虹结婚了,敏还是活得那么潇洒,笑也在努力地生活... 人生啊!总是在向前走,遇…

Linux 上 安装 nginx、 阿里云服务器上安装 nginx

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Docker 方式安装见另一文:Docker 方式安装 Nginx 、阿里云服务器上装 Ngnix 1. gcc 安装 安装 nginx 需要先将官网下载的源…

CSDN-markdown编辑器使用说明

欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…

Springcloud 引导上下文

SpringCloud为我们提供了bootstrap.properties的属性文件,我们可以在该属性文件里做我们的服务配置。可是,我们知道SpringBoot已经为我们提供了做服务配置的属性文件application.properties,那么这两个配置文件有什么区别呢?在Spr…

Flask-1-05-CookieSession

接下来我会演示一下设置Cookie 读取Cookie 删除Cookie,以及添加Cookie的原理 接下来我们分别定义3个视图为 set_cookie、get_cookie、del_cookie # coding:utf-8from flask import Flask, make_response, requestapp Flask(__name__)app.route("/set_cookie&q…

解决跨域问题:No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PS:如果遇到 这个问题 Request header field Content-Type is not allowed by Access-Control-Allow-Headers,解…