对于分布式系统的定义,大致可以理解为如下的两个点
- 分布式系统从整体的体量来说,它内部是由很多的服务器、服务实例组成。所提供的用户服务是由一组相互独立运行的服务器来提供。
- 对于用户来说,这个多服务器的系统就跟一个服务器一样,感觉不到每个单独的服务器实例的存在。
从程序的角度上可以这样理解,程序A和程序B分别运行在两台服务器上,由两个程序相互协作完成同一个功能。这样这两个程序所组成的整体就可以叫做“分布式系统”。当两个程序相同的时候就可以将其称为“集群”。
单点系统
在分布式系统出现之前,软件系统都是单点的集中式的,也就是所谓的单机部署系统软件。从软件到硬件形成一个高度耦合的系统。这种架构在很长的一段时间内,为企业级开发提供了很多方便。如下图所示。
从图中可以看出,这种集中式的应用从整体结构上来看还是比较简单的。主要是用来做一些后台的管理页面,或者是企业内部系统。例如CRM或者是OA系统等等。这种架构一个很明显的特点就是数据库、应用、文件等都在同一台服务器上。
这种集中式的项目发布相对简单,只需要使用Tomcat运行对应的War包就可以了,缺点就是如果服务器宕机之后,整个的应用都将无法访问。
应用与文件数据库单独拆分
当系统的数据库以及文件数据较多的时候