用JMS编写的微服务,由调用端决定了各个微服务执行时,是否需要保持事务的一致性。

也就是RemoteClient在调用微服务方法前,先调用BeginTransaction明确后面所调用的微服务需要保持事务一致性。

微服务的底层执行流程如下:

1、调用端标识此次业务需要微服务支持分布式事务

2、调用端同步或者异步调用各个微服务

微服务各自执行完自己的代码,会把事务挂起,等候调用端统一调令

3、调用端等待所有微服务执行完毕

4、调用端通知网关本次事务状态为:成功

5、调用端通知各个微服务提交事务

如果有哪个微服务提交事务时发生意外(例如宕机),之后会自动与网关确认此次事务状态,再自动重新执行代码,提交事务

事务的数据默认保存在$$JMS_RetryCommitPath文件夹

$$JMS_RetryCommitPath文件夹下有以下几种扩展名的文件:

*.txt : 需要提交事务的原请求数据,这些文件会在微服务重启时,自动解析,并重新执行请求和提交事务

*.err : 提交事务失败后保留下来的原请求数据,这些文件会被微服务每隔5秒重新解析,重新执行请求和提交事务

*.trying:正在重新提交的请求数据,发现这些文件,需要人工查一下这个事务是否成功提交了,再确定是否要重新执行一次

*.timeout : 当一个请求,微服务器由于和调用端失去联系,无法判断是否应该提交事务,就会把原请求数据保存在此,需要人工处理。你如果希望这个请求重新执行,那么,把它的扩张名改为.err即可

*:faild : 重新提交事务失败,保存成此文件,同样需要人工处理。

JMS微服务架构 - 关于事务提交失败,自动重新提交的机制的更多相关文章

  1. 微服务架构 | 2.2 Alibaba Nacos 的统一配置管理

    目录 前言 1. Nacos 配置中心基础知识 1.1 Nacos 在配置中心中的功能 1.2 Nacos 配置管理 Data ID 的构成 1.3 Nacos 配置的回滚机制 1.4 Nacos 配 ...

  2. 阿里微服务架构下分布式事务解决方案-GTS

    虽然微服务现在如火如荼,但对其实践其实仍处于初级阶段.即使互联网巨头的实践也大多是试验层面,鲜有核心业务系统微服务化的案例.GTS是目前业界第一款,也是唯一的一款通用的解决微服务分布式事务问题的中间件 ...

  3. 微服务架构下分布式事务解决方案——阿里GTS

    1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这样可以降低开发难度.增强扩展性.便于敏捷开发.当前被越来越多的开发者推崇,很多互联网行业巨头.开源社区等都开始了微服务 ...

  4. 微服务架构下分布式事务解决方案——阿里云GTS

    https://blog.csdn.net/jiangyu_gts/article/details/79470240 1 微服务的发展 微服务倡导将复杂的单体应用拆分为若干个功能简单.松耦合的服务,这 ...

  5. Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案

    Java生鲜电商平台-SpringCloud微服务架构中分布式事务解决方案 说明:Java生鲜电商平台中由于采用了微服务架构进行业务的处理,买家,卖家,配送,销售,供应商等进行服务化,但是不可避免存在 ...

  6. Spring Cloud实战 | 第十篇 :Spring Cloud + Seata 1.4.1 + Nacos1.4.0 整合实现微服务架构中逃不掉的话题分布式事务

    Seata分布式事务在线体验地址:https://www.youlai.store 本篇完整源码地址:https://github.com/hxrui/youlai-mall 有想加入开源项目开发的童 ...

  7. 《微服务架构设计模式》读书笔记 | 第4章 使用Saga管理事务

    目录 前言 1. 微服务架构下的事务管理 1.1 分布式事务的挑战 1.2 一个Saga的示例 1.3 Saga使用补偿事务来回滚所作出的改变 2. Saga的协调模式 2.1 两种Saga协调模式 ...

  8. 微服务架构 | 11.1 整合 Seata AT 模式实现分布式事务

    目录 前言 1. Seata 基础知识 1.1 Seata 的 AT 模式 1.2 Seata AT 模式的工作流程 1.3 Seata 服务端的存储模式 1.4 Seata 与 Spring Clo ...

  9. 微服务架构的分布式事务解决方案 - zhaorui2017的博客 - CSDN博客

    微服务架构的分布式事务解决方案 - zhaorui2017的博客 - CSDN博客   http://blog.csdn.net/zhaorui2017/article/details/7643679 ...

  10. WeText项目:一个基于.NET实现的DDD、CQRS与微服务架构的演示案例

    最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架 ...

随机推荐

  1. ElasticSearch之cat datafeeds API

    命令样例如下: curl -X GET "https://localhost:9200/_cat/ml/datafeeds?v=true&pretty" --cacert ...

  2. linux中iptables防火墙相关命令

    https://www.cnblogs.com/seven1979/p/4173927.html https://blog.csdn.net/shenjianxz/article/details/62 ...

  3. 文心一言 VS 讯飞星火 VS chatgpt (31)-- 算法导论5.2 3题

    三.利用指示器随机变量来计算掷n 个骰子之和的期望值. 文心一言: 为了计算掷n个骰子之和的期望值,我们需要先了解一个重要的概念:指示器随机变量. 指示器随机变量是一种特殊的随机变量,它只有两个取值: ...

  4. 华为云黄瑾:做强坚实数据底座,GaussDB与产业携手共进

    近日,华为全球智慧金融峰会2023在上海顺利举行,华为云副总裁.战略与产业发展部总裁黄瑾发表了<做强坚实数据底座,GaussDB与产业携手共进>的主题演讲. 以下为演讲实录: 尊敬的各位来 ...

  5. 教你如何优雅的改写“if-else”

    摘要:这些场景,你是怎么写的代码? if-else,这是个再正常不过的coding习惯,当我们代码量小的时候用来做条件判断是再简单不过的了.但对于优秀程序员来说,这却不是好代码. 不信你往下看- 1. ...

  6. 华为云应用服务网格最佳实践之从Spring Cloud 到 Istio

    摘要:在全球首届社区峰会IstioCon 2021中,华为云应用服务网格首席架构师张超盟发表了<Best practice:from Spring Cloud to Istio>主题演讲, ...

  7. 如何快速准备高质量的AI数据?

    摘要:随着AI的快速发展,如何快速准备大量高质量的数据已经成为AI开发过程中一个极具挑战性的问题! 本文分享自华为云社区<如何快速准备高质量的AI数据?>,原文作者:徐波. 一.背景 通常 ...

  8. CodeLab:一款让你体验丝滑般的云化JupyterLab

    摘要:从AI开发特点着手,华为云AI DTSE技术布道师陈阳在DTT第五期带来主题为<云化JupyterLab:华为云CodeLab介绍>技术分享. DTSE Tech Talk是华为云开 ...

  9. 教你使用Jupyter可视化查询语句的语法树

    摘要:本文以华为图引擎使用的cypher查询语言为例,将查询语句的解析结果(语法树)在jupyterLab上可视化. 本文分享自华为云社区<使用Jupyter可视化查询语句的语法树--以图查询语 ...

  10. “pip不是内部或外部命令,也不是可运行的程序或批处理文件” 到底有多么神秘

    摘要:pip不是内部或外部命令,也不是可运行的程序或批处理文件到底有多么神秘? 本文分享自华为云社区<揭开「pip不是内部或外部命令,也不是可运行的程序或批处理文件」的神秘面纱>,作者:A ...