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等电商系统,从“供应链——生产运营——销售市场”端到端的全链数字化产品和方案,致力于通过数字化和新技术为企业创造商业数字化价值。

百胜软件莅临数商云参观交流,双方拟定战略合作关系

供应链上下游商业合作模式:数商云助力企业构建高效协同生态

THE END
1.网页布局完全指南从入门到实践网页布局是指安排和组织网页上各个元素的位置和展示方式,包括导航栏、页头、内容区、侧边栏和页脚等部分。一个好的网页布局能让网站内容清晰易读,用户体验良好。 1.2 布局之前的准备 在开始布局之前,我们需要: 确定网页的整体结构 划分主要区域 选择合适的布局方式 https://htmlpage.cn/about-html/complete-guide-to-web-layout-from-getting-started-to-practice.html
2.购物网站部署架构图mob649e8165596b的技术博客购物网站的部署架构图实现指南 引言 在当今互联网时代,电商网站已经成为商业运营的重要组成部分。作为一个刚入行的小白,理解购物网站的部署架构是迈向开发领域的重要一步。本文将带你一步一步实现一个购物网站的部署架构图,并介绍每一步所需的操作与代码。 https://blog.51cto.com/u_16175504/12853510
3.在线免费制作架构图腾讯云开发者社区Freedgo Design 是一in款在线绘制专业图形的网站。Freedgo Design可以绘制各种类型的图形,针对业务逻辑的流程图,软件设计ER模板,工作流,各种云平台的系统部署架构图包括阿里云、AWS云、腾讯云、Oracle、Asure云、IBM云平台等。 使用 用户通过浏览器访问网址:https://www.freedgo.com点击在线制图,进入图形设计工具页面即可https://cloud.tencent.com/developer/article/1429471
4.PPT组织结构图PPT树形图PPT架构图下载20套蓝黑配色组织架构图PPT图表整套下载 组织结构 18套红色版组织结构图PPT图表 组织结构 18张蓝色组织结构图PPT图表 组织结构 14张企业公司组织结构图PPT图表 组织结构 18张常用PPT组织结构图 组织结构 两张蓝色团队成员组织结构图PPT图表 9张蓝色公司组织结构图PPT图表 https://www.1ppt.com/tubiao/jiegoutu/
5.网站系统架构设计框架图和思维导图的区别说到网站结构和系统软件,大家一定会想起网站排版布局等有关提升实际操作。的确,做SEO提升的网站站长常常会触碰到网址的组织体系和构架,而这种网站结构的优劣也是决策网址将来能不能提升的主要要素。那麼网站站长们是怎样看待网址组织体系和构架的呢? 一般的网址组织结构会出现精准系统软件和模糊不清系统软件。使我们了解https://www.dkewl.com/course/detail7123.html
6.知名互联网公司网站架构图近段时间以来,通过接触有关海量数据处理和搜索引擎的诸多技术,常常见识到不少精妙绝伦的架构图。除了每每感叹于每幅图表面上的绘制的精细之外,更为架构图背后所隐藏的设计思想所叹服。个人这两天一直在搜集各大型网站的架构设计图,一为了一饱眼福,领略各类大型网站架构设计的精彩之外,二来也可供闲时反复琢磨体会,何乐https://www.jianshu.com/p/99d7a87f4d0b
7.网站设计架构 风格 信息排布 视觉顺序 8如何突破 1基础定义编辑 简单来说,网站设计的目的就是产生网站。简单的信息如文字,图片(GIFs, JPEGs,PNGs)和表格,都可以通过使超言、可扩展超文本标记语言等标示语言放置到网站页面上。而更复杂的信息如矢量图形、动画、视频、声频等多媒体档案则需要插件程序来运行,同样地它们亦需要https://baike.sogou.com/v297911.htm
8.从原型图架构到设计开发的网站制作步骤建站沙龙好的网站需要从原型图架构开始的,到后面设计开发结束经过很多细节的步骤,下面我们简单了解一下这些网站制作步骤。 好的网站需要从原型图架构开始的,到后面设计开发结束经过很多细节的步骤,下面我们简单了解一下这些网站制作步骤。 网站制作1:首先要明确网站的定位,公司网站就要弄清楚公司的产品优势以及访问的目标群体。要https://www.zhaoge.net/info/view/1209.html
9.顶层架构设计素材网站图片免费下载顶层架构设计 企业顶层架构设计 公司运营顶层架构设计 一体化智慧教育小脑顶层架构设计 2 沈先笙 杭州智慧文旅顶层架构设计构思 2 沈先笙 个人分享---b端导航架构设计专题 1 zero0304 眼镜品牌-shopify独立站设计 172 popo_333 "security eidolon"安防精灵—远程智能家居控制app 2 lucyxlu 荒漠基站的清晨 18 体验https://www.zcool.com.cn/tag/ZNTM2MzAzMg==.html
10.网络营销策划方案(精选15篇)一、组织架构图 公司总经理 部门经理 程序员 设计师 硬件维护 资深推广 信息发布 信息收集 资深业务 普通业务 二、各部门职责 网络营销部门内设三个分部,即技术部、推广部、业务部。网络营销部门设部门经理一职,下属三个分部,设主管一职。 (1)技术部主要职能 https://www.wenshubang.com/fangan/2453691.html
11.ProcessOn思维导图流程图在线画思维导图流程图提供多种预置主题风格,也可以自由设计你喜爱的风格样式。 团队协作 共同成长 团队成员共创,打造团队知识地图,实现数字化资产沉淀,让团队协作更高效、数据更安全ProcessOn 绘制网络拓扑图:精准呈现网络架构的利器 ProcessOn 绘制韦恩图:精准呈现集合关系的利器 《钢铁是怎样炼成的》思维导图 含高清人物关系图 如何https://www.processon.com/
12.网络营销的策划方案一、组织架构图 公司总经理 部门经理 程序员 设计师 硬件维护 资深推广 信息发布 信息收集 资深业务 普通业务 二、各部门职责 网络营销部门内设三个分部,即技术部、推广部、业务部。网络营销部门设部门经理一职,下属三个分部,设主管一职。 (1)技术部主要职能 https://www.oh100.com/a/202305/6744003.html
13.GitMind·思乎GitMind(思乎)是一款全平台 在线思维导图脑图架构图制作软件工具,支持手机手机思维导图,Windows/Mac/L多平台操作及内容同步。它提供有海量的架构图,流程图、思维导图模板可供用户直接使用,支持在线制作流程图、思维导图、组织结构图、类图、用例图、ER图、网络拓扑图https://gitmind.cn/
14.组织架构图组织架构图在线制作AI生成组织架构图Canva可画组织架构图制作工具简单易用,在线操作,同时有丰富的组织架构图模板可供选择,更有智能AI工具助你轻松完成组织架构图制作。https://www.canva.cn/graphs/organization-charts/
15.实施方案(2023—2025年)的通知豫政办图1“河南链”总体架构图 (二)“河南链”公共基础平台架构。“河南链”公共基础平台由管理、服务2个中台及标准规范、运维管理、安全保障等3个支撑体系组成。 管理中台。对区块链基础支撑资源进行统一动态调配,负责区块链系统的全生命周期管理,形成资源编排、合约管理、用户与权限、运行管控、API(应用程序接口)网关、基https://www.henan.gov.cn/2023/03-28/2715211.html
16.odoo17官方版本发布白皮书,全部功能及重要更新ReleaseNote更全面的网站服务预约 条码操作增加声音提醒,更方便的序列号处理 文档管理增强,如批量上传,拖放操作等 电商增强,如可使用图像作为属性规格,直接显示优惠券 人力资源增强,增加多层级组强架构图 会展管理/门票管理,可实现二维码签到等 前台访客管理,出勤管理 https://www.odooapp.cn/blog/odoo-install-deploy-6/odoo17-official-release-all-functions-and-important-updates-315
17.领君科技系统可实现省、市、县级一张图数据资源与日常管理应用相结合的管理模式,提供可供推广的数据编码标准、软件规范和实现技术,全程服务于土地批、供、用、补、查的各个环节,最终实现便捷、规范的土地综合电子监管,和科学的、准确的数据分析决策支持。 技术架构设计http://www.linjon.cn/Gtyzt.html
18.品牌元器件设备供应商实时大数据;电气报价设计数据系统图、平面布置图、原理图均按照标准图幅格式绘制,设计方案及元件符号统一从公司共享库中调用。项目图纸完成后将本项目设计新增方案增加到公司设计库。 项目采用数字母排设计方案,项目中母排三维设计使用利驰SuperPanel数字母排软件绘制。 项目中母排设计部分:箱变产品的三维设计覆盖率达到95%,中压产品覆盖率达到98%,https://www.dq123.com/
19.新成立公司人力资源工作计划(精选12篇)3、20xx年三月底前完成公司组织架构图及各部门组织架构图、公司人员编制方案。公司各部门配合公司组织架构对本部门职位说明书、工作流程在去年基础上进行改造。人力资源部负责整理成册归档。 三、实施目标注意事项: 1、组织架构的设计应本着简洁、科学、务实的方针。组织的过于简化会导致责权不分,工作负荷繁重,中高层管https://www.ruiwen.com/gongzuojihua/4564187.html