商城项目开发1_架构的演变

1.传统的项目的架构


无论有多少个需求和功能都放在了一个,一套MVC架构中,所以造成的缺点非常明显

1.代码耦合度非常高

2.后期维护的成本很高(当你要修改 查寻商品 的代码的时候,需要将整个项目全部停掉。)

3.由于部署在一个服务器上,所以并不能实现高并发的需求。

2.并发

使用集群,来实现并发访问。


1.将项目部署到多个服务器上,就可以实现并发访问。
2.不能解决代码耦合度高的问题
3.不能解决维护成本高的问题
4.而且思考这么一个问题,当用户发送一个登录请求,被Nginx分配到 Tomcat1服务器上,存储在Tomcat1服务器上的 session中,但是当用户再次发送一个其他请求,
却被分配到Tomcat2服务器上,此时Tomcat2中的Session中并没有用户信息,所以还要再登陆。那假如有100个呢?
5.当然也可以解决,需要session共享,是以session广播的形式,比较消耗资源,宽带。

如果要达到10000并发

需要20台服务器做tomcat集群。当tomcat集群中节点数量增加,服务能力先增加后下降。

所以集群中节点数量不能太多,一般也就5个左右。

3.分布式架构



将每一个功能模块都拆分成一个个系统,分别部署,有的使用频率非常高的系统,就让部署的服务器多一些,这样并发量也就高了。但是还是有它的缺陷。

集群:相当于同一个工程代码拷贝多份部署到多台服务器,每台服务器单独独立部署运行。
分布式架构:
	把系统按照模块拆分成多个子系统;多个子系统相互协作才能完成业务流程系统之间需要进行通信。
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署。(每个系统进行集群部署)

缺点:
1、系统之间交互需要使用远程通信,需要开发接口,增加工作量。
2、各个模块有一些通用的业务逻辑无法公用。(比如查询系统和后台管理系统,都会有一个查询的功能,其业务逻辑是一样的,但是无法实现代码的复用,在两个系统中都分别进行了开发)

4.SOA的项目架构

SOA:Service Oriented Architecture面向服务的架构。也就是把工程都拆分成服务层工程、表现层工程。
服务层中包含业务逻辑,只需要对外提供服务即可。
表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。工程都可以独立部署。


用自己的话说就是:前面的传统项目架构,分布式的架构 其针对的是 某个功能,某个逻辑业务来进行开发。但SOA则不是,SOA针对的是某个对象来进行开发(服务层)。比如 商品服务,订单服务,搜索服务..........商品中有搜索,删除,增加等许多功能,当变现层需要什么,就去调用相应的服务。

这是项目的整体架构:


其实可以这样理解,服务层其实就是原来的Controller层,处理页面的。而服务层就相当于 原来的Service层和Dao层。单他们是解耦和的,分别部署的。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值