第一部分 简介

你有曾思考过高性能Web应用程序是如何实现的吗?社交网络和大型零售网站肯定有一些秘密配方使得系统运行迅速并且可靠,但这些秘密是什么呢?在这本书中,我们将为你揭晓谜底,你将学习到这些近似永远不出故障,并且能够满足数十亿人需要的系统背后的设计原则与模式。虽然你所构建的系统未必有如此雄心壮志的要求,但是它们主要的特质应该是一致的:

你想要你的应用程序可靠地工作,即使某些部件(硬件或者软件)有可能出现故障。

你希望你的应用程序在你需要支撑更多的用户时,可以持续地提供服务,而且你希望能够通过添加或者删除资源来调整它的能力,从而适应不断变化的需求(没有可以预测未来的水晶球的帮助,很难进行正确的容量规划)。

在第1章中,我们将勾勒出一个具备这些特质的应用程序的开发过程。我们将指明你会遇到的挑战,并基于一个具体的例子(一个假想中的Gmail服务实现)给出解决方案,但是我们将会以不提供具体的技术选型的形式进行。

这个使用场景为接下来在第2章中对《反应式宣言》所进行的详细讨论作了铺垫。该宣言以简洁、抽象的形式撰写,目的是为了聚焦于它的本质:将多个独立的、有效的程序特性凝聚为一个整体,从而形成更大的合力。我们将通过把高度抽象的特质分解为更小的部分,并解释各部分又是如何合回一体的过程,来展现这一点。

我们将会以第3章结束这一部分,其大致地介绍了行业工具:函数式编程、Future 和 Promise、通信顺序进程(CSP)、 Observer 和 Observable(Reactive Extensions)以及 Actor 模型。