你会如何设计Stack Overflow网站?
如果你的答案是on-premise服务器和单体(在下面的图片中),你可能会在面试中失败,但现实就是如此!

人们认为它应该是这样的
面试官可能期待的是图片上半部分的样子。
- 微服务用于将系统分解为小组件。
- 每个服务都有自己的数据库。大量使用缓存。
- 服务是分片的。
- 服务通过消息队列异步地彼此通信。
- 服务使用事件源和CQRS来实现。
- 展示在分布式系统(如最终一致性、CAP定理等)方面的知识。
实际上是这样的
Stack Overflow仅用9台on-premise Web服务器就处理了所有流量,而且它是单体!它使用自己的服务器,并且不依赖云端。
这与我们这些天的所有流行观念相悖。