分析Twitter的实时信息分析服务Answers的架构
2020-12-31 09:12:46 阅读(167) 评论(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)供给考察市场,了解市场空白,为市场创…查看详情
- 打卡虚拟位置软件哪个好用 2022打卡虚拟位置软件排行榜
虚拟定位软件大全为大家整理了一系列非常实用的手机虚拟定位软件,如神行者、虚拟定位Anywhere、小秘定位、虚拟定位穿越版等,用户下载以后就可以不受地点的限制,任意的定位自己想要去或想要在的地方,适用人群非常的广泛,下面小编就给大家整理…查看详情
- 国内外知名的十大crm系统有哪些
随着市场商品同质化、消费者的个性化需求,企业间的竞争愈发激烈。企业除了产品之外,提供优质服务也成了企业提升竞争力的手段之一,如今crm系统也几乎成为了销售型企业必然的选择。今天小万将带大家了解一下十大crm系统都有哪些。图片来源于网络 国内…查看详情
- windows10怎么设置开机密码
Windows10是一款现代化的操作系统,提供了许多有用的功能和选项,可以帮助用户更方便地管理他们的设备和数据。本文将介绍如何设置Windows10的开机密码和如何恢复出厂设置。 一、怎么设置Windows10的开机密码? 如果您想…查看详情
- 什么情形下能导致专利权终止 哪些情形将导致专利权终止
依据我国相关法律的规定,获得专利权的专利是受法律保护的,而专利权的保护是有期限的,但在一定的情形下,专利权有可能提前终止的,那么什么情形能导致专利权终止?下面由万商云集小编给大家来介绍下什么情形下能导致专利权终止 哪些情形将导致专利权终…查看详情
- ugc是什么意思啊 ugc pgc ogc的区别是什么?
UGC、PGC和OGC是三个在互联网内容领域经常出现的术语。UGC代表用户生成内容,PGC代表专业生成内容,OGC代表组织生成内容。这些术语通常与社交媒体、内容创作、数字营销和在线社区等领域相关。下面将详细描述这三个术语。 一、UGC…查看详情
- 免费在线CRM系统有哪些?
随着经济的发展和管理理念的升级,越来越多的企业开始借助CRM来帮助自己进行管理。很多中小企业考虑到资金的限制和企业所需要的数据、人数也不多,觉得没有必要花钱去部署自己的CRM系统。他们往往考虑使用免费在线CRM来解决公司客户管理问题。图片来…查看详情
- 适合一个人干的小生意
前几天看到一位宝子发帖感叹疫情当下生活越来越难,他被隔离了半年多,好不容易上班了,没几天又出现疫情被隔离了。身边的朋友都被裁员,自己也整日战战兢兢,想想真是心酸。 疫情三年,口罩成为了我们生活的必需品,也改变了人们的生活习惯和消费习惯…查看详情
- 英语词典APP排行,这几款可以放心选
英语的学习需要从小抓起,因为目前的考试,英语的占分比还是比较重的,在平时得学习中,不仅仅需要准备各种资料,同时更不可以忽视了英语词典APP,使用起来简单又方便,那么下面针对于英语词典APP排行,为大家进行介绍。 1、欧路词…查看详情
- 特别适合中小企业的报价管理软件
作为一个公司,每个月都会选择采购人员,让他们去市场上采购公司所需要的东西,那么,就会涉及到预算的问题,每个公司对于当月成本都有一个计划,在不超出预算的情况下进行,那么,报价管理软件介绍有哪些? 1.向外价格方面 消费者问价后…查看详情
- 著作权登记程序:在哪儿登记?如何登记?要准备什么?
著作权是非常重要的一项权利,著作权是知识产权的重要组成部分,著作权的内容有很多,包括人身权利和财产权利,著作权法规定著作权是可以进行登记的,那么著作权登记地方在哪里?著作权登记程序又是怎样的呢?图片来源于网络 版权登记在哪里进行?依据我国著…查看详情
- 如何打造一个适合自己的新零售系统
新零售的推广和普及,给被电子商务重创的传统零售带来了转机。线上和线下深度融合,扑面而来的各种零售资源,使得新零售系统就成为市场争夺的核心利器。但是国内零售系统种类繁多,系统品质参差不齐,虽都在标榜“新零售”,但各自优势并不明显,且系统不易操…查看详情
- 商铺怎么装修才能”夺人眼球”,今日来揭秘!
经营一家店铺最开始的工作不是产品选择,而是商铺的装修。一家具有独特装修风格的店铺是吸引人们前来的“敲门砖”。商铺怎么装修才能“夺人眼球”?今天小编就来带大家揭秘。一、自己设计装修方案。 店面比较小的情况下,就不要找装修公司设计装修方案了,可…查看详情
- 影子系统的好处和坏处
影子系统(Shadow IT)是指组织内部使用未经批准的技术和应用程序,通常由员工自行决定和采购。尽管影子系统可能有一些好处,但也存在一些潜在的风险和坏处。好处:1. 创新和灵活性:影子系统允许员工使用他们认为最适合他们工作的工具和应用程序…查看详情
- 2022畅销书排行榜前十名
在我们不知不觉中,时光已悄悄流逝!在这些日子中,我们是否有一本良好的书籍伴我们成长,在嘈杂的环境和不安的内心中,有一丝安静的力量。现在我给大家来看一下畅销书排行榜前十名都有哪些。希望这些书籍可以帮助到你。 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

企业首选的数字选用平台

400-0033-166
8:30-18:00
















































注册有好礼



