分析Twitter的实时信息分析服务Answers的架构
2020-12-31 09:12:46 阅读(158) 评论(0)
Twitter于2014年发布了Answers,到目前为止,移动社区已经产生了惊人的使用量,让Twitter感到兴奋。现在Answers每天处理50亿次会话,而且这个数字还在不断增加。数亿设备每秒向Answers端点发送数以百万计的请求。在此期间,Answers后台收到并处理了1000万次分析事件。挑战是如何利用这些信息为移动开发者提供可靠、实时、有价值的洞察力(视角)来了解他们的移动应用程序。在高层,Twitter依靠组件解耦、异步通信、优雅服务降级等原则来帮助架构决策。Twitter使用Lambda架构将数据完整性与实时数据更新相结合。在实践中,Twitter需要设计一个系统,可以接收和保存事件,执行离线和实时计算,并将上述两个计算结果集成到相关信息中。所有这些行为都应该以每秒数百万次的规模执行。让Twitter从第一个挑战开始:接受和处理这些事件。在设计设备-服务器通信时,Twitter的目标是减少对电池和网络使用的影响;确保数据的可靠性;接近实时获取数据。Twitter批量发送分析数据,并在发送前压缩数据,以减少对设备的影响。为了确保这些宝贵的数据始终能够到达Twitter服务器,设备将在传输失败后随机退出,设备存储达到上限时重新传输。为了确保数据尽快到达服务器,Twitter设置了多个触发器,使设备尝试发送:当程序在前台运行时,事件触发器每分钟触发一次;消息数量触发器和程序转移到后台触发器。这种通信协议导致设备每秒发送数以万计压缩的有效载荷。每个载荷都包含几十个事件。接收事件的服务必须极其简单,才能以可靠、易于线性伸缩的方式处理载荷。该服务采用GO语言编写,该服务采用亚马逊弹性负载平衡器(ELB),并将每个消息负载放入一个持久的Kafka队列。存储Kafka是一个持久的存储器,因为它将收到的信息写入磁盘,每个信息都有多个冗余。因此,一旦Twitter知道信息到达Kafka队列,Twitter就可以通过延迟处理和再处理来容忍下游延迟和下游失败。然而,Kafka并不是Twitter历史数据的永久真理来源——根据上面提到的速度,Twitter只需要几天的数据来存储数百个box。因此,Twitter将Kafka集群配置为将消息只保留几个小时(这足以让Twitter处理意想不到的重大故障),并尽快将数据存储在永久存储-亚马逊简单存储服务(AmazonS3)中。Twitter广泛使用Storm进行实时数据处理。第一个相关的Topology是从Kafka读取信息并存储在AmazonS3上。一旦这些数据存储在S3上,Twitter可以使用亚马逊弹性Mapreduce(AmazonEMR)计算Twitter数据可以计算的任何东西。这不仅包括在客户仪表盘上显示的数据,还包括Twitter为开发新功能而开发的实验性任务。Twitter使用Cascading框架编写,AmazoneMR执行Mapreduce程序。Amazonemr将Twitter存储在S3上的数据作为输入,然后将结果存储在S3中。Twitter通过在Storm上运行的调度topology来探测程序的执行情况,并将结果灌入Cassandra集群,使结果能够用于亚秒级查询API。到目前为止,Twitter描述了一个持久的容错框架,可以执行分析和计算。然而,有一个显著的问题——这个框架不是实时的。有些计算每小时计算一次,有些计算需要一整天的数据作为输入。计算时间从几分钟到几个小时不等,将S3上的输出导入服务层需要这么多时间。因此,在最佳情况下,Twitter的数据总是拖延几个小时,显然不能满足实时和可操作的目标。为实现实时目标,Twitter在数据涌入后存档,同时对数据进行流式计算。就像Twitter存储Topology读取数据一样,一个独立的StormTopology实时从Kafkatopic中读取数据,然后进行实时计算。计算逻辑与Mapreduce任务相同。为了实时查询,这些实时计算结果被放置在另一个独立的Cassandra集群中。为了弥补Twitter在时间和资源方面可能存在的不足,Twitter在实时计算层中没有使用一些概率算法,如布隆过滤器HyperLogLog(也有自己开发的算法)。与那些蛮力替代品相比,这些算法在空间和时间复杂性方面具有数量级优势,只有精度损失可以忽略不计。合并现在Twitter有两个独立生产的数据集(批处理和实时处理)。Twitter如何合并两者才能获得一致的结果?在API逻辑中,Twitter根据特定情况使用两个数据集,然后合并它们。Twitter的API总是倾向于使用批量生成的数据,因为批量计算是可重现的,而且比实时计算更容易。比如API收到了一个30天时间序列的日活跃用户数据请求,首先会在批量数据Cassandra集群中查询全范围数据。如果是历史数据检索,已经获得了所有数据。然而,查询请求更有可能包含大部分结果,只有近一两天的数据才会被实时数据填充。错误处理让Twitter复习几个失败的场景,看看这样的架构如何避免在处理错误时停机或丢失数据,从而优雅地降级。Twitter在上面讨论了设备上的回退重试策略。当设备端网络中断,服务器端短时间无服务时,重试确保数据最终到达服务器。随机返回确保设备不会在某个区域网络中断或后端服务器短时间不可用后被压垮(DDOS攻击)。当实时处理层失效时会发生什么?待命的Twitter工程师将被通知并解决问题。由于实时处理层的输入存储在持久的Kafka集群中,因此没有数据丢失;实时处理恢复后,将赶上停机期间应处理的数据。由于实时处理和批处理完全解耦,批处理层根本不会受到影响。因此,唯一的影响是在实时处理层失效期间实时更新数据点的延迟。如果批处理层出现问题或严重延迟,会发生什么?Twitter的API将无缝获取更多的实时处理数据。查询时间序列数据可能只需要一天的实时处理结果,但现在需要查询两到三天的实时处理结果。由于实时处理和批处理是完全解耦的,实时处理不会影响继续运行。与此同时,Twitter的待命工程师也会得到消息,解决批处理层的问题。一旦批处理层恢复正常,它将执行延迟的数据处理任务,API将无缝切换到批处理的结果。Twitter系统的后端架构由四个组件组成:事件接收、事件存储、实时计算和批量计算。各组件之间的持久队列确保任何组件的故障不会扩散到其他组件,并且可以从中断中恢复。当计算层延迟或失效时,API可以无缝优雅地降级,服务恢复后再次恢复;这些都是由API内部的检索逻辑保证的。Answer的目标是创建一个仪表板,它可以使了解您的用户群非常简单。因此,你可以把时间花在创建惊人的用户体验上,而不是挖掘数据。
推荐阅读
- 怎样制作微信小程序呢?手把手教你轻松制作小程序
虽然不少自媒体的工作者,或者是商家都明白微信小程序能够带来巨大的流量,但是却因为自己不懂设计的知识,或者是不知道该怎样进行代码编程,从而感觉制作小程序是非常难的,其实微信小程序的制作,远远没有我们想象的那样复杂,那么怎样制作微信…查看详情
- 小学生英语学习软件有哪些 小学生英语学习软件排行榜
现在很多的小学生都在学习英语了,现在市面上的英语学习软件又是非常多的,下面小编给大家来详细介绍一下小学生英语学习软件有哪些 小学生英语学习软件排行榜这一块的相关内容,希望能帮助到大家。 小学生英语学习软件排行榜 1、《外研通》 …查看详情
- WMS仓储管理信息系统主要功能模块解析
现代仓库管理流程十分复杂化,仅仅依靠人工管理非常难,一套WMS仓储管理信息系统显得非常必要,越来越多企业开始引入仓储管理系统,本次将就WMS仓储管理信息系统主要功能模块作出解析,帮助大家从功能方面更好选择仓储管理系统。 模块一:系统设置模块…查看详情
- 好看且简约的安卓手机桌面,亲测nice
安卓手机桌面太难看,怎么办?很多网友在使用自己的手机的时候,总是觉得自己的桌面过于简单,想要好看且简约的桌面。所以今天小编就大家推荐几款安卓手机桌面美化软件,以下软件都是小编亲测有用。感兴趣的朋友们可以下载下来看一下呢。 1…查看详情
- 制作ppt用什么软件?制作PPT哪个软件好
PPT软件制作相信在生活当中很多人都遇到过,比如说再进行文案讲解,或者是在进行教学制作的时候都可以制作成PPT,PPT制作其实相对来说比较简单,只有选择相关的软件进行制作,操作起来就比较简洁。那么制作PPT用什么软件呢?下面就来…查看详情
- 进行第44类商标注册不要误导认知,注意规避违规高发区!
第44类商标注册包括了由个人或机构向人或动物提供的医疗、卫生和美容服务,以及与农业、园艺和林业领域相关的服务。其中第4401医疗服务类中的医疗按摩40032、医疗保健440060、医疗辅助440087、理疗440097等小项是“欺骗性商标”…查看详情
- mvc框架是什么意思?
mvc框架淘汰了吗?淘汰了。 前后端分离来了,Node.js来了,前端工程师把MVC的职责都给抢走了,后端工程师真正成为了后端,只需要提供API给前端就行,再也不用关心redirectforward有什么区别,再也不用关心session、…查看详情
- 浏览器内核有几种类型
所有浏览器总共有哪几种内核?浏览器内核种类介绍。 1、Trident内核(IE内核):用它的浏览器有:ie、360浏览器 2、Webkit内核(谷歌内核):用它的浏览器有:谷歌浏览器、枫树浏览器、太阳花 3、Gecko内核:用它的浏览…查看详情
- 录屏软件哪个好 免费的手机录屏软件
当我们听到好听的音乐,看到它美丽的歌词海报时,可以使用录屏软件记录下来。录屏软件会获取屏幕权限、麦克风权限和存储权限,那各大应用商店里的录屏软件哪个好?让我来告诉大家伙。 1.KK录像机 它是一款完全免费的手机录屏软件,它…查看详情
- 市面上排名较好的erp企业都有哪些
随着科技革命的浪潮推动,经济全球化不断深入各行各业,使得企业生产分工愈加精细化,不断向集团化、多元化以及纵深化的方向发展。但是这其中的过程又是何等的艰辛,估计只有正在转型的企业才知晓。所以为了加快转型的步伐,部分企业会选择应用较好的erp软…查看详情
- wifi已连接不可上网是什么原因
WiFi显示已连接为什么不能上网?一、路由器不稳定 有些无线路由器、光猫(宽带猫)的质量比较差,长时间运行后会出现死机等一系列的问题。 二、宽带出现故障 如果你家的wifi,之前连接后可以上网,突然就出现了无法上网的这个问…查看详情
- 别让看不懂的crm系统介绍耽误你选型
目前国内的crm系统有很多,很多企业在选择时都会感到迷茫,不知哪个crm系统好用,不明确哪些crm厂商服务好。网上搜索的又都是广告,也没有crm系统介绍,完全是盲选,并且也不一定适合,在选型之路抓破脑袋!图片源于网络接下来小万就为大家作几款…查看详情
- 数控仿真系统有哪些?数控仿真系统专辑推荐!
数控仿真系统主要应用于计算机上面,精确的说是在计算机上面的一款模拟仿真技术,加工过程中的三维建模等等相关事宜,那么今天我们就来简单盘点一下,这东西到底是怎么回事,都有哪些。 1、斯沃数控仿真 这是一款针对数控行业所打造的数…查看详情
- 游戏版权贵吗?几万块能买到游戏版权吗
我们平时在手机上玩的游戏都是由游戏公司制作出来的,游戏的热度越高,受欢迎的人数就越多,所以很多人想通过游戏这方面做生意,那么就需要购买游戏版权,很多人都还不知道几万块能买到游戏版权吗,因此一直在犹豫当中。几万块能买到游戏版权吗 1…查看详情
- 蛋糕店常用收银系统哪家好?5家高分蛋糕店收银系统推荐
随着国人生活方式逐渐全球化,烘焙食品以其即买即食、种类丰富的特点成为越来越多消费者的一大喜好,商家如何在烘焙食品的红海中脱颖而出,蛋糕店的收银系统无疑是最重要的因素,蛋糕店常用收银系统哪家好?以下5家高分蛋糕店收银系统值得你收藏。 1. 银…查看详情
猜你喜欢
最新文章
扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121
关注微信公众号
和10万中小企业共同成长
扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有 蜀ICP备12001963号-2 川公网安备 51010402000322号
快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
免费查找信息保护中请放心填写-
-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP
企业首选的数字选用平台