这篇阅读笔记主要谈一下分布式的问题。
当单机负载无法满足我们的需求时,就会考虑分布式:
分布式静态资源 (动静分离)
这是最为简单的分布式,将网站中的静态资源分离出去,部署到别的机器上, 减轻应用服务器压力;这种分离最为简单,而且性能提升明显;同时,采用独立域名,加大浏览器的并发加载量,让网站更快的呈现在用户面前;web优化中有这么一个优化顺序,先前端后后台,前端优化是需要时间最少而见效最快的方式,关于具体的优化步骤和效果,可以参考大CC之前写的这篇文章:WEB站点性能优化实践(加载速度提升2s)
分布式应用和服务
分层和分割后的应用分布式部署,提升性能、增加网站的伸缩性和扩展性;
分布式数据和存储
包括关系数据库的分布式和NoSQL的分布式;关系数据库的分布式,可以细分为分表和数据分片;数据库的分布式不是那么简单,阿里的OceanBase项目貌似是做到了关系数据库的分布式;
分布式计算
以Hadoop和MapReduce为代表的分布式计算,主要应用场景为日志分析、索引建立,数据挖掘等,实时处理的分布式计算还是见得少;
分布式要注意的问题
任何事务都有其两面性,分布式并不一定就是好的,在网络访问量小的时候,没必要分布式,单机处理能大大节省运维成本;
分布式需要注意以下问题:
分布式服务器见通信的网络开销
服务器多了,服务器宕机概率增大
如何保持分布式存储的数据的一致性,一台机器宕机后故障恢复,如何保证一致性;
分布式事务难以保证
分布式部署后,结构会复杂很多,这带来了维护的困难