Skip to content

你会如何设计Stack Overflow网站?

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

人们认为它应该是这样的

面试官可能期待的是图片上半部分的样子。

  • 微服务用于将系统分解为小组件。
  • 每个服务都有自己的数据库。大量使用缓存。
  • 服务是分片的。
  • 服务通过消息队列异步地彼此通信。
  • 服务使用事件源和CQRS来实现。
  • 展示在分布式系统(如最终一致性、CAP定理等)方面的知识。

实际上是这样的

Stack Overflow仅用9台on-premise Web服务器就处理了所有流量,而且它是单体!它使用自己的服务器,并且不依赖云端。

这与我们这些天的所有流行观念相悖。