电商网站架构案例(1)

news/2024/5/20 5:11:18/文章来源:https://blog.csdn.net/weixin_33721344/article/details/93735670

大型网站架构是一个系列文档,欢迎大家关注。本次分享主题:电商网站架构案例。从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型。除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标)。

根据实际需要,进行改造,扩展,支持千万PV,是没问题的。

本次分享大纲

  1. 电商案例的原因
  2. 电商网站需求
  3. 网站初级架构
  4. 系统容量估算
  5. 网站架构分析
  6. 网站架构优化
  7. 架构总结

电商网站案例,一共有三篇本篇主要说明网站的需求,网站初始架构,系统容量估算方法。

一、电商案例的原因

分布式大型网站,目前看主要有几类1.大型门户,比如网易,新浪等;2.SNS网站,比如校内,开心网等;3.电商网站:比如阿里巴巴,京东商城,国美在线,汽车之家等。大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等。电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的需要采用NOSQL等技术。因此,我们采用电商网站作为案例,进行分析。

二、电商网站需求

客户需求:

  • 建立一个全品类的电子商务网站(B2C),用户可以在线购买商品,可以在线支付,也可以货到付款;
  • 用户购买时可以在线与客服沟通;
  • 用户收到商品后,可以给商品打分,评价;
  • 目前有成熟的进销存系统;需要与网站对接;
  • 希望能够支持3~5年,业务的发展;
  • 预计3~5年用户数达到1000万;
  • 定期举办双11,双12,三八男人节等活动;
  • 其他的功能参考京东或国美在线等网站。

客户就是客户,不会告诉你具体要什么,只会告诉你他想要什么,我们很多时候要引导,挖掘客户的需求。好在提供了明确的参考网站。因此,下一步要进行大量的分析,结合行业,以及参考网站,给客户提供方案。

其他的略~~~~~

需求功能矩阵

需求管理传统的做法,会使用用例图或模块图(需求列表)进行需求的描述。这样做常常忽视掉一个很重要的需求(非功能需求),因此推荐大家使用需求功能矩阵,进行需求描述。

本电商网站的需求矩阵如下:

 

网站需求

功能需求

非功能需求

全品类的电子商务网站

分类管理,商品管理

方便进行多品类管理(灵活性)

网站访问速度要快(高性能)

图片存储的要求(海量小图片)

用户可以在线购买商品

会员管理,购物车,结算功能

良好购物体验(可用性,性能)

在线支付或货到付款

多种在线支付方式

支付过程要安全,数据加密(安全性)

多种支付接口灵活切换(灵活性,扩展性)

可以在线与客服沟通

在线客服功能

可靠性:即时通讯

商品打分评价

商品评论

 

目前有成熟的进销存系统

对接进销存

属于约束条件

对接时要考虑数据一致性,鲁棒性

支持3~5年,业务的发展

 

属于约束条件

伸缩性,可扩展性

3~5年用户数达到1000万

 

约束条件

举办双11,双12,三八男人节等活动

活动管理,秒杀

突增访问流量(可伸缩)

实时性要求(高性能)

参考京东或国美在线

 

参考条件

 

 

 

 

以上是对电商网站需求的简单举例,目的是说明(1)需求分析的时候,要全面,大型分布式系统重点考虑非功能需求;(2)描述一个简单的电商需求场景,使大家对下一步的分析设计有个依据。

 

三、网站初级架构

一般网站,刚开始的做法,是三台服务器,一台部署应用,一台部署数据库,一台部署NFS文件系统。

这是前几年比较传统的做法,之前见到一个网站10万多会员,垂直服装设计门户,N多图片。使用了一台服务器部署了应用,数据库以及图片存储。出现了很多性能问题。

如下图:

 

但是,目前主流的网站架构已经发生了翻天覆地的变化。一般都会采用集群的方式,进行高可用设计。至少是下面这个样子。

 

(1)       使用集群对应用服务器进行冗余,实现高可用;(负载均衡设备可与应用一块部署)

使用数据库主备模式,实现数据备份和高可用;

四、系统容量预估

预估步骤:

(1)       注册用户数-日均UV量-每日的PV量-每天的并发量;

(2)       峰值预估:平常量的2~3倍;

(3)       根据并发量(并发,事务数),存储容量计算系统容量。

 

客户需求:3~5年用户数达到1000万注册用户;

 

每秒并发数预估:

(1)       每天的UV为200万(二八原则);

(2)       每日每天点击浏览30次;

(3)       PV量:200*30=6000万;

(4)       集中访问量:24*0.2=4.8小时会有6000万*0.8=4800万(二八原则);

(5)       每分并发量:4.8*60=288分钟,每分钟访问4800/288=16.7万(约等于);

(6)       每秒并发量:16.7万/60=2780(约等于);

(7)       假设:高峰期为平常值的三倍,则每秒的并发数可以达到8340次。

(8)       1毫秒=1.3次访问;

 

没好好学数学后悔了吧?!(不知道以上算是否有错误,呵呵~~)

 

服务器预估:(以tomcat服务器举例)

(1)       按一台web服务器,支持每秒300个并发计算。平常需要10台服务器(约等于);[tomcat默认配置是150]

(2)       高峰期:需要30台服务器;

 

容量预估:70/90原则

系统CPU一般维持在70%左右的水平,高峰期达到90%的水平,是不浪费资源,并比较稳定的。内存,IO类似。

 

以上预估仅供参考,因为服务器配置,业务逻辑复杂度等都有影响。在此CPU,硬盘,网络等不再进行评估。

 

转载于:https://www.cnblogs.com/qdlixuecai/p/5534355.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_776561.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百度seo推送工具php代码,织梦程序php发文章主动推送到百度(超强SEO必备工具)...

百度站长平台php主动推送示例太过简单,而且需要手动写入链接,于是我就研究了一下怎么让主动推送操作起来更便捷,下面就以织梦系统为例,附上完整的php推送代码,实现以下功能:1、自动获取当天发布的所有文章链…

使用mvnrepository.com网站,查询maven工程中的jar包依赖

在搭建maven工程时,最烦心的就是不知道jar包的依赖,总是会少包,然后就找了一些资料,感觉http://mvnrepository.com/ 这个maven的jar包依赖搜索服务真的很好。以搭建hibernate工程为例,用这个网站查询一下搭建hibernat…

前嗅ForeSpider教程:同一个网站中从另一页面采集数据

大家在采集过程中有可能需要同时采集同一个网站不同页面的信息,今天小编为大家介绍一下从同一个网站另一个页面采集数据的具体操作流程。 第一步:新建任务①点击左上角“加号”新建任务,如图1: ②在弹窗里填写采集地址&#xff0c…

html自动适配手机,PC网站自动适配手机网页的方法技巧

自适应网页设计,对于未曾接触过此类设计的人来说,可能觉得是十分难的事情。但是,如果你熟悉html,那么自适应设计其实只不过是在原PC端的html代码上做一些改动而已,并非一门新的技术语言。自适应网页设计代码需要做哪些…

大型网站架构演进(9)服务化

随着业务越拆越小,而且各个应用又是独立部署和维护的,这样的架构存在以下问题: 1,数据库连接数的问题,如果各个应用都连接现有数据库,当使用集群和并发访问量大的情形下,就会导致数据库连接数超…

PHP | 别家网站都有的登录功能,你的网站也可以有!

如果说一个网站是一个独立的王国,那登录功能就相当于这个【王国】的大门。进出往来的人必须要通过这道【门】才能进出这个【王国】,这样才能有效的达到对人流量和用户的有效监管,也可以进一步了解每个用户的喜好,并合理定制个性化…

怎么样做好网站关键词的选择与部署?

要想把网站运营做好,首先做好网站优化是第一步,而网站优化的第一步就是要做好网站关键字的优选择、部署与优化。网站关键字就是网站每个页面所表达内容里面,最关键字的字眼(其实最合理的叫法应该是网站关键词)。 如何选…

[源码和文档分享]基于JSP的MVC框架实现的图书推荐系统展示平台网站

推荐系统是目前互联网中最常见的一种智能产品形式。由于网络中信息量的快速增长以及图书出版行业出版量的攀升,人们需要一种办法,来解决信息过载的问题。此外,用户访问网络是为了获取信息,但并不是所有的访问都有很强的目的性&…

史上最全数据集网站汇总

如果用一个句子总结学习数据科学的本质,那就是: 学习数据科学的最佳方法就是应用数据科学。 如果你是一个初学者,你每完成一个新项目后自身能力都会有极大的提高,如果你是一个有经验的数据科学专家,你已经知道这里所蕴…

python实现网站测速软件_Python爬取招聘网站数据,实现可视化交互大屏,让你一目了然...

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者:黄伟呢项目背景随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对…

Flask项目之手机端租房网站的实战开发(六)

说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/85858348 目录 一丶补充 二丶短信验证码前端编写 三丶…

ASP.NET Core 2.0 使用支付宝PC网站支付

前言 最近在使用ASP.NET Core来进行开发,刚好有个接入支付宝支付的需求,百度了一下没找到相关的资料,看了官方的SDK以及Demo都还是.NET Framework的,所以就先根据官方SDK的源码,用.NET Standard 2.0 实现了支付宝服务端…

python 爬取图片、没有后缀名_初学Python-只需4步,爬取网站图片(附py文件)

很多人学习Python很重要的一个原因是,可以很简单的把一个网站的数据爬下来。尤其是做我们这一行,产品经理,电商行业。领导:弄一个买卖游戏周边商品的交易APP出来。我:行,那我们卖什么呀?领导&am…

python 实现爬取网站下所有URL

python3 实现爬取网站下所有URL获取首页元素信息:首页的URL链接获取:遍历第一次返回的结果:递归循环遍历:全部代码如下:小结:python3.6 requests && bs4 采用递归方法,最终爬取网站所有…

企业网站托管外包公司有哪几种形式?

所有的企业网络营销都离不开网站,网站是基础也是核心。试问一句如果企业没有网站维护人员,那么企业选择网站托管公司网站托管公司又包括哪些内容呢?1网站策划任何一个企业的网络营销工作都是从网站策划开始的,前期网站策划的好坏直接影响着后…

自动化测试 (一) 12306火车票网站自动登录工具

还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗。 今天我们就开发一个12306网站自动登录软件。 帮助您轻松订票 通过前两篇博客Fiddler教程和HTTP协议详解,我们了解了Web的原理. Web的原理就是,浏览器发送一个Request给Web服务器…

如何做一个大数据seo人员

作为流量运营者或者SEO人员,对于所从事行业领域的认识往往建立在一种直觉之上,我们很难对一个行业有一个全面的了解,这个行业领域有多宽,流量聚焦在哪里,那些是用户最关心的问题? 有的时候很难准确的把握&a…

7年测试工程师经验,浅谈一下如何测试一个web网站?

最近有工作了一年多的朋友在问我,一个web页面到底怎么测试?我的第一感觉是震惊,天天做web测试,咋还不知道怎么测试呢?再仔细一想,可能是我们每天忙于测试而忽略测试导致的,毕竟当局者迷&#xf…

dz论坛Discuz_X3.4最新网站漏洞

近期我们sinesafe安全部门审计discuz最新版的时候发现配置文件写入导致代码执行的问题。cms安装的时候一般会分为几个步骤去进行,其中有对配置文件config进行写入的步骤,当写入的时候未严格限制传入的参数就存在代码执行问题。 源码信息:Disc…

软件测试:测试一个网站

一、软件测试的原则 1、软件测试应尽早执行,并贯穿于整个软件生命周期 2、软件测试应追溯需求 3、测试应由第三方来构造 4、穷举测试是不可能的,要遵循 Good-enough 原则 5、必须确定预期输出(或结果) 6、必须彻底检查每个测试结果 7、…