1.电商核心业务——下单流程

1.1 下单流程图

1.2 流程说明:

  1. 用户浏览商品系统
  2. 添加商品到购物车
  3. 选择其中某些商品下订单——提交订单
  4. 拉起微信支付、支付宝支付——支付订单
  5. 支付成功后,通知第三方仓储、发货系统,准备发货——物流发货

1.3 下单前涉及的业务

  1. 选中购物车后,在确认订单页,确认订单中的商品、价格、运费等无误;
  2. 选择是否使用优惠券、促销活动、积分等;
  3. 确认快递方式(到付等)、收件地址、是否开发票、发票抬头等

2.核心环节——订单创建、支付

2.1 确认订单并跳转支付

2.2 流程说明:

  1. 确认订单信息——订单系统返回订单中商品、价格等信息
  2. 正式下单——用户确认无误后,提交正式下单,订单系统将订单数据写入数据库
  3. 跳转支付——订单系统创建订单成功,跳转支付页,拉起微信支付或支付宝支付
  4. 完成支付——用户扫码支付,完成整个下单到支付的流程。

2.3 支付成功后的业务细节

支付的过程调用的第三方支付系统,如:支付宝、微信等等;而在支付后,由第三方支付系统回调支付结果,根据回调支付成功结果,那么需要进行发送优惠券、红包、push短信通知等业务。流程图如下:

3.订单系统

3.1 订单系统的模块划分

  1. 主要模块——主要模块也是订单系统的核心功能:下单模块。
  2. 查询模块——订单查询功能,查询模块主要提供给用户查询自己的订单信息功能。
  3. 异步模块——创建订单并支付成功后,异步模块在支付回调后发优惠券、红包、push短信通知等。
  4. 退货模块——客户在查询订单后,有时候会有各种原因想要退货,订单系统需要提供退货功能。
  5. 大促模块——类似双11、秒杀等大促场景下,专门用于扛流量洪峰的用于活动的大促模块,需要支持高并发下单场景

3.2 关联第三方

  1. 第三方物流系统——查看订单的配送状态,通过订单系统从第三方物流公司的系统中进行查询
  2. 数据分析与第三方团队——订单数据是核心数据,大数据团队需要根据该数据做成报表给公司高层查看

3.3 完整的业务场景

思考:以上的场景中,哪些可以用MQ、ES等来实现,达到优护系统性能的目的?

答:查询模块用ES;异步模块用MQ;支付回调相关用MQ保障;第三方对接用MQ解耦达到异步避免性能被拉低;大数据团队需要的数据通过MQ或DB从库实现,避免主库性能损耗。

4.负载情况

虚拟场景: 新兴公司,注册用户几千万,日活量为百万,每日订单量为几十万。每天最高峰QPS为2000/s,秒杀或大促活动时达到1W+/s。

存在的问题:

  1. 订单系统日益增长的数据量,每日数据累加的结果;
  2. 大促活动是每秒上万的访问压力,高峰期上万,其他时间段回落到几百

导致的性能问题:

  1. 数据量累加导致对DB的占满,DB写入磁盘,第一:磁盘利用率高,相对性能低;第二:DB单库单表数据量大,存在SQL执行性能下降等问题;
  2. 单库面对上万每秒的QPS会直接被打死,如果添加机器又有点浪费,毕竟高峰期就那么个把小时,不划算

01 场景:一个真实电商订单系统的整体架构、业务流程及负载情况相关推荐

  1. Java电商平台-电商订单系统全解析

    说明:Java电商平台-电商订单系统全解析主要讲解OMS的内容,设计,开发,架构等知识 今天分享将会分为以下三个环节来阐述: 1.订单系统的介绍 2.订单系统的解构 3.垂直电商订单系统设计思路 一. ...

  2. 支付退款流程设计_电商订单系统,你该如何设计

    文章来自:https://baijiahao.baidu.com/s?id=1602959656926168475&wfr=spider&for=pc 作者:人人都是产品经理 点击加入 ...

  3. 电商订单系统,你该如何设计?

    视频教程推荐 PHP秒杀系统 高并发高性能的极致挑战     一个订单系统的设计并不简单,它需要一批又一批的人去维护.去优化,根据公司的业务情况做出改变与兼容.这篇文章主要与大家分析一下电商订单系统该 ...

  4. 支付退款流程设计_电商之下:电商订单系统,从0到1设计思路

    一个订单系统的设计并不简单,它需要一批又一批的人去维护.去优化,根据公司的业务情况做出改变与兼容.这篇文章主要与大家分析一下电商订单系统该如何设计. 在一个电商所有模块中,订单系统作为最为核心的模块, ...

  5. 电商订单系统,你该如何设计

    本文主要讲述了在传统电商企业中,订单系统应承载的角色,就订单系统所包含的主要功能模块梳理了设计思路,并对订单系统未来的发展做了一些思考. 1. 订单系统在企业中的角色 在搭建企业订单系统之前,需要先梳 ...

  6. 电商订单系统:从0到1设计思路

    概述 本文主要讲述了在传统电商企业中,订单系统应承载的角色,就订单系统所包含的主要功能模块梳理了设计思路,并对订单系统未来的发展做了一些思考. 1. 订单系统在企业中的角色 在搭建企业订单系统之前,需 ...

  7. 【电商】电商后台系统整体介绍

    电商后台系统支撑了电商企业亿万级的交易量,其重要性不言而喻.本文章将从电商后台系统的的各个模块来分析,让大家的后台真正"硬"起来. 当前关于产品经理的文章主要偏向方法论.业界动向. ...

  8. 一个电商供应链系统的DDD实战

    欢迎关注方志朋的博客,回复"666"获面试宝典 作者 | 武清明 编辑 | 王一鹏 任何一套业务架构都可能存在一定的历史问题,这是业务在不同阶段做技术选型必然出现的状况,如何用新的 ...

  9. 直播开篇——电商直播系统源码直播场景和技术分析

    一.直播场景和技术分析 好吧,既然你们非要搞什么直播,我就开始写写直播吧,怪不得WebRTC是下一代关键技术,直播的一些业务页必须要用WebRTC来实现 1. 电商直播系统源码场景分析 秀场直播 这个 ...

最新文章

  1. html判断数字数据的大小写,判断一个字符是否是数字、还是大小写字母
  2. POJ1118 HDU1432 Lining Up
  3. Python中super()和__init__()方法
  4. kong plugin rate limiting
  5. 5.Qt自定义Button按钮的实现
  6. 分布式ID生成器的解决方案总结
  7. 中文电子病例命名实体识别项目
  8. MySQL数据库学习笔记(二)----MySQL数据类型
  9. Python第六次作业
  10. (75)Xilinx Slice组成结构有哪些?
  11. ssh备份linux系统,远程自动备份 rsync+ssh+sshpass
  12. SQL中char、varchar、nvarchar的区别
  13. 中国计算机学会 (China Computer Federation,CCF) 推荐中文科技期刊目录 - 2019
  14. Unity游戏建议对话功能 Fungus插件。
  15. Matlab中_pkg.exe,pkg文件该如何打开?轻松打开pkg文件的方法
  16. Javescript REVIEW
  17. 博客文章分类导引(持续更新)
  18. MySql查询某个时间段内的数据(前一周、前三个月、前一年等)
  19. 关于字体绘制的baseline (QT 和 D2D)
  20. 关于MC34063的奇怪问题参考解决方案(mc34063升压失败、输出等于输入,输出电压低于输入)

热门文章

  1. 颠覆微服务认知:深入思考微服务的七个主流观点
  2. [枚举子集]leetcode1255:得分最高的单词集合(hard)
  3. 使用原生rust搭建http服务器
  4. 数学分析第一课(数学分析和微积分的桥梁)
  5. 跨部门协作难于上青天?你肯定没有这么做……
  6. C++ 读取文件的四种方式
  7. java游戏健值测试软件,教你使用JavaMagic来改JAVA手机游戏软件键值和改全屏.doc
  8. Hadoop生态系统详解
  9. [思考]两个云计算平台的葬礼
  10. “总裁,夫人被您送去互联网公司三年了…”