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

news/2024/5/15 10:46:15/文章来源:https://blog.csdn.net/weixin_34185364/article/details/94482321

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

根据实际需要,进行改造,扩展,支持千万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/NetPig/p/9915870.html

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

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

相关文章

Flask 项目实战|从零开发“StackOverflow”问答网站

StackOverflow 是全球最大的 IT 技术问答网站之一,在程序员界无人不知无人不晓,堪称“面向搜索引擎编程”神器。下图就是 StackOverflow 网站首页图: 是不是有种似曾相识的感觉?其实国内很多技术问答网站都是仿照 StackOverflow 来…

如何快速压测电商网站?

1.背景 在电商及互联网应用时代,用户和流量已成为应用核心竞争力,而随着数字化营销逐渐走进各个领域,线上的秒杀抢购、热点营销等活动也成为企业的必备营销手段,营销带来的大规模流量浪涌对系统来说是个巨大的考验,如何…

IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0 实际解决方案

IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法 IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决方法 IIS上部署MVC网站,打开后500错误:处理程序“ExtensionlessUrlHandler-Integra…

vs2015网站发布时,设置页面合并后程序集的文件版本

如何将web网站的页面合并成一个新的程序集发布,并设定文件版本? 这个问题我也纠结了很久,问了很多大牛,也没有找到解决方案 曾开了一贴,https://bbs.csdn.net/topics/391027644,后来自己解决了,…

使用GitHub构建个人博客网站

想起来之前搭建个人博客网站的总结还没有写,趁着这几天有时间回头来分享一下。本人的个人博客网站采用的是GitHubjekyll,GitHub托管代码,jekyll发行生成静态网页。 1、购买域名 域名是在一个新加坡的域名服务器商DoDaddy(https:…

自学Java比较靠谱的学习Java的视频网站

怎样自学Java,不紧深深苦恼着广大的Java学习者,学习Java的人一般来说有自学和去Java培训机构2个选择,培训机构的好处就是能在短时间内系统地教授你大量知识,至于你能不能接受不管,而且培训机构要缴纳一二万的学费&…

电商网站全链路压测实战

1.背景 在电商及互联网应用时代,用户和流量已成为应用核心竞争力,而随着数字化营销逐渐走进各个领域,线上的秒杀抢购、热点营销等活动也成为企业的必备营销手段,营销带来的大规模流量浪涌对系统来说是个巨大的考验,如…

阿里云MVP课堂:零基础建站,满足你拥有自己网站的心愿

2019独角兽企业重金招聘Python工程师标准>>> 很多人都有一个建站的心,但是由于没有相关的技能,导致最后不了了之。云计算,让一切变得简单起来,零基础也能很快搭建出自己的网站,满足你的心愿。 建站总体来说…

KindEditor 上传漏洞致近百个党政机关网站遭植入

开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> 2月21日消息,近日,安恒明鉴网站安全监测平台和应急响应中心监测发现近百起党政机关网站被植入色情广告页面,分析发现被植入色情广告页面的网站都…

反击黑客之对网站攻击者的IP追踪

ip追踪是一件比较难实现的,因为我只有一个ip,而且在没有任何技术支持下对该ip追踪,同时我在公司也没有服务器权限,仅有后台,一般的ip追踪技术分类,反应式ip追踪,主动式的追踪,分享的…

网站安全之nginx的配置创建访问网站密码认证

最近我们Sinesafe在处理nginxphpmysql架构的客户网站安全方面要配置后台的二级密码访问验证处理过程中要用到nginx的配置来完成这个二级密码的设置安全部署。 下面由我来简要说一下在nginx配置服务中,创建访问网站密码认证的方法。 1)需要ngx_http_auth_…

[翻译 EF Core in Action 2.1] 设置一个图书销售网站的场景

Entity Framework Core in Action Entityframework Core in action是 Jon P smith 所著的关于Entityframework Core 书籍。原版地址. 是除了官方文档外另一个学习EF Core的不错途径, 书中由浅入深的讲解的EF Core的相关知识。因为没有中文版,所以本人对其进行翻译。 预计每两天…

干货!4个资源满满的网站,带来意想不到的帮助

你是不是还没有好用的网站资源?不用郁闷!今天为大家整理了5个资源满满的网站,每一个都是良心之作。 一.茶杯狐 这个名字是不是听起来就觉得特别文艺呢,其实啊,它是一个海量免费资源的网站呢!里面可包含了电…

搭建IIS并配置网站之旅

配置本地IIS这个过程,很羞愧的说,大概花了一个月之久…… 最开始,有需要用到了IIS,然后就着手配置,然后就遇到了问题,然后当时事很多,这又不是很急,就搁置了…… 在历经了一个月之后…

windows使用nginx实现网站负载均衡测试实例

http://www.jb51.net/article/22470.htm 如果你关注过nginx,必定知道nginx这个软件有什么用的,如果你的网站访问量越来越高,一台服务器已经没有办法承受流量压力,那就增多几台服务器来做负载吧。做网站负载可以买硬件设备来实现&a…

网站 admin.php,caozha-admin(PHP网站后台管理框架)v1.7.1官方安装版

caozha-admin是一个通用的PHP网站后台管理框架,基于开源的ThinkPHP开发,特点,易上手,零门槛,界面清爽极简,极便于二次开发。功能介绍caozha-admin后台管理框架功能:1、系统设置2、管理员管理3、…

element 修改分页样式_如何给wordpress网站的文章列表,添加分页效果?可以通过2种方式...

在上一章节中,我们为wordpress网站的首页添加了全站文章列表。一个wordpress网站不可能只有几篇文章,可能会有成千上万的文章,作为一个wordpress博客主题模板,一般情况下,不可能让所有的文章在一个页面一下子全部显示出…

jsp项目放入宝塔windows环境_《鸡站群组》-教你建站(1.1) 下载并配置windows宝塔面板...

(Linux请自己参考官网教程哈)欢迎访问 鸡站论坛各位站长们好呀 欢迎来到由鸡站群组独家呈现的建站教程 本教程会围绕各大站长的需求 以各种建站源码的使用以主要内容进行教学“工欲善其事,必先利其器” 作为一位站长 我们需要建站环境对网站进…

php网站404页面302,404页面该怎么做?

建立404页面的方法是:在“.htaccess”文件中加入“ErrorDocument 404/Error.html”代码;然后建立一个简单的html的404页面,并命名为“Error.html”;最后将该“Error.html”文件放置在网站根目录下即可。404页面的目的是&#xff1…

阿呆做网站(3)--建数据库

Just do something!只是玩玩,纯属入门,熟练熟练。这次做个BBS,实现最基本的功能又加了个用户类型表(ForumUserClassTab)用来管理斑竹类型用户类型表(ForumUserClassTab) --|--用户类型ID(UserClassID) |--用户类型名称(U…