淘淘商城系列(一)—— 系统架构(三)

说到架构,我们先来了解一下,什么才是架构。

架构,又名软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。架构描述语言(ADL)用于描述软件的体系架构。现在已有多种架构描述语言,如Wright(由卡内基梅隆大学开发),Acme(由卡内基梅隆大学开发),C2(由UCI开发),Darwin(由伦敦帝国学院开发)。ADL的基本构成包括组件、连接器和配置。

接下来看看我们的传统架构:

1、传统架构

500并发

如图:

淘淘商城系列(一)—— 系统架构(三)_第1张图片

存在的问题:

       1、功能耦合度高

       2、系统维护成本高

       3、如果并发量大,无法解决高并发的问题

 

2、1000并发

淘淘商城系列(一)—— 系统架构(三)_第2张图片

 

存在的问题:

1、系统无法有效进行水平扩展(集群不能针对功能模块)

2、用户存在重复登录的问题

 

针对第二点:需要session共享,是以session广播的形式,比较消耗资源,宽带。

 

如果要达到10000并发

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

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

 

传统架构的搭建案例,就是所有的功能都放到一个war包里面

淘淘商城系列(一)—— 系统架构(三)_第3张图片

 

3、分布式架构(10000并发)

       需要按照功能点把系统拆分,拆分成独立的功能工程,可以单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑这就叫做分布式。

淘淘商城系列(一)—— 系统架构(三)_第4张图片

集群:相当于同一个工程代码拷贝多份部署到多台服务器,每台服务器单独独立部署运行。

分布式架构:

       把系统按照模块拆分成多个子系统;多个子系统相互协作才能完成业务流程系统之间需要进行通信。

 

优点:

把模块拆分,使用接口通信,降低模块之间的耦合度。

把项目拆分成若干个子项目,不同的团队负责不同的子项目。

增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。

可以灵活的进行分布式部署。

 

缺点:

1、系统之间交互需要使用远程通信,需要开发接口,增加工作量。

2、各个模块有一些通用的业务逻辑无法公用。

 

分布式项目的架构案例

淘淘商城系列(一)—— 系统架构(三)_第5张图片

 

4、基于SOA的架构

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

淘淘商城系列(一)—— 系统架构(三)_第6张图片

 

再来看看基于SOA架构的案例:

淘淘商城系列(一)—— 系统架构(三)_第7张图片

 

 

5、淘淘商城系统架构

淘淘商城系列(一)—— 系统架构(三)_第8张图片

 

6、技术选型

  • Spring、SpringMVC、Mybatis
  • JSP、JSTL、jQuery、EasyUI、KindEditor(富文本编辑器)
  • Redis(缓存服务器,单点登录,购物车)
  • Solr(搜索)
  • dubbo(分布式服务框架)
  • HttpClient(HTTP 协议访问客户端)
  • ActiveMQ(消息队列)
  • Quartz(定时任务)
  • FastDFS(图片服务器)
  • FreeMarker(网页静态化)
  • Nginx(反向代理服务器)
  • MyCat(数据库中间件)

 

7、开发工具版本和环境

  • Eclipse Mars.2
  • Maven 3.3.9
  • Tomcat 7.0.72(Maven Tomcat Plugin)
  • JDK 1.7
  • Mysql 5.7
  • Dubbo 2.5.3
  • Nginx 1.8.0
  • Redis 3.0.0
  • ActiveMQ 5.13.0
  • Win7 操作系统
  • SVN(版本管理)

 

 

 

你可能感兴趣的:(淘淘商城,项目实战之淘淘商城)