作者:木马 | 来源:互联网 | 2023-05-19 16:17
电商项目简介
零、目录
- 电商项目特点
- 电商项目技术难点
- 电商项目简介
- 开发工具
- 电商项目架构
- 开发环境
一、电商项目特点
- 分布式
- 数十台服务器,甚至百台、千台、万台,包括:Nigix负载均衡集群、Tomcat集群、Redis缓存集群、RabbitMQ消息队列集群、MySQL主从、Solr全文检索集群等。
- 分布式集群
- 分布式:单个任务拆分成众多的子任务,单个实例完成其中之一,众多实例合作完成一个任务的过程;
- 集群:从任务为单位的角度区分,集群属于单个实例完成单个任务,集中单例群体完成整体功能的过程
- 高并发
- 要面对高并发用户,大流量访问。Google日均PV数35亿,日均IP访问数3亿。腾讯QQ最大在线人数4亿。淘宝2015年“双十一”,活动交易额975亿,2016年第一天交易额超过千亿,活动开始第一分钟独立访问用户达1000万。
- 高可用
- 系统7X24小时不间断运行。大型互联网网站宕机事件通常会成为新闻焦点。如2010年百度域名被黑客劫持导致不能访问,带来不可估量的经济损失。
- 海量数据
- 存储、管理海量数据,需要使用大量服务器。facebook每周上传的照片数量近10亿,百度收录的网页数量数百亿,Google有近百万台服务器为全球用户提供服务。
二、 电商项目技术难点
三、电商项目简介
- 网上商城是一个综合性的B2C(Busines-to-custmer)平台,<预言>C2C类似京东商城、天猫商城。会员可以在商城浏览商品、添加商品到购物车、下订单,以及参加各种活动。商家可以入驻京淘商城,在该平台上开店出售自己的商品,并且得到京淘商城提供的可靠服务。管理员、运营人员可以在后台管理系统中管理商品、订单、会员等。客服人员可以在后台管理系统中处理用户的询问和投诉。
四 、 开发工具
Windows7/CentOS 6.5/VMworkstation10
Power Designer 15.6
Eclipse neon
JDK 1.7以上 必须。一些高级应用需要高版本支持1.8
Maven 3.5
Tomcat 7.0.59
Nginx 1.9.9
Redis 3.2.11
MySQL 5.5.27 + Amoeba 3.0.4
五、电商项目架构
- 传统项目是如何开发一个项目
- 不分功能 , 不分模块的全部在一个工程中完成
- 优点:结构简单,开发过程不需要考虑分布式的难题,不需要考虑jar包的依赖管理
- 缺点:高可用能力低,一旦某一个模块失效,整体失效,团队开发的配合难度大
- 电商系统中 , 引入多个工程系统 , 分为两部分:
- 业务系统
- 前台系统:访问首页 , 登录连接 , 注册链接 , 购物车连接 , 订单连接
- 后台系统:商品增删改查(web前端技术EasyUI KindEditor)
- 购物车系统:选择商品 , 数量 , 支付金额
- 订单系统:从购物车发起的连接,生成订单,收货人信息,付款方式,商品内容
- 登录系统:权限管理,用户信息的获取;
- 搜索系统:商品搜索
- 支撑系统
- 父工程:管理所有依赖的jar包(maven继承);本质就是准备好pom文件
- 工具工程:管理所有工程的公用工具类(maven依赖);代码
- 以上每一个工程系统都是一个单独的maven工程
- 如何按团队划分功能开发?
- 一个大型项目,业务划分成多个子系统的过程就是所谓的拆分过程中的业务纵向拆分
- 每一个子业务系统当功能非常复杂,结构烦琐时,也很难由同一个团队或者小组单独开发完成,引出二级拆分(横向拆分);本质就是三层架构的拆分工作(持久层(pojo,mapper接口,mapper.xml),业务层(service),控制层(controller))
- 注意:parent和common是没有横向拆分的;主要负责提供资源
六、开发环境
- 在eclipse中配置Maven
- maven工程的继承
- 情景分析
- 在一个庞大的项目中,由于业务拆分给了多个工程团队开发不同的模块,每个团队有管理自己开发工程的权利;
- 导致一个问题,每个工程都有不同的自己依赖的jar包;如果各自为政;
- 例如mybatis包,jar包有不同版本,后台系统需要;登录系统;购物车系统,订单系统
- 版本不一致导致,当系统间需要相互调用和交互的时候,有可能会造成代码冲突的bug;这种bug很致命,也很难处理;
- 所以我们引入maven工程的继承特点来完成父类工程的创建,将所有的jar包管理交给parent
- 搭建父类maven工程和普通maven工程区别只有一个pom文件中的类型不是jar也不是war而是pom