推特网络延迟怎么解决问题啊(推特登陆慢)
免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表MarsBit官方立场。
小编:记得关注哦
简介
22 月 13 日,Elon Musk为 Twitter 进行了 1000 多次RPC来呈现用户的主页时间线而道歉。乍一看,如此大量的 RPC 似乎很荒谬。如今,Twitter 每月为 2.6 亿活跃用户提供服务,并且可以近乎实时地提供服务。为了解决亚秒级延迟的大规模采用问题,Twitter 率先推出了许多解决方案,包括 Apache Storm、Heron、DistributedLog和Aurora。他是Scala 的主要贡献者,包括finagle RPC 框架,以及lambda 架构、Snowflake ID和Segcache等创新。那么,为什么像 Twitter 这样的创新型全球化公司需要如此多的调用来获取用户的时间线数据?
Twitter所面临的问题让我们想起了当前Web3中不断增长的烦恼:开发者常常被迫一个接一个地连续调用许多 API 来获取组装业务逻辑的数据。这会导致性能不可靠且不可预测,即使对于蕞简单的用例也是如此,例如获取用户的交易历史记录。就增长而言,前十大公链的交易量在两年内翻了 100 倍。在图 1 中,我们展示了每秒推文数量和每秒 Web3 交易数量之间的比较。如果 Web3 继续沿着图中描绘的轨迹发展,那么当今大多数 Web3 数据基础设施解决方案将无法应对增长。
图 1:推文与 Web3排名前10的链早期写流量 QPS 对比。
在这篇博文中,我们将重点介绍Web3可以从Twitter的扩展解决方案中学到什么。具体来说,我们讨论以下内容:
•我们概述了 Twitter 的时间线基础设施之旅,认为他们当前的架构确实对特定用例有意义,并得出结论,一些批评可能是错误的,例如 Elon Musk蕞近的推文为渲染主页时间线的大量 RPC 道歉。
•我们深入研究 Twitter 和 Web3 之间的技术相似性,并探索前者的解决方案如何使后者的解决方案受益。
•我们分析了当前的 Web3 增长趋势,以及缺乏现有的高性能数据基础设施解决方案,并得出结论,如果我们想要支持实时 Web3 数据访问,则需要进行重大升级,以及ZettaBlock解决方案如何帮助开发人员减少70%的开发时间,并将性能提高 10 倍,演示可以在这里找到 [网站,视频]
Twitter 的数据基础架构之旅
一开始,Twitter使用Vanilla MySQL。这很快成为了一个问题,因为在蕞初的几年里,推文的数量每年增长10倍。从2007年到2012年,Twitter的月活跃用户从几千人增长到超过1.38亿。已知的水平和垂直切分的知识无法为Twitter处理高流量的性能,尤其是在渲染主页时间线方面。
时间线是 Twitter 的主要平台功能之一。一般来说,Twitter的时间线主要有两个操作,具体如下:
1.写入路径:该路径用于用户发布推文。2012年,Twitter平均每秒处理4.6万个写入请求,在高峰时段处理1.2万个RPS。
2.读取路径:此路径用于用户请求他们的时间线。2012 年,Twitter 每秒处理大约 30 万次读取请求。
为了更好地理解 Twitter 如何呈现时间线,让我们更深入地研究呈现流程,如图 2 所示。当 Twitter 用户今天发布一条推文时,Twitter 首先将其写入Manhattan,一个分布式键值数据库,用于存储用户推文、直接消息、帐户详细信息等。该推文在时间线缓存中向该用户的所有关注者展开。虽然这将写入放大从每秒 4.6k 请求增加到每秒 345k 请求,但它也大大降低了用户的读取延迟。因此,时间线渲染不是在关注者和推文之间做一个连接表,而是从缓存中的单个表中获取推文。这些操作通常在不到 5 秒的时间内完成。通过分布正在写入的数据,系统可以通过删除表连接来避免过度增长。因此,读取延迟被改进到几百毫秒。
图 2:Twitter 的时间线渲染流程。请注意,时间线中的每条推文都需要至少一个 RPC。
前面提到的渲染流程对于绝大多数用户来说可能已经足够了。这样,当一个请求到来时,系统可以很容易地在一个地方找到相关数据,这导致数据已经被预处理并可以使用。这使得系统具有可扩展性,和可预测的性能。
遵循当前现状的 Web3 应用程序缺少一个重要的组件来有效地聚合相关数据。具体来说,开发者必须一个一个地调用API来获取数据。即使对于蕞简单的用例,例如获取用户的交易历史记录,这也会导致性能不可靠且不可预测。
图 5:当前的 Web3 应用程序需要如何连续调用许多不同的 API,即使是简单的事务聚合。
由于所有 Web3 数据都是公开可用的,ZettaBlock 构建了蕞先进的数据基础设施来处理所有 Web3 开发人员的扇出部分。应用程序开发人员只需通过一个 API 指定他们想要查询哪些相关数据,然后让 ZettaBlock 聚合所有相关数据。如图 6 所示。通过使用 ZettaBlock,开发时间和 API 延迟分别减少了 70% 和 90%。在https://demo.zettablock.dev/查看我们的演示。更多的技术细节将在未来分享。
图 6:与图 5 相比,ZettaBlock 将多个 Web3 数据集抽象为一个简单、用户友好且高效的API。
结论
在这篇博文中,我们剖析了 Twitter 的架构,并将其数据模型与 Web3 进行了比较,发现了许多相似之处。如果我们能得到一个信息,那就是许多现有的 Web3 数据基础设施解决方案,就像早期的 Twitter 一样,将无法跟上即将到来的数据需求。
这就是我们构建 ZettaBlock 的原因。ZettaBlock 是一个全栈式 Web3 数据基础设施平台,可提供实时、可靠的 API 和分析,在几分钟内为您的应用程序提供支持。前面提到的扇出过程,这只是 ZettaBlock 上开发人员和企业可用的众多功能之一。我们受到领先的web3公司的信任,如Polygon, Crypto.com, Circle等。我们的愿景是成为web3数据基础设施的首选平台。
请查看我们的演示/视频了解详细信息。
鸣谢
我想借此机会向所有在这篇文章中帮助过我的人表示衷心的感谢。特别感谢Kevin Ros、Chi Zhang、Maria Adamjee、Raphael Serrano、Zhenzhong Xu、Paul Tluczek、Tianzhou Chen、Hemanth Soni、Nitish Sharma、Ryan Kim、Alex Xu、Vivek Gopalan、Nazih Kalo、Nirmal Krishnan、Timothy Chen、Min Hao、Bo Yang
参考
1.Timelines at Scale:
https://www.infoq.com/presentations/Twitter-Timeline-Scalability/
2.How Twitter uses redis to scale 105TB RAM:
http://highscalability.com/blog/2014/9/8/how-twitter-uses-redis-to-scale-105tb-ram-39mm-qps-10000-ins.html
3.What Database does Twitter use?
https://scaleyourapp.com/what-database-does-twitter-use-a-deep-dive/
4.Twitter Data Storage and Processing:
https://ankush-chavan.medium.com/twitter-data-storage-and-processing-dd13fd0fdb30#:~:text=That%20equals%20to%20the%2084,time%20the%20request%20is%20made
责任编辑:Kate
海外精品引流脚本–最强海外引流
唯一TG:https://t.me/Facebook181818
更多海外引流脚本方案
如果你需要脚本演示、部署咨询或海外获客方案,可以通过下面入口继续查看。
