首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解密电商系统-订单交易业务

解密电商系统-订单交易业务

作者头像
IT架构圈
发布于 2021-10-11 02:31:02
发布于 2021-10-11 02:31:02
73700
代码可运行
举报
文章被收录于专栏:IT架构圈IT架构圈
运行总次数:0
代码可运行

很多人都在淘宝购买过东西,基本的流程都是一致的。

订单(一)

•① 购物车

例如:jd分为自营和多家店铺的,它的购物车比较复杂些。购物车如果保存在session中的话,用户量比较大的情况下,tomcat承受不住。比较合理的方式是保存在redis中,来一起说下redis保存的数据格式。针对购物车结构

1.CartGroup(一个店铺一个CartGroup)2.CartPkg(一个订单就是一个包裹)3.一个订单里面就是一个List

购物车分两种,登录前购物车和登录后购物车

1.登录前是通过redis内部保存的,key=ip_类型(pc,ios,android)2.登录后是通过用户的userid,key=userId3.登录前到登录后他们两者通过redis进行对比,获取最新的合并结果。

•② 下单

买个索尼电视,佳能的相机,这是2个店铺,配送方式不同,仓库也不一样,每个商家的优惠力度也不一样,有打五折的,有打七折的。例如:苹果打5折,我买10个,地址是在郑州,配送方式是从武汉,武汉仓库只有9个苹果,但是河北那边有2个,长沙有3个。按照订单理论如果武汉有11个,买10个刚刚够你买。但是现在武汉只有9个,所以直接就给你发了武汉的9个,河北的1个,够你要的10个,这个就是就近原则。但是这样有个问题退单怎么办,整体退单要退一起退,反之不要退。设计到订单的拆分合并。

订单号生成?订单防重。只要保证分布式下不重复就可以

1.redis incr 自增2.时间戳+自增变量3.UUID

•③ 电商订单的流程梳理

t_order 订单表

t_orderdetail订单明细表

t_orderpay 支付记录表

t_ordership 订单配送表

t_orderlog订单日志表

t_express快递配送表

• ④ MQ实现最大特点:异步和解耦。(付款,订单状态,发布状态)

统一配置文件神器-Disconf(二)

百度disconf是一套完整的基于zookeeper的分布式配置统一解决方案。一个分布式环境中,同类型的服务往往会部署很多实例。这些实例使用了一些配置,为了更好地维护这些配置就产生了配置管理服务。通过这个服务可以轻松地管理成千上百个服务实例的配置问题.

•① 官网介绍

https://github.com/knightliao/disconf 虽然3年没维护了,但是依然很给力

•② 文档

http://disconf.readthedocs.io/zh_CN/latest/

•③ 介绍

•④ disconf的模块架构图

•⑤ 快速开始

这里直说pom里面的配置,具体看disconf文档写的更清楚

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>com.baidu.disconf</groupId>
    <artifactId>disconf-client</artifactId>
    <version>2.6.36</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.5</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.4.6</version>
</dependency>

PS:订单交易的流程和在web开发中如果多项目通过统一配置文件来进行处理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT架构圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Docker的各种有用命令
昨天我们知道了如何在服务器上部署自己的微服务的项目,但是对于很多命令,有小伙伴们就开始疑惑了,命令那么多,我到底应该怎么知道哪些是自己可能会用到的,而且也想了解一下这个命令都是用来做什么的,今天了不起就来给大家伙说说这个Docker 中的各项的命令。毕竟开发都离不开实战。
Java极客技术
2023/09/27
2320
Docker的各种有用命令
Docker常用命令
用户11124775
2024/06/28
1590
Docker小白的福音:50条Docker命令清单,干就完了!
Docker可以让开发人员、运维人员更容易使用容器创建、部署和运行应用程序。掌握一些必备的Docker命令对于使用Docker的工程师非常重要,那么今天笔者给大家整理了一份Docker的命令备忘单,希望大家可以好好保存,在使用的时候可以拿出来查阅使用。
网络技术联盟站
2022/07/21
1.9K0
Docker小白的福音:50条Docker命令清单,干就完了!
SpringCloud-Docker安装与详解
Docker 是一款强大的容器化平台,通过其轻量级的容器技术,使应用程序的开发、部署和管理变得更加便捷和高效。本文将深入探讨 Docker 的安装过程,并详细解析其基本概念、组件及常用命令,以帮助读者充分理解和熟练使用 Docker。企业部署一般都是采用 Linux 操作系统,而其中又数 CentOS 发行版占比最多,因此我们在 CentOS 下安装 Docker。
Damon小智
2024/03/01
4011
SpringCloud-Docker安装与详解
Docker常用命令详解
作为一个后端开发/运维工程师,我们会遇到安装形如MySQL、Redis、MongoDB、Rocket等开发环境的工作内容,Docker容器化是一个方便、高效的实现方式,网络中充斥着形形色色的教程文章,如:Docker安装MySQL类似内容,但是很多文章只是告诉你根据它的命令执行,会安装成功指定的环境,本身并不会告诉你为什么执行这个命令、这个命令有什么意义,由于版本更新、用户误操作等因素导致踩坑,占用宝贵的开发、学习时间,避免大家因为以上问题导致的浪费无意义时间,这是我写这篇文章的意义。
关忆北.
2023/10/19
3310
Docker学习路线11:Docker命令行
Docker CLI (命令行界面) 是一个强大的工具,可让您与 Docker 容器、映像、卷和网络进行交互和管理。它为用户提供了广泛的命令,用于在其开发和生产工作流中创建、运行和管理 Docker 容器和其他 Docker 资源。
小万哥
2023/07/25
6250
Docker学习路线11:Docker命令行
【愚公系列】2023年11月 Java教学课程 199-Docker(基本操作)
Docker中镜像名称由三部分组成:注册服务器地址、仓库名和标签,格式为:<registry>/<repository>:<tag>。
愚公搬代码
2025/06/02
880
【愚公系列】2023年11月 Java教学课程 199-Docker(基本操作)
Docker 使用指南及日常命令集锦
本文是一份全面的 Docker 技术指南,涵盖了从基础概念到高级实践的完整知识体系。文档系统性地介绍了 Docker 的核心技术、安装配置、日常操作、网络与存储管理、安全实践以及生产环境部署等关键内容。
熊猫钓鱼
2025/08/01
1680
Docker 总结 ubuntu
假设路径分隔符为/,第一个参数为SRC_PATH,第二个参数为DEST_PATH,行为如下:
yiyun
2022/04/01
2.4K0
Docker 总结  ubuntu
Docker 常用命令汇总
docker run命令首先会从特定的image创之上create一层可写的container,然后通过start命令来启动它。停止的container可以重新启动并保留原来的修改。run命令启动参数有很多,以下是一些常规使用说明
jwangkun
2021/12/23
4930
n1.Docker命令参数一览表
描述:利用 docker info 命令 Docker Client && Docker Server 信息一览:
全栈工程师修炼指南
2020/10/23
2.3K0
n1.Docker命令参数一览表
Docker Cheat Sheet
“使用Docker,开发人员可以使用任何工具链以任何语言构建任何应用程序。”Dockerized“应用程序完全可移植,可以在任何地方运行 - 同事的OS X和Windows笔记本电脑,在云中运行Ubuntu的QA服务器以及运行的生产数据中心VM红帽。
iOSDevLog
2018/09/20
1.6K0
Docker常用命令大全:一篇文章让你掌握所有技巧
Docker是一种开源的平台,用于开发,交付和运行应用程序。它利用容器化技术,可以将应用程序及其所有依赖(如库、环境变量、配置文件等)打包到一个标准化的单元中,称为容器。这使得应用程序可以在几乎任何环境中轻松部署,并且能够快速扩展和管理。Docker极大地简化了应用程序的交付和部署流程,同时提高了资源利用率和可移植性。因此,Docker被广泛应用于DevOps、持续集成/持续部署以及云计算等领域。
Lion 莱恩呀
2025/07/21
8780
Docker常用命令大全:一篇文章让你掌握所有技巧
Docker 学习总结
推荐安装 vagrant + VirtualBox 快速搭建 docker host,不推荐直接使用 Docker for Mac
CS逍遥剑仙
2020/06/07
3.1K0
《Docker极简教程》--Docker卷和数据持久化--Docker卷的使用
创建 Docker 卷是在 Docker 中管理持久化数据的重要步骤之一。通过 Docker 卷,可以将数据与容器解耦,实现数据的持久化存储,并且可以在容器之间共享数据。以下是创建 Docker 卷使用 docker volume create 命令创建卷
喵叔
2024/05/24
4830
《Docker极简教程》--Docker基础--基础知识(二)
Docker 引擎是 Docker 平台的核心组件,它负责容器的创建、管理和运行。Docker 引擎主要包括两个主要组件:Docker 守护程序(Docker Daemon)和 Docker 客户端(Docker Client)。以下是它们的主要功能和作用:
喵叔
2024/05/24
2620
如何删除Docker镜像,容器和卷
Docker可以轻松地将您的应用程序和服务包装在容器中,以便您可以在任何地方运行它们。但是,在使用Docker时,也很容易累积过多的未使用的图像,容器和数据卷,这会使输出变得混乱并消耗磁盘空间。
谢鸢
2018/10/12
10K0
五分钟学K8S系列<五> - 一万五千字成为docker 的容器管理高手
Docker 通过提供一系列精细的命令,使得容器管理变得异常便捷。这些命令可以根据它们的用途和使用频率被归纳为核心命令和辅助命令两大类。
五分钟学SRE
2024/05/03
7890
五分钟学K8S系列<五> - 一万五千字成为docker 的容器管理高手
Docker命令速查表​
如需深入学习Docker Compose或Kubernetes集群管理,欢迎访问博客获取更多资源:Docker命令速查表。
timerring
2025/02/07
1850
第一章 Docker入门基础
MySQL使用过程中的环境变量 Num|Env Variable| Description —-|—-|—- 1|MYSQL_ROOT_PASSWORD|root用户的密码 2|MYSQL_DATABASE|创建一个数据库 3|MYSQL_USER,MYSQL_PASSWORD|创建一个用户以及用户密码 4|MYSQL_ALLOW_EMPTY_PASSWORD|允许空密码
公众号: 云原生生态圈
2021/11/15
7160
相关推荐
Docker的各种有用命令
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档