【译】分布式系统的八个谬误

本文翻译自:The Eight Fallacies of Distributed Computing

译文

基本上很多人在第一次构建分布式系统的时候,都会有如下的八种假定观点,而在后面的运行中证明这些假定都是错误的,而且这些假定都引来了巨大的麻烦和令人痛苦的经历。

  1. 网络是可靠的
  2. 没有延迟
  3. 带宽是无线的
  4. 网络是安全的
  5. 网络拓扑不会改变
  6. 系统只有一位管理员
  7. 信息传输成本为零
  8. 网络都是同质的

总结

这篇文章是在阅读《微服务设计》的时候遇到的,觉得非常经典,这些观点列在这里我感觉自己都很清楚,但是在真正参与到分布式系统的设计和开发的时候,也非常忽略上述这些观点。

在构建高可用、高并发的分布式系统时,如果有依赖到外部服务或中间件,必须设置好合理的超时时间和重试机制,例如MQ的重试保障、redis的超时时间、mysql连接池的超时、httpclient的超时和重试等待。

在构建搞并发、大流量应用时,针对接口的性能优化,一般有两种策略:(1)增加缓存,包括分布式缓存和本地缓存;(2)异步可以异步的逻辑。