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

网站选服务器文件英文网站导航 源码

网站选服务器文件,英文网站导航 源码,网络服务器怎么连接,站长联盟目录 概述 Springcloud 整合 Seata 数据库脚本 服务依赖 Springboot 配置 代码改造 AT模式下的数据隔离 写隔离 读隔离 概述 Seata 的 AT 模式是 Seata 的默认模式#xff0c;它的原理是依赖于数据库事务#xff0c;以数据库事务保证本地事务分支特性#xff0c;结合…目录 概述 Springcloud 整合 Seata 数据库脚本 服务依赖 Springboot 配置 代码改造 AT模式下的数据隔离 写隔离 读隔离 概述 Seata 的 AT 模式是 Seata 的默认模式它的原理是依赖于数据库事务以数据库事务保证本地事务分支特性结合 Seata的 Undo 日志记录做事务补偿来实现的一种二阶段事务。总体来讲Seata 的AT模式使用起来比较简单对业务代码的侵入性比较低。 Demo 这里附上seata的学习代码demo开箱即用。包含AT/TCC/XA等模式的使用案例https://download.csdn.net/download/lmj3732018/88864802 Springcloud 整合 Seata 数据库脚本 AT 模式需要在每个本地事务分支所在的数据库中添加一个 undo_log 表用于存储本地事务分支的事务记录。 数据库脚本地址https://github.com/apache/incubator-seata/blob/v1.7.0/script/client/at/db/mysql.sql 服务依赖 Seata 的依赖版本最好参照官网推荐的版本对照否则可能出现不兼容的一些问题同时 Seata 客户端与服务端的版本也最好保持一致 POM依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency!--nacos 注册中心-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId /dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency!-- seata-- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactId /dependency Springboot 配置 seata:application-id: ${spring.application.name}# 这个值要与服务端 service.vgroupMapping.default_tx_groupdefault 相对应服务端的值default与下面的 cluster: default 对应。tx-service-group: default_tx_groupregistry:type: nacosnacos:application: seata-serverserver-addr: 192.168.122.120:8848namespace: seata-idgroup: SEATA_GROUPusername: nacospassword: nacoscluster: defaultconfig:type: nacosnacos:server-addr: 192.168.122.120:8848namespace: seata-idgroup: SEATA_GROUPdata-id: seataServer.propertiesusername: nacospassword: nacos 代码改造 代码上的改造比较简单只需在事务发起者的接口方法上添加一个GlobalTransactional(namecreateOrder,rollbackForException.class)注解。分支事务那边则不用做任何处理 Override//TransactionalGlobalTransactional(namecreateOrder,rollbackForException.class)public Order saveOrder(OrderVo orderVo) {log.info(用户下单);log.info(当前 XID: {}, RootContext.getXID());// 保存订单Order order new Order();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 ? 成功 : 失败);//扣减库存storageFeignService.deduct(orderVo.getCommodityCode(), orderVo.getCount());if(true){throw new RuntimeException();}//扣减余额Boolean debit accountFeignService.debit(orderVo.getUserId(), orderVo.getMoney());// if(!debit){ // // 解决 feign整合sentinel降级导致Seata失效的处理 // throw new RuntimeException(账户服务异常降级了); // }//更新订单Integer updateOrderRecord orderMapper.updateOrderStatus(order.getId(),OrderStatus.SUCCESS.getValue());log.info(更新订单id:{} {}, order.getId(), updateOrderRecord 0 ? 成功 : 失败);return order;} AT模式下的数据隔离 写隔离 AT模式下通过全局锁来保证写操作的隔离性避免产生脏读。当全局事务A在操作某一条记录时会给这条记录加一个全局锁所谓的全局锁实际是指这条记录的ID当本地事务提交而全局事务没提交时。我们虽然通过直接操作数据库可以看到这条提交的数据但是当开启另一个全局事务去操作这条数据时则会先判断全局锁的存在如果存在则默认将当前事务回滚也可修改策略为不断尝试获取全局锁。 读隔离 AT模式默认情况下如果数据库的隔离级别为“读已提交”则全局事务的隔离级别为读未提交。AT模式仅仅对 带有 select  for update的语句会检查全局锁。
http://www.zqtcl.cn/news/67926/

相关文章:

  • 企业网站优化方法包括大数据营销精准营销
  • 泉州网站建设企业智慧团建注册入口
  • 两学一做 投稿网站服务器的作用和用途
  • 制作网站设计作品wordpress侧边栏分类目录显示文章
  • 大型网站平台建设百度助手app下载安装
  • asp.net网站开发基础网站建设 国际 深圳
  • 做网站就上房山华网天下wap开头的网址
  • 做ppt的网站 知乎织梦手机网站模板下载
  • 太原做app网站建设广州 建网站
  • 坪山网站的建设gofair做网站
  • 做网站开发的经营范围长安网站建设价格
  • 定制鞋子哪个网站好平面设计兼职接单群
  • 深圳做外贸网站网站建设公司怎样
  • 网站建设中 html 下载手递手个人求职信息网
  • 购物网站服务中心vivo官网网站服务中心
  • 如何做网站网页旁边的留言框游戏开发用什么语言
  • 桂林北站到两江机场大巴时刻表视频网站费用
  • 网站数据库备份怎么做十大装修公司
  • 做公司网站都需要哪些东西泵阀网站建设
  • 网站怎样做关键词优化怎么自己建立公司网站
  • 网站手机版绑定域名wordpress码支付个人免签
  • 普达建站快车网站备案提交管局
  • 哪家公司建5g基站火车头采集wordpress发布
  • 网站开发是怎么样的企业网站建设属于什么费用
  • 做导航网站成本微信公众号排版app
  • 潍坊网站建设价格wordpress文章前台看不到
  • 微信公众号的模板网站重庆装修公司全包价格
  • 成都网站关键词排名h5制作哪个网站好
  • 化妆品行业网站建设方案白沟做网站
  • 网站开发涉及到缓存吗麋鹿 wordpress