谈谈架构

java web开发中,传统的系统架构通常为三层架构:web层,service层,dao层。

web层负责页面数据的展示

service层负责业务逻辑的处理

dao层负责对数据库的操作


谈谈架构_第1张图片
传统架构

对于传统的企业项目,企业内部等一些不需要高并发的项目而言,该模式还是适用的。

相对于电商行业,处理高并发是一个需要面临的问题。对于tomcat而言,能支持300的并发已经是很高的一个值,tomcat默认配置并发量为150,最高1000(反正我是不信),硬件配置对其有一定的影响。有人说,没事,我就用硬件堆。确实能用硬件解决的问题就不要用软件来解决。

随着并发的增加,也就意味着需要做tomcat的集群。由于设置了session复制,随着tomcat集群节点的增加,除了成本的增加,站点的服务能力并没有明显的增加,站点的服务能力甚至会下降。这时候硬件战术失去了效用。

这是后我们就需要思考一下怎么解决这个问题?

谈谈架构_第2张图片

当tomcat集群节点增加,理论上并发处理的能力应该会提高而不会下降,而出现下降的原因是由于多个节点之间采用的session复制,这才导致了这个问题。那么如何解决呢?

解决的办法就是将session复制抽离为一个独立的模块---单点登录系统。我们还可以想到,除了站点的首页,以及其他一些个别的页面有相对较高的并发量,其他页面的并发量不是那么高,这时我们可以根据功能模块,将这个项目分割为不同的独立的功能模块,根据每个功能模块并发量的不同配置不同的tomcat集群。--------这就是分布式。

所谓的分布式,就是讲一个项目分割成不同的功能模块,使用接口通信,降低模块之间的耦合度


谈谈架构_第3张图片
分布式

但是该方式存在一个问题:如果模块1和模块2处理同一件事务,就会造成代码的冗余。


谈谈架构_第4张图片

于是soa就出来了。

SOA:Service Oriented Architecture 面向服务的架构。
简单的说就是把项目拆分为服务层和表现层。
服务层:提供业务逻辑,对外提供服务
表现层:处理和页面的交互,调用服务层的业务逻辑

谈谈架构_第5张图片
soa架构

你可能感兴趣的:(谈谈架构)