JAVAEE——淘淘商城第一天:电商行业的背景和技术特点,商城的介绍、技术的选型、系统架构和工程搭建 1. 学习计划 2. 电商行业背景介绍 3. 淘淘商城介绍 4. 淘淘商城系统功能 5. 系统架构 6. 技术选型和开发环境 7. 工程搭建
1、电商行业的背景。
2、电商行业的技术特点
3、商城的介绍
a) 常用的名词介绍
b) 系统功能介绍
4、淘淘商城的系统架构
a) 传统架构
b) 分布式架构
c) 基于服务的架构
d) 淘淘商城的架构
5、技术的选型
6、工程搭建-后台工程
a) 使用maven搭建工程
b) 使用maven的tomcat插件启动工程
7、SVN的使用
2. 电商行业背景介绍
近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。
2016年5月17日,中国“互联网+产业”智库中国电子商务研究中心(100EC.CN)发布《2015年度中国电子商务市场数据监测报告》。报告显示,2015年,中国电子商务交易额达18.3万亿元,同比增长36.5%,增幅上升5.1个百分点。其中,B2B电商交易额13.9万亿元,同比增长39%。网络零售市场规模3.8万亿元,同比增长35.7%。
2.1. 11.11
2016年的双十一
结论:
1、电商行业很挣钱,找互联网相关的工作。
2、电商行业技术要求很高、高可用、海量数据的存储。
2.2. 电商行业技术特点
- 技术新
- 技术范围广
- 分布式
- 高并发、集群、负载均衡、高可用
- 海量数据
- 业务复杂
- 系统安全
分布式:一件事情,拆开来做
集群:同样的事情,大家一起做
1024b=1kb 1024kb=1mb 1024mb=1gb 1024gb=1tb 1024tb=1pb 。
3. 淘淘商城介绍
淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。
管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。
客服可以在后台管理系统中处理用户的询问以及投诉。
其他的一些名词解释:
(IT)传统行业:OA,CRM,ERP,医药采购管理系统,银行系统,财务软件
(IT)互联网行业:电商(淘宝、京东、淘淘),搜索(百度、谷歌),社交(人 人网,天涯论坛),新浪微博,门户网站(新浪,搜狐),12306.cn
电商模式:
B2B:商家到商家。(阿里巴巴,慧聪网、铭万网).
B2C:商家到用户。(以前的京东)。
C2C:用户到用户。(淘宝)。
B2B2C:商家到商家到用户。(天猫、现在的京东)。
O2O:线上到线下。百度外卖、美团、饿了么。(online to offline)。
互联网金融
P2P:Person 2 Person,个人对个人的信贷,互联网的个人对个人的信贷平台
4. 淘淘商城系统功能
4.1. 系统功能图
4.2. 系统功能介绍
后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
搜索系统:提供商品的搜索功能。
单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。
5. 系统架构
5.1. 传统架构
5.1.1. 500并发
如图:5.1
存在的问题:
1、功能耦合度高
2、系统维护成本高
3、如果并发量大,无法解决高并发的问题
5.1.2. 1000并发
存在的问题:
1、系统无法有效进行水平扩展(集群不能针对功能模块)图5.1
2、用户存在重复登录的问题
针对第二点:需要session共享,是以session广播的形式,比较消耗资源,宽带。
如果要达到10000并发
需要20台服务器做tomcat集群。当tomcat集群中节点数量增加,服务能力先增加后下降。
所以集群中节点数量不能太多,一般也就5个左右。
5.2. 分布式架构(10000并发)
需要按照功能点把系统拆分,拆分成独立的功能工程,可以单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑这就叫做分布式。
集群:相当于同一个工程代码拷贝多份部署到多台服务器,每台服务器单独独立部署运行。
分布式架构:
把系统按照模块拆分成多个子系统;多个子系统相互协作才能完成业务流程系统之间需要进行通信。
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署。
缺点:
1、系统之间交互需要使用远程通信,需要开发接口,增加工作量。
2、各个模块有一些通用的业务逻辑无法公用。
5.2.1.
基于SOA的架构
SOA:Service Oriented Architecture面向服务的架构。也就是把工程都拆分成服务层工程、表现层工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。工程都可以独立部署。
5.3. 淘淘商城系统架构
6. 技术选型和开发环境
6.1. 技术选型
- Spring、SpringMVC、Mybatis
- JSP、JSTL、jQuery、EasyUI、KindEditor(富文本编辑器)
- Redis(缓存服务器,单点登录,购物车)
- Solr(搜索)
- dubbo(分布式服务框架)
- HttpClient(HTTP 协议访问客户端)
- ActiveMQ(消息队列)
- Quartz(定时任务)
- FastDFS(图片服务器)
- FreeMarker(网页静态化)
- Nginx(反向代理服务器)
- MyCat(数据库中间件)
- 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(版本管理)
6.2. 开发工具版本和环境
7. 工程搭建
7.1. 使用maven的好处
使用maven管理工程。
Jar包的管理
工程之间的依赖管理
自动打包
统一的版本的控制。
7.2.
后台管理系统工程搭建分析
Maven的常见打包方式:jar、war、pom
Pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理。聚合工程。
taotao-parent:父工程,打包方式pom,管理jar包的版本号。
| 项目中所有工程都应该继承父工程。
|--taotao-common:通用的工具类通用的pojo,util。打包方式jar
|--taotao-manager:服务层工程。聚合工程。Pom工程
|--taotao-manager-dao:打包方式jar
|--taotao-manager-pojo:打包方式jar
|--taotao-manager-interface:打包方式jar
|--taotao-manager-service:打包方式:war (为了发布服务的方便)
|--taotao-manager-web:表现层工程。打包方式war
7.3. 工程搭建
7.3.1. taotao-parent
Pom工程。
开发环境:eclipse mars2 (32)
Maven:3.3.9
本地仓库:默认位置在~/.m2/repository
Eclipse不需要配置,只需要把本地仓库放到当前用户目录下的.m2下。
jdk 1.7 (32位)
注意:本地仓库使用此已经提供的,将以下的文件解压后,放到电脑对应的.m2目录。
在