技术新
技术范围广
分布式
高并发、集群、负载均衡、高可用
海量数据
业务复杂
系统安全
淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。
管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。
客服可以在后台管理系统中处理用户的询问以及投诉。
电商模式:
B2B:商家到商家。阿里巴巴,慧聪网、铭万网。
B2C:商家到用户。京东。
C2C:用户到用户。淘宝。
B2B2C:商家到商家到用户。天猫。
O2O:线上到线下。百度外卖、美团、饿了么。
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
搜索系统:提供商品的搜索功能。
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
需要20台服务器做tomcat集群。当tomcat集群中节点数量增加,服务能力先增加后下降。
所以集群中节点数量不能太多,一般也就5个左右
需要按照功能点把系统拆分,拆分成独立的功能。单独为某一个节点添加服务器。需要系统之间配合才能完成整个业务逻辑。叫做分布式。
分布式架构:多个子系统相互协作才能完成业务流程。系统之间需要进行通信。
集群:同一个工程部署到多台服务器上。
分布式架构:
把系统按照模块拆分成多个子系统。
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署。
缺点:
1、系统之间交互需要使用远程通信,接口开发增加工作量。
2、各个模块有一些通用的业务逻辑无法公用。
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
taotao-common4.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
通用的工具类、通用的pojo。打包方式jar。需要继承父工程。
```] ## Taotao-manager 聚合工程。打包方式pom。  ## Pom文件 ```java 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-pojo 是一个maven模块,打包方式jar    ## 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-dao Maven模块,打包方式jar。   ```java 4.0.0 com.taotao taotao-manager 0.0.1-SNAPSHOT taotao-manager-pojo ```] ## Taotao-manager-interface  ```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-service 打包方式**war包**。  ```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-web 表现层,打包方式war。  ```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工程。 需要在taotao-manager 的pom工程中,配置tomcat插件。启动的端口号,和工程名称。 在taotao-manager的pom文件中添加如下配置: ```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 ```] 启动tomcat插件: **clean tomcat7:run** *先把taotao-parent、taotao-common安装到本地仓库。然后再启动。* ## Svn的使用 **服务端** 服务端使用VisualSVN,一般一个项目组只有一个svn,并不是每个开发者都需要安装服务端。 [VisualSVN](https://download.csdn.net/download/qq_17023977/12543978)  ## 客户端 客户端使用Eclipse的svn插件,在提供的Eclipse中已经安装好,直接使用即可 https://{svn服务ip地址}/svn/{仓库名称}/ 用户名:user 密码:user https://PC/svn/taotao/trunk **向SVN上传代码.avi** 1:切换到同步视图的时候并没有上传代码只是创建了一个文件夹目录    先提交pom.xml,再忽略.classpath,.project 2:忽略文件可以统一处理  **从svn导入工程.avi**   org.apache.tomcat.maven tomcat7-maven-plugin 8080 /



