最近几年计算机领域中最火的无疑是大数据、云(可能是由于马云也带云吧),连我这个没有使用到的人也在各种媒体,各种博客和资讯中被狂轰乱炸中被动接受,因此对于像我这样在项目中没有直接接触到各种云、大数据、分布式的人,需要一本来全面的介绍和解释这种技术或这种概念的书籍,闲来无事正好赶上试读活动就来拜读下,由于水平太烂,如有不正之处,还请各位看官多多指教。
正如作者所说:
本书的试读章节主要介绍了构建分布式网站所依赖的基础设施,作者给我们详细介绍了这些内容,如安装,运行,甚至有些可以让读者直接轻松入门,还有一些项目中会使用到的解决方案,比如Mysql的扩展(业务拆分、复制策略、分表与分库)。
分布式系统的基础设施
1 分布式缓存——memcache
memcache用于在应用中减少对数据库的访问,提高应用的访问速度,并降低数据库的负载。memcache为了在内存中提供数据的高速查找能力,memcache 使用 key-value 形式存储和访问数据,在内存中维护一张巨大的 HashTable,使得对数据查询的时间复杂度降低到 O(1),保证了对数据的高性能访问。内存的空间总是有限的,当内存没有更多的空间来存储新的数据时,memcache就会使用 LRU(Least Recently Used)算法,将最近不常访问的数据淘汰掉,以腾出空间来存放新的数据。
书中详细介绍分布式缓存的典型代表memcache,以及memcache的前世今生和算法原理,配合memcache API与demo结合,使读者可以快速的入门。
2 持久化存储——MySQL与HBase
MySQL作为开源关系型数据库的典范,正越来越广泛地被互联网企业所使用。作者通过对传统系统使用Mysql中遇到的问题结合实际案例来给出相应的解决方案,MySQL 扩展,业务拆分,复制策略,分表与分库等,让读者大呼过瘾。
HBase做为天生就能够很好地支持海量数据的存储,能够以更友好、更方便的方式支持表的分区,并且 HBase 还支持多个 Region Server 同时写入,能够较为方便地扩展系统的并发写入能力。并发写入性能十分出色。但HBase本身所支持的查询维度有限,难以支持复杂的条件查询,如 group by、order by、join 等,这些特点使它的应用场景受到了限制。
3 消息系统 ——ActiveMQ & JMS
分布式系统中,消息系统的应用十分广泛,消息可以作为应用间通信的一种方式。消息被保存在队列中,直到被接收者取出。由于消息发送者不需要同步等待消息接收者的响应,消息的异步接收降低了系统集成的耦合度,提升了分布式系统协作的效率,使得系统能够更快地响应用户,提供更高的吞吐。
4 垂直化搜索引擎
Lucene 为搜索引擎提供了强大的、令人惊叹的 API,在企业的垂直化搜索领域得到了极为广泛的应用。为了学习搜索引擎的基本原理,有效地使用 Lucene,并将其引入到我们的应用程序当中,本节将介绍 Lucene 的一些常用的 API 和使用方法,以及索引的优化和分布式扩展。
Solr 是一个基于 Lucene、功能强大的搜索引擎工具,它对 Lucene 进行了扩展,提供一系列功能强大的 HTTP 操作接口,支持通过 Data Schema 来定义字段、类型和设置文本分析,使得用户可以通过 HTTP POST 请求,向服务器提交 Document,生成索引,以及进行索引的更新和删除操作。对于复杂的查询条件,Solr 提供了一整套表达式查询语言,能够更方便地实现包括字段匹配、模糊查询、分组统计等功能;同时,Solr 还提供了强大的可配置能力,以及功能完善的后台管理系统。Solr 的架构如图 2-25 所示。
5其他基础设施
除了前面所提到的分布式缓存、持久化存储、分布式消息系统、搜索引擎,大型的分布式系统的背后,还依赖于其他支撑系统,包括后面章节所要介绍的实时计算、离线计算、分布式文件系统、日志收集系统、监控系统、数据仓库等,以及本书没有详细介绍的 CDN 系统、负载均衡系统、消息推送系统、自动化运维系统等。
谈谈个人项目
本人在项目中只使用过memcache和ActiveMQ & JMS, No-sql使用过mongdb。在这里简单说下使用过的mongdb。
说实话使用mongdb的项目其实是比较坑的,因为在项目中使用的数据远远没有达到海量,其实一个Mysql处理起来就绰绰有余,但是由于大数据太火了,现在做项目你要是不说你的项目大、不说你的项目是分布式的、不说你的项目处理数据能力强,你出去都不好意思和别人打招呼。唉!不说了说多了都是泪啊。基于此,所以就在项目上用上了mongdb来处理我们系统的“大数据”。但是那种把mongdb当作为普通数据库来使用的淡淡忧伤没有经历过的人是不会懂的,比如典型Nosql没有Join导致无法进行多表关联或者进行复杂查询的问题,因此要做一些冗余字段来方便查询和计算,但是mongdb的优点使用起来也是相当方便,尤其是数据结构变动时,基本上完全不用考虑mongdb数据库,直接添加/删除字段就OK!
总结:
作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型分布式网站架构设计与实践》既可供初学者学习,帮助读者了解大型分布式网站的架构,以及解决问题的思路和方法,也可供业界同行参考,给日常工作带来启发。在书中通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题,是一本非常赞的书籍,值得拥有。
相关推荐
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。, 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
在IT行业中,尤其是在互联网领域,大型分布式网站架构设计与实践是一项至关重要的技术。随着互联网业务的飞速发展,单体架构已经无法满足高并发、高可用性以及可扩展性的需求,因此分布式系统的概念应运而生。本资料...
分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于Mycat中间件分布式数据库架构及企业实践-基于...
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。, 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。, 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。, 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
### 大型分布式网站架构设计与实践 #### 一、引言 在当前互联网时代,随着用户数量的急剧增加以及业务复杂度的不断提高,传统的单体应用架构已经无法满足高并发、高性能的需求。因此,越来越多的企业开始采用...
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
深入地讲述了大型分布式网站架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。 作者结合自己在阿里巴巴及淘宝网的实际工作经历展开论述。《大型...
分布式数据库架构及企业实践——基于Mycat中间件由资深 Mycat 专家及一线架构师、DBA 编写而成。全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在...
《大型分布式网站架构设计与实践》是一本深入探讨如何构建高效、可扩展的大型网站架构的专业书籍。在当今数字化时代,随着互联网业务的飞速发展,单体应用已无法满足日益增长的用户需求和流量压力,因此分布式系统...
大型分布式网站架构设计与实践+笔记.zip 1.Cache缓存 2.持久化存储 3.消息系统MQ 4.垂直化搜索引擎 5.其他基础设施
内容简介:本书主要介绍了大型分布式架构所涉及的一些技术细节,包括soa...深入地讲述了大型分布式架构设计的核心原理,并通过一些架构设计的典型案例,帮助读者了解大型分布式网站设计的一些常见场景及遇到的问题。