架构思维成长系列教程(七)- 大型电商系统架构设计

背景

大型电商网站,指的是每日用户访问量达到数百万,每日页面访问量达到数千万乃至上亿级别的网站,达到这个规模的电商网站在国内不多。

内容

架构设计分为两部分:应用架构设计和基础架构设计

  • 应用架构设计:指的是跟业务结合最紧密的业务系统架构设计,如电商网站架构、供应链系统架构、个性化推荐引擎架构、电商搜索引擎架构
  • 基础架构设计:指的是底层系统支撑中间件的架构设计,应用系统是架设在基础架构之上的,如大数据平台架构设计、云平台架构设计、服务治理平台架构设计、分布式文件存储架构设计

大型电商系统架构设计

系统架构设计的目标和原则是:高可用、易伸缩、低成本。

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

  • 服务化:是将所有核心业务沉淀下来形成各种服务,供各业务系统共享,基础架构相关资源也以服务的方式提供,包括消息、文件存储、缓存等。
  • 分布式:系统架构中的每一层及所有的资源都是分布式的,支持平滑的水平扩展。

从技术架构上可以把电商网站系统分为五层:应用层,核心服务层,基础服务层,数据访问层,数据源。如图所示

电商系统架构

介绍一下每一层的作用和包含的主要模块:

  1. 应用层:是面向用户的应用系统,提供给顾客、商家、员工等角色使用的平台,如网站页面、购物车、结算中心、会员中心、在线客服、商家平台、供应商平台、运营后台等。应用系统通过调用核心服务,实现特定的业务逻辑。
  2. 核心服务层:把核心业务逻辑进行封装,以服务的形式提供出来,供各应用系统进行调用。核心服务有交易、支付、促销、类目维护、商品管理、店铺装修、库存操作等。
  3. 基础服务层:把原子业务进行封装,以服务的形式提供出来,供核心服务层调用,这里要注意,一般情况下应用层不能够直接调用基础服务层,也就是说不能跨层调用服务。核心服务层在封装某个业务逻辑的时候,常常会调用多个基础服务层的接口。基础服务层包括订单、库存、价格、用户、商品、积分等。
  4. 数据访问层:是实现对数据访问的中间件层,功能模块包括持久化组件、事务处理、连接池、NoSQL 客服端、SQL 管理工具箱等。任何数据访问都必须通过数据访问层,不允许绕过数据访问层,直接访问数据库。
  5. 数据源:指数据库集群,包括 Oralce、MySQL、Hadoop、Hbase、MangoDB 等,数据库一般是集群部署,实现主备机制、读写分离。

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

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

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

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

 

上一章教程

架构思维成长系列教程(六)- Serverless架构初探

该系列教程

架构思维成长系列教程

我的专栏

 

 

至此,全部介绍就结束了

 

 

-------------------------------

-------------------------------

 

我的CSDN主页

关于我(个人域名,更多我的信息)

我的开源项目集Github

 

期望和大家一起学习,一起成长,共勉,O(∩_∩)O谢谢

欢迎交流问题,可加个人QQ 469580884,

或者,加我的群号 751925591,一起探讨交流问题

不讲虚的,只做实干家

Talk is cheap,show me the code

已标记关键词 清除标记
相关推荐
大型互联网级企业架构师视频教程 JAVA高级架构师必备课程 82G超强的JAVA架构师课程 ===============课程目录=============== (0);目录中文件数:1个 ├─(1) 文档与源码.zip (1)\\01.VIP课程-互联网工程专题;目录中文件数:1个 ├─(2) 01.VIP课程-互联网工程专题.zip (2)\\02.VIP课程-应用框架专题;目录中文件数:1个 ├─(3) 02.VIP课程-应用框架专题.zip (3)\\03.VIP课程-性能调优专题;目录中文件数:1个 ├─(4) 03.VIP课程-性能调优专题.zip (4)\\04.VIP课程-分布式专题;目录中文件数:1个 ├─(5) 04.VIP课程-分布式专题.zip (5)\\05.VIP-项目专题(完);目录中文件数:1个 ├─(6) 05.VIP-项目专题(完).zip (6)\\06.微服务(完);目录中文件数:0个 (7)\\07.解决方案专题(完);目录中文件数:0个 (8)\\多个项目实战;目录中文件数:0个 (9)\\用docker compose编排微服务;目录中文件数:7个 ├─(7) CentOS-7-x86_64-DVD-1511.zip ├─(8) docker入门与部署微服务(1).pdf ├─(9) vip-docker入门与部署微服务-.mp4 ├─(10) vip-用docker compose编排微服务-.mp4 ├─(11) vip-用docker compose编排微服务.zip ├─(12) xshell.exe ├─(13) 用Docker Compose编排微服务.docx (10)\\01.VIP课程-互联网工程专题\\00-视频;目录中文件数:11个 ├─(14) 01《人人基因产品》讲解-.mp4 ├─(15) 02概要设计-.mp4 ├─(16) 03mysql 一主多从 .mp4 ├─(17) 04maven 使用讲解 .mp4 ├─(18) 05maven下ok.mp4 ├─(19) 06git 服务搭建与使用(上).mp4 ├─(20) 07git基本命令.mp4 ├─(21) 08jenkins (1).mp4 ├─(22) 08jenkins .mp4 ├─(23) 09java程序员开发效率工具idea教程(一).mp4 ├─(24) 10 java程序员开发效率工具idea教程(二).mp4 (11)\\02.VIP课程-应用框架专题\\00-视频;目录中文件数:13个 ├─(25) 01-spring结构概述-.mp4 ├─(26) 02-spring ioc 完整版-.mp4 ├─(27) 03-aop动态代理-.mp4 ├─(28) 04-spring 增强插件-.mp4 ├─(29) 05-spring mvc-.mp4 ├─(30) 06-spring mvc2 源码解析-.mp4 ├─(31) 07-spring mvc 3-.mp4 ├─(32) 08-mybatis (一)-.mp4 ├─(33) 09-mybatis 应用与配置-.mp4 ├─(34) 10-分布式架构-.mp4 ├─(35) 11-api 网关安全认证-.mp4 ├─(36) 12-java 日志体系-.mp4 ├─(37) 13-java日志异常-.mp4 (12)\\03.VIP课程-性能调优专题\\00-视频;目录中文件数:8个 ├─(38) 01-nginx (一) -.mp4 ├─(39) 02-nginx(二) .mp4 ├─(40) 03-tomcat 源码-.mp4 ├─(41) 04-tomcat生产环境配置详解-.mp4 ├─(42) 05-软件发布管理-.mp4 ├─(43) 06-video_-.mp4 ├─(44) 07-video_-.mp4 ├─(45) 08-video_-.mp4 (13)\\04.VIP课程-分布式专题\\00-视频;目录中文件数:35个 ├─(46) 01-分布式系列课程介绍-.mp4 ├─(47) 02-分布式系列并发编程executor-.mp4 ├─(48) 03-分布式专题并发编程lock&tools;-.mp4 ├─(49) 04-分布式专题并发编程atomic&collections;-.mp4 ├─(50) 05-zookeeper集群部署& 快速入门-.mp4 ├─(51) 06-zookeeper 场景介绍与开发-.mp4 ├─(52) 07-12月5号-zookeeper场景讲解(分布式锁)&zkclient;使用-.mp4 ├─(53) 08-zookeeper之zkclient&curato
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页