云数据中心网络架构与技术闲鱼(传统数据中心网络架构)
本篇文章给大家谈谈云数据中心网络架构与技术闲鱼,以及传统数据中心网络架构对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化
本文由阿里闲鱼技术团队逸昂分享,原题“消息链路优化之弱感知链路优化”,有修订和改动,感谢作者的分享。
闲鱼的IM消息系统作为买家与卖家的沟通工具,增进理解、促进信任,对闲鱼的商品成交有重要的价值,是提升用户体验最关键的环节。
然而,随着业务体量的快速增长,当前这套消息系统正面临着诸多急待解决的问题。
以下几个问题典型最为典型:
1) 在线消息的体验提升;
2) 离线推送的到达率;
3) 消息玩法与消息底层系统的耦合过强。
经过评估,我们认为现阶段离线推送的到达率问题最为关键,对用户体验影响较大。
本文将要分享的是闲鱼IM消息在解决离线推送的到达率方面的技术实践,内容包括问题分析和技术优化思路等 ,希望能带给你启发。
(本文已同步发布于: )
本文是系列文章的第6篇,总目录如下:
《 阿里IM技术分享(一):企业级IM王者——钉钉在后端架构上的过人之处 》
《 阿里IM技术分享(二):闲鱼IM基于Flutter的移动端跨端改造实践 》
《 阿里IM技术分享(三):闲鱼亿级IM消息系统的架构演进之路 》
《 阿里IM技术分享(四):闲鱼亿级IM消息系统的可靠投递优化实践 》
《 阿里IM技术分享(五):闲鱼亿级IM消息系统的及时性优化实践 》
《 阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化 》(* 本文)
从数据通信链接的技术角度,我们根据闲鱼客户端是否在线,将整体消息链路大致分为强感知链路和弱感知链路。
强感知链路由以下子系统或模块:
1) 发送方客户端;
2) idleapi-message(闲鱼的消息***);
3) heracles(闲鱼的消息底层服务);
4) accs(阿里自研的长连接通道);
5) 接收方客户端组成。
整条链路的核心指标在于端到端延迟和消息到达率。
强感知链路中的双方都是在线的,消息到达客户端就可以保证接收方感知到。强感知链路的主要痛点在消息的端到端延迟。
弱感知链路与强感知链路的主要不同在于: 弱感知链路的接收方是离线的,需要依赖离线推送这样的方式送达。
因此弱感知链路的用户感知度不强,其核心指标在于消息的到达率,而非延迟。
所以当前阶段,优化弱感知链路的重点也就是提升离线消息的到达率。换句话说, 提升离线消息到达率问题,也就是优化弱感知链路本身 。
下图一张整个IM消息系统的架构图,感受下整体链路:
如上图所示,各主要组件和子系统分工如下:
1) H***是一个远程服务框架,是dubbo的内部版本;
2) tair是阿里自研的分布式缓存框架,支持 memcached、Redis、LevelDB 等不同存储引擎;
3) agoo是阿里的离线推送中台,负责整合不同厂商的离线推送通道,向集团用户提供一个统一的离线推送服务;
4) accs是阿里自研的长连接通道,为客户端、服务端的实时双向交互提供便利;
5) lindorm是阿里自研的NoSQL产品,与HBase有异曲同工之妙;
6) 域环是闲鱼消息优化性能的核心结构,用来存储用户最新的若干条消息。
强感知链路和弱感知链路在通道选择上是不同的:
1) 强感知链路使用accs这个在线通道;
2) 弱感知链路使用agoo这个离线通道。
通俗了说,弱感知链路指的就是离线消息推送系统。
相比较于在线消息和端内推送(也就是上面说的强感知链路),离线推送难以确保被用户感知到。
典型的情况包括:
1) 未发送到用户设备:即推送未送达用户设备,这种情况可以从通道的返回分析;
2) 发送到用户设备但没有展示到系统通知栏:闲鱼曾遇到通道返回成功,但是用户未看到推送的案例;
3) 展示到通知栏,并被系统折叠:不同安卓厂商对推送的折叠策略不同,被折叠后,需用户主动展开才能看到内容,触达效果明显变差;
4) 展示到通知栏,并被用户忽略:离线推送的点击率相比于在线推送更低。
针对“1)未发送到用户设备”,原因有:
1) 离线通道的token失效;
2) 参数错误;
3) 用户关闭应用通知;
4) 用户已卸载等。
针对“3)展示到通知栏,并被系统折叠”,原因有:
1) 通知的点击率;
2) 应用在厂商处的权重;
3) 推送的数量等。
针对“4)展示到通知栏,并被用户忽略”,原因有:
1) 用户不愿意查看推送;
2) 用户看到了推送,但是对内容不感兴趣;
3) 用户在忙别的事,无暇处理。
总之: 以上这些离线消息推送场景,对于用户来说感知度不高,我们也便称之为弱感知链路。
我们的弱感知链路分为3部分,即:
1) 系统;
2) 通道;
3) 用户。
共包含了Hermes、agoo、厂商、设备、用户、承接页这几个环节。具体如下图所示。
从推送的产生到用户最终进入APP,共分为如下几个步骤:
步骤1 :Hermes是闲鱼的用户触达系统,负责人群管理、内容管理、时机把控,是整个弱感知链路的起点。;
步骤2 :agoo是阿里内部承接离线推送的中台,是闲鱼离线推送能力的基础;
步骤3 :agoo实现离线推送依靠的是厂商的推送通道(如:苹果的 apns通道 、Google的fcm通道、及 国内各厂商的自建通道 。;
步骤4 :通过厂商的通道,推送最终出现在用户的设备上,这是用户能感知到推送的前提条件;
步骤5 :如果用户刚巧看到这条推送,推送的内容也很有趣,在用户的主动点击下会唤起APP,打开承接页,进而给用户展示个性化的商品。
经过以上5个步骤,至此弱感知链路就完成了使命。
弱感知链路的核心问题在于:
1) 推送的消息是否投递给了用户;
2) 已投递到的消息用户是否有感知。
这对应推送的两个阶段:
1) 推送消息是否已到达设备;
2) 用户是否查看推送并点击。
其中: 到达设备这个阶段是最基础的,也是本次优化的核心。
我们可以将每一步的消息处理量依次平铺,展开为一张漏斗图,从而直观的查看链路的瓶颈。
漏斗图斜率最大的地方是优化的重点,差异小的地方不需要优化:
通过分析以上漏斗图,弱感知链路的优化重点在三个方面:
1) agoo受理率:是指我们发送推送请到的数量到可以通过agoo(阿里承接离线推送的中台)转发到厂商通道的数量之间的漏斗;
2) 厂商受理率:是指agoo中台受理的量到厂商返回成功的量之间的漏斗;
3) Push点击率:也就通过以上通道最终已送到到用户终端的消息,是否最终转化为用户的主动“点击”。
有了优化方向,我们来看看优化手段吧。
跟随推送的视角,顺着链路看一下我们是如何进行优化的。
用户的推送,从 Hermes 站点搭乘“班车”,驶向下一站: agoo 。
这是推送经历的第一站。到站一看,傻眼了,只有不到一半的推送到站下车了。这是咋回事嘞?
这就要先说说 agoo 了,调用 agoo 有两种方式:
1) 指定设备和客户端,agoo直接将推送投递到相应的设备;
2) 指定用户和客户端,agoo根据内部的转换表,找到用户对应的设备,再进行投递。
我们的系统不保存用户的设备信息。因此,是按照用户来调用agoo的。
同时: 由于没有用户的设备信息,并不知道用户是 iOS 客户端还是 Android 客户端。工程侧不得不向 iOS 和 Android 都发送一遍推送。虽然保证了到达,但是,一半的调用都是无效的。
为了解这个问题: 我们使用了agoo的设备信息。将用户转换设备这一阶段提前到了调用 agoo 之前,先明确用户对应的设备,再指定设备调用 agoo,从而避免无效调用。
agoo调用方式优化后,立刻剔除了无效调用,agoo受理率有了明显提升。
至此: 我们总算能对 agoo 受理失败的真正原因做一个高大上的分析了。
根据统计: 推送被 agoo 拒绝的主要原因是——用户关闭了通知权限。同时,我们对 agoo 调用数据的进一步分析发现——有部分用户找不到对应的设备。 优化到此,我们猛然发现多了两个问题。
那就继续优化呗:
1) 通知体验优化,引导打开通知权限;
2) 与agoo共建设备库,解决设备转换失败的问题。
这两个优化方向又是一片新天地,我们择日再聊。
推送到达 agoo ,分机型搭乘厂商“专列”,驶向下一站:用户设备。
这是推送经历的第二站。出站查票,发现竟然超员了。
于是乎: 我们每天有大量推送因为超过厂商设定的限额被拦截。
为什么会这样呢?
实际上: 提供推送通道的厂商(没错, 各手机厂商的自家推送通道良莠不齐 ),为了保证用户体验,会对每个应用能够推送的消息总量进行限制。
对于厂商而言,这个限制会根据推送的类型和应用的用户规模设定——推送主要分为产品类的推送和营销类的推送。
厂商推送通道对于不同类型消息的限制是:
1) 对于产品类推送,厂商会保证到达;
2) 对于营销类推送,厂商会进行额度限制;
3) 未标记的推送,默认作为营销类推送对待。
我们刚好没有对推送进行标记,因此触发了厂商的推送限制。
这对我们的用户来说,会带来困扰。闲鱼的交易,很依赖买卖家之间的消息互动。这部分消息是需要确保到达的。
同样: 订单类的消息、用户的关注,也需要保证推送给用户。
根据主流厂商的接口协议,我们将推送的消息分为以下几类,并进行相应标记:
1) 即时通讯消息;
2) 订单状态变化;
3) 用户关注内容;
4) 营销消息这几类。
同时,在业务上,我们也进行了推送的治理——将用户关注度不高的消息,取消推送,避免打扰。
经过这些优化,因为超过厂商限额而被拦截的推送实现了清零。
通过优化agoo受理率、厂商受理率,我们解决了推送到达量的瓶颈。但即使消息被最终送达,用户到底点击了没有?这才是消息推送的根本意义所在。
于是,在日常的开发测试过程中,我们发现了推送的两个体验问题:
1) 用户点击Push有开屏广告;
2) 营销Push也有权限校验,更换用户登陆后无法点击。
对于开屏广告功能,我们增加了Push点击跳过广告的能力。
针对Push的权限校验功能,闲鱼根据场景做了细分:
1) 涉及个人隐私的推送,保持权限校验不变;
2) 营销类的推送,放开权限校验。
以上是点击体验的优化,我们还需要考虑用户的点击意愿。
用户点击量与推送的曝光量、推送素材的有趣程度相关。推送的曝光量又和推送的到达量、推送的到达时机有关。
具体的优化手段是:
1) 在推送内容上:我们需要优化的是推送的时机和相应的素材;
2) 在推送时机上:算***根据用户的偏好和个性化行为数据,计算每个用户的个性化推送时间,在用户空闲的时间推送(避免在不合适的时间打扰用户,同时也能提升用户看到推送的可能性)。
3) 在推送素材上:算***根据素材的实时点击反馈,对素材做实时*** 。只发用户感兴趣的素材,提高用户点击意愿。
通过以上我们的分析和技术优化手段,整体弱推送链路链路有了不错的提升,离线消息的到达率相对提升了两位数。
本篇主要和大家聊的是只是IM消息系统链路中的一环——弱感知链路的优化,落地到到具体的业务也就是离线消息送达率问题。
整体IM消息系统,还是一个比较复杂的领域。
我们在消息系统的发展过程中,面临着如下问题:
1) 如何进行消息的链路追踪;
2) 如何保证IM消息的快速到达(见《 闲鱼亿级IM消息系统的及时性优化实践 》);
3) 如何将消息的玩法和底层能力分离;
4) 离线推送中如何通过用户找到对应的设备。
这些问题,我们在以前的文章中有所分享,以后也会陆续分享更多,敬请期待。
[1] Android P正式版即将到来:后台应用保活、消息推送的真正噩梦
[2] 一套高可用、易伸缩、高并发的IM群聊、单聊架构方案设计实践
[3] 一套亿级用户的IM架构技术干货(上篇):整体架构、服务拆分等
[4] 一套亿级用户的IM架构技术干货(下篇):可靠性、有序性、弱网优化等
[5] 从新手到专家:如何设计一套亿级消息量的分布式IM系统
[6] 企业微信的IM架构设计揭秘:消息模型、万人群、已读回执、消息撤回等
[7] 融云技术分享:全面揭秘亿级IM消息的可靠投递机制
[8] 移动端IM中大规模群消息的推送如何保证效率、实时性?
[9] 现代IM系统中聊天消息的同步和存储方案探讨
[10] 新手入门一篇就够:从零开发移动端IM
[11] 移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”
[12] 移动端IM开发者必读(二):史上最全移动弱网络优化方法总结
[13] IM消息送达保证机制实现(一):保证在线实时消息的可靠投递
[14] IM消息送达保证机制实现(二):保证离线消息的可靠投递
[15] 零基础IM开发入门(一):什么是IM系统?
[16] 零基础IM开发入门(二):什么是IM系统的实时性?
[17] 零基础IM开发入门(三):什么是IM系统的可靠性?
[18] 零基础IM开发入门(四):什么是IM系统的消息时序一致性?
(本文已同步发布于: )
如何构建云数据中心
NewMedia新媒体联盟创始人、移动互联网时代的趋势观察家袁国宝在他的新作《新基建:数字经济重构经济增长新格局》一书中写到详细云数据中心的构建步骤主要分为3步。
一、虚拟化
利用软硬件管理程序将物理***映射为虚拟***的技术被称为虚拟化技术。对关键IT***进行虚拟化,是打造云数据中心的基础和前提。
云数据中心需要虚拟化的关键IT***主要有服务器、存储及网络。其中,服务器虚拟化主要包括Unix服务器虚拟化与x86服务器虚拟化。Unix服务器又被称为小型机,而小型机厂商普遍为自身的小型机产品开发了差异化的虚拟化程序,导致这些虚拟化程序无法对其他厂商的小型机产品进行虚拟化。
目前,市场中常见的x86服务器虚拟化产品有VMware ESX/ESXi、微软的Hyper-V、开源KVM虚拟机等。Oracle和华为等服务器厂商还开发了基于Xenia内核的虚拟化平台。
云数据中心需要同时调用不同厂商以及不同类型的服务器***,而对服务器进行虚拟化后,便可以有效解决不同服务器间的硬件差异问题,使用户获得标准逻辑形式的计算***。
存储虚拟化的逻辑为:在物理存储系统上增加一个虚拟层,从而将物理存储虚拟化为逻辑存储单元。通过存储虚拟化,云数据中心服务商可以将不同品牌、不同级别的存储设备***整合到一个大型的逻辑存储空间内,然后对这个存储空间进行划分,以便满足不同用户的个性化需要。
网络虚拟化涉及到了网络设备及网络安全设备、网络本身的虚拟化。其中,需要虚拟化的网络设备及网络安全设备有网卡、路由器、交换机、HBA卡、防火墙、IDS/IPS、负载均衡设备等。网络本身的虚拟化主要涉及到FC存储网络与IP网络的虚拟化。
目前,个体与组织对网络需求愈发个性化,为了更加低成本地满足其需求,云数据中心厂商对网络进行虚拟化成为必然选择。与此同时,网络虚拟化后,云数据中心可以在网络环境与多层应用环境中将非同组用户实现逻辑隔离,这既能提高数据安全性,又能降低网络管理复杂性。
将关键IT***进行虚拟化后,云数据中心服务商便可以对这些***进行统一调配与集***享,大幅度增加***利用率。测试数据显示,未虚拟化前,数据中心IT***利用率仅有10%~20%,而虚拟化后的***利用率达到了50%~60%。
二、***池化
***池化是指IT***完成虚拟化后,为其标上特定的功能标签,再将其分配到不同的***组,最终完成其池化。
***池化可以解决不同结构IT设备的规格与标准的差异问题,对***进行逻辑分类、分组,最终将***用标准化的逻辑形式提供给用户。***池化过程中,云数据中心服务商可按照硬件特性,对不同服务等级的***池组进行划分。云数据中心的***池主要包括服务器***池、存储***池及网络***池。
存储***池化过程中,云数据中心服务商需要重点分析存储容量、FC SAN网络需要的HBA卡的端口数量、IP网络所需的网卡端口数量等是否与自身的业务规模相匹配。
网络***池化过程中,云数据中心服务商则需要重点分析进出口链路带宽、HBA卡与端口数量、IP网卡与端口数量,安全设备端口数量与带宽等是否与自身的业务规模相匹配。
三、自动化
自动化是指使IT***都具备按照预设程序进行处理的过程。如果说IT***的虚拟化与池化能够让数据中心的计算能力、存储空间、网络带宽与链路等成为动态化的基础设施,那么,IT***的自动化便是让数据中心获得了一套能够对基础设施进行自动化管理的有效工具。
云数据中心可以利用基于SOA的流程管理工具对数据中心的业务任务、IT任务进行统一IT编排。然后利用可编程的工作流程工具从资产中解耦工作流程及流程的执行逻辑。在IT编排工具的帮助下,系统设计师可以对现有工作流程进行修改,添加新的工作流程,甚至利用可重复使用的适配器对资产进行修改等,不需要重新开展工作,有效降低开发人力、物力成本。
云存储数据中心常用的网络存储技术有哪些
直连式存储、网络存储设备和存储网络。
一切以客户的需求为出发点。传统存储以文件系统为典型代表,但是随着数据爆炸性增长,传统文件系统已经无法满足对存储系统的容量、性能等需求,因此,云存储应运而生。
云存储最大的特点是数据被集中存储在数据中心,公有云存储将客户数据存放在公有云服务商数据中心,而私有云存储则是将公有云存储能力私有化部署在客户自身的数据中心。
原则就是要尽可能把实际的物理介质索引,存储的数据库,数据存储的磁盘抽象出来,在上层具有一个可拓展,可迁移的逻辑单元,当然对象存储系统之间差异也很大,从潮流上看,基本都摒弃了索引的中心化存储方案,在寻址方面也各有各的花招。
云计算关键技术云计算是分布式处理、并行计算和网格计算等概念的发展和商业实现,其技术实质是计算、存储、服务器、应用软件等IT软硬件***的虚拟化,云计算在虚拟化、数据存储、数据管理、编程模式等方面具有自身独特的技术。
云计算数据中心光互连网络架构
数据中心是云计算的核心支持平台,云计算的发展对数据中心网络架构提出了严峻的挑战,传统电互连网络架构难以在带宽、设备开销、能耗、管理复杂度等方面同时满足云应用的要求,因此以低能耗、低开销、高带宽为特点的光互连网络架构出现并受到研究人员的广泛关注。
通过广泛的接入模式、共享的***架构、按需的服务部署及灵活的容量扩展,云计算在近年来获得了广泛的部署和应用。数据中心是云计算的核心支撑平台,随着云应用的广泛部署,数据中心的通信模式和业务需求出现了根本性变化,这些变化具体包括:
(1)数据中心的网络规模和负载出现了指数级增长;
(2)主要的流量模式由传统“南北向流量”转变为“东西向 流 量”;
(3)更 多 时 延 敏 感 和 数 据 密集型业务在数据中心内运行;
(4)一些虚拟化技术,如虚拟机实时迁移,需要网络提供更好的支持,这些变化对数据中心网络架构提出了更高的要求,传统数据中心网络在对分带宽、传输时延、网络可扩展性、容错性、***利用率等方面均无法满足云业务的需求。对此,研究人员提出了新的电互连网络架构, 如Fat Tree、VL2、DCell、BCube、CamCube和Snowflake等。尽管上述架构能够有效满足新的云业务要求并改善数据中心的网络性能,但这些网络架构同时也带来了拓扑结构复杂、线缆开销过大、设备数量过多、网络能耗难以优化等问题。究其根本原因在于,随着网络容量的指数级增长,基于COME的电子元件几乎达到了其带宽的上限,因此,光互连技术得到研究人员的极大关注。与电互连技术相比,光互连技术能够更好地满足云计算数据中心对能耗和带宽的需求,尤其随着绿色计算、GreenCloud等概念的提出,数据中心光互连技术成为网络节能的重要方式。
近年来,结合云计算数据中心的流量模式和新型光交换器件,研究人员提出了多种新的光互连网络架构,实验和仿真表明,这些架构在吞吐、时延、灵活性、能耗等方面优于传统的电互连网络架构,但相对于电互连网络,工业
界和学术领域对于数据中心光互连网络的研究尚处于起步阶段,其中很多技术挑战尚未得到很好的解决,随着云计算的发展,服务、计算、存储、网络将进一步融合为一个整体方案,相对于发展迅速的计算技术和存储技术,网络技术的革新相对缓慢。因此,深入研究数据中心网络,尤其是具有革新性的光互连网络,对于未来网络技术和云计算技术的创新发展都具有重要的意义。
云数据中心网络架构与技术闲鱼的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于传统数据中心网络架构、云数据中心网络架构与技术闲鱼的信息别忘了在本站进行查找喔。