25张图详解大型分布式电商系统架构(二)

本文是学习大型分布式网站架构的技术总结。对架构一个高性能、高可用、可伸缩及可扩展的分布式网站进行了概要性描述,并给出一个架构参考。文中一部分为读书笔记,一部分是个人经验总结,对大型分布式网站架构有较好的参考价值。

1、电商案例的原因

分布式大型网站,目前看主要有几类:

大型门户,比如网易,新浪等;

SNS网站,比如校内,开心网等;

电商网站,比如阿里巴巴,京东商城,国美在线,汽车之家等。

大型门户一般是新闻类信息,可以使用CDN,静态化等方式优化,开心网等交互性比较多,可能会引入更多的NoSQL,分布式缓存,使用高性能的通信框架等。电商网站具备以上两类的特点,比如产品详情可以采用CDN,静态化,交互性高的需要采用NoSQL等技术。因此,我们采用电商网站作为案例,进行分析。

2、电商网站需求

客户需求:

建立一个全品类的电子商务网站(B2C),用户可以在线购买商品,可以在线支付,也可以货到付款;

用户购买时可以在线与客服沟通;

用户收到商品后,可以给商品打分,评价;

希望能够支持3~5年,业务的发展;

预计3~5年用户数达到1000万;

定期举办双11、双12、三八男人节等活动;

其他的功能参考京东或国美在线等网站。

客户就是客户,不会告诉你具体要什么,只会告诉你他想要什么,我们很多时候要引导,挖掘客户的需求。好在提供了明确的参考网站。因此,下一步要进行大量的分析,结合行业,以及参考网站,给客户提供方案。需求功能矩阵需求管理传统的做法,会使用用例图或模块图(需求列表)进行需求的描述。这样做常常忽视掉一个很重要的需求(非功能需求),因此推荐大家使用需求功能矩阵,进行需求描述。本电商网站的需求矩阵如下:

3、网站初级架构

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

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

如下图:

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

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

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

4、系统容量预估

预估步骤:

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

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

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

根据客户需求:3~5年用户数达到1000万注册用户,可以做每秒并发数预估:

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

每日每天点击浏览30次;

PV量:200*30=6000万;

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

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

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

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

1毫秒=1.3次访问;

没好好学数学后悔了吧?!(不知道以上算是否有错误,呵呵~~)服务器预估:(以tomcat服务器举例)按一台web服务器,支持每秒300个并发计算。平常需要10台服务器(约等于);[tomcat默认配置是150],高峰期需要30台服务器;容量预估:70/90原则系统CPU一般维持在70%左右的水平,高峰期达到90%的水平,是不浪费资源,并比较稳定的。内存,IO类似。以上预估仅供参考,因为服务器配置,业务逻辑复杂度等都有影响。在此CPU,硬盘,网络等不再进行评估。5、网站架构分析根据以上预估,有几个问题:

需要部署大量的服务器,高峰期计算,可能要部署30台Web服务器。并且这三十台服务器,只有秒杀,活动时才会用到,存在大量的浪费。

所有的应用部署在同一台服务器,应用之间耦合严重。需要进行垂直切分和水平切分。

服务器Session同步耗费大量内存和网络带宽,数据需要频繁访问数据库,数据库访问压力巨大。

大型网站一般需要做以下架构优化(优化是架构设计时,就要考虑的,一般从架构/代码级别解决,调优主要是简单参数的调整,比如JVM调优;如果调优涉及大量代码改造,就不是调优了,属于重构):

业务拆分;

应用集群部署(分布式部署,集群部署和负载均衡);

多级缓存;

数据库集群(读写分离,分库分表);

服务化;

消息队列;

其他技术;

6、网站架构优化

6.1业务拆分

业务拆分作用:提升为子系统可由专门的团队和部门负责,专业的人做专业的事,解决模块之间耦合以及扩展性问题;每个子系统单独部署,避免集中部署导致一个应用挂了,全部应用不可用的问题。

等级定义作用:用于流量突发时,对关键应用进行保护,实现优雅降级;保护关键应用不受到影响。

拆分后的架构图:

参考部署方案2

如上图每个应用单独部署,核心系统和非核心系统组合部署

6.2应用集群部署(分布式,集群,负载均衡)

分布式部署:将业务拆分后的应用单独部署,应用直接通过RPC进行远程通信;

集群部署:电商网站的高可用要求,每个应用至少部署两台服务器进行集群部署;

负载均衡:是高可用系统必须的,一般应用通过负载均衡实现高可用,分布式服务通过内置的负载均衡实现高可用,关系型数据库通过主备方式实现高可用。

集群部署后架构图:

6.3多级缓存

缓存按照存放的位置一般可分为两类本地缓存和分布式缓存。本案例采用二级缓存的方式,进行缓存的设计。一级缓存为本地缓存,二级缓存为分布式缓存。(还有页面缓存,片段缓存等,那是更细粒度的划分)一级缓存,缓存数据字典,和常用热点数据等基本不可变/有规则变化的信息,二级缓存缓存需要的所有缓存。当一级缓存过期或不可用时,访问二级缓存的数据。如果二级缓存也没有,则访问数据库。缓存的比例,一般1:4,即可考虑使用缓存。(理论上是1:2即可)。

根据业务特性可使用以下缓存过期策略:

缓存自动过期;

缓存触发过期;

流程说明

一般采用Cache中间件实现,建议使用Redis,因此它有持久化功能,方便分布式Session宕机后,可以从持久化存储中加载会话信息;

结合Cache中间件,实现的分布式Session,可以很好的模拟Session会话。

6.5数据库集群(读写分离,分库分表)

大型网站需要存储海量的数据,为达到海量数据存储,高可用,高性能一般采用冗余的方式进行系统设计。一般有两种方式读写分离和分库分表。读写分离:一般解决读比例远大于写比例的场景,可采用一主一备,一主多备或多主多备方式。本案例在业务拆分的基础上,结合分库分表和读写分离。如下图:

业务拆分后:每个子系统需要单独的库;

如果单独的库太大,可以根据业务特性,进行再次分库,比如商品分类库,产品库;

在分库、分表的基础上,进行读写分离;

6.6服务化

将多个子系统公用的功能/模块,进行抽取,作为公用服务使用。比如本案例的会员子系统就可以抽取为公用的服务。

6.7消息队列

消息队列可以解决子系统/模块之间的耦合,实现异步,高可用,高性能的系统。是分布式系统的标准配置。本案例中,消息队列主要应用在购物,配送环节。

用户下单后,写入消息队列,后直接返回客户端;

库存子系统:读取消息队列信息,完成减库存;

配送子系统:读取消息队列信息,进行配送;

目前使用较多的MQ有ActiveMQ、RabbitMQ、ZeroMQ、MSMQ等,需要根据具体的业务场景进行选择。建议可以研究下RabbitMQ。

6.8其他架构(技术)

大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段,希望能给大家带来启发。

数商云是一家全链数字化运营服务商,专注于提供SCM/企业采购/SRM供应商/DMS经销商/渠道商等管理系统,B2B/S2B/S2C/B2B2C/B2C等电商系统,从“供应链——生产运营——销售市场”端到端的全链数字化产品和方案,致力于通过数字化和新技术为企业创造商业数字化价值。

打造高效协同的供需对接平台:数商云助力企业数字化转型与产业升级

制造业如何借助数商云B2B+S2B2C平台架构实现产业升级?

数商云B2B平台和AI深度融合,一键解锁高效订单处理与交付的新境界

科技助力:2025年医疗器械B2B电商平台的人工智能与大数据应用

巨头环伺下游走:掌合天下如何攻防?

有卫哲做主咖的第三届B2B大会无法超越?错!2017B2B跨年更HI!

THE END
1.电子商务网站分哪几种类型呢?电子商务网站分为五大类:一、B2B电子商务模式B2B是商家对商家的电子商务模式,也就是企业与企业之间通过因特网进行产品、服务及信息交换。是企业对企业的营销关系。它将企业内部网,通过B2B网站与客户紧密结合起来,通过网络的快速反应,为客户提供更好的服务,从而促进企业的业务发展。B2B不仅仅是建立一个网上的买卖群体,https://edu.iask.sina.com.cn/jy/2JEy0Ep33d1.html
2.常见的电子商务网站类型有哪些?B2C(Business-to-Customer)是一种企业对消费者的电子商务类型,即企业直接面向消费者销售产品和服务的商业零售模式。B2C电子商务一般以网络零售业为主,主要借助于互联网开展在线销售活动,如京东商城、当当网就属于B2C电子商务类型。 3.C2C C2C(Customer-to-Customer)是一种个人对个人的电子商务类型。C2C电子商务平台一般https://www.kaitao.cn/article/20210313222518.htm
3.电子商务网站案例分析9.按照交易对象的不同,可将电子商务网站分为B2B、B2C、C2C、B2G。() A.正确 B.错误 错误 正确答案:左边查询 学生答案:未作答 10.电子商务网站最基本的特性是服务性。() A.错误 B.正确 错误 正确答案:左边查询 学生答案:未作答 11.教研室网站采用三栏式网站布局使网站结构明朗,信息明确。各大栏目内容板块https://blog.csdn.net/yuyueshool/article/details/122035655
4.试题三S公司开办了在线电子商务网站,主要为各注册的商家提供在线S公司开办了在线电子商务网站,主要为各注册的商家提供在线商品销售功能。为更好地吸引用户,S公司计划为注册的商家提供商品(Commodity)促销(Promotion)功能。商品的分类(Category)不同,促销的方式和内容也会有所不同。 注册商家可发布促销信息。商家首先要在自己所销售的商品的分类中,选择促销涉及的某一具体分类,然后https://www.cnitpm.com/st/245459592.html
5.企业网站建设主要分为哪几大类型企业网站建设主要分为哪几种类型 一、电子商务网站建设电子商务网站,顾名思义我们就可以想到是卖东西的网站,或者说是在网上实现成交的网站,专业的称呼叫b2c网站(商家对个人的网站模式),常见的做的好的像京东、苏宁易购等。 如果你建设网站是想在网上实现产品的销售的话,可以考虑这样的网站类型。网站主要包含详细的产https://www.pageadmin.net/jianzhan/5296.cshtml
6.自考《电子商务网站设计原理》实践考核模拟题汇总自考摘要:本文为大家提供自考《电子商务网站设计原理》实践考核模拟题汇总,对自考《电子商务网站设计原理》专业实践考核的题型还不清楚的小伙伴赶紧做做题练练手吧! 本文为大家提供自考《电子商务网站设计原理》实践考核模拟题汇总,对自考《电子商务网站设计原理》专业实践考核的题型还不清楚的小伙伴赶紧做做题练练手吧! https://www.educity.cn/zikao/145537.html
7.电子商务网站策划书(精选16篇)不经意间,一段时间的工作已经结束了,我们的工作又将迎来新的阶段,又有了新的目标,让我们一起来学习写策划书吧。策划书怎么写才更有新意呢?下面是小编为大家整理的电子商务网站策划书(精选16篇),希望对大家有所帮助。https://www.ruiwen.com/word/dianzishangwuwangzhancehuashu.html
8.电子商务网站建设《电子商务网站建设》是由北京大学出版社出版的图书,作者是臧良运、崔连和。《电子商务网站建设》是北京大学出版社出版图书,由三大部分组成。第一部分是电子商务网站的基础理论,包括电子商务网站概述、电子商务网站的规划设计,重点奠定学生规划设计网站的能力;第二部分https://baike.sogou.com/v5852534.htm
9.电子商务模式分为哪几种分别举出两个网站电子商务电子商务模式主要有B2B和B2C,C2C三种。B2B如阿里巴巴、中国制造网;B2C如京东、天猫;C2C如淘宝、闲鱼。 声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:service@bkw.cn 进行举报,并提供相关证据,工作人员会在5个https://www.bkw.cn/dzsw/ask/3843428.html
10.2023电子商务员考试模拟题电子商务师能为就读该专业的学生提供一些凭据,下面是电子商务员的相关考试模拟题,需要考证的相关人员我们一起来看看题目吧。 电子商务员考试模拟题 1 1、Internet是目前全世界规模最大、信息资源最多的计算机网络,它是一个:___。 A.外部网 B.专用网 C.https://www.oh100.com/kaoshi/zhicheng/395426.html
11.寺库网全球奢侈品服务平台寺库奢侈品网站(secoo.com)作为全球最大的奢侈品购物服务平台,涉及了奢侈品网上销售、奢侈品实体休闲会所、奢侈品鉴定与养护服务等主营业务,100%正品保证,全球奢品,尽在寺库。寺库,我是奢侈品!https://www.secoo.com/
12.电子商务网站的主要类型()电子商务网站的主要类型()A.网上综合商城B.垂直商店C.服务型网店D.专业型网店的答案是什么.用刷刷题APP,拍照搜索答疑.刷刷题(shuashuati.com)是专业的大学职业搜题找答案,刷题练习的工具.一键将文档转化为在线题库手机刷题,以提高学习效率,是学习的生产力工具https://www.shuashuati.com/ti/554d44baa2e645c6a16bb49d4d3ab563.html?fm=bd8f639349e0854a9cc9b0b96ae5e6eb6e
13.电子商务基础练习8篇(全文)电子商务基础练习1 【实验目的】 通过操作练习,加深对电子商务的基本的概念的理解,了解B2B、C2C、B2C等网站的特点和基本业务流程。 【实验内容】 一、参观以下网站,体验电子商务: ? 当当网:找一件心仪的商品。 ? 携程旅行网:,试订张家界旅行机票。 https://www.99xueshu.com/w/file1xrmht1p.html
14.常见的电子商务模式有哪些及特点分析文章内容有限,直接注册或点击下方咨询我们详细了解常见的电子商务模式有哪些,启博小程序分销商城SAAS系统,3分钟快速搭建小程序商城,系统包含100多种分销模式,60+分销奖励制度,200+营销拓客功能,包括最新的2+1链动、X+1链动、订单有礼等等商业模式,名额有限,点击注册或右下方咨询免费预约,预约还可以免费获取《2024年分https://www.qibo.com/news/article/44300
15.沙特专线中东快递中东空运中东海外仓中东电商物流跨境电子商务作为电子商务的重要分支,它通过互联网和智能物流的结合,打破了地理限制,促进了国际贸易的发展。然而,在享受跨境购物便利的同时,我们也必须注意到跨境商品的海关清关要求,下面中东清关-亦邦物流小编就来为大家介绍下。 跨境商品海关清关的要求: 一、了解进口政策 每个国家的进口政策都有所不同,包括禁止http://www.cititrans.com/
16.Alibaba.com:来自全球最大在线B2B市场的制造商供应商出口商领先的全球贸易 B2B 电子商务平台 您在找什么?  海量产品供您选择 从全球海量资源中找到适合您的产品与供应商。 品质与交易保障 确保金品商家的生产质量,从支付到交付,为您的订购提供全程保障。 一站式贸易解决方案 从产品/供应商搜索到订单管理,付款及履约的无缝衔接。 https://www.alibaba.com/
17.怎么自己创建网站?创建网站教程攻略1.确定网站类型和目标 1.1 确定网站的类型 1.1.1 电子商务网站 电子商务网站是一种商务网站,通过互联网提供商品和服务的购买和销售。它的目标是为消费者提供方便的购物体验,并促进在线交易。 电子商务网站设计素材-免费下载 1.1.2 新闻门户网站 新闻门户网站是一种提供新闻和资讯的网站,旨在为用户提供及时、准确和全https://pixso.cn/designskills/how-to-create-a-website/
18.电子商务之B2B模式分类有哪些?B2B电子商务的分类 1、根据网站构建主体的不同分类 根据网站构建主体的不同分类,可以分为企业B2B网站和中介B2B网站 (1)企业B2B网站 这种模式称为以企业为中心的B2B电子商务网站,也叫面向制造业或面向商业的垂直B2B网站,这种模式一般是建立在传统企业基础上的、有经营实体依托的企业,他们建立网站的目的主要是自用,即利https://www.cdcxhl.com/news/104316.html