本书主要讲解的是关于 Java 在分布式系统中的应用。本书的读者假设都具备了 Java 的基础知识。 如果你需要了解有关 Java 基础知识,可以参阅笔者的另外一本开源书《Java 编程要点》。
《分布式系统原理与范型》一书中是这样定义分布式系统的:
分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。
这里面包含了2个含义:
分布式系统的扩展和升级都比较容易。分布式系统某些节点故障,不影响整理可用。用户和应用程序交互时,不会察觉哪些部分正在替换或者维修,也不会感知到新部分的加入。
万维网就是一个分布式文档模型的简单例子。要查看某个文档,用户只需要电机相关的链接即可,文档就会呈现在屏幕上。用户无需关心文档是位于哪个位置,是由什么服务器处理。概念上讲 Web 看起来就是一个单独的服务器。而实际上,Web 在物理上是分布到非常多的服务器上的。
设计分布式系统的本质就是
“如何合理将一个系统拆分成多个子系统部署到不同机器上”
分布式系统的设计应考虑以下几个问题:
本书就是针对分布式系统中常见的问题进行探讨。
上面讲到的都是分布式系统的通用的概念,那么采用 Java 来实现分布式系统有什么好处呢?
本书所讲的示例、代码也是基于 Java 语言或者 Java 框架。