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

网站源码是什么格式沐川移动网站建设

网站源码是什么格式,沐川移动网站建设,网站建设征求意见通知,国外平面设计作品集目录 概述 使用 依赖与配置 代码 概述 TCC 模式是一种侵入式的分布式事务解决方案,它不依赖于数据库的事务,而是要求开发者自定义完成 预提交、提交、回滚的方法逻辑。因此,它是一个种偏 复杂、灵活、有侵入性 的分布式事务处理方案。 De…

目录

概述

使用

依赖与配置

代码


概述

   TCC 模式是一种侵入式的分布式事务解决方案,它不依赖于数据库的事务,而是要求开发者自定义完成 预提交、提交、回滚的方法逻辑。因此,它是一个种偏 复杂、灵活、有侵入性 的分布式事务处理方案。

 Demo

   这里附上seata的学习代码demo,开箱即用。包含AT/TCC/XA等模式的使用案例https://download.csdn.net/download/lmj3732018/88864802

使用

依赖与配置

    Seata的TCC模式依赖和配置与AT模式完全一致,只是TCC模式不需要定义 undo_log 数据库表,这里不再赘述。

代码

    1. 在使用时,我们需要在多个本地事务分支的外层使用 @GlobalTransactional 开启全局事务

@Override
@GlobalTransactional(name="createOrder",rollbackFor=Exception.class)
public Order saveOrder(OrderVo orderVo) {log.info("=============用户下单=================");log.info("当前 XID: {}", RootContext.getXID());//获取全局唯一订单号  测试使用Long orderId = UUIDGenerator.generateUUID();//阶段一: 创建订单Order order = orderService.prepareSaveOrder(orderVo,orderId);//扣减库存storageFeignService.deduct(orderVo.getCommodityCode(), orderVo.getCount());//扣减余额accountFeignService.debit(orderVo.getUserId(), orderVo.getMoney());return order;
}

2. 定义各个本地事务分支的预提交、提交、回滚方法

OrderService 接口

/**** 通过 @LocalTCC 这个注解,RM 初始化的时候会向 TC 注册一个分支事务。*/
@LocalTCC
public interface OrderService {/*** TCC的try方法:保存订单信息,状态为支付中** 定义两阶段提交,在try阶段通过@TwoPhaseBusinessAction注解定义了分支事务的 resourceId,commit和 cancel 方法*  name = 该tcc的bean名称,全局唯一*  commitMethod = commit 为二阶段确认方法*  rollbackMethod = rollback 为二阶段取消方法*  BusinessActionContextParameter注解 传递参数到二阶段中*  useTCCFence seata1.5.1的新特性,用于解决TCC幂等,悬挂,空回滚问题,需增加日志表tcc_fence_log*/@TwoPhaseBusinessAction(name = "prepareSaveOrder", commitMethod = "commit", rollbackMethod = "rollback", useTCCFence = true)Order prepareSaveOrder(OrderVo orderVo, @BusinessActionContextParameter(paramName = "orderId") Long orderId);/**** TCC的confirm方法:订单状态改为支付成功** 二阶段确认方法可以另命名,但要保证与commitMethod一致* context可以传递try方法的参数** @param actionContext* @return*/boolean commit(BusinessActionContext actionContext);/*** TCC的cancel方法:订单状态改为支付失败* 二阶段取消方法可以另命名,但要保证与rollbackMethod一致** @param actionContext* @return*/boolean rollback(BusinessActionContext actionContext);
}

OrderServiceImpl实现类

@Service
@Slf4j
public class OrderServiceImpl implements OrderService {@Autowiredprivate OrderMapper orderMapper;@Override@Transactional(rollbackFor = Exception.class)public Order prepareSaveOrder(OrderVo orderVo,@BusinessActionContextParameter(paramName = "orderId") Long orderId) {// 保存订单Order order = new Order();order.setId(orderId);order.setUserId(orderVo.getUserId());order.setCommodityCode(orderVo.getCommodityCode());order.setCount(orderVo.getCount());order.setMoney(orderVo.getMoney());order.setStatus(OrderStatus.INIT.getValue());Integer saveOrderRecord = orderMapper.insert(order);log.info("保存订单{}", saveOrderRecord > 0 ? "成功" : "失败");return order;}@Overridepublic boolean commit(BusinessActionContext actionContext) {// 获取订单idlong orderId = Long.parseLong(actionContext.getActionContext("orderId").toString());//更新订单状态为支付成功Integer updateOrderRecord = orderMapper.updateOrderStatus(orderId, OrderStatus.SUCCESS.getValue());log.info("更新订单id:{} {}", orderId, updateOrderRecord > 0 ? "成功" : "失败");return true;}@Overridepublic boolean rollback(BusinessActionContext actionContext) {//获取订单idlong orderId = Long.parseLong(actionContext.getActionContext("orderId").toString());//更新订单状态为支付失败Integer updateOrderRecord = orderMapper.updateOrderStatus(orderId, OrderStatus.FAIL.getValue());log.info("更新订单id:{} {}", orderId, updateOrderRecord > 0 ? "成功" : "失败");return true;}}

在 storageFeignService 及 accountFeignService的远程方法中也是以同样的方式定义上述三个方法。

http://www.yayakq.cn/news/336503/

相关文章:

  • 网站建设中中文模板我想做app推广代理
  • 易用的做网站软件找资源最好的是哪个软件
  • 1000元能否做网站郑州网站优化推广培训
  • app商城需要手机网站吗wordpress导入媒体失败
  • 搜索引擎培训班哈尔滨网站关键字优化
  • 哈尔滨网站建设步骤网站背景跟着鼠标动的图怎么做
  • 网站开发挣不挣钱做智能网站系统下载软件
  • 用dw做网站背景吕梁市城乡建设局网站
  • c#网站开发网易云课堂百度云下载网站购买域名吗
  • 昆明哪有做网站的深圳东门有什么好玩的
  • 源码时代网站首页优化
  • 南京 百度 网站建设加油站网站建设
  • 网站开发界面设计工具找做金融的网站有哪些方面
  • iframe 网站前台模板网站怎么做第三方登录
  • 网站开发技术题目wordpress最底部
  • python做公司网站三亚门户网站
  • dede怎么做商城网站深圳前500强企业名单
  • 网站模块是指什么地方注册网站域名要多少钱
  • 展示网站模版源码上海营销型网站建设方案
  • 专业制作网站的公司网站查询域名解析ip
  • 征二级网站建设意见 通知宁波信誉好品牌网站设计地址
  • 公司建设网站的费用吗怎么给制作网站谷歌地图
  • wordpress播放网易云wordpress安装说明seo工具好用
  • 淄博哪个网站做房屋出赁好wordpress 标签搜索引擎
  • 山东省建设业协会网站免费虚拟房屋设计软件
  • 网站源码是用什么做的廊坊文安建设局网站
  • 怎么做二级网站域名小程序开发平台哪家可信赖
  • 网站建设三站合一商城建站模板
  • 涿州网站建设涿州dw建设网站
  • 温州平阳县企业网站搭建推荐上海外贸网站建设公司