大型分布式网站架构设计与实践阅读笔记(2)

大型分布式网站架构设计与实践阅读笔记

       本次阅读的是第三章,第三章介绍一些分布式系统所依赖的基础设施,包括分布式缓存,持久化存储。持久化存储又涵盖了传统的关系型数据库MySQL,以及近年来开始流行NOSQL数据库如HBase、Redis,消息系统及垂直化搜索引擎。

       Memcache是danga.com的一个项目,它是一款开源的高性能的分布式内存对象缓存系统,最早是给LiveJournal提供服务的,用于在应用中减少对数据库的访问,提高应用的访问速度,并降低数据库的负载,它本身不是一种分布式缓存系统,分布式是由访问他的客户端来实现的,一种简单的实现方式根据缓存的key来进行hash,当后台有N台,访问的服务器为hash(key)%N,即可映射到后台服务器中,会导致一个问题,一旦某台缓存服务器宕机,或者集群压力过大需要新增缓存服务器,大部分的key将会重新分布,对于高并发的系统来说,是一场灾难,所有的请求直接涌向后端的数据库服务器导致“雪崩效应”。

       持久化存储中主要介绍了关系型数据库mysql、Google所提出的bigtable概念及其开源实现HBase,以及包含丰富数据类型的key-value存储Redis。MySQL主要包含业务拆分、复制策略和分表与分库。HBash是apach Hadoop下的一个子项目,设计实现高可靠性、高可扩展性、实时读/写的列存储在数据库,其本质是一张稀疏的大表来存储粗粒度的结构化数并且能通过简单地增加节点来实现系统的线性扩展。redis能够高效率的实现诸如排序取topN、访问计数器、队列系统、数据排重等业务,还能提供高性能的缓存服务,能支持更为丰富的数据类型。

       垂直化搜索引擎,既能满足对与全文检索、模糊匹配的需求,解决数据like查询效率底下的问题,又能解决分布式环境下,由于采用分库分表或者使用nosql,导致无法进行多表关联或者进行复杂查询的问题。

原文地址:https://www.cnblogs.com/liujinxin123/p/13054964.html