通俗易懂的分布式系统
一、系统分类
1、单块系统
要说分布式系统是什么东西,那么就得先从单块系统开始说起。
很多同学应该都知道,如果你在一些中小型的传统软件公司里工作,那么很有可能现在在做的系统是如下这个样子。
所有的代码都在一个工程里,最多可能就是通过maven等构件工具拆分了一下代码工程模块,不同的模块可以放在不同的工程代码里。
在部署的时候,可能就是直接在线上的几台机器里直接放到里面的tomcat下来运行。
然后在web服务器前面可能会有一层负载均衡服务器,比如用nginx或者是其他的负载均衡设备,很多流量很小的企业内部系统,比如OA、CRM、财务等系统,甚至可能就直接在一台机器的tomcat下部署一下,然后直接配置一下域名解析,就可以让这个系统的可能几十个,或者几百个用户通过访问域名来使用这个软件了。
至于说系统的依赖大概来说很可能只有一个,那就是MySQL、Oracle等关系型数据库,可能会在某台机器上专门部署一个数据库,让应用系统来使用。
这种系统在很多中小型公司里现在还是比较多的,就是典型的单块系统,所有代码在一个工程,部署在一个tomcat里即可,这里包含了系统所有的功能。
你哪怕就部署一台机器,这个系统也可以运行,只不过为了所谓的“高可用”,可能一般会部署两台机器,前面加一层负载均衡设备,这样其中一个机器挂了,另外一个机器上还有一个系统可以用。
2、单块系统过度到分布式系统