本文是GitHub热门我的项目零碎设计入门的学习笔记第3篇,本篇介绍了StackOverflow的架构。参考文章:Stack Overflow: The Architecture - 2016 Edition。架构图如下:

The Internets

网络接入即图中最下面那一部分,简略来说,StackOverflow用了CloudFlare的DNS服务器,同时也有本人的DNS服务器。接入了4个ISP服务供应商,路由器也都是主/主复制的模式。

Load Balancers (HAProxy)

2台机器,用的是HAProxy做负载平衡,SSL也到这一层终止。机器内存较大用于缓存TLS会话。

Web Tier

这一层是11台Web服务器,其中有2台是dev测试的。

Service Tier

与Web Tier相似,提供的是外部的Web服务。

Cache & Pub/Sub (Redis)

Master/Slave的Redis集群,保留HTTP缓存(之前的服务器中有local缓存)。Protobuf格局。本人开发的Redis客户端。

Search (Elasticsearch)

专门给搜寻设置的服务器。每个数据中心都是一个3节点的集群。

Databases (SQL Server)

2个SQL集群,外面的各个机器按地区离开。