谷粒商城实战笔记-282~283-商城业务-订单服务-提交订单的问题

news2024/11/15 17:57:21

文章目录

  • 一,282-商城业务-订单服务-提交订单的问题
    • 调试过程中出现的问题
    • services面板介绍
      • 什么是 Services Panel?
      • 主要作用
      • 解决的痛点
      • 使用方法
  • 二,283-商城业务-分布式事务-本地事务在分布式下的问题
    • 分布式事务问题
    • 解决方案
    • 分布式事务处理流程
    • 事务保证

一,282-商城业务-订单服务-提交订单的问题

这一节的主要内容是测试正常情况下的订单提交流程是否顺畅。

调试过程中出现的问题

  • 出现异常后,因为没有分布式事务,导致库存占用无法回滚,调试几次,库存就不够了,可以把库存调到很大
  • 没有开启网关服务,导致nginx请求失败

services面板介绍

什么是 Services Panel?

Services Panel 是 IntelliJ IDEA 提供的一个功能模块,旨在帮助开发者更好地管理和监控应用程序中的服务组件。它位于 IDE 的右侧面板中,可以方便地访问一系列与项目相关的服务和工具。

主要作用

  1. 统一管理工具和服务

    • Services Panel 将多种工具和服务整合在一起,包括构建工具、版本控制系统、测试框架等,使得开发者可以在一个地方管理所有这些工具。
  2. 提高开发效率

    • 通过将常用的工具和服务集中在一个面板上,开发者可以更快地访问和使用它们,从而提高工作效率。
  3. 简化调试过程

    • Services Panel 提供了丰富的调试工具,比如查看日志文件、监控应用性能、执行单元测试等,有助于快速定位问题。
  4. 增强协作能力

    • 集成了版本控制工具,便于团队成员之间的代码共享和协作。
  5. 扩展性

    • 支持插件扩展,可以根据项目需求添加更多的服务和工具。

解决的痛点

  • 快速访问项目服务:无需在不同的窗口或工具之间切换,所有的服务都可以在一个面板上访问,大大节省了时间。

  • 简化项目配置:自动检测和配置项目依赖和服务,减少手动配置的时间和错误。

  • 提升调试体验:提供强大的调试工具,如断点、步进执行等功能,帮助开发者快速解决问题。

  • 团队协作更加顺畅:集成版本控制系统,方便进行代码审查、合并分支等操作,增强了团队间的协作。

使用方法

  1. 打开 Services Panel

    • 在 IntelliJ IDEA 中,可以通过主菜单栏选择 View > Tool Windows > Services 或者直接点击工具栏上的 Services 图标来打开 Services Panel。
  2. 查看可用服务

    • Services Panel 默认显示一些常用的服务,如 Git、Maven、Gradle 等。可以通过面板左侧的树形结构查看和管理这些服务。
  3. 执行操作

    • 可以直接在面板中执行相关操作,比如提交更改、运行构建任务、执行测试等。
  4. 定制面板

    • 可以根据个人喜好和项目需求定制 Services Panel,添加或移除服务,甚至安装额外的插件来扩展面板的功能。
  5. 调试和监控

    • Services Panel 还提供了查看日志文件、监控应用性能等功能,这对于调试和监控应用非常有用。
  6. 团队协作

    • 使用面板中的版本控制工具来管理代码仓库,方便团队成员之间的协作。

二,283-商城业务-分布式事务-本地事务在分布式下的问题

在这里插入图片描述

因为商城是分布式服务,不同的服务操作不同的数据库,而事务只能保证同一个数据库连接的原子性,不能保证多个不同的连接的原子性。

分布式事务问题

  1. 订单服务异常:如果订单服务在处理过程中出现异常,库存锁定将不运行,需要全部回滚,撤销操作。
  2. 库存服务事务自治:如果库存服务在锁定库存时失败,需要全部回滚,订单服务也应继续回滚。
  3. 库存服务锁定成功,但网络原因返回数据途中问题:如果库存服务成功锁定库存,但在返回结果时遇到网络问题,如何处理?
  4. 库存服务锁定成功,但库存服务下面的逻辑发生故障:如果库存服务成功锁定库存,但在后续的逻辑处理中发生故障,订单服务已经回滚,如何处理?

解决方案

  • 利用消息队列实现最终一致性:在库存服务成功锁定库存后,发送消息到消息队列(如当前库存工作单),过一段时间自动解锁。解锁前先查询订单的支付状态,解锁成功后修改库存工作单详情项状态为已解锁。

分布式事务处理流程

  1. 订单服务下订单:订单服务首先发起订单创建请求。
  2. 库存服务锁定库存:订单服务请求库存服务锁定库存。
  3. 用户服务扣减积分:订单服务请求用户服务扣减积分。

事务保证

  • 订单服务异常:如果订单服务在处理过程中出现异常,库存锁定将不运行,需要全部回滚,撤销操作。
  • 库存服务事务自治:如果库存服务在锁定库存时失败,需要全部回滚,订单服务也应继续回滚。
  • 网络问题:如果库存服务成功锁定库存,但在返回结果时遇到网络问题,可以通过消息队列确保最终一致性。
  • 逻辑故障:如果库存服务成功锁定库存,但在后续的逻辑处理中发生故障,订单服务已经回滚,可以通过消息队列和定时任务来处理解锁和状态更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hubspot AI 工具| 使用 6 款 HubSpot AI 工具,提升初创团队海外营销与销售效率

看看 HubSpot AI 工具如何完美助力中国出海与外贸企业加速落地全球 GTM 策略吧~ 在日益竞争激烈的全球市场中,初创企业想要获得成功,必须有效将产品推向市场,并建立客户基础,与竞争对手一较高下。 这需要精心策划的进入市场&…

常用于单北斗多频定位导航模块资料:ATGM332D-F8N

单北斗多频定位导航模块的高精度定位优点描述: 1、多频信号融合:单北斗多频定位导航模块能够接收和处理来自北斗卫星系统的多个频段信号。通过多频信号的融合处理,可以显著提高定位的精度。因为不同频段的信号在传播过程中受到的影响不同&…

力扣134-加油站(java题解)

题目链接:134. 加油站 - 力扣(LeetCode) 前情提要: 因为本人最近都来刷贪心类的题目所以该题就默认用贪心方法来做。 贪心方法:局部最优推出全局最优。 如果一个题你觉得可以用局部最优推出全局最优,并…

IO进程day06(进程间通信、信号、共享内存)

目录 【1】进程间通信 IPC 1》 进程间通信方式 2》 无名管道 1> 特点 2> 函数接口 3> 注意事项 练习:父子进程实现通信,父进程循环从终端输入数据,子进程循环打印数据,当输入quit结束。 3》有名管道 1> 特点 …

24数学建模国赛准备!!!!(10——马氏链模型)

详细获取资料方式在文章末尾!!!! 点击链接加入群聊获取资料以及国赛助力https://qm.qq.com/q/NGl6WD0Bky !!!!!!!!!&…

多场景建模: STAR(Star Topology Adaptive Recommender)

之前,分享了一篇关于多任务学习的文章:多任务学习MTL模型:MMoE、PLE,同样的还有关于多任务学习中的多目标loss优化策略。 这篇文章则开始一个与多任务学习有着紧密联系的系列:多场景建模学习。 前言 首先&#xff0…

[Raspberry Pi]如何利用docker執行motioneye,並利用Line Notify取得即時通知和照片?

[Motioneye]How to setup motion detection and send message/image for Line Notify 無意間,翻了一本關於樹莓派的書籍,除了樹莓派的簡介和應用外,也包含初階和高階的Linux運作邏輯,書籍結構相當完整,也因此需要花時間…

DAC: High-Fidelity Audio Compression with Improved RVQGAN

Rithesh KumarDescript, Inc.2023NIPS code 文章目录 abstratmethod abstrat 44.1k音频编码为8k bps,接近90x压缩比;可以处理speech, musiccodebook collapse: 部分码本没有利用到。----quantizer dropout :允许单个模型支持可变比特率&…

HarmonyOS NEXT实战:“相机分段式拍照”性能提升实践

概述 相机拍照性能依赖算法处理的速度,而处理效果依赖算法的复杂度,算法复杂度越高的情况下会导致处理时间就越长。目前系统相机开发有两种相机拍照方案,分别是相机分段式拍照和相机单段式拍照: 分段式拍照是系统相机开发的重要…

几款最新好用的图纸加密软件

在现代数字化办公环境中,图纸的保护变得尤为重要。无论是建筑设计图纸、工程图纸,还是机械制造图纸,如何有效地加密并保护这些机密文件,避免信息泄露,是每个企业都需要重视的问题。今天,我们就来推荐几款最…

从开题到答辩:ChatGPT超全提示词分享!(下)【建议收藏】

数据收集 1. "请帮我找出关于如何收集【研究领域】社交媒体数据进行消费者行为研究的五篇指导性文章,并概述它们的主要方法论摘要。" 2. "我需要对【特定领域】市场的消费者偏好进行调查。能否提供一份包含调查问卷设计原则和示例的草稿?…

react vant 在使用dialog.confirm取消报错 Uncaught (in promise) undefined

项目场景: 在使用react做移动端开发时,需要使用Dialog.confirm确认框来做弹框选项,这是在操作中非常常用的一种场景。 问题描述 在列表中,使用弹框时,点击取消时,语法报错;导致后面再触发弹框…

养老小程序源码家政服务小程序开发方案

预约上门养老小程序,是php开发预约,前端是uniapp,有开发好的小程序案例,可源码,也可以二开,也可以定制开发。 一 用户端:服务分类、服务内容详情介绍、在线下单支付,管理我的订单。…

认知杂谈42

今天分享 有人说的一段争议性的话 I I 《摆脱自负自卑,找准自我定位》 I 在咱的生活里啊,有时候咱会在自负和自卑这两个地方来回晃悠,根本就找不着真正属于自己的那个位置。你想想看,自负的时候呢,就好像给自己戴了…

Unity(2022.3.41LTS) - 地形

目录 一、地形的创建 二.页面详解 1.创建相邻的 Terrain 瓦片。 2.雕刻和绘制地形。 3.添加树。 4.添加细节,如草地、花朵和岩石。 5.更改所选 Terrain 的常规设置 三、地形编辑工具 四、地形的属性设置 五、地形的优化 六、地形的应用场景 一、地形的创…

校园牛奶订购配送小程序开发制作方案

校园牛奶订购配送小程序系统的开发方案,包括对用户需求的分析、目标用户的界定、使用场景的设定以及开发功能模块的规划。校园牛奶订购配送小程序系统主要是为校园内学生和教职工提供牛奶订购与配送服务。 目标用户 主要面向在校学生、教职工以及其他有牛奶订购需求…

Mac GIF录制神器LICEcap

GIF录制软件的优点先看下 mac gif制作win gif录制完全免费界面简洁软件大小不到1M 今天就来介绍一款录屏并能生成 GIF 的软件:LICEcap。 背景 希望小巧免费的GIF录制的话LICEcap非常适合,网上很多能轻松录制屏幕的工具,基本都是录制之后带…

操作系统:实验四进程调度实验

一、实验目的 1、了解操作系统CPU管理的主要内容。 2、加深理解操作系统管理控制进程的数据结构--PCB。 3、掌握几种常见的CPU调度算法(FCFS、SJF、HRRF、RR)的基本思想和实现过程。 4、用C语言模拟实现CPU调度算法。 5、掌握CPU调度算法性能评价指…

基于python文案转语音并输出-自媒体等职业副业均可使用,不受他人限制

开发背景: 目前自媒体比较火爆,有很多书单、视频等推广方式可以作为副业盈利,之前每次搞的时候都需要不停的网上找一些在线文字转语音的平台将文案复制上去然后生成下载,好多还是付费的,挺无奈的,然后就想着自己能不能搞,然后的然后就有了下面的东西, 如果大家有此类需要…

文心智能体-梦想目标实现助手-实现你的老板梦

前言: 其实我从小就很羡慕小说里面的男主,从家境贫寒到后面成为天之骄子,在一路上都有很多好的机遇和贵人。用今天的话来说,男主好像都有一个“系统”,毫不意外,我也有这样的武侠梦,金庸的小说更…