窥探Stack Overflow & Stack Exchange 的基础架构

Stack Overflow 对于广大的程序员来说应该并不陌生,当我们google一些开发相关问题时,被导航到Stack Overflow

的概率是非常高的。

其实不仅仅是Stack Overflow ,他们的另一款产品 Stack Exchange 也可帮助人们在需要时找到所需的答案。整个Stack Exchange Network由包括 Stack Overflow 在内的 173 个问答社区组成,每月有超过 1 亿人访问以提问、学习和分享技术知识。其产品和工具使人们能够找到他们在工作或在家中开发技术所需的东西。这些产品包括Stack Overflow for TeamsStack Overflow AdvertisingCollectives™ on Stack OverflowStack Overflow Talent

业务流量

Stack Exchange Network在过去一年的流量统计

业务架构

对于一个日活过千万,月访问量过亿的系统,应该怎么设计,才能够保证满足用户的需求呢?我们可以从Stack Exchange公布的架构图可见一斑。

大量的内存消耗,意味着为了满足高吞吐低延迟的访问,大量的数据平时都是被放在内存中的。

4 台 sql SERVERS,服务于Stack overflow的两台,配置达到了RAM: 1.5 TB • DB size: 2.8 TB

一个有意思的现象是:在索引总体大小只有 528 GB 的情况下,配置了3台196GB RAM的Elasticsearch。几乎所有的索引都是On Heap的。而256GB的Redis,几乎把一半的ES索引都是能装载在缓存中

并且,通过他们自定义的Tag Engine,将“问题"和"回答"打上特定的标签,存储于Elasticsearch,以提升相关性。

在冗余上,可以看到所有的服务器都是双活,并且是超配(没有任何一个组件的cpu峰值是超过20%的,平均使用率都在10%以下)。这点是非常有意思的,他们追求的并非是高cpu使用,并非是ROI,而是极致的性能和稳定性

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...