我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
Stack Overflow 工程主管Roberta Arcoverde在最近接受 Scott Hanselman采访时透露了 Stack Overflow 架构的故事。他们每秒处理超过 6000 个请求,每月 20 亿次页面浏览量,并设法在大约 12 毫秒内呈现一个页面。我们想象他们使用在云中运行的微服务解决方案和 Kubernetes。
但故事有点不同。他们的解决方案已经有 15 年历史了,是一个在本地运行的巨型整体应用程序。它是IIS 上的一个应用程序,运行 200 个站点。这个应用程序在九个 Web 服务器和一个 SQL Server(加上一个热备用服务器)上运行。
他们还使用两级缓存,一级缓存位于具有大 RAM (1.5TB) 的 SQL Server 上,其中 30% 的数据库访问位于 RAM 中,以及两台 Redis 服务器(主服务器和副本服务器)。除此之外,他们还有三台标签引擎服务器和三台弹性搜索服务器,每天用于3400万次搜索。
所有这些工作均由 50 名工程师组成的团队处理,他们每天多次在 4 分钟内成功部署到生产环境。
他们的完整技术堆栈是:
- C# + ASP.NET MVC
- Dapper ORM
- StackExchange Redis
- MiniProfiler
- Jil JSON Deseliazier
- Exceptional logger for SQL
- Sigil, a .Net CIL generation helper (for when C# isn’t fast enough)
- NetGain, a high-performance web socket server
- Opserver, monitoring dashboard polling most systems and feeding from Orion, Bosun, or WMI.
- Bosun, backend monitoring system, written in Go