百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

大型电商系统架构设计

ccwgpt 2025-03-13 13:34 41 浏览 0 评论

大型电商系统架构设计

现实中我们把架构设计分为两部分:应用架构设计和基础架构设计.

应用架构设计,指的是跟业务结合最紧密的业务系统架构设计,这里主要介绍电商网站 架构、供应链系统架构、个性化推荐引擎架构、电商搜索引擎架构。

基础架构设计,指的是底层系统支撑中间件的架构设计,应用系统是架设在基础架构之 上的,这里主要介绍大数据平台架构设计、云平台架构设计、服务治理平台架构设计、分布式文件存储架构设计。

我们马上开启架构设计之旅,进入奇妙的技术世界,我们先来看看大型电商网站架构设 计怎么做?

大型电商网站,指的是每日用户访问量达到数百万,每日页面访问量达到数千万乃至上 亿级别的网站,达到这个规模的电商网站在国内不会超过 10 家,系统架构设计的目标和原则是:高可用、易伸缩、低成本。

基于这样的架构设计目标和原则,服务化、分布式是这个架构设计的主要思路。

服务化,是将所有核心业务沉淀下来形成各种服务,供各业务系统共享,与基础架构相关

资源也以服务的方式提供,包括消息、文件存储、缓存等。

分布式,系统架构中的每一层及所有的资源都是分布式的,支持平滑的水平扩展。




从技术架构上可以把电商网站系统分为五层:应用层、核心服务层、基础服务层、数据 访问层、数据源,如图 1-1 所示。下面我们介绍每一层的作用和包含的主要模块。

图 1-1 电商系统架构

应用层,是面向用户的应用系统,提供给顾客、商家、员工等角色使用的平台,如网站 页面、购物车、结算中心、会员中心、在线客服、商家平台、供应商平台、运营后台等。应 用系统通过调用核心服务,实现特定的业务逻辑。

核心服务层,把核心业务逻辑进行封装,以服务的形式提供出来,供各应用系统进行调 用。核心服务有交易、支付、促销、类目维护、商品管理、店铺装修、库存操作等。

基础服务层,把原子业务进行封装,以服务的形式提供出来,供核心服务层调用,这里要注意,一般情况下应用层不能够直接调用基础服务层,也就是说不能跨层调用服务。核心 服务层在封装某个业务逻辑的时候,常常会调用多个基础服务层的接口。基础服务层包括订 单、库存、价格、用户、商品、积分等。

数据访问层,是实现对数据访问的中间件层,功能模块包括持久化组件、事务处理、连 接池、NoSQL 客服端、SQL 管理工具箱等。任何数据访问都必须通过数据访问层,不允许绕过数据访问层,直接访问数据库。

数据源,指数据库集群,包括 Oralce、MySQL、Hadoop、Hbase、MangoDB 等,数据库一般是集群部署,实现主备机制、读写分离。

以上介绍了各层要做的事情,大家注意到 SOA 在这个架构中被大量使用,因此需要有服务治理平台,能够对服务进行管理,比如能够支持故障隔离,优雅降级,可以跟踪完整的 请求生命周期,可以快速响应和定位问题,可以管理所有服务的依赖关系。

另外,数据的读取还需要有缓存中间件,来减少对数据源的请求次数,缓解数据库的压 力,根据场景合理使用多级缓存、本地缓存等,缓存要有主动和被动更新机制,以防止脏数 据的产生和被误使用。

同时,还必须有完备的监控预警机制,对硬件、数据库、服务、应用、容器、中间件等 进行监控预警,必要时候会发出服务降级指令,来牺牲一些对性能损耗较大的模块,确保主 购物流程的正常运行。

最后,整体网站要能够实现多数据中心的部署,来实现性能提升、访问速度优化,以及 实现容灾

相关推荐

腾讯开源框架TarsCpp-rpc设计分析-server(二)

2Tars协议2.1是什么借用官方说法:TARS编码协议是一种数据编解码规则,它将整形、枚举值、字符串、序列、字典、自定义结构体等数据类型按照一定的规则编码到二进制数据流中。对端接收到二进制数据流...

微服务调用为什么用RPC框架,http不更简单吗?

简单点,HTTP是协议,RPC是概念!实现RPC可以基于HTTP协议(Feign),TCP协议(Netty),RMI协议(Soap),WebService(XML—RPC)框架。传输过程中,也因为序列...

go-zero:开箱即用的微服务框架(gin框架微服务)

go-zero是一个集成了各种工程实践的Web和rpc框架,它的弹性设计保障了大并发服务端的稳定性,并且已经经过了充分的实战检验。go-zero在设计时遵循了“工具大于约定和文档”的理...

SOFARPC :高性能、高扩展性、生产级的 Java RPC 框架

#暑期创作大赛#SOFARPC是一个高性能、高扩展性、生产级的JavaRPC框架。在蚂蚁金服,SOFARPC已经使用了十多年,已经发展了五代。SOFARPC致力于简化应用程序之间的RPC...

自研分布式高性能RPC框架及服务注册中心ApiRegistry实践笔记

痛点1.bsf底层依赖springcloud,影响bsf更新springboot新版本和整体最新技术版本升级。2.eureka已经闭源,且框架设计较重,同时引入eureka会自行引入较多sprin...

Rust语言从入门到精通系列 - Tonic RPC框架入门实战

Rust语言是一种系统级语言,被誉为“没有丧失性能的安全语言”。Rust语言的优势在于其内存安全机制,在编译时就能保证程序的内存安全。Tonic模块是Rust语言的一个RPC(RemoteProce...

腾讯开源框架TarsCpp-rpc设计分析-client(一)

前言Tars是腾讯开源的微服务平台,包含了一个高性能的rpc框架和服务治理平台,TarsCpp是其C++版本。对于以C++为主要开发语言,同时还想深入了解rpc和微服务框架具体实现的同学来说,Tars...

设计了一款TPS百万级别的分布式、高性能、可扩展的RPC框架

为啥要开发RPC框架事情是这样的,在开发这个RPC框架之前,我花费了不少时间算是对Dubbo框架彻底研究透彻了。冰河在撸透了Dubbo2.x和Dubbo3.x的源码之后,本来想给大家写一个Dubbo源...

rpc框架使用教程,超级稳定好用,大厂都在使用

rpc是什么远程调用协议如何使用导入依赖<dependency><groupId>org.apache.dubbo</groupId><art...

Layui 框架实战:动态加载 Select 与二级联动全解析

在现代Web开发中,下拉选择框(Select)是用户输入数据时不可或缺的组件。很多时候,我们需要的选项并非静态写死在HTML中,而是需要根据业务逻辑从后端动态获取。更有甚者,我们可能需要实现“...

15个能为你节省数百小时的前端设计神器,从UI库到文档生成

无论你是刚开始开发之旅的新手,还是疲于应付生产期限的资深程序员,有一个真理始终不变:正确的工具能彻底改变你的工作流程。多年来,我测试了数百个开发工具——有些实用,大多数平庸。但有一批免费网站经受住了时...

Layui与WinForm通用权限管理系统全解析

嘿,小伙伴们,今天咱们来聊聊Layui和WinForm这两个框架在通用权限管理系统中的应用。别担心,我会尽量用简单易懂的语言来讲解,保证让大家都能跟上节奏!首先说说Layui。Layui是一个前端UI...

纯Python构建精美UI!MonsterUI让前端开发效率飙升

“无需CSS知识,告别类名记忆,11行代码实现专业级卡片组件”在传统Web开发中,构建美观界面需要同时掌握HTML、CSS、JavaScript三剑客,开发者不得不在多种语言间频繁切换。即使使用Boo...

WebTUI:将终端用户界面(TUI)之美带到浏览器的CSS库

在当今Web技术飞速发展的时代,界面设计愈发复杂多样。然而,随着现代化工具的广泛使用,一些开发者开始回归极简风格,追求一种简洁而富有韵味的设计。WebTUI正是这样一款CSS库,它将经典的终...

人教版二年级下册生字描红汇总(拼音+笔顺+描红),可打印!

可定制内容,评论区留言。本次整理的为人教版二年级下册所有生字,共计300个;写字是小学阶段一项重要的基本功训练,把汉字写得正确、工整、美观,可以提高运用汉字这一交际工具的准确性和效率。对小学生进行写字...

取消回复欢迎 发表评论: