网易云信周梁伟专访:亿级架构IM平台的技术难点解析

《即时消息系统-IM核心技术》 IM 系统核心技术 阅读详情
\u0026#xD;\n

自从8月20号子弹短信在锤子发布会露面之后,关于它的讨论不绝于耳,7天融资1.5亿的传闻更是将它推到了风口浪尖。同时很多技术人开始分析它的代码,挖出了它的IM系统其实不是自研,而是使用网易云信提供的第三方服务。有人质疑说,第三方的SDK做一个demo跑跑还可以,能拿来开发正式产品吗?本文就想来谈谈IM开发的难点以及目前第三方IM服务的现状。

\u0026#xD;\n
\u0026#xD;\n\u0026#xD;\n

其实,在RTC实时通信领域,近年来的研发重点并不是IM,而是由直播带火的实时音视频,随着5G的到来,WebRTC、SD-RTN、AV1等新兴技术正在快速的发展当中。相对来说,IM的技术已经比较成熟了,据了解,从子弹短信上线以来,到现在近800万激活用户,其服务一直保持稳定运行中。其背后的网易云信即可作为一个研究的案例,InfoQ对网易云信首席架构师周梁伟进行了采访,本文根据采访内容整理成文。

\u0026#xD;\n\u0026#xD;\n

IM开发当中的技术难点

\u0026#xD;\n\u0026#xD;\n

周梁伟介绍,子弹短信目前主要使用网易云信即时通信的核心功能,比如IM的移动通信,包括图片、文件等等;同时也使用了视频通话的功能,包括点对点,以及群聊形式的视频和语音通话。在发布会的介绍中重点演示的语言转文字功能并非网易云信提供,据猜测应该使用的是锤子手机之前使用过的语音处理服务提供商科大讯飞提供的功能。

\u0026#xD;\n\u0026#xD;\n

对于IM,更关注的是社交产品用户体验层面的东西。具体来说就是怎么构建一个更好的沟通逻辑,更快速的帮助用户达到更好的沟通效果?这其实也是子弹短信瞬间能够火起来的重要原因。

\u0026#xD;\n\u0026#xD;\n

所以,IM开发中的技术难点就在于对用户体验的追求。

\u0026#xD;\n\u0026#xD;\n

首先,IM核心关注点一是消息传输的速度要快,涉及延时方面的问题;第二个是要保证消息的送达率。同时,现在用户的设备多样化,IM通常需要支持多设备,又涉及到一个多终端消息同步的问题。

\u0026#xD;\n\u0026#xD;\n

其次,IM产品的用户量和活跃度通常都很大,在一些特殊的时间点经常容易造成流量的波峰,因此技术上需要能够应对突发的量级。所以在前期需要设计好弹性扩容,对系统的伸缩能力提前做好设计。

\u0026#xD;\n\u0026#xD;\n

最后,IM包含用户的大量隐私,一旦被黑客攻破不堪设想,同时在公共安全方面的影响也越来越受重视,因此很多IM产品都投入精力做内容安全、平台可控方面的工作。

\u0026#xD;\n\u0026#xD;\n

IM通信协议设计的考量

\u0026#xD;\n\u0026#xD;\n

其实在上面没有提到一点,也是在IM中最为核心的一点,就是通信协议的开发。在这方面,目前行业里有一些开源的方案如XMPP、MQTT等,但是,这些开源的方案对后期产品的增长,用户量级的突发式爆增是非常不利的。原因有几方面,一个是这些开源项目出现的较早,其实并没有考虑到移动互联网2/3/4G等复杂的网络情况,包括应对电信运营商在信令等方面的复杂设置,另外,目前鲜有对这些开源技术软件和服务把控度比较强的技术团队,难以进行源码级的扩展和修改,出现问题也难以及时解决,以及商业化IM里消息的传递在过程中是否安全可控是非常核心的要求,如果使用一些标准的协议,就代表了这个东西是开放的,也就是说是有能够被破解的潜在风险,在企业服务场景里有些企业也因此而拒绝通信协议的开源。因此,包括QQ、微信等在内的很多IM产品的通信协议都是自研的。

\u0026#xD;\n\u0026#xD;\n

一个成熟的通信协议都是多年经验沉淀下来的,网易云信的IM服务并不是凭空产生,而是继承了之前网易泡泡、易信的技术。对于通信协议需要关注的地方,周梁伟介绍,云信的私有协议首先关注几个层面,一是安全性,也就是通信过程中所有数据序列化的算法、加密的机制,以及加密的级别,全都是自己定义的。同时也考虑到,在整个传输的过程中可能长期存在的安全风险,比方第三方的攻击,以及数据在网络流转过程中被拷贝和重放的潜在安全风险,这些在设计过程中都需要被规避掉。

\u0026#xD;\n\u0026#xD;\n

第二个,因为现在即时通信更多的往移动互联网方向发展,用户的网络环境具有非常强的多变性,经常属于跨网和弱网的环境下,所以传输协议非常关注对消息的压缩,以及网络带宽的占用,网易云信在这方面也做了很多的工作。这也和标准协议有差别,标准协议的消息结构都是JSON或XML格式,承载同样的有效内容,最终呈现出来的消息体会变得非常庞大,但在这一块私有协议可以做得非常好。

\u0026#xD;\n\u0026#xD;\n

还有一个很重要的方面是私有协议对扩展性的支持,传统的协议不能做到很好的扩展,或者做完扩展后整个消息会变得非常大。对私有协议来说,可以随时的做各种场景的定义、各种新协议的增加和各种版本的兼容。

\u0026#xD;\n\u0026#xD;\n

如何做到高到达率和低延迟

\u0026#xD;\n\u0026#xD;\n

对一个IM平台来说,到达率和即时性是两个核心功能点。对于消息传输机制的设计来说,首先设计的时候把100%的送达率作为一个核心要求,关键性的指标,要抱着必须要达到的态度来设计。

\u0026#xD;\n\u0026#xD;\n

主要的技术手段是通过不同消息类型的相互组合来补充。

\u0026#xD;\n\u0026#xD;\n

消息类型分为以下几种,一种是在线消息,在线消息是指双方用户都处于实时在线的情况,在网络中实时送达。如果用户当时不在线,可能处于暂时离线的状态,我们把消息在缓存中存下来,缓存的消息可以保证更高的读取效率,用户下次上线的时候可以很快的取回来。

\u0026#xD;\n\u0026#xD;\n

但仅仅靠在线和缓存是不够的,因为缓存可能会丢,网络可能出现会丢包,所以我们在数据库里储存关键消息。这类的消息是强一致性的要求,用户发送完成之后,服务端必须要确认数据被存入关键数据库里,否则客户端上的表现是消息未发送成功,是可以触发到上层去从事这种机制的。

\u0026#xD;\n\u0026#xD;\n

存在数据库里的消息,用户可以在更长时间的离线以后实时同步,即使缓存里没有也可以拿到。另外还要考虑更长时间范畴的消息存储,应用的场景是什么呢?用户可能一个月以前开始使用这个IM产品,或者1年前使用了这个IM产品,现在更换手机了,更换手机以后消息如何在新手机上拿到?这种称为云端的历史消息。在所有消息的流转的过程中,这个消息到最后被存储在数据仓库里,数据仓库存储消息的时间维度可能是1年或者几年。在用户跨平台或者更换新设备之后,可以随时从云端再获取到这部分的消息。通过不同消息的相互组合之后,我们是可以达到消息100%送达的效果。

\u0026#xD;\n\u0026#xD;\n

另外,从即时性的角度来说,现在的IM基本都采用长连接的方案作为消息实时送达的渠道。因为现在的移动设备对于App在后台的服务有限制,以前Android上还流行过后台保活、互相唤醒等等方式,在Android系统更新和手机厂商打压下逐渐消失,现在基本都是接入各大推送平台,IM消息即时性在App开发者这里能做的不多,主要看推送服务的实力了。

\u0026#xD;\n\u0026#xD;\n

IM实时消息监控和分析

\u0026#xD;\n\u0026#xD;\n

有一个以前人们不怎么提,但实际存在的问题,就是IM的合规。IM是谣言等不良信息的高发地,在印度,WhatsApp上谣言流传致使私刑案频发,到目前印度官方仍束手无策。

\u0026#xD;\n\u0026#xD;\n

周梁伟介绍,IM通信平台目前承载很多很重要的功能是传统运营商做的部分业务。以前我们用短信、电话,现在大家转移到即时通信的工具上,对监管层来说是有要求的。从平台角度来说,本身做的是一个消息通道的功能,消息就代表了会有舆论的传播,特别在群组或者聊天室这样参与者众多的状态下,所以舆论监管对平台来说是必须承担的责任,这是监管层面对平台运营方的要求。平台必须具备内容审核的能力,云信会按照开发者的配置把平台上产生的内容在云端保存起来,以备监管层随时做内容的审核。

\u0026#xD;\n\u0026#xD;\n

同时在开发者APP运营的层面,内容运营或者内容审核、内容安全运营都是非常重要的范畴,目前网易云信和子弹短信在一起合作解决这样的问题。网易云信有一个专门的团队会负责内容审核的工作,包括会对所有的数据提取特征,会去做同步的、实时的内容审核,以及异步的内容审核,甚至涉及到机器学习的功能和人工介入审核的工作。

\u0026#xD;\n\u0026#xD;\n

从技术层面来说,关于内容审核,目前用到产品上有两种场景,一种是同步审核,在消息发送过程中,这个消息就可以直接进入到内容审核系统里进行识别,如果识别出来有敏感词或者安全风险,会直接拦截掉。在第一时间避免消息的传播。还有一种内容,用户发的视频文件和非常大的图片,像这样的内容做实时审核会带来比较高的时间成本,这种情况下云信目前的做法是采用异步审核,消息投递出去了会进入审核系统,里面有机器算法的部分和人工审核的部分去进行鉴别,一旦审核出此消息违规,会触发IM消息撤回和删除的能力,避免风险的二次传播。

\u0026#xD;\n\u0026#xD;\n

如何保证消息安全性

\u0026#xD;\n\u0026#xD;\n

对IM来说,除了用户数据需要做安全防范外,还需要关注消息内容的安全。包括两个层面,一个是消息传输层面的安全,在传输过程中,通过协议和加密,以保证传输过程中的消息是不可逆的。恶意用户即使抓到网络传输的包也没有办法破译出来。同时,加密级别做到会话级别,是指一个用户的一次长链接行为,即使同一个用户多次登录,或者在不同时间点登录,加密的密钥都是不一样的。所以能够保证传输过程中是安全的。

\u0026#xD;\n\u0026#xD;\n

第二个维度是,消息存储过程中是安全的。这里分为几个角度,一是对数据做自定义的序列化的方式,包括数据存储后,序列化或反序列化过程中的效率更高。二是如果泄露,是不可见、不可读的。另外,对于关键数据需要做加密,避免出现脱库之类的行为。

\u0026#xD;\n\u0026#xD;\n

另外,周梁伟表示,用户怎么使用云平台才能在过程中保证业务数据的安全,一般他们会建议,在使用平台的时候对业务数据做脱敏。比如说开发者自己的平台是用用户的手机号作为用户账号的,在云信里面注册用户的账号的时候,可以在业务层做一个关联。使用随机数或者随机的、无意义的字符串作为云平台数据库里的ID,手机号的映射关系仅仅在业务方。通过这种脱敏保证数据的安全。

\u0026#xD;\n\u0026#xD;\n

结语

\u0026#xD;\n\u0026#xD;\n

看完上面的内容,想必你对IM系统研发会遇到哪些问题,以及相应的解决方案有了大致的概念。当然这里只提到了其中的一些,还有其它方面,比如不同用户量级的系统需要不同的架构,QQ在它的发展过程中就经历多次重构,感兴趣的同学可以在InfoQ网站搜索相关的文章。

企业微信/飞书/钉钉扫码连WiFi保姆级教程(附访客授权技巧) 本文提供了一份企业微信、飞书、钉钉扫码连接WiFi的实战部署教程。通过集成标准Radius协议与OAuth 2.0,企业可实现基于身份的无密码网络认证,并详细介绍了访客授权、权限分级等精细化管理技巧,有效提升无线网络的安全性与员工体验。 阅读详情

相关推荐

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头

WD西部数据2TB,2.5寸移动硬盘,因为磁头坏了,长时间通电导致划片划伤,维修过程通过反复更换磁头,才能利用专业设备,里面找到,镜像,把内容数据恢复出来。 1.说一下经历,借用的别人移动硬盘,去帮别人维修,拷数据出来,别人的文件,数据比较多,且复杂,而且是在PE系统,接口什么的是2.0,没有很好的思考就全选复制拷贝了; 2,拷贝的过程,极其慢,文件多,且文件有损坏,移动硬盘一直处于通电的状态,大概从下午,两点多开始100多G的数据,一直卡住,到,晚上7 。8点拷完还是没拷完。打开的时候就已经,就一直

weixin_43766920的博客 4303

大模型在融合通信产品中的应用实践(非常详细)零基础入门到精通,收藏这一篇就够了

IM 和 RTC 技术作为融合通信的关键技术,在社交、客服、协同办公等诸多场景中得到充分利用;在大模型快速发展和日渐成熟的背景下促使行业也发生了很大的变化,特别是 LLM 技术的第一个现象级应用 ChatGPT 就是以会话作为唯一交互形态;如何结合 LLM 和通信 PaaS 平台加速场景化落地成为一个关键议题。网易也在做大模型技术应用探索,也在内部的多个业务线有落地实践。在 ArchSummit 架构师峰会上,来自网易云信首席架构师,产品部负责人周梁伟就介绍了大模型在产品上的一些应用。以下是演讲整理。我们的

Python_0011的博客 1399

QGC 转发RTSP流 到RTMP服务器

需求: QGC安卓版在接收摄像机RTSP视频流的时候,需要将视频推送到指定的RTMP服务器。 分析: QGC在处理音视频的时候使用了GStreamer这套框架,本身这套框架是跨平台的,所以无需关系环境,只要想到相应位置,添加对应功能代码,然后配置好安卓端的依赖库即可。 添加位置: GstVideoReceiver.cpp -》start函数负责音视频的流的播放,只需在此处添加上封装好的推流函数即可。 同理在stop中添加停止推流功能。 方便起见,可在界面上配置rtmp的推流地.

qthello 2324

网易云信周梁伟:聊聊无上限人数直播聊天室搭建

本文作者周梁伟,现任网易云信IM即时通讯云服务器端开发负责人。2011年加入网易,先后担任网易后台技术中心与网易大数据平台资深开发工程师,负责即时通讯领域的产品开发。一、直播聊天室的形式和应用场景在一般人的理解中,直播聊天室应该就是直播画面旁配一个聊天窗口,众多观看者在里面发表自己的评论(如图1),随着互联网技术的发展和消费者群体的转移,这种简单的聊天室已经满足不了广大网民的需求。 ...

codewoman的博客 1072

手把手教你用Apple Developer App完成苹果开发者账号注册(含证件验证失败解决方案)

本文详细指导如何通过Apple Developer App完成苹果开发者账号注册,特别针对证件验证失败问题提供解决方案。从准备工作到注册流程,再到验证失败的处理方法,帮助开发者顺利完成注册,避免常见错误。

moss5的博客 1157

关于爱思唯尔官方Latex模版参考文献不是按照引用顺序编号,乱序问题

接下来使用工具打开cas-model2-names.bst文件,全词匹配搜索。其他期刊的模版也是一样的操作,把规定序号的规则的。爱思唯尔给的Latex模版大概文件结构如此。发现是按照第一作者的姓氏的大写字母排序。命令行给注释掉,小写的sort可别注释。

weixin_42748439的博客 5112

网易智慧企业亮相TOP 100 Summit,以创新和匠心探索行业前沿

11月14-17日,网易智慧企业部旗下业务品牌网易云信、网易七鱼受邀参加由麦思博主办的第八届TOP 100全球软件案例研究峰会(TOP 100 Summit)。本次峰会围绕 “数字化转型...

netease_im的博客 405

ZYNQ 系统的IEEE1588 实现方法

zynq IEEE588/PTP 实现方案(讨论稿)

姚家湾博客 1万+

虹信软件与网易数智共探产业数字化融合发展

在 AI 时代,网易数智持续推动 AI 与企业服务全场景的深度融合,面向娱乐、社交、游戏、零售、制造等行业,提供 AI 驱动的融合通信与云原生 PaaS、服务营销一体化、数字内容风控、全链路数据治理与分析、应用智能开发等解决方案,已累计服务超过百万家企业客户。后续,网易数智首席解决方案架构师周梁伟全面解读网易数智业务版图,作为网易旗下一站式企业服务提供商,网易数智融合了网易二十余年数字化与智能化技术积累和经验沉淀,旗下涵盖网易云信、网易云商、网易易盾、网易数帆、网易CodeWave五大业务板块。

netease_im的博客 157

MIPI CPHY学习笔记02:TX物理层一致性测试项解析(HS信令模式)第一部分

在手机、平板等移动设备中,MIPI C-PHY是连接相机、显示屏等高速外设的“数据高速公路”。高速(HS)信令模式就是这条公路的“快车道”,专门用于传输高清图像、视频等大容量数据,既要保证传输速率,又要维持信号稳定。物理层一致性测试是对这条“快车道”的全面质检,确保高速传输下数据不卡顿、不失真。今天我们聚焦MIPI C-PHY TX(发射端)的Group 2 HS信令测试,用通俗语言拆解22个核心测试项(含2个过时项),看懂高速信号的合格标准。

一只豌豆象的博客 290

【YOLOv13多模态融合改进】| CFT:跨模态融合Transformer | 利用Transformer的自注意力机制,解决跨模态融合中的长距离依赖和全局信息整合问题

本文记录的是利用 CFT 模块改进 YOLOv13 的多模态目标检测网络模型。的设计出发点在于解决传统多模态检测中跨模态特征融合不充分的问题,即当不同模态数据需协同检测时,基于CNN的方法因局部卷积的局限性,难以捕捉长距离依赖和全局模态间的互补信息,导致复杂光照、遮挡等场景下检测精度不足。本文利用模块,将多模态特征序列拼接后自动学习模态内与模态间的交互权重,在特征提取阶段整合全局上下文信息,增强对不同模态互补特征的利用能力,从而提升模型在多模态场景下的检测鲁棒性与准确性。Cross-Modality Fus

Limiiiing的博客 540

周梁伟:聊天室架构 如何跳出传统思维来设计?

周梁伟 现任网易云信 IM云服务器端开发负责人,浙江大学计算机学院硕士。2011年加入网易,先后担任网易后台技术中心与网易大数据平台资深开发工程师,负责即时通讯领域的产品开发与应用服务器与大数据领域战略规划与设计。   下文根据周梁伟在高升云道深圳站演讲整理而成。   ◆  ◆  ◆   网易云信是网易公司推出的一个面向开发者的IM云平台。今天,结合《性能当道 优化为王》的主题,

heua5555的博客 665

基于STM32的智能电子秤设计毕业论文

摘要:本文设计了一款基于STM32F103C8T6的智能电子秤系统,通过HX711称重传感器实现高精度测量,采用OLED显示和矩阵键盘完成人机交互。系统包含重量采集、数据处理、单价设置、去皮清零及总价计算等功能模块,经测试测量误差小于0.1%,稳定性良好。研究实现了低成本、高可靠性的智能称重方案,为后续无线传输和AI算法集成奠定了基础。关键词:STM32;智能电子秤;HX711;OLED显示;矩阵键盘。

3254968421的博客 849

企业级智能体效能管理:从可度量到可治理的落地指南

随着大模型与AI Agent技术快速迭代,智能体已从实验室Demo走向企业生产环境,但模型输出不稳定、工具调用越权、Prompt变更引发线上事故等问题频发,核心根源在于缺乏一套可度量、可治理的管理体系。企业级智能体的落地并非单点技术选型,而是需要从模型平面和应用平面双维度建立统计评估体系,覆盖任务成功率、工具调用准确率、响应时延、成本与安全合规等关键指标;同时通过权限最小化、双向内容护栏、版本灰度发布和审计熔断机制,构建完整的治理闭环。这套方法论不仅适用于采购、客服、运维等高敏业务场景,也为组织协同和SLO

weixin_34354945的博客 482

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

什么是即时消息(IM)?

Instant Messaging is the act of sending short messages to other people in a fast and practical way via messaging app. Instant Messaging is called IM as a short form. Instant Messaging是通过消息传递应用程序以快速实用...

cunjiu9486的博客 7253

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

im消息中台

核心模型 客户端:发送消息 服务端:接受消息,并调用底层sdk,并存储消息 第三方sdk:如腾讯sdk 设计模式 模版模式:抽象发送流程,提供各模型构造方法和子流程抽象方法 工厂模式:生产各种模型实例对象(策略工厂) 策略模式:每种模型对各自的接口实现(消息body解析等) 建造者模式:构造消息体和参数等 ...

sinat_34814635的博客 2470

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

微信架构设计:亿级IM聊天系统架构设计与重难点分析

IM系统就是即时通讯(Instant Messaging)系统的简称。IM其实并不局限于聊天、社交这类“典型”应用中,实际上它已经广泛运用于我们身边形形色色的软件中。聊天、直播、在线客服、物联网等所有需要实时互动、高实时性的场景等,都需要应用IM技术。1)微信、qq、钉钉等主流IM应用:这是IM技术的典型应用场景;2)微博、知乎等社区应用:它们利用IM技术实现了用户私信等点对点聊天;3)抖音、快手等直播/短视频应用:它们利用IM技术实现了与主播的实时互动;

秃了也弱了 7967

亿级流量 即时通讯IM系统 设计详解(全)

设计该系统的业务逻辑,之后针对性的优化从整体框架掌握各个深层次的框架知识点,以此查漏补缺秒杀系统设计详解短域名系统设计详解(全)LVS四层负载均衡架构详解系统设计面试题-如何设计10亿流量的即时通讯(IM)系统?记笔记的同时融入了一些自已的见解和拓展。

码农研究僧的博客 6618

零基础入门 IM 系列——可靠的消息篇

前言IM 本身其实是一个比较复杂常见的领域,每个公司都有自己的实现,如果细说可以讲出很多东西。本系列主要列出 IM 的常见问题,以及比较主流的方法论,如有错误之处还请指导。IM 的核心——...

杏仁技术站 1127

架构设计从这5点考虑,能帮后期运维很大忙!

好的架构设计,绝对是后期运维的好僚机!

netease_im的博客 1895

网易视频云:“网页视频播放”其实是一个有故事的同学

  说到在网页中观看视频,大家一定都不陌生,从早些年的优酷、土豆、爱奇艺到最近热门的斗鱼,熊猫,战旗等直播网站,每天都有成千上万的人在网页中观看视频。可能大家觉得故事情节极其简单,就是网页中有个区域叫播放器,只要点击这个区域,就能能播放我们想看的视频,没了。起初我也是这么认为的,但是如果仔细从根源去分析,播放器就不是一个简单没有故事的框框。下面为大家讲讲播放器背后的故事。   大家都知道视频是流...

yionqiop283的博客 344
上一篇: 从ABC+IOT到ABC anywhere,百度边缘计算的进击之路
下一篇: 客户并非始终正确,你也不是永远正确的
cpongo9
cpongo9 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄8年 239粉丝 3410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值