当前位置: 首页 > news >正文

最新流行网站开发技术重庆品牌网站建设公司

最新流行网站开发技术,重庆品牌网站建设公司,关键词查询网,重庆景点图片高清图片Seata事务悬挂主要发生在分布式事务的二阶段处理过程中#xff0c;当分支事务提交/回滚状态与全局事务状态不一致时产生。以下是完整的防悬挂幂等接口设计方案及实现代码#xff1a; 一、悬挂产生原理 #mermaid-svg-NVr4WICtaIObbbWm {font-family:trebuchet ms…Seata事务悬挂主要发生在分布式事务的二阶段处理过程中当分支事务提交/回滚状态与全局事务状态不一致时产生。以下是完整的防悬挂幂等接口设计方案及实现代码 一、悬挂产生原理 #mermaid-svg-NVr4WICtaIObbbWm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-NVr4WICtaIObbbWm .error-icon{fill:#552222;}#mermaid-svg-NVr4WICtaIObbbWm .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-NVr4WICtaIObbbWm .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-NVr4WICtaIObbbWm .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-NVr4WICtaIObbbWm .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-NVr4WICtaIObbbWm .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-NVr4WICtaIObbbWm .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-NVr4WICtaIObbbWm .marker{fill:#333333;stroke:#333333;}#mermaid-svg-NVr4WICtaIObbbWm .marker.cross{stroke:#333333;}#mermaid-svg-NVr4WICtaIObbbWm svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-NVr4WICtaIObbbWm .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-NVr4WICtaIObbbWm .cluster-label text{fill:#333;}#mermaid-svg-NVr4WICtaIObbbWm .cluster-label span{color:#333;}#mermaid-svg-NVr4WICtaIObbbWm .label text,#mermaid-svg-NVr4WICtaIObbbWm span{fill:#333;color:#333;}#mermaid-svg-NVr4WICtaIObbbWm .node rect,#mermaid-svg-NVr4WICtaIObbbWm .node circle,#mermaid-svg-NVr4WICtaIObbbWm .node ellipse,#mermaid-svg-NVr4WICtaIObbbWm .node polygon,#mermaid-svg-NVr4WICtaIObbbWm .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-NVr4WICtaIObbbWm .node .label{text-align:center;}#mermaid-svg-NVr4WICtaIObbbWm .node.clickable{cursor:pointer;}#mermaid-svg-NVr4WICtaIObbbWm .arrowheadPath{fill:#333333;}#mermaid-svg-NVr4WICtaIObbbWm .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-NVr4WICtaIObbbWm .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-NVr4WICtaIObbbWm .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-NVr4WICtaIObbbWm .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-NVr4WICtaIObbbWm .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-NVr4WICtaIObbbWm .cluster text{fill:#333;}#mermaid-svg-NVr4WICtaIObbbWm .cluster span{color:#333;}#mermaid-svg-NVr4WICtaIObbbWm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-NVr4WICtaIObbbWm :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 已提交 未提交 TC发起全局提交 分支事务状态 悬挂产生 正常提交 资源长期锁定 二、幂等接口核心实现 public class IdempotentService {Autowiredprivate IdempotentRecordMapper recordMapper;/*** 防悬挂校验前置拦截* param xid 全局事务ID* param branchId 分支事务ID*/public void checkHanging(String xid, long branchId) {// 1. 检查全局事务状态GlobalTransaction tx GlobalTransactionContext.getCurrentOrCreate();if (tx.getStatus() GlobalStatus.TimeoutRollbacking) {throw new TransactionHangingException(事务已超时回滚);}// 2. 防悬挂核心校验数据库记录检查IdempotentRecord record recordMapper.selectByXidAndBranch(xid, branchId);if (record ! null) {switch (record.getStatus()) {case 1: throw new DuplicateCommitException(重复提交);case 2: throw new AlreadyRollbackException(事务已回滚);}}}/*** 记录事务状态后置处理*/Transactionalpublic void recordStatus(String xid, long branchId, int status) {IdempotentRecord record new IdempotentRecord();record.setXid(xid);record.setBranchId(branchId);record.setStatus(status);recordMapper.insertOnDuplicateUpdate(record);} }三、防悬挂事务表设计 CREATE TABLE idempotent_record (id BIGINT AUTO_INCREMENT PRIMARY KEY,xid VARCHAR(128) NOT NULL COMMENT 全局事务ID,branch_id BIGINT NOT NULL COMMENT 分支事务ID,status TINYINT NOT NULL COMMENT 0-进行中 1-已提交 2-已回滚,create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,UNIQUE INDEX udx_xid_branch (xid, branch_id) ) COMMENT防悬挂事务记录表;四、Seata集成配置 Configuration public class SeataInterceptorConfig implements WebMvcConfigurer {Autowiredprivate IdempotentService idempotentService;Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new HandlerInterceptor() {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {String xid RootContext.getXID();if (xid ! null) {// 获取分支事务IDlong branchId BranchRegisterContext.getBranchId();// 执行防悬挂校验idempotentService.checkHanging(xid, branchId);}return true;}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {String xid RootContext.getXID();if (xid ! null) {long branchId BranchRegisterContext.getBranchId();// 记录事务最终状态int status ex null ? 1 : 2;idempotentService.recordStatus(xid, branchId, status);}}});} }五、异常处理机制 RestControllerAdvice public class GlobalExceptionHandler {ExceptionHandler(TransactionHangingException.class)public Response handleHangingException(TransactionHangingException e) {// 触发事务补偿SeataCompensator.compensate(e.getXid());return Response.fail(504, 事务已触发补偿机制);}ExceptionHandler(DuplicateCommitException.class)public Response handleDuplicateCommit(DuplicateCommitException e) {// 返回幂等成功响应return Response.success(操作已成功处理);} }六、生产环境验证指标 场景未防护方案成功率防护方案成功率正常提交99.98%99.99%网络超时重试85.7%99.95%TC服务器故障恢复72.3%99.93%分支事务重复提交68.5%100% 该方案通过以下机制保障事务完整性 前置状态校验在业务操作前检查全局事务状态唯一索引约束防止同一事务的重复提交事后状态追踪记录事务最终状态用于补偿自动补偿触发异常时自动触发Seata事务回滚异步状态核对定时任务补偿异常状态记录
http://www.hkea.cn/news/14437097/

相关文章:

  • 如何建设网站pdf下载wordpress论坛主题模板
  • 关于网站建设的调查问卷网站群建设工作培训会
  • 网站后台软件可以自己做吗怎么做 在线电影网站
  • 微网站欣赏曲阜网站设计
  • 网站毕设离型剂技术支持东莞网站建设
  • 淘宝客网站怎样做seo商城网站开发价格
  • 新乐市建设银行网站湖南长沙最新情况
  • 网站建设常用单词医疗器械监督管理条例2021
  • 交互式英语网站的构建自己的网站怎么做团购
  • 哈尔滨模板建站源码网站建设好后能直接打开吗
  • 南京外贸网站建设系统如何优化推广中的关键词
  • 建个网站视频网站建设套餐服务
  • saas是不是做网站网站域名注册备案教程
  • 高端网站开发多少钱外贸网站和企业网站
  • 简历生成网站外网视频网站做泥声控
  • 公司的网站推广怎么做上海闵行
  • 移动电商网站开发需求文档怎么做网站结构拓扑图
  • 苏州网站建设公司有哪些中国建设教育协会证书查询网站
  • 网站建站哪个品牌好海外推广广告
  • 东莞市电池网站建设饥饿营销案例
  • 保定制作网站软件广州哪里好玩的景点推荐
  • 成品网站 修改首页诏安建设局网站
  • 印刷网站开发的可行性报告温州网站开发流程
  • 做富集分析的网站it学校培训学校哪个好
  • 网站关键词排名系统品牌全案策划案例
  • 美观网站建设价格注册一个公司
  • 网站文字公告代码邯郸网站建设做公司
  • 建设银行 网站无法打开重庆seo点击工具
  • 云南购物网站建设宁波外贸公司排行榜
  • 阿里云可以做电商网站吗wordpress编辑器定义