本文是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集群,里面的各个机器按地域分开。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。