开发环境与技术选型

操作系统:win7

IDE:Eclipse neno

JDK:1.8

数据库:mysql5.6

Dao层:mybatis、数据库连接池(德鲁伊druid)

缓存:redis3.0.0

搜索:solr

Service层:spring

表现层:springmvc、jstl、EasyUI、jsp、freemaker

图片服务器:FastDFS(分布式文件系统)

反向代理服务器:nginx1.8.0

定时器:Quartz

Web服务器:tomcat 7.0.53

工程管理:Maven 3.3.9

项目架构设计

传统架构的项目架构分为表现层,业务层,持久层加数据库。如图2.1表现层由mvc框架实现,主要的任务是接受用户操作,调用业务层接口,返回渲染相应视图。业务层负责具体的业务功能实现,持久层负责处理数据库操作,实现业务与数据的解耦。Spring框架用来管理这个项目中的类,而mybatis框架实现数据库与javabean的对接适配。

图2.1

如果用tomcat做服务器,对于500以上的并发量时,单台tomcat就会力不从心。处理1000并发量的数据,就需要配置tomcat集群。但是tomcat集群并不是配置越多的节点处理能力就越好,而是随着节点数量的增加,服务性能先增后降。一般节点数量最多在5个左右。(原因是Session通信的制约)

在处理更高的并发时单纯的增加服务器节点是不行的。这时就要用到分布式集群。所谓分布式就是把项目按照功能拆分。一个功能就是一个项目,再对某个并发量高的功能单独添加服务器集群。这样,基于分布式增加节点,并发量不高的功能就不再占据服务器资源,从而提高了服务器的效率。

但是把项目做分布式之后,各个模块会有一些通用的业务逻辑,它们被独自封装在了各个模块之中无法共用。这就引出了SOA架构。

SOA架构

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

工程搭建

在搭建工程中,我使用maven来管理工程,这就省去了导jar包的烦恼。

工程目录树如下:

Taotao-parent:父工程,打包方式pom,管理jar包的版本号。

|           项目中所有工程都应该继承父工程。

  |--Taotao-common:通用的工具类通用的pojo。打包方式jar

    |--Taotao-manager:服务层工程。聚合工程。Pom工程

    |--taotao-manager-dao:打包方式jar

    |--taotao-manager-pojo:打包方式jar

    |--taotao-manager-interface:打包方式jar

    |--taotao-manager-service:打包方式:war

|--taotao-manager-web:表现层工程。打包方式war

SSM网上商城项目 01的更多相关文章

  1. 【SSH网上商城项目实战27】域名空间的申请和项目的部署及发布

     转自:https://blog.csdn.net/wwww_com/article/details/54405355 前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响 ...

  2. 【SSH网上商城项目实战21】从Demo中看易宝支付的流程

         转自: https://blog.csdn.net/eson_15/article/details/51447492 这一节我们先写一个简单点的Demo来测试易宝支付的流程,熟悉这个流程后, ...

  3. 新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial

    新巴巴运动网上商城 项目 快速搭建 教程 The new babar sports online mall project quickly builds a tutorial 作者:韩梦飞沙 Auth ...

  4. 【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示

    转自:https://blog.csdn.net/eson_15/article/details/51405911 网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要 ...

  5. 【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2

    转自:https://blog.csdn.net/eson_15/article/details/51277324 今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH.这篇博文主要总 ...

  6. 【SSH网上商城项目实战30】项目总结

      转自:https://blog.csdn.net/eson_15/article/details/51479994 0. 写在前面 项目基本完成了,加上这个总结,与这个项目相关的博客也写了30篇了 ...

  7. 【SSH网上商城项目实战25】使用java email给用户发送邮件

       转自: https://blog.csdn.net/eson_15/article/details/51475046 当用户购买完商品后,我们应该向用户发送一封邮件,告诉他订单已生成之类的信息, ...

  8. 【SSH网上商城项目实战15】线程、定时器同步首页数据(类似于博客定期更新排名)

    转自:https://blog.csdn.net/eson_15/article/details/51387378 上一节我们做完了首页UI界面,但是有个问题:如果我在后台添加了一个商品,那么我必须重 ...

  9. 【SSH网上商城项目实战30】项目总结(附源码下载地址)

    项目基本完成了,加上这个总结,与这个项目相关的博客也写了30篇了,积少成多,写博客的过程是固化思路的一个过程,对自己很有用,同时也能帮助别人.顺便说个题外话,在学习的过程中肯定会遇到很多异常出现,我们 ...

随机推荐

  1. js字符串与十六进制之间的转换

    在寻找加密解密的时候看到一个方法,代码图片转换.原理为:字符可以转为16进制,与图片RGB的一个R/G/B相对应,即一个像素点可容纳3个字符(注:Canvas的RGBA,透明度A似乎不能使用,使用后, ...

  2. 解决Mysql导入大数据出现gone away的问题

    在用Mysql Yog或者PHPMyadmin等工具导入数据量大的sql文件时,会提示“gone away”,那么如何处理这个问题尼? 在Mysql对应的配置文件中my.ini文件中加入以下配置: # ...

  3. javaSe-线程2

    package com.java.chap09.sec02; public class Thread3 implements Runnable{ private int baoZi=1; privat ...

  4. COGS 1215. [Tyvj Aug11] 冗余电网

    ★   输入文件:ugrid.in   输出文件:ugrid.out   简单对比时间限制:1 s   内存限制:128 MB TYVJ八月月赛提高组第2题 测试点数目:5 测试点分值:20 --内存 ...

  5. Page_Load与sender -- PostBack是由哪个 ASP.NET控件引起 ?

    Page_Load与sender -- PostBack是由哪个 ASP.NET控件引起 ? 之前有讨论过ASP.NET Web Form "事件"里面的 "sender ...

  6. AWVS12 防止反复注册

    以管理员权限运行cmd,输入以下内容: cacls "C:\ProgramData\Acunetix\shared\license." /t /p everyone:r 如图:

  7. async/await的使用以及注意事项

    使用 async / await, 搭配 promise, 可以通过编写形似同步的代码来处理异步流程, 提高代码的简洁性和可读性. 本文介绍 async / await 的基本用法和一些注意事项. a ...

  8. a survey for RL

    • A finite set of states St summarizing the information the agent senses from the environment at eve ...

  9. mysql中的空值问题

    MySQL的查询如果需要用到空值的情况下,where后面的条件就需要注意了 MySQL中的表示空值的方法:is null 和 is not null 比如:select * from user whe ...

  10. ASP.NET WebApi 路由配置

    ASP.NET Web API路由是整个API的入口.我们访问某个资源就是通过路由映射找到对应资源的URL.通过URL来获取资源的. 对于ASP.NET Web API内部实现来讲,我们的请求最终将定 ...