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

《近匠》融云,自主研发真正“不丢消息”的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(请把#改为@)。

用Delphi创建Internet快捷方式 用Delphi实现NetBIOS广播收发 用Delphi实现网络驱动器的映射和断开 用Delphi实现远程屏幕抓取 用DELPHI制作留言板 再谈用Delphi程序获取拨号连接的动态IP地址 在DELPHI程序中拨号上网 在DELPHI程序中获取网络资源信息 在Delphi程序中应用IE浏览器控件 在Delphi中调用NetscapeNavigator 在Delphi中使用flash控件 在Delphi中使用IP控件 在程序中动态取得Win95/98网络邻居中工作组及计算机名-Delphi资料 在程序中获取网络资源信息-Delphi资料 自制THyperLink组件-Delphi资料 报表制作技巧(三)-Delphi资料 Delphi数据库开发及统计表格设计 Delphi文本和图形的打印方法 Delphi应用程序中中国式报表的制作 Windows环境下实时列表输出的实现方法-Delphi资料 报表制作技巧(二)-Delphi资料 Delphi编制的程序运行中动态制作报表 报表制作技巧(一)-Delphi资料 如何在WINDOWS中控制打印字体的长宽,而不受限于SIZE 的限制-Delphi资料 也谈为Delphi中数据库报表加网格 用Delphi4的QReport部件生成报表 用Delphi编写打印程序的窍门 用Word做Delphi报表输出工具 在DELPHI 文 本 和 图 形 的 打 印 在Delphi中运用QuickReport实现多栏列印 在打印或打印预览前如何获取报表页数-Delphi资料 用过网上的G711-G721-G723代码做语音压缩的请进,高分 在98上安装了apache+php+mysql,让用287端口测试,287端口是什么 字体设置, LogFont的lfFaceName... 关于随机 新手问题 如何动态改变 RichEdit 中的字体?很急! !!!怎样把stringgrid中已经选择得数据读出来!!!! 我该学些什么? CObject类是MFC类吗? 请问除了http://java.sun.com/j2se/1.4/download.html外,哪里还有jdk1.4下载? 有没有兄弟做过关于DSP与PC的并行通信? 请教接口查询的问题 如何清空表中的全部记录? 我是一个vb 的初学者,请大家介绍一两本好的关于数据库开发的书! 《Delphi淡手辑略 之 数据库篇》:数据安全保存(函数) DB2 store procedure Easy_Problem!!!关于对话框!!! weblogic下调用java bean出了点问题 (苯苯) 如何在两地用netmeeting通信,共享信息,两方为win98和win2000server,使用modem连接 tomcat 如何与 jboss 进行集成 Regular DLL中向导生成的winapp对象有什么用? 关于Install shield 的问题 一个高难度问题,特急! 从一个页的Button事件中如何获取在iframe中另一页中选种checkbox的值? 大家一起来帮帮我 我是个新手请教如何在98下安装和设置apache,尽是详细些,最好给介绍些资料 高手请教,有关类的链表指针 如何定义日期类型? 请教高手!如何执行带条件SQL语句? 大家一起来为c#加油阿 追女教训谈 如何用OUTLOOK作多用户使用???? 赐教 有谁知道ramdrive.sys在dos下的详细用法,敬请赐教,倍感感激!! 怎么用Delphi调用MySql(win) 关于frame的问题. 为什么显示不出来???? c#通过INTERNET远程访问数据库都有什么办法?(请高手指点) 有誰能把CDONTS.DLL(電子郵件)的源代碼貼出來嗎?有分送,THANK! 请教 NetColorWolf(NCW) pb7的工具条栏的文字字体! 为什么,我的子窗口调用另一个窗口时,总是新开一个被调用窗口,而且被调用窗口中的ADOTable的connected总是丢失。why 《Delphi淡手辑略 之 数据库篇》:数据安全删除(函数) 请教! 我用setfocus使一个控件聚焦,但我想隐藏光标,不想让它在界面上闪动,怎么办? 用delphi 编防火墙 有谁知道ramdrive.sys在dos下的详细用法,敬请赐教,倍感感激!! 关于Delphi线程构造函数: 简单问题 ADSL代理上网部分站点上不去解决一例. 消息中间件的功能?各位铜人帮忙! 如何改变对话框和窗体的背景色呢? 《Delphi淡手辑略 之 数据库篇》:打印DBGrid中的所有数据(过程) 有关Delphi指针的问题,请高手帮忙!!!!!!! 物体由静止开始做匀加速直线运动,加速度是2m/s2,它在某1s内通过的距离是15,求物体在这1s以前已经通过了多少路程~ 鲁迅的朝花夕拾中十篇文章的主要事件 英语翻译Methoxyacetic acid,pentyl ester2-Propene-1,1-diol,2-methyl-,diacetatePropanoic acid,2-oxo- (CAS)Methylglyoxal17-Acetoxy-12-methoxy-5,6,11,18-trinaphtAcetic acid (CAS)2-Pentanone,3-methyl- (CAS)Propanal,2-oxo- (CAS)3-(2,2,4-trimethyl-1,3-d 高中物理大题用不用写答语 求鲁迅的《朝花夕拾》中10篇散文的主要内容《狗·猫·鼠》:《阿长与》:《二十四孝图》:《五猖会》:《无常》:《从百草园到三味书屋》:《父亲的病》:《琐记》:《藤野先生》: 英语翻译4-Decenoic acid,methyl esteMETHYL CIS-4-DECENOATE4-Decenoic acid,methyl esteNo Match2,6-Octadienoic acid,3,7-dimethyl-,methyl ester.alpha.-CubebeneYlangene.alpha.-Ylangene 高中物理,谁答 鲁迅作品《朝花夕拾》的主要内容和中心思想是?简约为主.. 英语翻译Mixed-xileneNon aromaticsHydrotreatedIsopentan 高中物理.谁来答一下作用力与反作用力的冲量大小是否一直是大小相等,方向相反?能不能说一下原因.如果不是,请举个反例. 议论文阅读 《做好自己》答案 景象或样子用观组词 照样子,写词语 例:名著--著名 代替--替代1.名著--著名 _____ ________ _______2.代替--替代 ____ _________ __________3.争先恐后(先--后) _______ ___________ ________4.劈波斩浪(劈--斩)_______ __________ ________ 鲁迅的散文集《朝花夕拾》有哪十篇文章? 一物体由静止开始做匀变速直线运动,若最初2S内平均速度是2m/s,则4S内的位移是 高中物理分压电路和限流电路以前初中可以根据这样画电流的方式算电压电流电阻为什么高中就不能这样做,只能算用电器占这个电路电压的比例 还当“素读” 议论文阅读答案“天下无书则已,有则必当读;宴中无酒则罢,有则必当饮.”无论何时何地,这种生活都令我心仪神往,只不过饮酒应浅尝辄止,读书当细嚼慢咽.尽管这种饮酒方式 一物体由静止开始做匀变速直线运动,若最初2s内平均速度为2m/s,则4s内位移一物体由静止开始做匀变速直线运动,若最初2s内平均速度为2m/s,则4s内位移是多少 我想问什么时候用限流分压外接内接之类的. 议论文 由静止开始做匀加速直线运动的物体,前2s内平均速度为2m/s,则4s内位移为__,此物体加速度为____ 连接电路中什么时候用限流什么时候用分压 用比喻论证的方法写一篇议论文要关于 生活中总有一些挫折,人生不是一帆风顺 小米2与小米2s 的区别 《说勤》议论文最好是不少于600的 英国人仍然不知道做什么车去公园 求英语大师帮我转译一下. 小米2和小米2s有什么区别 议论文《说勤》的阅读答案中国有句俗话,叫做“一勤天下无难事”.唐朝大文学家韩愈也曾经说过;“业精于勤”.这就是说,学业方面的精深造诣来源于勤奋好学. 勤,对好学上进的人来说, 某物体做匀变速直线运动,第1s内的平均速度为1.6m/s,头2s内的平均速度为1m/s则物体运动的加速度为—m/s²,时刻t的速度为—m/s 小米2s和2有什么区别 《说“勤”》阅读答案《说“勤”》俗话说:“一勤天下无难事.”唐代文学家韩愈说:“业精于勤.”学业的精深造诣来源于勤.勤,就是要珍惜时间,勤于学习,勤于思考,勤于探索,勤于实践.古 急.一物体做匀变速直线运动,第1s内平均速度为1.2m/s,第2s内平均速度为1m/s,求其加速度和总位移 小米2和2s的屏有什么区别 英语好评! 做匀变速直线运动的物体,从t1时刻开始,头1s内的平均速度是1.2m/s,头2s内的平均速度是1m/s(1)物体的加速度是多大(2)t时刻的瞬间速度大小是多少 下列各项中,哪项即使传染病的病原体,又是致癌因子?下列各项中,哪项即使传染病的病原体,又是致癌因子?A大肠杆菌 B黄曲霉毒素 C蛔虫 D乙肝病毒 鱼我所欲也的中心论点是什么?是怎样提出来的?这样提出有怎样的好处? 谁能告诉我救护车标志的含义和由来?救护车标志的图案是由一条蛇和一把剑组成的,由来? 能引起人产生肿瘤的生物致癌因子与哪个细胞器有关? 一点英语好评 请告诉我这个标志的名字含义来历如题 一物体做匀加速运动,第一秒内的位移是4米,第四秒内的位移比第三秒内的位移多2米,求加速度和第二秒内的位移,请说明具体步骤,我刚在学,所以比较陌生, 鱼我所欲也的中心论点有何特殊之处,这样写的好处是什么? 性别符号“♀”、“♂”的意义和由来? 有一物体做匀加速直线运动前2秒内通过的位移为18米在第3.5秒至第4.5秒通过的位移为24米则物体的加速度为 物体在零时刻的速度为 石棉和黄曲青霉素是两种不同的致癌因子吗 关于法制教育的作文500 一个左匀加速直线运动的物体,在前4秒内经过的位移是24m,以后4秒内经过的位移是60m求这个物体的加速度和初速度 职业的词(英汉翻译) 化学这个单词用英语怎么读? 某物体做初速度为0的匀加速直线运动,已知它的第一秒内的位移是2米,那么它在前3秒内的位移是多少? 石棉会致癌吗?生活中有哪一些东西是石棉做的啊 高手看一下这是啥手机,后面的标志啥意思 做匀变速直线运动的物体,在第一个4秒内的位移为24米,第二个4秒内的位移问哦60米, 求物体的加速度物体在第四个4秒内的位移. 关于读书议论文200字内 石棉如何致癌?如题 要这两个词的意思哦! 读书的议论文就是图书阅读降低和网上阅读增加 怎么写议论文 还有怎么引出名言,材料还说了:有识字的人为什么不读书?该怎么写 论点.名言 什么是黄曲霉素,为什么说黄曲霉素是致癌物质? 这两个词意思是什么?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘