说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

《近匠》融云,自主研发真正“不丢消息”的IM云服务

HTML文档下载 WORD文档下载 PDF文档下载
《近匠》第90期,融云即时通讯云源自飞信团队,拥有8年IM技术积累,却推倒重来,从第零行开始写代码,自己做一套全新的通讯协议和服务端架构,不丢消息、快速迭代反馈,并将逐步落实SDK开源计划。

移动互联网时代的即时通讯技术已与互联网时代完全不同,弱网络、丢消息等问题天然存在。融云即时通讯云源自飞信团队,核心创始成员拥有8年IM技术积累,却推倒重来,从第零行开始写代码,自己做一套全新的通讯协议和服务端架构,并将逐步落实SDK开源计划。本期《近匠》专访融云即时通讯云 CTO 杨攀,听他讲述矢志做即时通讯行业老大,把即时通讯做穿做透的融云是如何做到不丢消息、快速迭代,专注为用户提供IM云服务的。


图:融云即时通讯云 CTO 杨攀

CSDN:请介绍一下您以及团队主要成员的从业经历?

杨攀:融云创始团队的所有核心成员几乎都来自于神州泰岳飞信团队,原本都是负责飞信业务的高级管理人员、核心产品和技术人员。CEO韩迎原本是飞信的VP,负责市场销售和运营,另一个联合创始人是我们的首席架构师李淼,原本在飞信负责即时通讯、社交产品,COO毛炜之前则是从事企业级应用软件服务业务。

我个人很早就开始写程序了,从94年开始到现在已有二十多年,一直都在和IM、社交打交道。曾参与微软MSN Messenger Mobile China业务的开发和管理工作,负责过时光网架构升级和改造工作。2008年加入神州泰岳飞信团队后,先后负责了飞信社交平台、飞信开放平台、飞信即时通讯平台业务的管理工作和研发管理工作。

CSDN:请具体讲讲融云是什么?

杨攀:融云很简单,我们做的是即时通讯云服务,这是一个2014年新生的行业。之前大家看到的即时通讯服务都是一些to C的产品,比如QQ、微信、飞信、旺旺、YY、陌陌等,而即时通讯核心技术也都掌握在这些大厂商手里,从事IM的小厂商寥寥无几,即使涉足也可能都是企业级,其支撑的并发用户量远远无法和to C的产品相比。

其次,移动互联网时代的即时通讯技术和互联网时代已完全不同,移动互联网时代的通讯面临着网络不稳定的问题,我们曾做过数据统计,一款手机一天内断网可能会高达三百多次,其难度相对而言也更高,IM技术需要大幅革新。而从2012年时基本没有人会去接入第三方SDK到2014年为大众所接受,开发者服务的理念也日趋成熟。

因此对我们而言,就是把自己的核心业务做好,普惠开发者,让开发者能够通过SDK+云服务的形式能够很简单地在自己的业务中集成即时通讯能力,将原本一个非常难、非常高大上的“阳春白雪”的技术一下子就变成零门槛。我们的方式是提供一个SDK,开发者只需将其嵌入到App中,融云会在云端提供服务器来负责消息传输等,便能实现端对端的聊天。除一对一的单聊之外,我们还提供群聊、音视频通话、公众服务等功能。

CSDN:融云的公众服务与微信公众账号有什么关联或不同吗?

杨攀:融云的公众服务是帮所有使用融云SDK的应用搭建一套公众账号平台,就相当于每个App都有自己的一个公众账号平台,可以自己给自己的App开发公众账号,也可以找别人开发并接入到自己的平台上给自己的App使用,让每一个App都可以变成一个“微信”。

微信本身的理念是中心化,成为一个操作系统,所有的业务都可以直接做一个公众号嵌入到微信里,开发者也无需再劳心劳力地开发App。而我们做的事儿则是“去中心化”,我们帮助微信之外的其他App厂商具备这种能力。

CSDN:融云为开发者提供了哪些核心服务?

杨攀:我们对于公司的定位非常单纯,就是一家纯技术的公司,核心产品就是做即时通讯。也有很多客户会问我们:你们做不做社交、朋友圈、论坛、地理位置定位、短信验证码等?我们觉得这些并非自身长处所在,我们要做的就是把核心领域做透做穿,也是可以成功的。所以我们做的通讯就是单聊、群聊、聊天室、音视频通话、客服平台、公众服务等,全都属于即时通讯的范畴。

CSDN:与其他IM云服务提供商相比,融云在即时通讯技术、功能、成本等方面各有着什么样的优势与不同?

杨攀:融云的研发团队是业内唯一一家做IM出身的团队,这是其他厂商不具备的最大优势,即时通讯技术是一套非常复杂的体系,不是说一两个人挑大梁就能做好的,必须要靠一个团队去把它搞定。技术上的不同就在于,不少竞争对手采用的都是一些开源的解决方案,因为没有经验,直接在开源的基础上进行修改并提供服务。但开源的解决方案都存在一些问题,首当其冲的便是这些方案都是为PC互联网设计的,而非移动互联网,在移动互联网领域,弱网络、丢消息等问题天然存在。


图:融云即时通讯云架构图

其次,这些开源的解决方案都是企业级的解决方案,这也就意味着一旦用户过多,无论怎么改,系统都撑不下去。所以我们推倒重来,参考微信公开的设计理念,从第零行开始写代码,自己做一套全新的通讯协议和服务端架构。

CSDN:从开发者角度,选择一项IM云服务都包含哪些关键因素?

杨攀:现实地说,开发者往往很容易被市场宣传所左右,绝大多数开发者都不会非常细致地去研究到底谁家的技术方案好,更多的时候是凭广告、宣传营销这些感性的认识。但对于比较理智的开发者,通常会考虑服务的稳定性、消息的可靠性等因素,比如消息丢不丢、重不重复、乱不乱序等,服务宕不宕机?使用开源解决方案的服务商总是会碰到频繁宕机的问题,并且很难完全掌握整个解决方案,而融云自主开发服务架构,即使偶尔出现小故障也都是局部的,能快速解决,而且我们也不会存在一宕机整个系统就挂了的问题。

另外,支持和服务也很重要。客户有问题,反馈能够多长时间得到响应并解决?这是开发者非常看重的。其实现在整个互联网行业都比较快,大家一边出产品,一边迭代,没有说花一两年的时间写一个项目,然后突然拿出来,那个时候可能机会已经过去了。现在我们做到的就是快速迭代,每周一晚都会发布一个新版本,保证用户这周提出一个问题或需求,下周二便可以拿到。如果用户觉得版本更新太快,可以不更,这完全由用户自己来控制,融云不会促使用户必须升级。

为了更好地解决客户问题,我们将SDK分为不同版本,有既改Bug又加功能的开发版,不加功能只改Bug的稳定版,以及非常稳定的发布版,既满足快速迭代的需求,又能够让用户得到稳定的版本。

CSDN:在开发、更新、运营、维护过程中,是否遇到过一些比较头疼的问题?如何解决的?

杨攀:现在最大的问题就是客户每天反馈的大量信息,包括需要去跟踪客户提出的新需求、跟踪用户反馈的Bug等。这也就直接造成如何让客户的问题得到最好的追踪和解决,这成为我们很重要的问题。每天每个人脑子里过的信息量是一般的研发团队无法想象的,各种信息接踵而至,我们经常做一些并发性的工作,但既然我们选择了给开发者提供支持就一定会努力完成。从另一个侧面来看,这可能就是所谓幸福的烦恼。

CSDN:那顶着这么大的压力是否有行之有效的解决方案?

杨攀:我们几乎每天都会对流程、工具、支持方式进行一些细微的改进,并不断尝试新的方法,不断地去优化,思考怎么去更好地提供支持。比如最近我们发现,用户在提出问题时,很多问题描述并不清楚,然后我们会问他,这样一来二去就浪费了大量的时间。然后我们就会想些办法,在节省沟通成本的同时,也能让开发工程师在短短的十几分钟内就能修改完善,在提高效率的同时也能很好地提升质量。

CSDN:产品从最初的开发到现在有着怎样的开发思路?

杨攀:先讲移动端SDK,我们将SDK分为两层,底层的通讯库用于满足自己定制通讯UI交互界面的高级客户需求。另外我们也考虑到其实更多的开发者并不愿意在聊天界面上投入太多的精力,我们就做了一个UI组件,开发者几乎不用写代码,可以使用该组件直接调整设置。其实这对于我们而言也是非常有挑战的,既要满足功能,又要设计结构去实现调整和扩展,代码量几乎都耗在这些地方。

CSDN:如何计费?采用什么样的盈利模式?

杨攀:PaaS厂商通行的标准计费模型是按量付费,请求多少次API就付多少钱,然后阶梯定价,但我们在刚起步时便思考了商业模式究竟应该是什么。如果按照PaaS平台的通行模式来走的话,友商之间就会打起价格战,这个非常没意思。并且,我们对自己的定位就是一定要做这个行业的老大,拥有自主开发的核心技术,再加上这么多年来在IM领域的长期摸索和实践,我们自信在成本上可以比其他友商有几倍的竞争优势,用户可以直接免费使用我们的SDK和基础服务。

此外,融云还提供付费增值服务,以满足用户的个性化运营需求,因为这其中包含的许多功能特别费磁盘存储、服务器的计算资源、带宽流量,我们需要为此付出巨大的成本。未来,我们不仅仅只是简单地提供能力,更希望能够帮助使用融云的开发者,靠我们的平台实力来帮助他们解决实际面临的问题。

CSDN:对于大规模的故障,融云是否有应急预案?

杨攀:云服务厂商出问题很是常见,即使如微软亚马逊等也不能例外,但值得细细思量的是能有多快的时间去响应和修复,与开发者沟通是否到位?目前,融云正在着手建设双活的双数据中心,已进入部署阶段。这也就意味着即使任一数据中心发生意外,另外一个还可以正常使用,两个数据中心同时出现问题的概率非常小。同时,双数据中心也需要付出双倍的成本,但能为客户提供更高质量的服务还是物有所值,我们对于稳定性的追求是非常苛刻的。

CSDN:融云在GitHub、GitCafe上托管了许多Demo源码,请问在开源方面是否还有其他考量?

杨攀:在高速发展阶段,我们对公司的定位是商业公司,许多内部的东西在自身觉得不够好并本着对用户负责的前提下,还是一个相对保守的态度。截止发稿前,我们已经将JavaScript SDK开源,在核心部分已非常稳定的情况下,动用社区的力量来帮助我们继续完善问题,大家一起来找Bug并进行维护,除此之外,我们针对其他第三方平台(如Cordova、React等)提供的SDK插件也会全部开源。


【 《近匠》GYENNO CEO任康:用“勺子”敲开一片新市场】《近匠》第89期:从去年的手环,今年的智能手表、智能水杯,再到针对有手部震颤症状人群开发的智能勺“睿餐”,GYENNO开始从健康领域向医疗领域贴近。虽然睿餐算不上医疗设备,但却开始在这片新市场进行深耕。

【 《近匠》小鱼天气,中国风与细粒度空气质量检测】《近匠》第88期,小鱼天气诞生于微软车库中,与一般天气类应用不同,小鱼天气主打细粒度空气质量监测,其完全中国风的设计颇合国内用户的胃口,微软大数据方面的积累也给予了他们很多的技术支撑。

【 《近匠》谛听科技,探索智慧家庭的智能网关】《近匠》第87期,谛听科技以X+N为业务模块,将云操作系统与智能路由器相结合,为智能家居产品提供数据交互和命令控制。未来,路由器不仅是家庭的数据中心,更可在一个平台上远程控制所有的家电、门窗甚至插座。

回顾更多内容及线下开发者活动信息,请关注mobilehub公众微信号(ID: mobilehub)


寻求《近匠》免费报道,请私信:@CSDN移动,或发送邮件至tangxy#csdn.net(请把#改为@)。

将数据转换为内存二进制形式字符串(模拟CV?和MK?$两组函数) -VB资料 禁用 Alt-Tab 或 Ctrl-Alt-Del -VB资料 禁止使用 Alt+F4 关闭窗口-VB资料 绝非玩笑:VB7将完全面向对象 拷贝磁盘 -VB资料 控制Ctrl+Del+Alt键-VB资料 快速编辑VB程序技巧 快速查找或替换文本中的字符-VB资料 快速建立目录 -VB资料 快速交换整数 -VB资料 快速注册/注销动态链接库或控件-VB资料 理解面向对象编程 -VB资料 VB利用GetCursorPos 读取滑鼠的座标 利用Visual Basic 关闭Windows9X或者Windows NT VB利用代码启动/关闭中文输入法 模拟一次鼠标事件 -VB资料 目前执行的是哪一国语言的 Windows -VB资料 VB判断剪贴板的所有可用格式 VB判断驱动器类型 VB判断是否已经建立 Dial Up 连接 VB判断一个年份是否为闰年 VB判断一个驱动器的类型 屏蔽文本框默认的右键菜单——浅谈如何控制Windows消息 -VB资料 奇数和偶数校验-VB资料 启动控制面板命令大全 -VB资料 VB取得 DOS 环境变量 VB取得并设置双击间隔时间 VB取得磁盘序列号、卷标和文件系统类型 VB取得短文件名 VB取得和设置计算机名 VB取得和设置系统颜色 4444 ASP动网论坛漏洞分析!! 高分求助:在oracle中保存图片问题 我想买个二手笔记本作asm,vc++编程,现在有两个算合适,我应选?????? vftable是什么东西? 难道bcb的程序员都要当和尚吗 现在有很多注册表清理工具,请问注册表清理的原理是什么? An Urgent Problem about Word 2000----Is that an mission imposibile ?(s---o---s:high score is warranted) 请看看这个函数... 如何确定线程运行消耗的资源量? 文件系统的树形列表怎么做啊,不要ocx的 为何我使用javascript中location'****.jsp'跳到某一页面,jsp页面不重新编译执行 VC6.0没有声音怎么办 循环20000000次所需要时间(急) 如何使按钮象工具栏上的按钮一样当鼠标移到按钮上时出现文字说明? 关于使用GDI+转换文件格式的问题. 各位能不能介绍点比较经典的算法的书籍,大家分享一下 如何恢复或新建临时表空间????在线等候!!!马上给分! Gis 请教一个数据库的问题,欢迎发言提出解决方案 ??怎样用asp程序把一段html代码转换成纯文本格式? 下拉数据窗口不能下拉是什么原因啊? 有关用VB做数据库的简单问题、ComboBox控件问题! 大家帮我看看这段程序为什么值为0 oracle8.1.7的数据库备份文件怎样恢复到oracle8i上 ? 怎样屏蔽flash的右键菜单,弹出自己的菜单? 我想问一下有没有不写入数据库用ASP代码可以查看当天的浏览访问量 灌水区的水越来越没质量了,你觉得呢? 按钮消息响应的问题,详细请看进去再看 异常详细信息: System.Data.OleDb.OleDbException: 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。 求助,网页制作0=={=========>(在线等,送分) 谁能告诉我《C++Builder 5编程实例与技巧》这本书在哪儿可以下载到完整的电子版!高分感谢! 请教如何将一张图片旋转? 关于流媒体和vc++的结合,高人请进!! 关于DataOutputStream和DataInputStream求教 会DirectX的一起来讨论! 4444 菜鸟求助~~~ help me 刚才发现www2.google.com www3.google.com也不能访问了,见鬼:( 我想停止window2000[域控制器]的389端口,但我不知服务是不是LDAP,因为我想占用端口389 各位!帮个忙! 帮忙啊!因为很着急,只有在技术论坛发了,大家原谅 电子地图 上海的程序员都在哪里"混"? 如何最小化所有窗口? 你们有谁读大学一学年要交近1000元书籍费? 帮忙啊!因为很着急,只有在技术论坛发了,大家原谅 asp中如何使用ADO实现对sql数据库操作 求助,网页制作0=={=========>(在线等,送分) 我在用mcisendcommond()函数时,总提示设备类型出错,是什摸原因? 为什么元、明、清定都北京?自从魏晋时期开始,我国的经济重心就开始南移,但是元、明、清三代君主都定都于北方?还有他们难道不怕造反吗?只要男方一断粮,北方不就立马混乱了吗?是不是这 下列与发酵技术有关的叙述,正确的是:A.发酵过程中控制温度是关键条件之一B.发酵过程中必须保持空气流通C.发酵都是由酵母菌完成的D.蒸煮豆腐后马上加入菌种 蘑菇罐头做出来发酸,怎么去除那种酸味?买来的蘑菇罐头都含有柠檬酸,已经在水里浸泡过了,可是做出来菜来还是发酸,不怎么好吃,请问怎么去除这种酸味?谢谢! 高一人教版数学必修二:已知两直线坐标,求这条直线的垂直平分线的解析式时,k的值可以用相乘等于-1来解,那如何确定与y轴的交点,也就是b的值呢? 变形虫的形态变化与细胞的哪些结构有关?我注重的是讲解,越快越好,最后给 咸肉有点发酸了,怎么样才能去掉酸味呢? 下列古代王朝,曾经在北京定都的是( ) 1.唐朝 2.北宋 3.元朝 4.明朝 5.清朝 A.1.2.3 B.2.4.5 C.2.3.4 D.34.5顾炎武说:“八股之害等于焚书,而败坏人才有甚于咸阳之郊.”,“八股之害等于焚书”是说 面包基础发酵怎样控制温度 紧急!谁知道各农业地域主导区位因素?注意!是主导区位因素!要求:各种典型的农业地域类型,例如“季风水田农业”“商品谷物农业”“大牧场放牧业”“混合农业”“种植园农业”“水稻 两条垂直的一次函数他们的k值相乘等于多少 红茶发酵温度怎么控制主要是茶叶加工过程中,发酵室温度湿度的控制范围问题,不是十分的清楚.想请教各专家.什么样的茶叶需要什么样的范围等. 请写出描写四季景物的诗句各一句就是春夏秋冬de诗都一句. 我国历史上曾建都北京的朝代有 1 秦 2 西汉 3 元 4 明 5 清 A 1 ,2,3 B 2,3,1 C 3,1,2 D 3,2,1对不起,应该是A 1,2,3 B 2,3,4 C 3,4,5 D 1,3,4 证明欧姆表的中值电阻只决定于E和满偏电流 多电源电路个部分电流如何计算其中 xmm3 中的电流时如何计算得来的 平面内互相垂直的两条直线的k值相乘=-1 为什么呢 台湾的主要城市是哪里?台湾最著名的树种是什么? 电路中有两个电源串联,那这个电压应该怎么算呢可以移动位置吗 清朝康熙年间叫京城叫北京 清朝康熙年间有北京这个词吗? 免疫系统的基本功能是什么 急需描写四季景物的古诗{和}诗歌,要完整的,不是一句两句.要多 为什么两条直线垂直k的值相乘等于负一 什么是免疫系统?作用是什么? 青岛市的平均降雨强度是多少? 台湾最大的城市是哪里? 免疫系统的功能主要有? 高一数学空间几何体一题、在线等!已知正六棱锥的底面边长为3cm,斜高为5cm,求它的体积.(V椎体=1/3S底*h)主要是六棱锥的底面积不会求,请写过程和答案,谢谢帮忙! 台湾最大的城市是那座? 免疫系统r的主要作用是什么,免疫器官有哪些? 高一数学空间几何体结构题 例4 要几篇题目是``落叶的启示````的作文 题目是``落叶的启示 设计实验:证明变形虫对外界刺激有反应 如果函数f(x)的定义域为{x|x>0},且f(x)为增函数,f(x•y)=f(x)+f(y)(1)证明:f(x)=f(x)-f(y)(2)已知f(3)=1,且f(a)>f(a-1)+2,求a的值范围 求一篇以落叶为题的文章 这个有关变形虫细胞核的实验说明了什么用一根玻璃针将一个变形虫切成两半,有核的一半能继续生活,无核的一半死亡.如果将一个变形虫的核取出,无核的部分能短期生存,但不能繁殖后代,单 描写四季景物的诗句 载重100吨的卡车有多长 探索变形虫对刺激的反应(一定要做实验.取三块载玻片,分别在其两端各滴一滴含有变形虫培养液,然后把这两滴培养液联通起来.在载玻片相连一侧(统一在左边)的培养液边缘分别放上食盐 100℃ 98.5%硫酸 用什么材质的管道合适? 中共当年为什么要定都北京?北京的气候并不是很好的,常有雾蒙,地理位置也不是最好的.反观南京,从宋朝开始就被称为复兴之者,每次外族入侵,都以南京为者立志反攻.想想就不舒服,历史上外 一辆能载重10吨的大卡车大概多长? 证明细胞是有机的整体,提供材料:正常生活的变形虫数只,培养皿,培养液.设计实验证明.步骤结果结论 若两直线平行,则它们的斜率必相等( ) 若两直线垂直,则它们的 斜率相乘必等于1( ) 函数y=2/3sin(1/2x+π/3)的振幅,周期,初相各是多少? 台湾哪个城市最大? 是不是两直线斜率相乘等于1,则这两条直线关于y=x对称? 如何证明两垂直相交的一次函数一次项系数相乘为-1?最好能用一个初中的方法,多谢 埃及的农业特色是以什么农业为主的 为什么清王朝不在南京定都 【初中直角坐标系】当两个一次函数中k的积相乘为 -1时,两条直线互相垂直.这是怎么来的?还有k有关系那么b有关系否? 变形虫和草履虫不具备生命活动的哪个层次 夏朝到清朝的创立人和定都 为什么两条直线垂直斜率相乘等于-1如题 给出详细步骤者加分…… 在水溶液中 钠离子 氯离子 硝酸根可以共存吗还有在水溶液中 氢氧根 氢离子 硫酸根能共存吗 金到清定都的地方 台湾基隆怎么样? 汤放久了发酸要怎么去除酸味 脱模剂的作用原理 以“春”为题目的作文 面筋发酸如何去除酸味
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘