淘淘商城第1讲——你给介绍介绍,什么叫淘淘商城?
电商行业的背景介绍
近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善以及创新的动力和能力不断增强。电子商务正在与实体经济深度融合,并进入规模性发展阶段,对经济社会生活的影响不断增大,以致正成为我国经济发展的新引擎。
2016年5月17日,中国“互联网+产业”智库中国电子商务研究中心(100EC.CN)发布《2015年度中国电子商务市场数据监测报告》。报告显示,2015年,中国电子商务交易额达18.3万亿元,同比增长36.5%,增幅上升5.1个百分点。其中,B2B电商交易额13.9万亿元,同比增长39%。网络零售市场规模3.8万亿元,同比增长35.7%。
光棍节(11.11)
这个节日是马云那帮子人搞出来的,还别说,搞得很成功,似乎成为了一个全民狂欢购物的节日。不知你们有没有在光棍节这天买过东西,反正我是没有过的,对这节日不感冒。追溯过往,咱们看看5年前(即2015年)天猫在光棍节这天的交易额情况。
看完2015年天猫在光棍节这天的交易额情况,咱们不妨再看看2016年天猫在光棍节这天的交易额情况。
由此,我们可以得出如下结论:
- 电商行业很挣钱,要尽量找互联网相关的工作;
- 电商行业技术要求很高、要求高可用(啥叫高可用呢?即对服务器做若干个备份,无论怎样,系统都不能挂)、要求能存储海量数据。
电商行业的技术特点
当今中国,互联网技术迅速崛起,国家也在一直倡导互联网+的概念,所以在可以预见的未来,互联网工程师肯定会越来越吃香,工资水平也会越来越高。想在互联网行业能有一席之地,就要掌握一些相关技术。因此,首先,我们来一起了解了解电商行业的技术特点。
正是基于以上特点才让我们的互联网工程师这么吃香。
淘淘商城介绍
你如何给别人介绍淘淘商城呢?
我们要学习的淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城这类。会员可以在商城浏览商品、下订单,以及参加各种活动。管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。客服可以在后台管理系统中处理用户的询问及投诉。
提到了电商,我们就要了解一下当前的电商模式有哪些?下图列举出了当前的电商模式。
不妨再了解一下互联网金融中的一个P2P模式(Person 2 Person),即个人对个人的信贷,互联网的个人对个人的信贷平台,不过很多都爆雷了。
淘淘商城的系统功能图
下面说下淘淘商城的系统架构,如下图所示即淘淘商城的系统功能列表。
虽说在该商城的前后台中有很多功能点,但是在该项目实战中,咱们只需要完成前台所包含的门户、商品搜索、商品展示、购物车、注册&登录、订单提交等功能点以及后台所包含的商品管理、CMS(一个非常非常简单的实现)等功能点。
淘淘商城的系统功能介绍
系统架构的演变过程
传统架构
500并发
传统项目的架构图如下图所示,这种架构在并发量小的情况下是没有什么问题的,但是当并发量大的时候,这种架构瞬间就会崩溃。
我们要知道一个Tomcat服务器撑死了,最多也就是500个并发量,不过其默认并发量是200个。如上图所示,虽说这种传统架构不适用于并发量大的场景,但是还会存在哪些问题呢?
- 功能耦合度高;
- 系统维护成本高;
- 如果并发量大,无法解决高并发的问题。
1000并发
下面我来说下当并发量达到1000时的场景。我们知道,对于一个Tomcat服务器来讲,理论上能处理500的并发量,但实际它能应付的并发量有个三四百就不错了,那么当有1000人同时访问系统时,怎么解决这个高并发的问题呢?
答案是加Tomcat服务器数量(即搭建Tomcat集群),并使用nginx反向代理来做负载均衡处理,如下图所示,1个Tomcat服务器处理400的并发,3个Tomcat服务器便可以处理1000的并发。
不知,你有没想过以上这种架构会存在哪些问题呢?
- 系统无法有效进行水平扩展,其实说白了,集群是针对整个应用(war包)做集群,而不能针对某一个功能模块做集群;
- 用户存在重复登录的问题。
针对第二个问题,我们需要session共享,或者说session复制,其原理是Tomcat服务器之间每隔一段时间便会广播自己的session信息,别的Tomcat服务器看到自己有些信息跟人家不一致就向人家同步,同理该Tomcat服务器也会跟别的Tomcat服务器进行同步数据,从而达到数据一致的目的。
如果并发量真达到10000时,那么该怎么办呢?理论上来说,可以部署25台Tomcat服务器做集群来解决并发问题。但是,实际上当Tomcat集群中节点数量增加时,其服务能力是先增加后下降。所以,集群中节点数量不能太多,一般也就5个左右,这是根据实际情况的工作经验所得出来的。
为什么说,当Tomcat集群中节点数量增加时,Tomcat集群处理并发的能力会随着先增加后下降呢?上面我们说了,不同的Tomcat服务器之间要保持数据同步,就得需要session共享,接着便会以session广播的形式定时广播session,这样每个Tomcat服务器都既是广播者又是接收者。当Tomcat集群中节点数量较多时,网络带宽都被用来进行广播了,留给集群来处理并发的带宽就很少了,如此一来,其服务能力必然是很低下的。
小结
集群不能解决用户存在重复登录的问题,但至少解决了并发量大的问题。但是并发量特别大的情况下,它又不能解决了。功能耦合度高和系统维护成本高这两个问题,集群也不能解决,那怎么办呢?
分布式架构
。。。