【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

环信 CTO:解析即时通讯云平台技术难点

  • 2015-04-09
  • 本文字数:4299 字

    阅读完需:约 14 分钟

移动互联网时代,用户对于移动应用的各种功能的要求正变得越来越高,而即时通讯就是其中之一。环信长期致力于为用户提供优质的即时通讯云服务,帮助应用开发者提供个性化的即时通讯客户体验,在即时通讯领域拥有丰富的经验与过硬的技术实力。为了进一步了解国内即时通讯服务的发展,以及环信即时通讯云服务的功能与特点,我们特意邀请了环信CTO 马晓宇进行了专访。

InfoQ:您能否谈谈环信 IM 服务和客户自行搭建 IM 服务器的区别在什么地方,而环信的服务相比之下又具有什么样的优势?

马晓宇:我认为主要有三个区别:时间、系统容量、以及成本。

从时间来说,移动应用领域竞争激烈,产品生命周期即使不是以天为单位,那至少也是以周或以月为单位。用户如果自行研发一个即时通讯平台,平均需要几个月的时间。另外还要考虑到这个产品的发展问题,比如之前比较流行的匿名社交、匿名聊天室、匿名群组,如果用户自行开发的话同样需要几个月的时间,这对于一个移动应用来说显然是得不偿失的。

从系统容量上来看,如果起步阶段只有几万、几十万用户的话,那么自建 IM 服务器还是比较容易实现的,而且其中的一些技术还可以从其他地方借鉴。但是如果当用户数量达到几百万,甚至上千万的时候,自建服务的难度还是比较大的。以 QQ 为例,QQ 的发展从几十万用户,到上百万用户,再到上千万用户的过程当中,每个主要的版本都是彻底推倒重做的,如果一个移动应用真正能成功的话,真正在短时间内能达到几百万日活的话,就一定会对系统容量,对技术造成比较大的挑战,这并不是三、五个人在短时间内就可以完成的工作。

第三个区别,就是开发成本。成本又可以分为两个部分,一个是开发成本,包括技术团队成员的人工及工资成本了。当移动应用的用户量增长到比较大的时候,更大一部分的费用就体现在运维成本上了。以每百万长连接为一个基准,整个 IM 服务的资金成本大概从几万到十几万都有可能,如果用户考虑自建的话,很可能会比环信所提供的专业即时通讯服务的成本还要高很多。

InfoQ:能否从云服务的角度来谈一谈,现在很多现象级的应用可能在一段时间之内,它对于整个系统的负载可能会很严重,但是当用户数逐渐减少之后,又会出现计算资源的浪费的情况。那么这对于自行搭建 IM 服务器的用户来说,这又意味着什么呢?

马晓宇:这个问题首先要从我们服务商的角度来说,环信在云端有着各种各样的监控,如果突然有用户在给系统大量发消息的话,环信会以较快的速度来增加服务器来去完成消息的发送工作。推送也是一样,如果说有些消息给苹果用户推送不过来的话,环信同样也会增加服务器,环信的系统可以在较快的时间内完成动态调整,分钟级的部署现在也已经可以实现。

另一方面,不同的时段,用户的活跃度也是不同的。如果用户白天比较活跃,或者是晚间比较活跃的话,那么如果使用云服务,单用户的成本以及整体上的成本就都会降低很多,但如果自建服务器的话,就必须要按照峰值时间的需求进行准备,那么峰值范围以外的时间段整个系统都将闲置,就会造成很大的资源浪费。

InfoQ:能不能谈一谈,建立即时通讯云平台需要跨越的技术障碍是哪些?产品上线之后的运营过程中还会遇到哪些挑战?环信是怎样解决这些问题的?

马晓宇:在环信的创业探索过程当中,确实遇到过一些比较大的技术挑战,首先需要解决的就是后台的大数据高并发。环信每天需要处理的消息过亿,还要处理千百万的长连接。环信的具体作法是做系统拆分,将系统分成与用户长连接相关的连接服务器和无状态服务器两种,其中使用了 Erlang 语言,本身支持高并发,同时还内置有跨节点的分布式数据库,可以进行 session 同步。对于用户管理、推送等其他无状态服务来说,环信搭建了基于 Java 的后台服务,允许进行动态调配。

另外环信主要是一个实时系统,它将发送用户消息等实时业务与其他非实时的后台业务进行解耦,那些像数据统计等不影响前台用户体验的业务会进入消息队列,即便这些非实时业务出现问题,也不会影响到实时业务的运行。

很多应用每秒钟都会有几万甚至几十万的用户同时登录,在登录的过程中还要获取用户的基本信息以及好友列表,而环信为了提升登录的用户体验,缩短登录时间,因此为最近登录的用户存储了大量的后台缓存,而不用每次登录都需要访问数据库。从数据存储角度来说,环信后台主要的数据存储点基本上都是基于 Casssandra 数据库的,利用 NoSQL 来支持大规模的数据处理。

另外对于移动端,由于应用在移动设备里需要长期运行,所以环信也对内存占用进行了优化,尽量减少内存的占用量。比如用户有很多的消息对话,实际上其中只有最新的那一段对话是加载在内存里的,其他部分都已经做了置换以便节省内存。消息流量也是一样,环信对其进行压缩处理,在节省流量的同时,也优化了设备耗电量。

此外,用户的集成体验对于环信来说也是需要不断完善的。目前的解决思路是,为用户提供一个开源的 UI 模板,里面已经演示了如何调度不同的 SDK,如何登录、发消息、创建群组等等,便于用户将环信 SDK 更容易的集成到应用里,只需要直接添加代码就可以。另外一方面,环信还发现有些用户,可能更希望直接把 UI 整个拿过去使用,所以环信在开发 UI 的控件封装,将基本的聊天、单聊群聊做成一个控件,这样用户就不需要再去做一个新的对话窗口。

从运维角度上来看,环信同样采取了一些优化手段,比如一个 API 只能处在的一个合理的调用范围内,这样就可以避免某个用户进行大量频繁的异常调用。再比如某些用户需要群发消息,但对发送速度不做要求,这样的话系统就可以将这些消息放到慢速队列中,以避免影响快速队列以及真个系统的运行速度。

实际上,无论准备多么充分,意外还是会不时发生,所以环信也比较看重监控系统。当主要消息队列出现拥堵的时候,监控系统在报警的同时还能检测出问题出在什么地方,将会影响哪些用户的具体哪些操作。同时,环信系统在主要的连接点上都有降级开关,保证基本服务的运行不会受到影响。

环信还会每隔一两个月进行一次降级演习,模拟缓存、数据库、登录等故障的出现,以制定应急预案,这样在实际运行时出现相应问题时就容易处理了。

InfoQ:环信提供的是一种 PaaS 服务,对于云服务的用户来说,最关心的肯定是安全这个话题。那么环信在安全方面,以及保护用户隐私数据方面都做了哪些具体措施呢?

马晓宇:首先用户数据之间是隔离的,用户的数据是基于 Token 访问的,用户不能使用一个应用的身份验证去访问另一个应用里的数据。同样地,在同一个应用里面,环信也设置了两个不同访问权限,一个是管理员权限,而另一个则是普通用户权限。在普通用户权限下,是看不到管理员权限下的一些数据的。

从运维操作的角度来说,环信制定了严格的操作规范,后台工程师对数据库或者接口的访问权限是有严格限制的,只有特定的人才拥有相应的权限,所有的服务器登录操作都将记录到日志里。

另外,环信考虑过第三方服务的因素。由于环信本身是多租户系统,当与第三方云存储服务商合作的时候,就不能像一些个人云服务那样,所有的数据都是存储在一起,使用一个账号就能访问所有的数据。环信同样要求第三方云存储也要支持多租户系统,环信也会与合作伙伴一起在这方面进行并行开发与集成的工作。

简单的数据访问上,环信同样采取了一些保护措施。比如用户上传图片是通过 HTTPS 通道的。每个图片上传之后,环信会对应生成一个身份验证进行绑定,也就是说要想下载这张图片必须同时拥有正确的 URL 和身份验证,缺一不可。

InfoQ:一家企业的技术理念同样是企业文化的一部分,同时也会影响企业未来的走向。您能不能谈一谈环信的企业技术文化?

马晓宇:因为经历的原因,环信的几位创始人都曾进行过大量的开源项目开发工作。另外环信系统本身在消息对列、数据库等方面都在使用基础的开源服务,因此可以说,环信与环信的技术人员一直对开源文化情有独钟。

环信首先是希望做出一个能为用户提供价值的、技术上成功的开源架构软件系统。环信认为,在解决很多技术挑战过程中,肯定能够分析总结出一种通用的技术方案,最后形成一套完备的基本系统,再将这个系统开放给更多人,让更多的应用开发者受益。即使这一过程可能需要耗费环信几年的时间,但这对于热爱开源的技术人来说这并不算什么。

在团队管理上,环信也同样希望能采用一个开源软件开发的组织结构,逐步形成一个自管理的技术团队。比如环信的技术人员可以远程办公,自由安排工作时间,或者每年只有有两次到北京来和团队其他人员一起开会,平常直接以邮件等方式沟通,完全以开源软件的方法来维持整个团队的运作。这样的工作方式能够让员工的工作与生活联系的更紧密,同时也能激发员工的创造性思维。

InfoQ:您认为今年移动端云计算市场会出什么样的一些变化?哪些因素推动了这个移动端云计算市场变化的?

马晓宇:去年各种针对个人的服务比较多,而今年开始针对企业的服务会不断增加。尤其是企业 SaaS 服务,现在已经涌现出一批 SaaS 服务商正在进入市场,涉及的领域包括存储、安全、人力资源管理,甚至是统计表单等等。企业的 SaaS 服务将成为主流趋势,包括环信即将正式推出的移动客服在内,都是完全针对企业的一种 SaaS 服务。

InfoQ:从环信现有的用户来看,您认为哪些行业或者类型的应用会出现新的增长点呢?

马晓宇:从用户数量的增长速度来看,最热门的基本都是图片类的应用,这些应用不仅仅是用户增长快,而且用户的活跃度也非常高。另外,一些特定的垂直领域应用的用户粘性也比较大,比如动漫类的应用,当它增加了即时通讯功能以后,一天的消息流量就到了上千万条,这也证明此类垂直领域的应用还是比较受欢迎的。

InfoQ:您认为现在国内的即时通讯云市场与国外相比还存在哪些不足?需要在哪些方面进行改进呢?

马晓宇:国内现在的相关厂商不少,国外也有像 Layer 这样的公司。以 Layer 来举例,它的定价基本上是环信的 10 倍,这一方面说明可能美国用户在付费上的意愿比较高,而另一方面,也证明国内的市场竞争已经进入了白热化的阶段。但总体上来说,因为市场的规模比较大,所以基本上还是处于良性竞争的状态。在国内与国外厂商的差距上来看,目前还是有一些的,无论是商业环境还是人力资源上,环信以及国内厂商都处于劣势,尽管国外厂商技术人员的总数并不多,但如果每一个人都是精英翘楚的话就会变得很不一样了。因此技术人员的储备,进一步吸引世界级的工程师,也是环信接下来的方向,只有在人才上有所突破,才有可能真正走到国外去竞争更大的市场。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。欲了解更多环信资讯,欢迎访问环信专区

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2015-04-09 08:4575627

评论

发布
暂无评论
发现更多内容

采购LED显示屏要注意的五大技术参数

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

如何通过Java代码在PDF中插入、替换或删除图像?

在下毛毛雨

Java PDF 图像

喜报|HarmonyOS开发者社区连获业内奖项,持续深耕开发者生态

HarmonyOS开发者

HarmonyOS

KaiwuDB CTO 魏可伟:1.0 时序数据库技术解读

KaiwuDB

时序数据库 多模数据库 技术优势

企业数字化转型,工具先行

SoFlu软件机器人

设计文档概述

五毛

设计原则

一份价格,双份收货,彻底搞定 PPT,兔年解放你自己

博文视点Broadview

告警与恢复告警原理及实现

KaiwuDB

告警 多模数据库 恢复告警 数字能源

开源SPL强化MangoDB计算

石臻臻的杂货铺

开源 SPL

我理解的卓越工程

agnostic

卓越工程

2022最新MySQL高频面试题汇总

程序员大彬

MySQL 数据库 计算机

“祝福海报”小程序走红,AIGC走进“千家万户”

科技热闻

正式起航!用友23大行业客户与解决方案事业部全面亮相

用友BIP

用友BIP

2022年度回顾|龙蜥这一年:协同开放 众行致远

OpenAnolis小助手

开源社区 龙蜥 贡献 协同开放

【新春特惠周末班】2月4-5日在线CSPO“价值交付课程” | 全国招生

ShineScrum捷行

产品负责人 CSPO认证 CSPO

京东探索研究院 | 2023年十大科技趋势

京东科技开发者

京东 技术分享 京东云 技术预测 企业号 1 月 PK 榜

Electron打包错误的踩坑小记

茶无味的一天

前端 Electron Node electron实战

Transformer 再添一员,比 Swin 更强的 DiNAT

Zilliz

QEMU与KVM架构介绍

Linux内核拾遗

Linux 虚拟化 qemu kvm

视觉模型 ConvNeXt V2,结合纯卷积与MAE

Zilliz

计算机视觉

全球化商家平台技术探索与演进

阿里技术

全球化 架构演进

湖仓一体电商项目(十七):业务实现之编写写入DIM层业务代码

Lansonli

湖仓一体电商项目

TiDB PPT玩家快速点评 V6.5 新特性

TiDB 社区干货传送门

版本测评

【春季2月CSM认证周末班】提前报名特惠--“全球金牌”课程CST导师亲授

ShineScrum捷行

ScrumMaster 项目经理 ScrumMaster认证 CSM认证

【春季2月A-CSM特惠周末班】ScrumMaster进阶课程 · CST导师亲授

ShineScrum捷行

敏捷教练 高阶SM 敏捷教练技能

Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】Task2 数据分析

一颗小树

深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」

洛神灬殇

nginx 负载均衡 反向代理 优化架构

赛意信息张成康:在行业场景驱动下为企业创造数字化价值

科技热闻

从做技术到做技术管理

石云升

极客时间 技术管理 1月月更 技术领导力实战笔记

一图回顾博睿数据的2022

博睿数据

年度报告 博睿数据

模块二作业 (架构实战训练营)

Justin

架构实战营

环信CTO:解析即时通讯云平台技术难点_大数据_刘羽飞_InfoQ精选文章