栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

黑马淘淘商城第一天 电商行业特点淘淘框架演变框架搭建svn使用

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

黑马淘淘商城第一天  电商行业特点淘淘框架演变框架搭建svn使用

电商行业技术特点

 技术新
 技术范围广
 分布式
 高并发、集群、负载均衡、高可用
 海量数据
 业务复杂
 系统安全

淘淘商城介绍

淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。
管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。
客服可以在后台管理系统中处理用户的询问以及投诉。

电商模式:
B2B:商家到商家。阿里巴巴,慧聪网、铭万网。
B2C:商家到用户。京东。
C2C:用户到用户。淘宝。
B2B2C:商家到商家到用户。天猫。
O2O:线上到线下。百度外卖、美团、饿了么。

淘淘商城架构


后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
搜索系统:提供商品的搜索功能。
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

系统架构 传统架构



需要20台服务器做tomcat集群。当tomcat集群中节点数量增加,服务能力先增加后下降。
所以集群中节点数量不能太多,一般也就5个左右

10000并发

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


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

缺点:
1、系统之间交互需要使用远程通信,接口开发增加工作量。
2、各个模块有一些通用的业务逻辑无法公用。

基于soa的架构

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

1:服务共享
2:系统和服务实现了解耦
3:部署更灵活(压力大的一般都是服务,哪块有压力,动态扩容,无须共享session,完全无状态)
缺点:运营成本高

淘淘商城系统架构

开发环境说明

A: IDE和maven工具安装
注意:统一版本,eclipse –mars2 64位、jdk1.7 64位、maven3.3.9且共用同一个本地仓库(避免远程下载jar包)
eclipse –mars2 64位
jdk1.7 64位
maven3.1.1
建议:将开发工具安装到同一个目录下,统一管理,文件夹命名不带中文
实施步骤
1:安装jdk 配置环境变量(目的,为了能够启动eclipse)
配置JAVA_HOME和path


2:解压eclipse ,运行eclipse
3:指定工作空间(taotao-workspace)
4:在eclipse中指定编译版本

5:选择运行环境为本地jdk



5:安装本地maven
解压即可
6:eclipse关联本地maven

7:修改本地maven的settings.xml文件

在本地maven的conf文件夹下面找到settings.xml


在settings.xml配置文件中修改中央仓库地址为阿里镜像仓库地址


  
     
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central        
    
    
  


9:修改eclipse字符集

工程搭建

使用maven的好处
使用maven管理工程。
Jar包的管理
工程之间的依赖管理
自动打包

后台工程搭建分析
Maven的常见打包方式:jar、war、pom
Pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理。聚合工程。

Taotao-parent:父工程,打包方式pom,管理jar包的版本号。
| 项目中所有工程都应该继承父工程。
|–Taotao-comm:通用的工具类通用的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

工程搭建

Taotao-parent


Pom文件

	4.0.0
	com.taotao
	taotao-parent
	0.0.1-SNAPSHOT
	pom
	
	
		4.12
		4.2.4.RELEASE
		3.2.8
		1.2.2
		1.2.15
		5.1.32
		1.6.4
		2.4.2
		1.0.9
		4.3.5
		1.2
		2.5
		2.0
		2.5
		3.3.2
		1.3.2
		3.3
		3.4.2-fix
		0.9.1
		1.3.1
		2.7.2
		4.10.3
		2.5.3
		3.4.7
		0.1
		5.11.2
		2.3.23
		2.2.2
	
	
		
			
			
				joda-time
				joda-time
				${joda-time.version}
			
			
			
				org.apache.commons
				commons-lang3
				${commons-lang3.version}
			
			
				org.apache.commons
				commons-io
				${commons-io.version}
			
			
				commons-net
				commons-net
				${commons-net.version}
			
			
			
				com.fasterxml.jackson.core
				jackson-databind
				${jackson.version}
			
			
			
				org.apache.httpcomponents
				httpclient
				${httpclient.version}
			
			
			
				org.quartz-scheduler
				quartz
				${quartz.version}
			
			
			
				junit
				junit
				${junit.version}
				test
			
			
			
				org.slf4j
				slf4j-log4j12
				${slf4j.version}
			
			
			
				org.mybatis
				mybatis
				${mybatis.version}
			
			
				org.mybatis
				mybatis-spring
				${mybatis.spring.version}
			
			
				com.github.miemiedev
				mybatis-paginator
				${mybatis.paginator.version}
			
			
				com.github.pagehelper
				pagehelper
				${pagehelper.version}
			
			
			
				mysql
				mysql-connector-java
				${mysql.version}
			
			
			
				com.alibaba
				druid
				${druid.version}
			
			
			
				org.springframework
				spring-context
				${spring.version}
			
			
				org.springframework
				spring-beans
				${spring.version}
			
			
				org.springframework
				spring-webmvc
				${spring.version}
			
			
				org.springframework
				spring-jdbc
				${spring.version}
			
			
				org.springframework
				spring-aspects
				${spring.version}
			
			
				org.springframework
				spring-jms
				${spring.version}
			
			
				org.springframework
				spring-context-support
				${spring.version}
			
			
			
				jstl
				jstl
				${jstl.version}
			
			
				javax.servlet
				servlet-api
				${servlet-api.version}
				provided
			
			
				javax.servlet
				jsp-api
				${jsp-api.version}
				provided
			
			
			
				commons-fileupload
				commons-fileupload
				${commons-fileupload.version}
			
			
			
				redis.clients
				jedis
				${jedis.version}
			
			
			
				org.apache.solr
				solr-solrj
				${solrj.version}
			
			
			
				com.alibaba
				dubbo
				${dubbo.version}
			
			
				org.apache.zookeeper
				zookeeper
				${zookeeper.version}
			
			
				com.github.sgroschupf
				zkclient
				${zkclient.version}
			
			
				org.apache.activemq
				activemq-all
				${activemq.version}
			
			
				org.freemarker
				freemarker
				${freemarker.version}
			

		
	

	
		${project.artifactId}
		
			
			
				org.apache.maven.plugins
				maven-resources-plugin
				2.7
				
					UTF-8
				
			
			
			
				org.apache.maven.plugins
				maven-compiler-plugin
				3.2
				
					1.7
					1.7
					UTF-8
				
			
		
		
			
				
				
					org.apache.tomcat.maven
					tomcat7-maven-plugin
					2.2
				
			
		
	


taotao-common

通用的工具类、通用的pojo。打包方式jar。需要继承父工程。

Pom文件

	4.0.0
	
		com.taotao
		taotao-parent
		0.0.1-SNAPSHOT
	
	com.taotao
	taotao-common
	0.0.1-SNAPSHOT
	
	
		
		
			joda-time
			joda-time
		
		
		
			org.apache.commons
			commons-lang3
		
		
			org.apache.commons
			commons-io
		
		
			commons-net
			commons-net
		
		
		
			com.fasterxml.jackson.core
			jackson-databind
		
		
		
			org.apache.httpcomponents
			httpclient
		
		
		
			org.quartz-scheduler
			quartz
		
		
		
			junit
			junit
		
		
		
			org.slf4j
			slf4j-log4j12
		
	


```]

## Taotao-manager

聚合工程。打包方式pom。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622155749112.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)

## Pom文件

```java

	4.0.0
	
		com.taotao
		taotao-parent
		0.0.1-SNAPSHOT
	
	com.taotao
	taotao-manager
	0.0.1-SNAPSHOT
	pom
	
		
			com.taotao
			taotao-common
			0.0.1-SNAPSHOT
		
	


```]

## Taotao-manager-pojo
是一个maven模块,打包方式jar
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622160920373.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622161000770.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622161034849.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622161110306.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)

## Pom文件

```java

	4.0.0
	
		com.taotao
		taotao-manager
		0.0.1-SNAPSHOT
	
	taotao-manager-pojo



```]

## Taotao-manager-dao
Maven模块,打包方式jar。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622193641232.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622193703606.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
```java

	4.0.0
	
		com.taotao
		taotao-manager
		0.0.1-SNAPSHOT
	
	taotao-manager-dao
	
	

			com.taotao
			taotao-manager-pojo
			0.0.1-SNAPSHOT
		
		
		
			org.mybatis
			mybatis
		
		
			org.mybatis
			mybatis-spring
		
		
			com.github.miemiedev
			mybatis-paginator
		
		
			com.github.pagehelper
			pagehelper
		
		
		
			mysql
			mysql-connector-java
		
		
		
			com.alibaba
			druid
		
	




```]

## Taotao-manager-interface
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622193809216.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
```java

	4.0.0
	
		com.taotao
		taotao-manager
		0.0.1-SNAPSHOT
	
	taotao-manager-interface
	
		
			com.taotao
			taotao-manager-pojo
			0.0.1-SNAPSHOT
		
	



```]

## Taotao-manager-service
打包方式**war包**。

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622194316519.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
```java

	4.0.0
	
		com.taotao
		taotao-manager
		0.0.1-SNAPSHOT
	
	taotao-manager-service
	war
	
		
			com.taotao
			taotao-manager-dao
			0.0.1-SNAPSHOT
		
		
		
		
			org.springframework
			spring-context
		
		
			org.springframework
			spring-beans
		
		
			org.springframework
			spring-webmvc
		
		
			org.springframework
			spring-jdbc
		
		
			org.springframework
			spring-aspects
		
		
			org.springframework
			spring-jms
		
		
			org.springframework
			spring-context-support
		
	



```]

## Taotao-manager-web
表现层,打包方式war。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622194451326.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
```java

	4.0.0
	
		com.taotao
		taotao-parent
		0.0.1-SNAPSHOT
	
	taotao-manager-web
	war
	
		
		
			jstl
			jstl
		
		
			javax.servlet
			servlet-api
			provided
		
		
			javax.servlet
			jsp-api
			provided
		
	




```]

## 启动工程
启动taotao-manager工程。
需要在taotao-manager 的pom工程中,配置tomcat插件。启动的端口号,和工程名称。
在taotao-manager的pom文件中添加如下配置:
```java

	
		
			
				org.apache.tomcat.maven
				tomcat7-maven-plugin
				
					8080
					/
				
			
		
	


```]
启动tomcat插件:

**clean tomcat7:run**

*先把taotao-parent、taotao-common安装到本地仓库。然后再启动。*

## Svn的使用
**服务端**
服务端使用VisualSVN,一般一个项目组只有一个svn,并不是每个开发者都需要安装服务端。
[VisualSVN](https://download.csdn.net/download/qq_17023977/12543978)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622194903757.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)

## 客户端

客户端使用Eclipse的svn插件,在提供的Eclipse中已经安装好,直接使用即可
https://{svn服务ip地址}/svn/{仓库名称}/
用户名:user
密码:user

https://PC/svn/taotao/trunk

**向SVN上传代码.avi**

1:切换到同步视图的时候并没有上传代码只是创建了一个文件夹目录	
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622202639575.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622203116356.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622203203344.png)
先提交pom.xml,再忽略.classpath,.project
2:忽略文件可以统一处理
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020062220340225.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
**从svn导入工程.avi**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622204510161.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200622204645954.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE3MDIzOTc3,size_16,color_FFFFFF,t_70)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/912815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号