被收购的Twitter微服务架构有多复杂? - Reddit


Twitter严重依赖微服务,但在拥有数千名工程师掌舵的规模如此之大的情况下,Twitter 实际上有多复杂吗?

1、问题是规模:
任何人都可以建立像 twitter 这样的网站,但是您需要大量的基础设施来跟上他们处理的流量。
规模分布式系统的复杂程度。共享和共识协议可能很难调试,因为涉及到数千个节点
Twitter 的规模是他们的服务器是本地的……他们不使用 AWS。
Twitter 已有十年历史,因此多年来每位 CEO 都在遗留代码的基础上进行了大量权衡。

2、这非常简单,您可以找到有关如何构建它的教程并在几天内完成。
它只是微服务之上的一些 React SPA,带有 docker,然后是用于存储的 mongodb,无服务器云函数后端,与graph TRPC 和 Typescript 的通信以!那旧是推特架构,十分简单。
他们可以终止 graphql 服务,但是一切还正常。
马斯克说:有 500 个图表用 graphql 为一个简单的时间线绘制。这就是 Twitter 如此缓慢的原因。

3、微服务永远不会保持微状态,通常会随着时间的推移变得越来越大。
Twitter 最喜欢使用的微服务数量有数百个。Twitter 的前端功能可能只是其中的一小部分。其余的是诸如分析工具、反向代理、数据聚合、pub sub、cdn 等之类的东西......除非你在那里工作,否则没有真正的了解方式,但如果你真的想要细节,我相信他们已经发布了一些白皮书。

4、问题从来都不是应用程序的基本架构,而是优化整个世界的应用程序性能的复杂性,同时还要保持用户体验一致,无论位置如何。更不用说事后涉及数据分析的大量团队。这些公司中的大多数不是“应用app公司”,而是数据公司。