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

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

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

分享是快乐的,也是个人成长的过程。文章一般是自己的学习总结,工作经验,不足之处在所难免,请大家指正,共同进步。

时间: 2024-10-08 11:13:22

(转)大型网站架构系列:电商网站架构案例(1)的相关文章

通过ssh端口转发来上公司禁止的网站(如电商网站)

#需求 要在本机电脑上公司禁止的网站,如京东商城.当当网 #没配置前访问京东商城如下 #通过CRT随便连接一台公网服务器 #CRT会话选项配置 1)打开会话选项 2)添加端口转发 3)配置端口转发 #谷歌浏览器配置(可以找任何浏览器配置) 1)打开设置 2)滑轮滚到最下,然后点击如下图所示 3)找到更改代理服务器设置 4)选择连接,局域网设置 5)设置局域网 6)设置代理服务器 #浏览器再次访问京东商诚 ok...是没有问题的,实验成功 注意注意注意:重要事情说三篇,你用CRT通过SSH连接的线

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

大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标). 根据实际需要,进行改造,扩展,支持千万PV,是没问题的. 本次分享大纲 电商案例的原因 电商网站需求 网站初级架构 系统容量估算 网站架构分析 网站架构优化 架构总结 电商网站案例,一共有三篇本篇主要说明网站的需求,网站初始架构,系统容量估算方法. 一.电商

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

大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标). 根据实际需要,进行改造,扩展,支持千万PV,是没问题的. 本次分享大纲 电商案例的原因 电商网站需求 网站初级架构 系统容量估算 网站架构分析 网站架构优化 架构总结 电商网站案例,一共有三篇本篇主要说明网站的需求,网站初始架构,系统容量估算方法. 一.电商

电商网站架构案例(1)

大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸缩,可扩展等非功能质量需求(架构目标). 根据实际需要,进行改造,扩展,支持千万PV,是没问题的. 本次分享大纲 电商案例的原因 电商网站需求 网站初级架构 系统容量估算 网站架构分析 网站架构优化 架构总结 电商网站案例,一共有三篇本篇主要说明网站的需求,网站初始架构,系统容量估算方法. 一.电商

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

本文章是电商网站架构案例的第三篇,主要介绍数据库集群,读写分离,分库分表,服务化,消息队列的使用,以及本电商案例的架构总结. 6.5数据库集群(读写分离,分库分表) 大型网站需要存储海量的数据,为达到海量数据存储,高可用,高性能一般采用冗余的方式进行系统设计.一般有两种方式读写分离和分库分表. 读写分离:一般解决读比例远大于写比例的场景,可采用一主一备,一主多备或多主多备方式. 本案例在业务拆分的基础上,结合分库分表和读写分离.如下图: (1)       业务拆分后:每个子系统需要单独的库:

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

电网网站架构案例系列的第二篇文章.主要讲解网站架构分析,网站架构优化,业务拆分,应用集群架构,多级缓存,分布式Session. 五.网站架构分析 根据以上预估,有几个问题: 需要部署大量的服务器,高峰期计算,可能要部署30台Web服务器.并且这三十台服务器,只有秒杀,活动时才会用到,存在大量的浪费. 所有的应用部署在同一台服务器,应用之间耦合严重.需要进行垂直切分和水平切分. 大量应用存在冗余代码 服务器SESSION同步耗费大量内存和网络带宽 数据需要频繁访问数据库,数据库访问压力巨大. 大型

大型网站架构系列:电商网站架构案例分析

上节课我们小组对淘宝网进行了简要的架构分析,这周我在课余时间对这类大型电商网站的某些具体架构技术进行了梳理和概括,并对一些架构方法进行更深层次的介绍,并且结合软件工程进行典型电商的需求分析. 一.典型电商案例 电商网站:比如阿里巴巴,京东商城,国美在线,汽车之家等.大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,一些交互性比较多的网站,可能会引入更多的NOSQL,分布式缓存,使用高性能的通信框架等.电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的需要采用NO

电商网站架构案例(2)

电网网站架构案例系列的第二篇文章.主要讲解网站架构分析,网站架构优化,业务拆分,应用集群架构,多级缓存,分布式Session. 五.网站架构分析 根据以上预估,有几个问题: 需要部署大量的服务器,高峰期计算,可能要部署30台Web服务器.并且这三十台服务器,只有秒杀,活动时才会用到,存在大量的浪费. 所有的应用部署在同一台服务器,应用之间耦合严重.需要进行垂直切分和水平切分. 大量应用存在冗余代码 服务器SESSION同步耗费大量内存和网络带宽 数据需要频繁访问数据库,数据库访问压力巨大. 大型

电商网站架构案例(3)

本文章是电商网站架构案例的第三篇,主要介绍数据库集群,读写分离,分库分表,服务化,消息队列的使用,以及本电商案例的架构总结. 6.5数据库集群(读写分离,分库分表) 大型网站需要存储海量的数据,为达到海量数据存储,高可用,高性能一般采用冗余的方式进行系统设计.一般有两种方式读写分离和分库分表. 读写分离:一般解决读比例远大于写比例的场景,可采用一主一备,一主多备或多主多备方式. 本案例在业务拆分的基础上,结合分库分表和读写分离.如下图: (1)       业务拆分后:每个子系统需要单独的库: