万博manbetx官网主页 > 建筑结构设计 >
融云首度披露高并发系统架构设计四大要点
发布人:万博manbetx官网 来源:万博manbetx体育 日期:2020-01-18 08:53

  5G因高速率、大容量和低时延三个主要特征,为我们带来了无限遐想,但如果底层通信能力及设计架构不足以支撑高并发的场景,高延时仍然不可避免,那么5G技术所赋予的全新应用体验也将大打折扣,因此,掌握高并发的通信技术在5G时代至关重要。

  在2019全球互联网通信云(WIIC)大会上,融云技术总监高晓光在架构演进与性能优化论坛中毫无保留地分享了融云高并发通信技术的系统设计与实践,希望给广大开发者提供一些实战帮助。作为通信云行业的技术领导者,融云连续五年保持IM即时通讯市场占有率第一,是业内唯一承诺在高并发和弱网下,仍然可以保障消息不丢、不重、不乱序的厂商,融云的高并发通信技术和系统架构也已成为业界争相学习的技术标杆。

  WICC会上,高晓光首先分享了融云在整个通信平台上常用的系统性能优化手段。在系统运行的性能上,融云主要关注业务、系统和存储三个层面的问题。在业务层面,开发者关注每个业务请求接口的响应时长,动态掌握正确的响应时长,过长和过短都不合理,并对程序运行中的性能拐点,尽可能的优化,延长其到来的时间,这可极大提升高并发的业务承载能力。在系统层面,程序运行过程中关注CPU、内存和I/O这三方面的使用情况,合理配置资源;在存储层面,根据实际业务场景做数据库选型,选择合适的存储介质。

  采用异步化的请求处理。目前,融云采用基于Actor模型自研的分布式RPC框架来实现整个通信云平台,不但可以把请求的源数据,像流水线一样在每个节点处理完后直接下转,还可以将最终处理的结果通过溯源直接投递回去,从而减少数据的调用次数。相对于同步的方式,异步化可以提高资源的复用程度,中间需要被处理的节点越多,异步化的优势会越明显。

  合理的缓存策略。通过数据、分布式缓存、本地缓存、客户端缓存层层递进的缓存策略,使越活跃的数据越逼近客户。目的在于让热的数据离它要处理的更近,以提高缓存的利用率,加快数据处理的速度。

  选用适合的数据结构与算法,可以极大的提高整个程序的计算性能。例如一致性哈希算法,可用于整个服务的数据的散列,或者节点的定位;LRU缓存,一个带数据淘汰的缓存组件,把冷的数据淘汰掉,把腾给热的数据,提高数据利用率;BitMap,每一个比特位都可用来标识一个状态位,可用于快速的状态判断和节省存储空间;Bloom Filter可以认为是BitMap的一种应用,可以用来快速判定数据是否存在,避免缓存穿透。

  高效的数据存取模型。在融云整个系统里面会常用到几种不同的存储类型,没有高下之分,高晓光说选用的原则是一定要符合业务场景。例如,存用户的在线和离线状态,融云会选用KV存储;存储消息,由于消息对于时序的要求很高,所以可以选择时序型数据库。数据怎么用起来方便,就怎么去存取它。

  WICC上,高晓光谈到消息分发的典型场景有单聊、群聊、聊天室,不同场景应具体分析、分别应对,才是解决高并发问题的秘诀。会上特别针对群聊和聊天室的不同特点,融云分享了不同的最佳实践方案。

  针对群聊场景。首先,融云在系统中使用消息分发控制策略,在群消息分发中引进快、中、慢三个队列,分别设置不同的延时值,根据不同的群数量,映射到不同处理队列中,将绝大多数百人以下的群放入快速队列,进行快速处理,可极大地减轻分发的压力。

  其次,融云采用消息直推与通知拉取相结合的方式,在消息不频繁时用直推模式,当消息量爆增,产生积压时即转为通知拉取模式。同时,使用 ACK 机制进行消息可靠同步,且同步的消息严格按照时间戳有序进行,这个时间戳由服务端唯一性,这也是融云敢于承诺消息不重不丢不乱序的秘籍所在。

  再则,融云通过引用分发机制降低消息缓存的存储占用。原则上,是按消息大小及群数量来判定是否采用引用分发。当消息体大,如发送语音或图片时,就采用引用分发机制,只分发一个索引,当终端实际拉取消息时,再推送实体消息。

  针对聊天室场景。聊天室和群聊的不同之处在于:聊天室的关系是临时性的,出入频繁,若遇大型直播,瞬时可达几万甚至几十万,消息极其活跃,瞬时峰值极高。融云承诺的是无上限的聊天室服务,最高服务过15万人同时在线,每秒消息的分发量超过2000万条,日消息峰值超2218亿条。

  为满足高并发消息的服务请求,融云部署了环形队列的内存缓存,滚动保存最近的50条消息。在终端完全改用通知拉取的方式,用户收到通知后,可从服务端的缓存中获取消息,这起到了很好的限流作用,直接缓解了终端压力。

  另外,对于聊天室而言,融云根据多年服务客户的经验以及自身的技术模型,制定了一套按消息类型进行消息抛弃的处理机制。例如大型直播的场景,消息可能频繁到每秒瞬间几万条消息涌向终端,即便终端能够处理过来,用户也未必看得过来,体验反而很差。所以当直播间消息量过大或消息频率过高时,融云会为消息设置优先级,并将连续消息和相似消息优化成一条叠加消息,同时根据优先级机制抛弃无用户属性消息,确保消息并发量极大的情况下,用户端也可以享受流畅的直播互动体验。对于聊天室,融云还额外对消息上行进行限流,也有效提升了用户体验。

  随着5G+物联网时代的到来,各种终端设备甚至会延伸到触手可及的任意一物,海量消息激增将直接导致高并发的场景无处不在,底层的通信系统架构也将面临难于想象的。

  高晓光表示,融云一直以来在服务性能上都围绕着三大重心去进行优化,一、合理的算法,降低CPU使用;二、合理的内存结构,降低内存用量,提高缓存利用率;三、尽可能的降低I/O的频次。同时,高晓光在中还着重强调:任何的优化都需要符合特定的场景,如果没有场景,任何优化都毫无意义。

  回顾前文,融云的云通信系统架构之所以能够住各种高并发的极端,与融云正确分析场景的特点,进而采取有效对策密切相关。此次融云在WICC上的技术分享,希望帮助开发者了解到,在单群聊及聊天室这样典型的消息分发场景下,通信云技术如何对高并发业务进行支撑。通过高并发系统设计及最佳实践的解读,融云希望引领业界技术一起,持续推动通信云技术对5G多应用场景的服务性能优化与提升。

  免责声明:我方仅为的第三方企业注册用户所发布的内容提供存储空间,融合网不对其发布的内容提供任何形式的:不内容满足您的要求,不融合网的服务不会中断。因网络状况、通讯线、第三方网站或管理部门的要求等任何原因而导致您不能正常使用融合网,融合网不承担任何法律责任。

  第三方企业注册用户在融合网发布的内容(包含但不限于融合网目前各产品功能里的内容)仅表明其第三方企业注册用户的立场和观点,并不代表融合网的立场或观点。相关各方及作者发布此信息的目的在于、分享更多信息,并不代表本网站的观点和立场,更与本站立场无关。相关各方及作者在我方平台上发表、发布的所有资料、言论等仅代表其作者个人观点,与本网站立场无关,不对您构成任何投资、交易等方面的。用户应基于自己的判断,自行决定并承担相应风险。

  根据相关协议内容,第三方企业注册用户已知悉自身作为内容的发布者,需自行对所发表内容(如,字体、图片、文章内容等)负责,因所发表内容(如,字体、图片、文章内容等)等所引发的一切纠纷均由该内容的发布者(即,第三方企业注册用户)承担全部法律及连带责任。融合网不承担任何法律及连带责任。

  第三方企业注册用户在融合网相关栏目上所发布的涉嫌他人知识产权或其他权益的内容(如,字体、图片、文章内容等),经相关版权方、方等提供初步,融合网有权先行予以删除,并保留移交司法机关查处的。参应司法机关的查处结果,融合网对于第三方企业用户所发布内容的处置具有最终决定权。

  个人或单位如认为第三方企业注册用户在融合网上发布的内容(如,字体、图片、文章内容等)存在自身权益的,应准备好具有法律效应的证明材料,及时与融合网取得联系,以便融合网及时协调第三方企业注册用户并迅速做出相应处理工作。

  作为广电领域最具影响力的科技项之一,CCBN产品创新旨在鼓励技术创新,促推广电信[详细]

  2019年,135编辑器即将跨过五个春秋,135编辑器也已经拥有700万注册用户。为了回馈一[详细]

      万博manbetx官网,万博manbetx体育,万博manbetx官网网页
 
 网站地图   万博manbetx官网,万博manbetx体育,万博manbetx官网网页