架构师训练营 - 第六章总结
学习内容
从上周开始,学习内容的高度有了不小的提升,主要内容都是在讲分布式系统的难点和实现案例。
系统发展到一定阶段,数据量、请求量达到足够的量级,无法再通过单机的方式存储,那么就必须寻求分布式的解决方案。
分布式系统一般有分布式应用系统、分布式缓存、分布式存储。
分布式应用服务
分布式应用服务相对简单,多个server服务器负载均衡服务给客户提供服务,一般server都是无状态的,方便server的线性扩展。
分布式应用解决大访问量时,单机应用系统处理能力不足的问题。
分布式应用当中的难点在于负载均衡算法,怎么能把用户请求均匀的分配给应用服务器,在应用服务器出现故障时,及时剔除等。
分布式缓存
分布式缓存是解决缓存数据达到一定量级,单机服务无法承载的问题。
分布式缓存相对分布式存储容易处理些,主要是因为缓存数据允许一定的丢失,只要不出现大规模的缓存穿透或缓存雪崩,系统基本都能接收。
分布式缓存主要的难点在于分布式一致性算法,如何将数据均匀的分配到各个存储节点,并且在系统扩缩容时可以继续保持这种均衡性。
分布式存储
分布式存储的难度还是比较高的,它主要解决海量数据存储的问题。
分布式存储的难点主要体现在,数据的完整性要求高,体积巨大,扩缩绒困难,可用性要求高。
分布式存储的难点除了分布式一致性算法,数据均衡存储外,还有系统扩缩绒时的数据迁移和数据恢复。
总结下来,分布式系统的难度还是比较高的。除了上面提到的几个点,还要应对网络延迟、系统故障、数据版本等各种问题。
不过技术人所追求的也就是这些问题的更好答案,市面上的mycat、redis cluster,以及最近出现的tidb,都在解决这类问题,相信以后的技术圈内还能产生更多更好的解决方案。
评论