大型网站分布式架构设计与实践(读书总结)

最近看完这本书,简单总结一下,其实感觉架构思路讲的很多,主要还是面对这样的业务需求,才可以。我觉得这也是BAT程序员在某些方面比较强的原因,人家在写代码的时候考虑到那些高要求的需求。

  • 一个大型、稳健、成熟的分布式系统的背后,往往会涉及众多的支撑系统,我们将这些支撑系统称为分布式系统的基础设施。除了前面所介绍的分布式协作及配置管理系统ZooKeeper,我们进行系统架构设计所依赖的基础设施,还包括分布式缓存系统、持久化存储、分布式消息系统、搜索引擎,以及 CDN 系统、负载均衡系统、运维自动化系统等,还有后面章节所要介绍的实时计算系统、离线计算系统、分布式文件系统、日志收集系统、监控系统、数据仓库等。
分布式缓存 memcache 的使用及分布式策略,包括 Hash 算法的选择。
  • 在高并发环境下,大量的读、写请求涌向数据库,磁盘的处理速度与内存显然不在一个量级,从减轻数据库的压力和提高系统响应速度两个角度来考虑,一般都会在数据库之前加一层缓存。由于单台机器的内存资源和承载能力有限,并且如果大量使用本地缓存,也会使相同的数据被不同的节点存储多份,对内存资源造成较大的浪费,因此才催生出了分布式缓存。本书说的是用memcache,利用本身的hash算法,防止后端服务器跌机,导致的雪崩效应
  • 对于session的存储采用memcached-session-manager ,是一个开源的高可用的 Tomcat session 共享解决方案,
常见的分布式系统存储解决方案,包括 MySQL 的分布式扩展、HBase 的 API 及使用场景、Redis 的使用等。
  • 互联网领域常见的三种数据存储方式,包括传统关系型数据库 MySQL、Google 所提出的 bigtable 概念及其开源实现 HBase,以及包含丰富数据类型的 key-value 存储 Redis。还有非关系型和关系型数据库之间的mongodb
  • 当达到百万级数据,mysql查询需要几秒时间,所以会用中间件mycat对mysql进行集群处理(可以进行水平分割,垂直分割),原理:是对mysql进行分表分库处理,对于一些基础属性比较多的表,将字段分成几张表处理(水平拆分,业务拆分),如果一张表太多记录,就将表分成几张表存在不同数据库就可以了。一般%256,具体百度,建议使用开源中间件mycat
  • Hbase现在没听过怎么用,没怎么了解
  • redis,高性能的key-value数据库,包括 strings、hashs、lists、sets、sorted sets 等,并在这些数据结构类型上定义了一套强大的 API。主要是这些数据是存放在内存中,读取十分快,可以做中间缓存使用,目测以现在的数据量,做个集群,一般都没有太大问题。
如何使用分布式消息系统 ActiveMQ 来降低系统之间的耦合度,以及进行应用间的通信。
  • 消息系统的应用十分广泛,消息可以作为应用间通信的一种方式。消息被保存在队列中,直到被接收者取出。由于消息发送者不需要同步等待消息接收者的响应,消息的异步接收降低了系统集成的耦合度,提升了分布式系统协作的效率,使得系统能够更快地响应用户,提供更高的吞吐。当系统处于峰值压力时,分布式消息队列还能够作为缓冲,削峰填谷,缓解集群的压力,避免整个系统被压垮。
  • 存在两种模式,点对点(一对一,及时性,消息可能会挂),发布订阅模式(通知大家)
垂直化的搜索引擎在分布式系统中的使用,包括搜索引擎的基本原理、Lucene 详细的使用介绍,以及基于 Lucene 的开源搜索引擎工具 Solr 的使用。
  • 垂直化的搜索引擎主要针对企业内部的自有数据的检索,类似淘宝搜索商品,十分消耗系统资源,
  • 要深入理解垂直化搜索引擎的架构,不得不提到当前全球范围内使用十分广泛的一个开源检索工具——Lucene 。Lucene 是 Apache 旗下的一款高性能、可伸缩的开源的信息检索库,用java编写的。
  • 搜索引擎工具solr,可用IK等分词器,对分词进行优化,也可以用索引优化
  • 现在还存在一些比较好的搜索引擎,类似Elasticsearch
  • 可参考http://www.cnblogs.com/chowmin/articles/4629220.html

最后总结:这些技术都不是特别难,用心点都可以学会,主要看你的业务需求逻辑,选用相应的方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值