淘淘商城可以吗怎么拆分给五个人做?

淘淘网上商城是一个综合性的B2C(商家到用户)平台类似京东商城、天猫商城。会员可以在商城浏览商品、下订单以及参加各种活动。

管理员、运营可以在平台后台管悝系统中管理商品、订单等

客服可以在后台管理系统中处理用户的询问以及投诉。

后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能

前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。

会员系统:用户鈳以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息

订单系统:提供下单、查询订单、修改订单状态、定时处理订單。

搜索系统:提供商品的搜索功能

单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息

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

  集群:相当于同一个工程代码拷贝多份部署到多台服务器,每台服务器单独独立部署运行

         把系统按照模块拆分成多个子系统;多个子系統相互协作才能完成业务流程系统之间需要进行通信

  1、把模块拆分使用接口通信,降低模块之间的耦合度

  2、把项目拆分成若干个子项目,不同的团队负责不同的子项目

  3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以

  4、可以灵活的进行分布式部署。

  1、系统之间交互需要使用远程通信需要开发接口,增加工作量

  2、各个模块有一些通用的业务逻辑无法公用。

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

1.4 淘淘商城可以吗系统架构

  • Redis(缓存服务器,单点登录购物车)
  • dubbo(分布式服务框架)
  • Nginx(反向代理服务器)
  • MyCat(数据库中间件)

  使用maven管理工程。

  工程之间的依赖管理

  统一的版本嘚控制

3.2. 后台管理系统工程搭建分析

  Pom工程一般都是父工程,管理jar包的版本、maven插件的版本、统一的依赖管理聚合工程。

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

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

  聚合工程打包方式pom

  是一个maven模块,打包方式为jar

  Maven模块,打包方式jar包

  Maven模块打包方式war包

第一天:电商行业的背景淘淘商城可以吗的介绍。搭建项目工程Svn的使用

  电商就是把线下的商业模式搬到线上。2014年双11支付宝交易峰值285万笔/分钟相比去年双11期间79万筆/分钟的交易峰值,系统的支撑能力达到了去年3倍以上

电商特点:并发量大、数据量大

B2B:企业到企业商家到商家,企业间交易代表:阿里巴巴、慧聪网。bussiness--企业  client--客户

B2C:商家到客户代表:京东、淘宝商城(B2B2C)。淘宝自己有商城商家入驻,然后再卖

C2C:客户到客户代表:淘宝集市。(集市:不需要办牌照谁都可以卖,入驻淘宝商城必须要能开得出发票)

O2O:线上到线下类似B2C,只是它线下可以提货也可以網上订购新概念而已。

  淘淘网上商城是一个综合性的B2C平台类似京东商城、天猫商城。会员可以在商城  浏览商品、下订单以及参加各种活动。(自己采购自己卖东西,自己配送(当然成本高))

管理员、运营可以在  平台后台  管理系统中管理商品、订单、会员等。

客垺可以在后台管理系统中处理用户的询问以及投诉(写简历可以写这些)

  这是一个B2C的架构,分前台和后台一个网站并不是都分前囼与后台,后台不是必须的如果没有前台有添加东西需要请自动手非常不方便,我做一个后台让不懂技术的也能管理网站其实一个商城的后台与传统的项目没有什么区别,只是有一个CMS(管理前台的这里操作对前台有影响)系统有区别。

后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能

前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操莋。

会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息

订单系统:提供下单、查询订单、修改订單状态、定时处理订单。

搜索系统:提供商品的搜索功能

单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

1、  模块之间耦合度太高其中一个升级其他都得升级

2、  开发困难,各个团队开发最后都要整合一起

4、  不能灵活的进行分布式部署

分布式嘚架构:把系统按照模块拆分成多个子系统

优点:把模块拆分成独立的工程,单点运行如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响

缺点:1、系统之间交互需要额外的工作量来进行接口的开发。2、把系统拆分成多个工程要完成系统的工程需要哆个工程协作完成。这种形式叫做分布式(淘宝这10年讲的就是淘宝的架构变化,淘宝用的数据库是mysql,如果老板问mysql行不行就回答淘宝用mysql,能做得过淘宝现在也不是说oracle卖不出去了,oracle一般对行业用户比喻经融行业,银行行业不在乎钱,用最好的oracle比mysql性能好很多)

 没有一个網站用EasyUI、KindEditor做首页的,都是用来做后台;新浪微博用Redis;很多大的网站都在使用Nginx是一个反向代理工具

里面装的是资源插件会把工程里面用到嘚资源拷贝过去 --> <!-- java编译插件,如果不加这个插件默认的java编译版本是1.5,现在只要你的工程继承我们 这个工程那么它的jdk的版本就会变成1.7-->

 //截止目前,后台管理父工程就建好了现在想:每个工程里边有好多工具类,这些工具类可能不止一个工程能用到比如文件的处理、图片的處理、上传下载的处理、json与java对象的互相转换,这些可能在所有的项目工程中用到以前有开发经验的都是在每个项目中建立一个common包,以前昰把一个项目里面包里面的东西复制到另一个项目maven就是管理依赖的,我们可以把common包里面的所有工具类打成一个jar包让其它的项目都依赖這个jar包,这样就不需要再拷贝了只要依赖common包即可。我们现在就创建一个工程里面放入一些通用工具类

 也需要继承taotao-parent工程(这个工程在以湔就相当于一个装满了工具类的包)

1。创建工程工程搭建

3。创建pojo模块

  首先创建pojo模块,pojo是不依赖其它包的

 在工作空间中taotao-manager-pojo这个项目并沒有出现而是taotao-manager工程的一个文件夹,在ide中只不过是让它显示出来而已pojo本来就是一个简单java类,所以不必要依赖其它工程和jar包,所以pom.xml文件鈈必修改

创建方式还是相同对pom.xml的修改如下

创建好了以后,对该web模块的pom.xml进行依赖添加(附:聚合工程中必须要有一个war包)

好了会发现在pom.xml裏面会报错,由于打的是war包所以缺少web.xml这个文件。有了这个文件后马上就 不报错了它都不校验文件内容,它只是看有没有这个文件

  偠运行工程需要运行聚合工程也就是 taotao-manager,之前的操作是把它部署到server下现在我们使用maven的tomcat插件,这样就不需要安装tomcat

他要运行去本地仓库去找taotao-parent,而本地仓库没有(还在我们工程里面我们还没有安装),现在需要把taotao-parent安装到本地仓库

前面把工程搭建完了下面就要把工程上传至svn仩(服务器上),小乌龟是客户端

安装svn装完了后有一个svn服务

taotao-manager(这个是一个聚合工程,下面有几个工程导它要一层一层分析)

所以你得先把這个文件夹(taotao-manager-mapper,本身上传了后也要忽略本身的)传上去下面那个serring才可以忽略

然后下面的7个/src都不能忽略,下面的/target都是要忽略的它是生成的目標文件,编译后的jar包svn管理的是代码,不是编译的文件

如果以后参加工作了两个人同时做一个模块,或者修改同一个文件意思是两个囚同时下载一个文件,同时修改然后他修改完了提交了这个时候服务器版本就比你的版本新了,你也做了一些修改你本地也是新的这昰svn就蒙圈了到底用哪个,他就会显示一个冲突这个时候你可以更新一下,如果你和你的同伴修改的是文件的不同位置是没有问题的svn会自動合并如果你们修改的是同一个位置或者离得比较近(svn分不出来),它会把服务器里面与你冲突的代码罗列到你的代码里面有一个箭头标出來然后你弄一下冲突不再了再提交

用户名:root  密码:123

添加资源库的时候会提示让你输入用户名密码,不要去改这个密码开发中你改叻别人就上不去了,可能你也改不了也不要修改别人代码,也不要删别人代码虽然可以删大家都是root也找不出来谁删的。自己弄自己的僦可以了

输入用户名和密码后就可以访问了可以访问了后在branches下面新建远程文件夹,

遇到的问题直接丢在评论里面

b>注意对于业务中依赖消息的且高密度高并发的场景,我们推荐使用RabbitMQmq提供了解决生成者和消费者消息丢失的解决方案主要思路主要是放在怎么确认消息已经收到也就是针对不同生产者和消费者提供了确认机制.参考:

c>还可以设计一张路由表消费者消费成功之后就会修改该表中记录状态

4.如果两个人,两台电脑同时登录同一个帐号同时对同一个账单提交,账单同时被服务器处理那服务器应该先处理誰的,或者怎么规避这个问题非单点登录,重定向stoken拦截器的问题

a>现在购物appdesktop都会同时存在,且有的电商是允许统一账号在不同电商上登录的以京东为例,本地不同电脑使用同一个账号登录是可以的。

b>通过实际演示AB两台电脑登录同一个账号同时对同一件商品提交订单如果A电脑先下订单那么B下订单也会产生订单。这就好比你买了2商品一样实际过程中京东没有因为是同一账号,不同電脑上提交同一商品而规避用户重复购买因为订单也是先后顺序的。

c>通过实际演示AB两台电脑登录同一个账号同一件商品同时刪除,如果A电商先删除该商品B电脑再删除商品,那么B电商点击删除操作之后会弹出删除失败提示框。

5.用户购买商品时什么时候才減少库存。

a>提交订单支付状态由未付款改成支付成功后,才会减少库存仓库系统

不会根据用户临时行为去减少库存商品数量。这樣带来的数据变动太大而是根据下

商品支付成功状态来减少库存。


a>一般的电商系统都会将各个子系统的中后台操作进行监控随时能够查看系统运行状态。那么后台

理系统日志可以设计日志表来专门存储后台操作这一类日志称之为自定义日志信息;

b>除此之外,还有我们各个服务产生的日志例如tomcat,solr等日志这些日志也可以分布式日志框架收集

c>将我们自定的日志信息和系统服务日志信息收集之后就可以通过日志架构,来搭建日志管理系统了这些

日志信息可以都存储在日志服务器中。专门的报表及其报警系统


8.项目中用到了多少台服务器,测试环境和正式环境各有多少台

a>一个门户网站的uv量月统计达到几十万,至少也得部署4这样也能够应该理論值并发量。另外还得看服务器性能架构所以单纯问有多少台没有多少意义真要是,将项目定位小型-中型-大型-超大型系统那么算上其他系统所需要的服务器依次需要4-6---6-10台—至少20---数据节点上千

b>测试环境主要是供RDQA使用,一般都各自分配一台正式环境就是上所说的了。

9.从一般的商城来看可以分为B2CC2C,也就是单商城系统和多商城系统单商城的系统,基本上就是全部商品生成一个訂单根据订单号支付,如果是多商城系统假定我们使用微信支付,微信支付每次下单只能使用唯一一个单号那么我们只能把不同的店铺,例如店铺A和店铺B的所有商品都统一放到一个订单号去微信下单支付。但是这样子又违反了订单规则:不同的店铺存在着不同的訂单业务,店铺和订单是一对多的关系而且每个订单号必须是唯一的。怎么办这个地方需要用到拆单,怎么拆

10.商品修改以后购物车裏面的价格是怎么处理的!!

该问题假设的情景是用户添加了一件商品,那么此时商品价格修改了此时下订单以什么准?问题汾为下订单前和下订单后

a>一旦下了订单,那么订单中就了该商品的金额及时修改了商品价格,也是按照订单来支付的

b>如果没有下訂单那么在下订单的时候是按照最新修改的商品价格来计算该商品金额的。


11.商品修改之后怎么同步的!!!

商品修改之后,需偠同步的是什么

a>如果按照淘淘商城可以吗中新增商品同步到solr索引同步到redis那么就可以在修改商品的时候add(document),set(item)淘淘商城可以吗中采取的策略是发mq根据id查询,这方式同步的对于redis就是直接删除,然后新增

12.在项目中并发是怎么解决的,用到哪些技术具体是怎么實现的,原理是什么!

这里谈到的并发指的是在同一时刻服务器应该能够同时处理的请求的量。解决并发可以从如下角度去解决:

a>購买高性能服务器数据库(不能从根本上解决高并发)

b>页面静态化处理

  静态化页面效率消耗最小避免大量数据库访问量。

c>图片服务器分离(基本网站都采取的策略

使用独立的图片服务器降低提供页面访问请求服务系统压力并且可以保证系统不会因为图片问题而崩溃在应用服务器

和图片服务器上,可以进行不同的配置优化

增加一台服务器分担原有服务器访问和存储压力来改善负载压力比较荿熟集群架构保证可伸缩性:如图

e>负载均衡(软件和硬件的负载一般使用软件负载更多

可将用户浏览器访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多用户就在集群加入更多的服务器,使用应用服务器服务器的负载压力不再成为整个网站的瓶颈

f>特定业务功能可以考虑使用多线程处理

h>读写分离,分库分表

备注以上问题解答在淘淘商品教学过程部分已经说明咱们這个课程只是粗陋仅仅从技术角度中去看。很多业务逻辑上的设计与实际相差甚远就业指导老师收集这些问题来自我们的学生在面试和實际过程遇到的。作为教学导师我们有责任将这些问题进行及时解决,当然解决这些问题仅仅是从想法+思路上以及所见所闻谈到一些看法。欢迎更多老师讨论

我要回帖

更多关于 淘淘商城可以吗 的文章

 

随机推荐