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

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

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

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

原文发布于微信公众号 - PPV课数据科学社区(ppvke123)

原文发表时间:2016-02-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯技术工程官方号的专栏

腾讯企业IT部蔡晨:从有界到无界,新一代企业安全防御之道

? 北京时间10月10日至10月11日,由腾讯安全发起,腾讯安全科恩实验室与腾讯安全平台部联合主办,腾讯安全学院协办的2018腾讯安全国际技术峰会(TenSe...

3472
来自专栏ytkah

Jason Ng透露微信小程序(应用号)的几个细节

今日凌晨,微信小程序(应用号)内测的消息发布,顿时像炸开的锅,Jason Ng也拿到了,看看他能给我们透露微信公众平台小程序的哪些细节,以下内容来自他的公众号文...

2906
来自专栏云计算D1net

云计算火爆难掩API失落 这事其实也不难

随着越来越多的企业选择采用云服务,云计算面临的内外部的压力都与日俱增。而相应的,作为云与企业的桥梁,API接口的任务也在变得更重,云服务提供商也开始考虑为其增加...

3574
来自专栏Java架构

顶尖架构师与普通程序员最大的5个区别!

《The Effective Engineer》的作者在写书的过程中,为了了解那些顶级程序员和普通程序员的区别,采访了很多硅谷顶级科技公司的顶尖软件工程师。他发...

1222
来自专栏智能计算时代

微软保护物联网的新颖方法

Sopris项目希望创建一套可以保护硬件和通信的安全层,并且可以刷新受影响的设备。 ? 事物部署工业互联网面临的主要问题之一是常年问题:安全。当您在组织周围部署...

2745
来自专栏Java技术栈

GitHub 发布了一款重量级产品,可直接运行代码!

在昨日举行的GitHub Universe 2018开发者大会上,GitHub发布了一款重量级产品:GitHub Actions,可直接运行部分代码的产品,彻底...

1733
来自专栏新智元

GitHub重磅年度报告:JavaScript最热,中国开发者贡献稳居第二

在昨日举行的GitHub Universe 2018开发者大会上,GitHub发布了一款重量级产品:GitHub Actions,可直接运行部分代码的产品,彻底...

1042
来自专栏云计算D1net

用微服务和云构建高效IoT模型

物联网吸引了很多人的关注。传感器和控制器的网络毫无疑问会极大地丰富我们的生活——但是它们也可能被误用而造成危害。幸运的是,云能够帮助我们发扬物联网的优势,并且极...

2784
来自专栏腾讯开源的专栏

【开源公告】Unity手游自动化测试框架GAutomator于12月6日正式开源

GAutomator是为Unity游戏量身定制的自动化测试框架。类似于UIAutomator操作Android标准控件,GAutomator通过Gameobje...

4106

我们如何在大数据时代构建更智能的搜索引擎?

看起来,创新似乎来自意想不到的地方(毕竟,如果它来自预期的地方,那它会被称为创新吗?)。如今,许多事情已经聚集在一起,将搜索及搜索引擎置于全新的角度,来自意想不...

1641

扫码关注云+社区

领取腾讯云代金券