分析Twitter的实时信息分析服务Answers的架构
2020-12-31 09:12:46 阅读(179) 评论(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的目标是创建一个仪表板,它可以使了解您的用户群非常简单。因此,你可以把时间花在创建惊人的用户体验上,而不是挖掘数据。
推荐阅读
- 4种情况,需要办理公司商标变更
时代更迭,企业随时可能会面临名称改变、地址变迁等问题,但往往最容易被忽略的则是企业商标的变更,如果不及时变更商标,公司可能会面临难以预料的风险。什么情况下公司需要进行商标变更呢?小万列举了以下4种情况。 (1)公司名称改变,商标需要变更 填…查看详情
- 企业建站须知丨营销型网站建设的要求
不同行业的企业建设网站的目的是不同的,对网站的需求也是不同的。宣传需求、服务需求、营销需求等不同类型的需求所对应网站建设的要求也是有区别的。目前,企业建设营销型网站的需求是比较普遍的,这个类型的网站能够增加企业营销渠道,配合线下门店发展,降…查看详情
- 财务软件的作用:提升效率、规范管理,为企业赋能
现在很多企业都会使用专业的财务软件为自己的公司进行财务管理,但原因为何呢?下面就让我们一起来了解关于财务软件的作用吧。 图片来源于网络 财务软件的作用,可简单分为四点:1. 提高企业竞争力企业的管理人员通过财务管理信息系统,可以方便、快速地…查看详情
- 信息流代运营 | 运用九个技巧,实现精准投放
当新手想要做信息流却又不知如何做时,最好的方法是找信息流代运营,如此才能在一定时间内收获自己想要的效果。 图片来源于网络 信息流代运营为什么会更容易收获效果,主要是因为他们都使用了以下九个技巧,实现精准投放。◆ 1. 规划预算对信息流预算…查看详情
- 专业动画制作软件 动画制作软件有哪些
我们在快手和抖音等一些平台上面可以看见有许多动画视频特别的搞笑,这都是私人用自己的聪明才智做出来的,*量特别的高,所以,你想要尝试的话,可以看一下专业动画制作软件有什么? 1、3DStudioMax 这是一款曾取得超出65个…查看详情
- vivo y52s的处理器是什么
y52s参数vivo?处理器为联发科天玑7205G*,屏幕为6.58英寸2408×1080分辨率水滴屏,支持侧边指纹识别方案。前置800万像素摄像头,背面为4800万主摄+200万镜头。配备4910mAh电池,搭载8GB+128GB存储空间…查看详情
- 新浪微博二维码怎么生成?
优质答案(1) 新浪微博是我们现在经常会用到的社交软件,最近有一些下载了新浪微博的朋友们不知道怎么进行二维码的扫描。那么该怎么用手机新浪微博扫描二维码呢,下面就来给大家介绍一下。希望对大家有帮助。 1、打开微博客户端,进入其主页。如…查看详情
- 启用javascript什么用
jscriptscript文件怎么打开?脚本文件,本质是一个文本文件,用能打开文件的软件打开就行,通常用记事本打开.JscriptScriptFile的扩展名是js,主要用在网页脚本方面,网页设计者将脚本代码写在一个文件上,保存为这种类型,…查看详情
- 万商云集2019品牌服务大使候选人专访之——昆明团队张晨蓉
“客户抢着做媒,要给我介绍对象”!说到与客户的相处,万商云集昆明分公司客户代表——张晨蓉,这样说到。由此可见,她十分受客户喜爱。在客户与团队的一致推举下,张晨蓉成功入围“2019万商云集品牌服务大使”候选人。张晨蓉是非典型的95后,外表看似…查看详情
- 委托生产侵犯专利权商品算不算犯罪?
委托合同,是指受托人为委托人办理委托事务,委托人支付约定报酬或不支付报酬的合同,委托合同的受托人处理受托事务的后果,直接归委托人承受,受托人的行为视为委托人的行为,受托人行为引发的法律后果由委托人承担。下面万商云集*给大家详细介绍下这块内…查看详情
- 背单词最好的软件排名前三推荐
从小学开始,英语就成为了我们必须要学习的一种课程,但是有些人的英语不好,想要巩固自己的英语成绩,那么就必须要知道背单词最好的软件排名是什么,英语好的前提是单词要学会,所以一定要知道这个。 1、金山词霸 翻译软件最好的选择,是…查看详情
- 简单又好用的视频去水印小妙招,赶快get起来吧!
在短视频潮流发展的今天,很多人一天浪费在上面的时间可能比工作的时间都还长。我们在平时刷抖音、快手的时候,有时候会看到一些有趣好玩的视频,就会想到保存下来分享给别人,但保存的视频很多都会保留有作者或来源平台的logo水印。分享的时候并不想要这…查看详情
- 企业*问题:网站推广需要多少钱,如何计算?
网站推广,其实最主要的就是做网站关键词推广,这是近些年来一种最为常用且有效的推广方式。它主要分为seo和sem两种,那么以这两种方式进行的网站推广需要多少钱,想必也是企业非常*的问题之一。 图片来源于网络 网站推广需要多少钱?不同的公司在不…查看详情
- 设计师常用的6款字体设计软件和网站推荐
字体设计更重要的是应该使每个字体形态上富有个性、明晰简练、易于识别,并表现每个词句的内涵与象征意义,好的字体能带给人更优质的阅读体验,本文推荐设计师常用的6款字体设计软件和网站。 1.Glyphs2forMac 一款非常强大的字体设计编辑工…查看详情
- 网站建设需要什么人 网站建设的人员配置
建设一个网站不是一人能完成的,必须要几个人进行分工共同协助完成,完整的网站建设流程主要包括前期调研、项目需求分析、效果图制作、设计创意、效果图切片、制作成网页、开发后台程序、网站测试验收、意见反馈修改、上传网站到空间并绑定域名、解析域名…查看详情
猜你喜欢
最新文章

扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
邮箱:zjb@iwanshang.com
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121

关注微信公众号
和10万中小企业共同成长

扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有
蜀ICP备12001963号-2
川公网安备 51010402000322号

快速找产品

找一找哪款产品适合您?
咨询热线:400-0033-166
-


-
电话沟通
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达

关注万商云集
和10万中小企共成长

TOP

企业首选的AI增效平台

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















































注册有好礼



