
22
第 2 章
分布式系统架构简介
在本章中,我将广泛地介绍一些扩展软件系统的基本方法。你可以把本章看成从
30 000
英尺(
1
英尺约为
30.48 cm
)的高度鸟瞰第二部分、第三部分和第四部分的内容。我将
介绍可扩展系统的主要架构方法,并指出后续将深入探讨相关架构问题的章节。你可以
认为本章的内容概述了为什么需要可扩展系统的架构策略,而后续章节的内容将详细解
释如何运用这些架构策略。
本书讨论的目标系统类型是我们每天都在使用的、面向互联网的系统。你尽管说出最喜
欢的系统!这些系统的特点是:在网页和移动应用程序界面接收用户的请求,根据用户
请求或事件(例如,基于
GPS
的系统)存储和检索数据,并具有一定的
智能
功能,例如
根据之前与用户交互的知识来提供建议或通知。
我将从一个简单的系统设计开始,展示如何扩展它。在此过程中,我将引入几个概念,
并在本书后续章节更详细地介绍它们。本章只是对这些概念进行全面概述,让你知道它
们是如何在系统可扩展性方面发挥作用的
—
这是一次走马观花之旅!
2.1
系统架构基础
几乎所有大规模系统都是从小规模开始,在成功路上逐渐发展壮大。从
Ruby on Rails
、
Django
或类似的开发框架开始架构系统是常见且明智的做法,它们可以加速开发,使系
统得以快速启动并运行。基于一个典型且简单的软件架构来启动你的系统开发,与采用
快速开发框架获得的效果相似,如图
2-1
所示。此架构包括客户端层、应用服务层和数
据库层。如果你使用
Rails
或类似产品,那么可以直接获得以下便利:内置了处理
Web
应用程序的 ...