大型网站架构系列:电商网站架构案例(1)

news/2024/5/20 12:06:23/文章来源:https://blog.csdn.net/weixin_33714884/article/details/85921900

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

根据实际需要,进行改造,扩展,支持千万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,硬盘,网络等不再进行评估。

大型网站架构交流(架构之家)QQ群一466097527(已满)群二464527023 (已满)群三612849302(可加);微信公众号:itfly8。以架构为核心的兴趣群,专注大型分布式网站架构,大数据,架构模式,设计模式。技术分享,经典电子书分享,欢迎加入!

 参考:

http://www.cnblogs.com/itfly8/p/5006197.html

 

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

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

相关文章

电影网站 php asp,moviewebsite 这是一个电影网站的源码,基于asp技术实现.仅供交流学习 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...

文件名称: moviewebsite下载收藏√ [5 4 3 2 1 ]开发工具: ASP文件大小: 7432 KB上传时间: 2013-07-11下载次数: 0提 供 者: 李东纬详细说明:这是一个电影网站的源码,基于asp技术实现.仅供交流学习-This is a movie website source code, based asp…

linux 分析系统配置,Services - CentOS 7系统配置上的变化解析_Linux教程_Linux公社-Linux系统门户网站...

二、Services[rootlocalhost ~]# chkconfigNote: This output shows SysV services only and does not include nativesystemd services. SysV configuration data might be overridden by nativesystemd configuration.If you want to list systemd services use systemctl li…

你所不知道的良心网站第一弹

目录前言站长工具(tool.chinaz.com)多吉搜索(www.dogedoge.com)蜜柑计划(mikanani.me)果核剥壳(www.ghpym.com)中国色(zhongguose.com)表情包(www…

你所不知道的良心网站第二弹

目录前言极简简历(polebrief.com)Logo设计(uugai.com)pdf转换 (smallpdf.com)幕布脑图(mubu.com)ProcessOn脑图(processon.com)在线ps(uupoop.com)模板码&…

你所不知道的良心网站第三弹

目录前言1、唧唧down(client.jijidown.com)2、BiliOB(biliob.com)3、包图网(ibaotu.com)4、5sing (5sing.kugou.com)5、今日热榜 (tophub.today)6、网站大全&…

Tomcat7多网站、多端口

一、说明 1.appBase为项目的绝对路径,docBase为WEB目录 2.Host下的Alias是一个域名别称,可以配置多个域名。 3.Host里如果没有Context节点,则非webapps文件夹下,直接不用虚拟目录访问,会抛404找不到文件的错误&#xf…

使用 TS Web Access 在网站上访问该程序的链接

1.1.1 使用 TS Web Access 在网站上访问该程序的链接。 能够使用TS Web访问终端服务器上的程序,客户端必须是: Windows Server 2008 Windows Vista with Service Pack 1 (SP1) Windows XP with Service Pack 3 (SP3) 示例: 1. 在Sales计算…

Squid搭建反向代理提高网站访问速度

反向代理简述: 反向代理服务器有两种传输模式: 1.同步模式:(如:squid)用户发起请求,请求立即被转到后端的服务器,于是在浏览器和后端服务器之间就建立了一个连接,在请求完…

开发出高性能的网站,第三部分:压缩和其他服务器端的技术 - 【推荐】

中文原文 http://www.uigarden.net/chinese/gao-xing-neng-iii 作者 Thomas A. Powell 和 Joe Lima 阅读本文英文原文(翻译:刘松涛)经Port80软件授权发表在第一部分 , 我们讲了代码优化的20个技巧,这些代码优化都是针对开发者源代…

开发出高性能的网站,第二部分 — 最佳缓冲控制 - 【推荐】

中文原文 http://www.uigarden.net/chinese/gao-xing-neng-ii 作者 Thomas A. Powell 和 Joe Lima 阅读本文英文原文(翻译:刘松涛)经Port80软件授权发表第二部分 — 最佳缓冲控制 本文的第一部分 (二月份)介绍了如何通…

lamp php网站,LAMP环境的搭建以及基于php动态网站的应用

1.lamp简介:lamp全称 linux apache mysql php ,所以它是由linux apache mysql php这四个环境构成,下面我们来逐个建立该环境。2.需要安装的包:yum install -y httpdyum install -y phpyum install -y mysql mysql-serveryum…

网站结构设计规划书

作者:孤剑昨天,一位mm找我,让我帮她看看她做的网站!拿过来一看,汗!果然是新手,所有的东西都放在了一起,没有任何分类,想象自己以前也是如此,而且加上这个妹妹…

计算机组成VCC,8088(8086)CPU基础知识-计算机组成原理与汇编语言-电子发烧友网站...

2.2.1 微型计算机的工作过程CPU进行简单的算术运算或逻辑运算,或从存贮器取数,将数据存放于存贮器,或由接口取数或向接口送数,这些都是一些基本动作,也称为CPU的操作。用微型计算机求解“710?”这样一个极为简单的问题…

一步一步SharePoint 2007之二十二:完美解决实现Form认证后无法再用SharePoint Designer编辑网站的问题...

一步一步SharePoint 2007之二十二:完美解决实现Form认证后无法再用SharePoint Designer编辑网站的问题摘要前面的文章中,我们采用“曲线救国”的方式解决实现Form认证后无法再用SharePoint Designer编辑网站的问题,还甚至说Microsoft公司并未…

【很好,很和谐】蒙骗了CCTV 人民网 凤凰网 网易 新浪的 特大假新闻 学生网站系统 007OS 取代Windows操作系统

事态发展 :假新闻 已经被各大媒体转载 007os相关新闻: 大三学生研发软件卖200万元成富豪(图)       cctv 学生所创办网站被亿聚网以200万价格收购(图) 央视国际 大学生研发新计算机操作系统亿聚200万收购    人民网 亿聚网200万收购华工学生个人网站007os …

LNMP:综合架构网站架构(LNMP)

原文链接:https://www.cnblogs.com/moox/p/12745458.html

基于腾讯云搭建个人网站的实验

为了研究公有云安全产品及Web安全,特意重新在腾讯云上搭建了一套博客系统,整体操作下来,和几年前在阿里云上搭建的过程大同小异,不过时过境迁,那时只是为了搭建博客,重点在博客的使用,现在重点在…

我记录网站综合系统 -- 技术原理解析[9:HttpMethodChecker流程]

源代码位置:\Web\Mvc\Processors:HttpMethodChecker.cs Config -> wojilu.Web.Mvc.CoreHandler.ProcessRequest - > wojilu.Web.Mvc.CoreHandler.ProcessRequest: ProcessContext.Begin ->Ro…

学用MVC4做网站五:5.6文章浏览(前台)

今天做文章的前台文章列表。 前台显示比较简单只显示文章标题和发布日期。 首先添加CommonModelController using Ninesky.Models; using Ninesky.Repository; using System.Web.Mvc;namespace Ninesky.Controllers {public class CommonModelController : Controller{private …

RustCon Asia 实录 | Rust 在国内某视频网站的应用

2019独角兽企业重金招聘Python工程师标准>>> 作者介绍: hawkingrei(王维真),中间件高级开发工程师,开源爱好者,TiDB & TiKV Contributor。 WaySLOG(雪松)&#xff0c…