6. 复制
系统可扩展性
1. 系统的可扩展性
当负载增加需要更强的处理能力时,我们有两种扩展系统的方式:
- 垂直扩展: 购买更强大的机器
- 水平扩展: 组合更多数量的机器
垂直扩展通过共享内存和共享磁盘的方式,让操作系统管理更多的 CPU、内存和磁盘,从何获取更强劲的性能。但是这种方式有明显的缺陷:
系统可扩展性
当负载增加需要更强的处理能力时,我们有两种扩展系统的方式:
垂直扩展通过共享内存和共享磁盘的方式,让操作系统管理更多的 CPU、内存和磁盘,从何获取更强劲的性能。但是这种方式有明显的缺陷:
构建可适应变化的系统
应用程序不可避免的需要随时间而变化,大多数情况下,应用程序的更改也需要更改其存储的数据: 增删字段或者以新的方式呈现数据。当数据格式或模式发生变化时,同样也需要对应用程序代码进行相应调整。
数据如何存储,如何检索
上一节我们讨论了数据模型和查询语言,即应用开发人员向数据库执行数据格式并在之后如何查询的机制。接下来我们从数据的角度在此探讨同样的问题,即如何存储输入的数据,并在收到查询请求时,如何重新找到数据。
用于数据存储和查询的通用数据模型

大多数应用程序是通过一层一层叠加数据模型来构建的,每一层都面临的关键问题是: 如何将其用下一层来表示?例如:
构建数据密集型应用的目标

影响数据系统设计的因素很多,每个因素都需要具体问题具体分析。而我们着重讨论三个在大多数软件系统中都很重要的问题:
《构建数据密集型应用》读书笔记
2014 年我开始自学编程的时候,在各种培训机构的课程里 Mysql 几乎还是唯一的数据库系统。现如今每一个工程师可能都听过 NoSQL,hadoop,Elasticsearch。“大数据"已经成为了几乎所有公司看中的技能。