服务热线:400-0033-166
万商云集 - 企业数字化选用平台

企业首选的

数字选用平台

分析Twitter的实时信息分析服务Answers的架构

2020-12-31 09:12:46 阅读(159 评论(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款桌面日历软件,工作重要事情时刻提醒

随着工作学习的压力,我们的记忆力在不断的下降。有很多东西,重要的日子,特殊的纪念日会因为忙碌而忘掉,这时候我们就需要我们的桌面日历来帮助我们了,快来选择一下,下面哪款桌面日历比较适合你吧。1、商务日历这款软件是一个微信小程序,只需打开微信就…查看详情

关于运营,企业是选择代运营服务?还是选择自己运营?

随着互联网的经济快速发展,越来越多的企业为了在市场中获得一席之地,往往会选择运营一些当下流行的自媒体平台来增加自己品牌的曝光率,比如抖音,比如公众号等等。但是选择自己运营,还是选择外包给代运营服务呢?带着疑问,小万来给大家一一解答。此图片源…查看详情

十大视频剪辑软件排行

  视频剪辑是一项重要且广泛的技术,在当今数字时代中,越来越多的人开始使用视频来记录和分享他们的生活和工作。与此同时,随着技术的迅速发展,越来越多的视频剪辑软件出现在市场上。在这篇文章中,我们将介绍十种常用的视频剪辑软件,从而为人们在选择合…查看详情

自行车导航软件有哪些 自行车导航软件排行榜

  现在很多人逐渐喜欢上了自行车运动,在骑车的过程中也需要一款导航软件,下面小编就给大家来详细介绍一下自行车导航软件有哪些 自行车导航软件排行榜这一块的相关内容,希望能帮助到大家!  自行车导航软件排行榜  1、《高德地图》  轻松解决…查看详情

服务器哪家性价比高

  在当前的互联网时代,各类网站、应用不断地涌现出来,为了让这些网站、应用能够正常运行,就需要服务器提供相应的资源。而选择合适的服务器则成为了很多企业、个人创业者的一件比较重要的事情,因为它不仅决定了网站能否正常运行,也直接决定了自己的业务…查看详情

安装mysql详细步骤

mysql下载安装教程?MySQL下载和安装教程 1.数据库的官网http://www.mysql.com下载MySQL。 2.点击进入DOWNLOADS页面,下滑选择MySQLCommunity(GPL)Downloads 3选择M…查看详情

大型电商系统:总体功能细分为三大部分进行设计

一个通用的大型电商系统,不做太多复杂的功能,也不关注太多的细节实现,会通过怎么的逻辑进行设计?图片来源于网络 大型电商系统的设计逻辑:1. 面向顾客的门户商城A.商品展示提供了商品搜索和查询等功能,包括商品列表分页展示和单个商品详情查看等,…查看详情

速度快的浏览器有哪些 速度快的浏览器排行榜

  随着互联网科技的不断进步,PC电脑版的浏览器进化得更加好用了。最早的时候,我们用的是普通的IE浏览器,到现在我们可以选择多款浏览器。而且,这些浏览器速度快,稳定性强,用户可以轻轻松松打开网页。下面小编就给大家来详细介绍一下速度快的浏览器…查看详情

如何网络运营?不谈技巧、不谈方法,谈如何打好运营基础

企业做广告宣传的时候,往往会纠结到底要不要选择互联网,其实这种纠结早就应该舍弃。因为不管什么行业,都应该利用互联网做网络营销。成立专门的网络营销运营团队,负责网络营销工作,这是未来企业营销的趋势,也是最为有效的方法之一。下面就由小万为你介绍…查看详情

个人怎么样注册域名?注册域名需要注意哪些方面?

图片来源于网络个人怎么样注册域名?域名注册流程是什么?域名注册注意事项有哪些?这些看似简单的问题,其实正是新手朋友最需要的信息,今天小万给大家分析下关于域名注册的一些问题解答:1.一个域名只能被注册一次吗?答:是的,一个域名如果被注册是不能…查看详情

windows10怎么更改公用网

  一、win10怎么更改公用网  1.打开控制面板,依次点击“网络和共享中心”、“更改适配器设置”。  2.找到您要更改的网络连接(如以太网、无线网络等),右键点击选择“属性”。  3.在弹出的对话框中,选中“Internet协议版本4(…查看详情

新产品怎么推广 新产品推广方法技巧

  对营销人来说,新品上市算是周期性无法回避的命题考试。下面万商云集小编就给大家来介绍一下新产品怎么推广 新产品推广方法技巧这方面的内容,希望能帮助到大家。  这类考试直接且犀利:  新品是火爆全网还是坐冷板凳,直接给这波营销判分高低  我…查看详情

手机跑分排行榜前十名,你PK哪个?

在购买手机的时候,大家往往比较关注的就是手机的性能跑分,虽然说就能跑分好的手机,不一定各方面都强大,但也属于非常重要的一项参考的因素,尤其是喜欢玩游戏的人群,在选择手机的时候,对于性能还是有更高要求的,那么下面就来了解有哪些跑分…查看详情

如何减少版权登记所需时间?

在生活的过程中,我们发现小说、游戏已经成为了人们生活中不可或缺的部分,为此也使得小说、游戏行业的不断发展,而在这些行业不断发展的时候,为了确保创作方自身的利益,所以都会申请相应的版权,那么作品申请版权登记所需时间是多久呢?图片来源于网络 版…查看详情

如何进行网站建设?仅5步骤,但要做好网站建设还要考虑3点

现在想要在那么多公司里脱颖而出的话,就一定要做好线上业务,所以说公司建站特别重要!尤其是建立一个好的公司网站,不仅能够吸引访客的注意,或许还能促进成交率。那么如何进行网站建设?小编总结了以下几点,希望对你们有所帮助。图片来源于网络 如何进行…查看详情

最新文章