关于分布式及SOA架构的一些理解
1.传统架构
传统架构分为表现层,业务层和持久层三层,如下图所示。
2.分布式
传统架构是在一个工程内实现表现层,业务层和持久层这三层的代码,当程序的访问到达一定的数量时,就需要考虑程序并发性的问题,也就是做tomcat集群。然而当tomcat集群数量过多时,由于tomcat集群服务器之间要考虑通信问题(比如相互之间要广播cookie),所以随着tomcat集群中节点数量增加,服务能力先增加后下降。所以集群中节点数量不能太多,一般也就5个左右。
所以当程序并发性很高时,需要按照功能点把系统拆分,并单独为某一个功能添加服务器。这种需要系统之间配合才能完成整个业务逻辑的架构叫做分布式,如下图所示。
所以分布式架构是把系统按照模块拆分成多个子系统,多个子系统之间需要进行通信,相互协作才能完成业务流程。而集群则是把同一个工程部署到多台服务器上。
分布式架构有如下优点:
1、把模块拆分,使用接口通信,降低了模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署。
3.SOA架构
分布式架构依然有一些缺点:
1、系统之间交互需要使用远程通信,接口开发增加工作量。
2、各个模块有一些通用的业务逻辑无法共用。
这时候SOA架构的作用就体现出来了。SOA(Service Oriented Architecture),即面向服务的架构,也就是把工程拆分成服务层、表现层两个工程。其中服务层包含业务逻辑,只需要对外提供服务即可。而表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。