一、淘淘商城创建(架构设计概要)
1.传统架构和 分布式架构和 面向服务架构对比
传统架构
并发量:500
存在的问题:
1、功能耦合度高
2、系统维护成本高
3、如果并发量大,无法解决高并发的问题
传统架构的优化
搭建tomcat集群 使用nginx做负载均衡
并发量此时升级为1000
存在的问题:
1、系统无法有效进行水平扩展(集群不能针对功能模块)
2、用户存在重复登录的问题
针对第二点:需要session共享,是以session广播的形式,比较消耗资源,宽带。
如果要达到10000并发
需要20台服务器做tomcat集群。当tomcat集群中节点数量增加,服务能力先增加后下降。
所以集群中节点数量不能太多,一般也就5个左右(2500并发量)
分布式架构
需要按照功能点把系统拆分,拆分成独立的功能工程,可以单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑这就叫做分布式。
并发量 :10000
集群:相当于同一个工程代码拷贝多份部署到多台服务器,每台服务器单独独立部署运行。
分布式架构:
把系统按照模块拆分成多个子系统;多个子系统相互协作才能完成业务流程系统之间需要进行通信。
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署(方便系统的扩展)。
缺点:
1、系统之间交互需要使用远程通信,需要开发接口,增加工作量。
2、各个模块有一些通用的业务逻辑无法公用(存在某一功能重复开发的问题 例:订单系统和后台管理系统可能都使用了操作商品的dao,service,此时的dao,service,重复开发,造成冗余)。
基于SOA(面向服务)的架构
SOA:Service Oriented Architecture面向服务的架构。也就是把工程都拆分成服务层工程、表现层工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。工程都可以独立部署。
与分布式相比 此时 订单系统和后台管理系统可以共用商品服务
优点
1.功能模块升级方便(易于扩展) 系统之间进一步降低耦合度
2.服务重用度增强 进一步降低开发成本和维护成本
3.可以灵活的进行分布式部署
二、淘淘商城架构定型
表现层(处理用户请求,请求参数的处理,页面的展示)
服务层 (数据的持久化,数据库的查询,操作redis缓存,使用activeMQ做系统之间的通讯)
表现层和服务层之间的调用 使用dobbo