大型分布式网站架构设计与实践 试读有感

书中提到了很多大型分布式网站设计所必须的知识点,如soa、分布式系统的基础设施,系统稳定性设计,数据分析,系统稳定设计的章节写的很有实践性,自检脚本的编写、日志分析命令的妙用,这些知识虽然之前都听过,但是运用的不熟练,看目录书中应该有很多实际的案例,另外互联网安全方面之前讲类似知识点的书也比较少,书中介绍的比较详细,不错,赞一个。

关于试读“分布式系统的基础设施”这一章,个人看我后,感觉介绍的很不错,基础知识方面基本都有涉及。memcache、hbase 这些基于nosql的DB在大数据方面应用是很不错的选择。
像hbase:
半结构化或非结构化数据,对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用HBase。当业务发展需要存储author的email,phone,address信息时RDBMS需要停机维护,而HBase支持动态增加.

记录非常稀疏
RDBMS的行有多少列是固定的,为null的列浪费了存储空间。而如上文提到的,HBase为null的Column不会被存储,这样既节省了空间又提高了读性能。

多版本数据
如上文提到的根据Row key和Column key定位到的Value可以有任意数量的版本值,因此对于需要存储变动历史记录的数据,用HBase就非常方便了。比如上例中的author的Address是会变动的,业务上一般只需要最新的值,但有时可能需要查询到历史值。

超大数据量
当数据量越来越大,RDBMS数据库撑不住了,就出现了读写分离策略,通过一个Master专门负责写操作,多个Slave负责读操作,服务器成本倍增。随着压力增加,Master撑不住了,这时就要分库了,把关联不大的数据分开部署,一些join查询不能用了,需要借助中间层。随着数据量的进一步增加,一个表的记录越来越大,查询就变得很慢,于是又得搞分表,比如按ID取模分成多个表以减少单个表的记录数。经历过这些事的人都知道过程是多么的折腾。采用HBase就简单了,只需要加机器即可,HBase会自动水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce)。

你可能感兴趣的:(感想)