【黑马SpringCloud微服务开发与实战】(六)分布式事务

基于Spring Cloud的两阶段提交分布式事务框架 缘起 现在用的比较多的分布式事务方案主要有TCC和可靠消息。TCC需要对业务进行改造,分别实现try/confirm/cancel方法,侵入性太强,工作量大。而可靠消息主要适合可以异步调用的业务,对于需要跨服务同步调用的业务,实现困难。以订机票为例,从深圳->新疆乌鲁木齐,假设没有直达,第一步先要确定中转地,选择一家航空公司订票,假设这步的订票结果是成功调用南航的服务订到了深圳->西... 阅读详情

1. 什么是分布式事务

在这里插入图片描述

在这里插入图片描述
下单失败,购物车还被清理了。不符合一致性。

在这里插入图片描述

2. seata的架构和原理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 部署TC服务

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
docker network ls

docker inspect mysql

mysql 在hm-net下,这里我的ncaos不是跟着视频配的,因此需要。

docker network connect hm-net nacos

docker inspect nacos

在这里插入图片描述
部署:

docker run --name seata \
-p 8099:8099 \
-p 7099:7099 \
-e SEATA_IP=192.168.10.100 \
-v ./seata:/seata-server/resources \
--privileged=true \
--network hm-net \
-d \
seataio/seata-server:1.5.2

这里博主报错了。。

在这里插入图片描述
大概率和防火墙有关,这里先重启一下docker服务吧。

在这里插入图片描述
欧克,没问题了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 微服务集成seata

在这里插入图片描述

在这里插入图片描述

seata:
  registry: # TC服务注册中心的配置,微服务根据这些信息去注册中心获取tc服务地址
    type: nacos # 注册中心类型 nacos
    nacos:
      server-addr: 192.168.10.100:8848 # nacos地址
      namespace: "" # namespace,默认为空
      group: DEFAULT_GROUP # 分组,默认是DEFAULT_GROUP
      application: seata-server # seata服务名称
      username: nacos
      password: nacos
  tx-service-group: hmall # 事务组名称
  service:
    vgroup-mapping: # 事务组与tc集群的映射关系
      hmall: "default"

在这里插入图片描述

<!--统一配置管理-->
  <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  </dependency>
  <!--读取bootstrap文件-->
  <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-bootstrap</artifactId>
  </dependency>
  <!--seata-->
  <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
  </dependency>

购物车服务、交易服务、商品服务都需要改造。

在这里插入图片描述

spring:
  application:
    name: trade-service # 服务名称
  profiles:
    active: dev
  cloud:
    nacos:
      server-addr: 192.168.10.100 # nacos地址
      config:
        file-extension: yaml # 文件后缀名
        shared-configs: # 共享配置
          - dataId: shared-jdbc.yaml # 共享mybatis配置
          - dataId: shared-log.yaml # 共享日志配置
          - dataId: shared-swagger.yaml # 共享日志配置
          - dataId: shared-seata.yaml # 共享seata配置

修改application.yaml

server:
  port: 8085
feign:
  okhttp:
    enabled: true # 开启OKHttp连接池支持
  sentinel:
    enabled: true # 开启Feign对Sentinel的整合
hm:
  swagger:
    title: 交易服务接口文档
    package: com.hmall.trade.controller
  db:
    database: hm-trade


在这里插入图片描述

5. XA模式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

6. AT模式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

SpringCloud微服务技术栈实战教程 来源B站:黑马程序员SpringCloud微服务技术栈实战教程,涵盖springcloud微服务架构+Nacos配置中心+分布式事务等之前我们学习的项目一是单体项目,可以满足小型项目或传统项目的开发。而在互联网时代,越来越多的一线互联网公司都在使用微服务技术。从谷歌搜索指数来看,国内从自2016年底开始,微服务热度突然暴涨:接下来几天,我们就一起来揭开它的神秘面纱。计划是这样的,课前资料中给大家准备了一个。 阅读详情

相关推荐

2024最新SpringCloud微服务开发与实战 视频教程 下载

│ Elasticsearch01-14.JavaRestClient-文档的CRUD.mp4。│ Elasticsearch01-13.JavaRestClient-新增文档.mp4。│ MybatisPlus-10.核心功能-IService的Lambda方法.mp4。│ MybatisPlus-11.核心功能-IService的批量新增.mp4。│ Elasticsearch01-07.索引库操作-索引库的CRUD.mp4。

1250

springCloud分布式事务实战(一)案例需求及实现步骤

本文不对分布式事务原理进行探索,而是通过一个案例来说明如何使用分布式事务案例需求:创建2个基于springCloud的微服务,分别访问不同的数据库;然后创建一个整合服务,调用微服务实现数据的保存到2个不同的数据库,要求采用分布式事务,要么都成功,要么都失败。案例拓扑图: 实现步骤:1 分布式事务处理器的编译和安装Redis 安装注册中心编写分布式事务服务器安装测试2 数据库...

梓鸿 1637

黑马商城微服务-上

什么时候需要拆分微服务?如果是创业型公司,最好先用单体架构快速迭代开发,验证市场运作模型,快速试错。当业务跑通以后,随着业务规模扩大、人员规模增加,再考虑拆分微服务。如果是大型企业,有充足的资源,可以在项目开始之初就搭建微服务架构。如何拆分?首先要做到高内聚、低耦合从拆分方式来说,有横向拆分和纵向拆分两种。纵向就是按照业务功能模块,横向则是拆分通用性业务,提高复用性服务拆分之后,不可避免的会出现跨微服务的业务,此时微服务之间就需要进行远程调用。微服务之间的远程调用被称为RPC,即远程过程调用。

2302_81048526的博客 1203

springCloud分布式事务实战(十)分布式事务综合大测试(全,共10篇)

启动注册中心,启动redis ,启动事务管理器 启动mysql 启动微服务1 ,启动微服务2(1)正常事务测试:不抛出异常,两边都插入 1 设计没有故障整合服务@TxTransaction(isStart=true) //关键 4 @Overridebr/>@Transactionalpublic int saveBlockTheme(Block block, Theme theme) {...

weixin_34342207的博客 202

springCloud特色知识记录(基于黑马教程2024年)

是 Spring Cloud Gateway 中的一个核心过滤器,它负责将请求真正路由到目标服务,并处理响应的回传。简单来说,这是网关在处理请求时,实际完成路由和转发的核心组件。

gege_0606的博客 1194

SpringCloud微服务入门

什么时候需要拆分微服务?如果是创业型公司,最好先用单体架构快速迭代开发,验证市场运作模型,快速试错。当业务跑通以后,随着业务规模扩大、人员规模增加,再考虑拆分微服务。如果是大型企业,有充足的资源,可以在项目开始之初就搭建微服务架构。如何拆分?首先要做到高内聚、低耦合从拆分方式来说,有横向拆分和纵向拆分两种。纵向就是按照业务功能模块,横向则是拆分通用性业务,提高复用性服务拆分之后,不可避免的会出现跨微服务的业务,此时微服务之间就需要进行远程调用。微服务之间的远程调用被称为RPC,即远程过程调用。

weixin_45072119的博客 2399

Spring Cloud分布式事务终极解决方案探讨

一 小小推广 讲座 本话题已收入视频讲座《Spring Cloud分布式事务解决方案》大家不妨围观下 开源项目 我们利用消息队列实现了分布式事务的最终一致性解决方案,请大家围观。可以参考Github CoolMQ源码,项目支持网站: http://rabbitmq.org.cn,最新文章或实现会更新在上面 二 前言 阿里2017云栖大会《...

weixin_34279246的博客 1757

开源实战 | 基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程

本文详细介绍了基于SolidWorks与Matlab的并联索驱机器人轨迹规划全流程,涵盖从基础概念到实战技巧的各个环节。通过SolidWorks建模、Matlab运动学实现及轨迹优化策略,展示了如何实现高精度轨迹规划,适用于摄影、医疗等领域的机器人应用。

weixin_28331555的博客 402

事务 | Spring Cloud 分布式事务管理 LCN、GTX、ByteTCC

事务 | Spring Cloud 分布式事务管理 LCN、GTX、ByteTCC 在微服务如火如荼的情况下,越来越多的项目开始尝试改造成微服务架构,微服务即带来了项目开发的方便性,又提高了运维难度以及网络不可靠的概率. Spring Cloud 分布式事务管理 单体式架构 微服务架构 优点: 缺点: 分布式事务的引入 分布式事务解决方案 基于XA协议的两阶段提交 消息事务+最终一致性 TCC编程模式 具体实现 LCN B...

双鬼带单 7万+

渗透测试实战—云渗透(AK/SK泄露)

渗透测试实战思路分享:getshell方法及横向移动方法,云安全(AK/SK泄露)

网安日记本的博客 4048

定时移动鼠标点击鼠标,防止电脑息屏的vba脚本

定时移动鼠标,使系统始终处于激活状态,防止系统息屏。

panfei263031的博客 5927

某马2024SpringCloud微服务开发与实战 bug记录与微服务知识拆解(MybatisPlus、Docker、MQ、ES、Redis)第五章

介绍了使用Sentinel进行请求限流、线程隔离、服务熔断等操作和分布式事务一致性处理方案seata 背景色是愧花黄绿

Java、Python、AI、前沿技术等领域的技术总结和经验分享。 1万+

高通Camx功能feature分析之八:高通NCS服务之架构和初始化

本文介绍了高通NCS(NONCameraSensor)服务的架构与初始化流程。NCS服务通过QMI接口访问非相机传感器,为CameraEIS、AEC等算法节点提供陀螺仪、加速度计等传感器数据支持。文章详细解析了NCS服务的分层架构,包括客户端、服务端、QSEE接口实现等组件,并重点分析了初始化过程中获取传感器列表、查询能力等关键步骤。通过camxsetting.xml中的enableNCSService开关控制服务启动,初始化过程涉及QSEE单例创建、传感器能力查询等核心操作。后续文章将继续深入讲解相关技术

925

【SpringCloud】单体商城项目拆分微服务和各个组件学习①

文章目录前言0、导入商城项目0.1.安装MySQL0.2.后端0.3.前端1.认识微服务1.1.单体架构1.2.微服务1.3.SpringCloud2.微服务拆分2.1.熟悉黑马商城2.1.1.登录2.1.2.搜索商品2.1.3.购物车2.1.4.下单2.1.5.支付2.2.服务拆分原则2.2.1.什么时候拆2.2.2.怎么拆2.3.拆分购物车、商品服务2.3.1.商品服务2.3.2.购物车服务2.4.服务调用2.4.1.RestTemplate2.4.2.远程调用2.5.总结3.服务注册和发现3.1.注册

weixin_44976643的博客 4109

SAP GUI 经典事务在 Fiori Launchpad 中的穿越之道:原理、配置与实践指南

在许多企业的 S/4HANA 或 ECC 系统里,经典 SAP GUI 事务依旧承载着关键业务。如何把这些老将自然地嵌入到 Fiori Launchpad,让用户在统一入口里无缝切换新旧 UI,是项目中经常遇到的主题。本文结合社区博文、官方文档与实际项目经验,系统梳理这一过程的技术原理、配置步骤、性能优化以及常见坑点,并给出贴近中国读者的案例解析与改进建议。阅读完毕,你将不仅知道怎么做,还会理解。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 623

Vue - 超强实现网页禁止浏览器缩放功能,浏览器缩放时保持网页不变形、元素不会被挤压等,屏蔽浏览器鼠标滚轮缩放页面(提供详细示例代码,一次引入整个网站无人可以搞乱你的页面布局及样式)

vue,nuxt,禁止浏览器缩放,如何用户缩放浏览器导致页面变形,网页缩放后页面变形了怎么办,怎么解决网站被缩放后元素乱套错乱,vue怎么禁止网页不被缩放,vue如何禁止浏览器缩放,vue缩放网页变形影响布局怎么办,vue电脑分辨率及缩放导致页面变形的问题,前端页面解决浏览器或者系统被放大和缩小导致的显示问题,Vue中页面自适应缩放,如何防止Vue页面缩放时变形/调整大小,Vue项目中,防止页面被缩放和放大,vue等比例缩放网页,网页缩放后界面变形咋办,禁止页面缩放,vue禁止浏览器改变窗口大小,Vue项目

🏆 前端领域优质创作者 1万+

黑马商城 Spring Cloud 微服务课程笔记:分布式事务 - 总结与回顾

本课程是分布式事务部分的总结课程,回顾了从分布式事务的概念引入到 Seata 框架的使用,以及在黑马商城微服务项目中整合 Seata 实现分布式事务的全过程,包括不同事务模式、常见问题及解决方案等内容,使学员对分布式事务有一个全面而清晰的认识。架构组成Seata 框架主要由事务协调者(TC)、事务管理器(TM)和资源管理器(RM)组成。TC 负责协调分布式事务的执行,TM 管理事务的边界,RM 则负责管理各个微服务中的数据源资源,它们之间通过特定的协议和接口进行通信协作。核心功能。

m0_57836225的博客 1018

CANbus收发器TJA1051T/3/1J应用原理图设计

该收发器是为汽车工业中的高速CAN应用而设计的,为(一个带有)CAN协议控制器的微控制器)提供差分传输和接收能力。它提供了改进的电磁兼容性(EMC)和静电放电(ESD)性能,还具有:当电源电压关闭时,TJA1051T/3和TJA1051TK/3可以直接与电源电压从3V到5V的微控制器接口。这种实现能够在CAN FD快速阶段以高达5 Mbit/s的数据速率进行可靠的通信。TJA1051T/3和TJA1051TK/3上的VIO输入允许直接连接3 V至5 V微控制器(分别提供SO8和极小的HVSON8封装)

zhusl6688的博客 3593

黑马商城 Spring Cloud 微服务课程笔记:分布式事务 - Seata 整合常见问题及解决方案

在将 Seata 框架整合到黑马商城微服务架构以实现分布式事务管理时,尽管按照前面课程的步骤操作,但仍可能会遇到一些问题。本课程针对这些常见问题进行深入分析,并给出有效的解决办法,涵盖从环境配置到业务逻辑处理等多个方面。在黑马商城微服务整合 Seata 实现分布式事务过程中,遇到问题是正常的。

m0_57836225的博客 1407

YOLOv12涨点改进 | Neck特征融合改进篇 | YOLOv12引 入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率,目标检测、图像分割、图像分类,助力高效涨点

本文提出了一种基于BiFPN特征融合模块优化的YOLOv12目标检测方法。BiFPN通过引入可学习的权重实现高效的多尺度特征融合,结合双向连接机制提升特征提取能力。实验表明,该方法在COCO数据集上实现了优异的检测性能。文章详细介绍了BiFPN模块的原理、核心代码实现,以及如何将其集成到YOLOv12框架中,包括模块添加、配置文件修改等具体步骤。这种改进方案具有参数少、计算量小等优势,为高效目标检测提供了一种新的技术路径。

Ai缝合怪、助力小伙伴高效发论文 391

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

微服务SpringCloud

用这个写了有一下简单的sql语句可以连Mapper和service方法都不用写,只需要写一个对应的接口继承自定义接口要继承IService,实现类要实现ServiceImpl要加上@Compent注解这个类才生效最好指定优先级这个过滤器比全局过滤器难实现,一般用全局并且类名的命名有规范,必须以GatewayFilter为结尾,前缀则作为名字写在想要配置的路由上下面这个是无参的上面的不能指定优先级,下面的可以要是这个过滤器带参数。

m0_73990572的博客 952

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

黑马商城 Spring Cloud 微服务课程笔记 - Sentinel 服务熔断(SpringCloud 微服务保护和分布式事务 - 06)

在黑马商城的 Spring Cloud 微服务架构学习中,SpringCloud 微服务保护和分布式事务 - 06 重点讲解了 Sentinel 的服务熔断功能。服务熔断是保障微服务稳定性的重要机制,当微服务之间的调用出现异常或响应延迟过高时,熔断机制能够及时切断故障服务的调用链路,避免故障蔓延,同时提供降级处理,以提高系统的整体可用性和容错性。

m0_57836225的博客 1026

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

黑马商城 Spring Cloud 微服务课程笔记 - 分布式事务 Seata(DAY2 - 10)

在黑马商城的 Spring Cloud 微服务架构中,DAY2 - 10 主要聚焦于分布式事务的解决方案 ——Seata。当微服务之间进行协作时,例如在一个业务流程涉及多个微服务的操作时,如何保证这些操作要么全部成功,要么全部失败,以确保数据的一致性,这就是分布式事务要解决的问题。Seata 提供了一种有效的方式来管理分布式事务,课程中详细介绍了其相关概念、使用场景、配置和操作步骤等内容。

m0_57836225的博客 1150

黑马商城 Spring Cloud 微服务课程笔记 - Sentinel 服务熔断(SpringCloud 微服务保护和分布式事务 - 07)

服务熔断在微服务架构中起着至关重要的作用,其核心目的在于当微服务之间的调用出现异常或响应延迟过高时,能够及时切断故障服务的调用链路,防止故障进一步扩散,从而保障整个微服务系统的稳定性和可靠性。同时,通过提供降级处理,使得系统在面临部分服务故障时仍能保持一定的可用性,确保关键业务流程不受严重影响。通过以上步骤,我们在黑马商城的微服务项目中成功实现了 Sentinel 服务熔断功能,使其在微服务出现故障或性能问题时能够及时进行熔断和降级处理,有力保障了系统的稳定性和可靠性。

m0_57836225的博客 932
上一篇: 【黑马SpringCloud微服务开发与实战】(五)微服务保护
下一篇: 【黑马SpringCloud微服务开发与实战】(七)MQ入门
夜斗小神社
博客等级 码龄7年 3718粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值