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

网站建设与运营最新seo新手教程

网站建设与运营,最新seo新手教程,wordpress the7.2,达州网站建设哪家好最近在研究seata的AT模式,先在本地搭建了一个演示demo,看看seata是如何使用的。在网上搜的demo,配置相对来说都比较多。我最终搭建的版本,配置较少,所以写篇文章分享下,希望能帮到对seata感兴趣的小伙伴。先…

最近在研究seata的AT模式,先在本地搭建了一个演示demo,看看seata是如何使用的。在网上搜的demo,配置相对来说都比较多。我最终搭建的版本,配置较少,所以写篇文章分享下,希望能帮到对seata感兴趣的小伙伴。先看下文章目录

文章目录

  • 1、AT模式架构图
  • 2、演示微服务搭建
    • 2.1、demo源码获取
    • 2.2、项目配置改动
      • 2.2.1、执行scripts中的脚本
      • 2.2.2、修改数据库的连接
      • 2.2.3、修改注册中心
  • 3、seata server服务搭建
  • 4、验证
    • 4.1、事务成功提交
    • 4.2、事务回滚

1、AT模式架构图

我从官网上拷贝了一张图,先看一下seata AT模式的整体架构
在这里插入图片描述
从图上,一共看到5个服务
1)、TC:事务协调者,负责全局事务的管理,以及各分支事务的管理

2)、Business:业务聚合服务,比如下单服务。在下单服务中,会依赖很多上游服务,比如图中的库存服务、订单服务、账户服务等

3)、Storage:库存服务

4)、Account:账户服务

5)、Order:订单服务

2、演示微服务搭建

2.1、demo源码获取

我把演示demo的代码上传到了码云,可以从码云上将项目下载下来,在本地部署
项目地址
依次启动OrderService、StorageService、AccountService、seataProject这4个项目

2.2、项目配置改动

2.2.1、执行scripts中的脚本

以AccountService项目举例,其他3个项目一样
account_tbl.sql
undo_log.sql
在这里插入图片描述

2.2.2、修改数据库的连接

如果你的这几个项目对应的数据库端口和我项目里不一致,需要改下
在这里插入图片描述

2.2.3、修改注册中心

如果你不想用zookeeper,那这里也需要修改一下
在这里插入图片描述

3、seata server服务搭建

其实没啥可搭建的,开箱即用。seata server下载地址
启动命令如下。如果想改端口运行,可以加-p参数或者修改conf目录中的application.yml文件

sh seata-server.sh -h 127.0.0.1 -m file

4、验证

如果你没改动端口,直接访问
http://127.0.0.1:6099/business/commit?userId=2&commodityCode=1&orderCount=2,即可触发下单异常,我在OrderService的微服务中写死了一段测试代码,userId=2时,触发一个异常,然后触发事务回滚
此时可以在TM、RM处看到事务提交以及回滚的日志

4.1、事务成功提交

TM提交事务日志

//1、开启一个全局事务,事务id: 0.0.1.1:8099:6224557381237174277
o.a.s.tm.api.DefaultGlobalTransaction    : Begin new global transaction [0.0.1.1:8099:6224557381237174277]//2、准备提交事务
o.a.s.tm.api.DefaultGlobalTransaction    : transaction 0.0.1.1:8099:6224557381237174277 will be commit//3、事务提交结束
o.a.s.tm.api.DefaultGlobalTransaction    : transaction end, xid = 0.0.1.1:8099:6224557381237174277//4、事务已提交
o.a.s.tm.api.DefaultGlobalTransaction    : [0.0.1.1:8099:6224557381237174277] commit status: Committed

RM提交事务日志

//1、注册分支事务成功,分支事务id:6224557381237174279; 全局事务id: 0.0.1.1:8099:6224557381237174277
o.a.seata.rm.AbstractResourceManager     : branch register success, xid:0.0.1.1:8099:6224557381237174277, branchId:6224557381237174279, lockKeys:account_tbl:1//2、提交分支事务
o.a.s.c.r.p.c.RmBranchCommitProcessor    : rm client handle branch commit process:BranchCommitRequest{xid='0.0.1.1:8099:6224557381237174277', branchId=6224557381237174279, branchType=AT, resourceId='jdbc:mysql://127.0.0.1:3310/seata-account', applicationData='null'}//3、分支事务提交中
org.apache.seata.rm.AbstractRMHandler    : Branch committing: 0.0.1.1:8099:6224557381237174277 6224557381237174279 jdbc:mysql://127.0.0.1:3310/seata-account null//4、分支事务提交成功
org.apache.seata.rm.AbstractRMHandler    : Branch commit result: PhaseTwo_Committed

然后可以看下三张表(库存、订单、账户)的数据是否保持一致

4.2、事务回滚

手动制造一个提交异常,然后看TM以及AM的日志

TM回滚事务日志

//1、开启一个全局事务,事务id: 0.0.1.1:8099:6224557381237174273
o.a.s.tm.api.DefaultGlobalTransaction    : Begin new global transaction [0.0.1.1:8099:6224557381237174273]//2、事务将要回滚
o.a.s.tm.api.DefaultGlobalTransaction    : transaction 0.0.1.1:8099:6224557381237174273 will be rollback//3、事务回滚结束
o.a.s.tm.api.DefaultGlobalTransaction    : transaction end, xid = 0.0.1.1:8099:6224557381237174273//4、事务已回滚
o.a.s.tm.api.DefaultGlobalTransaction    : [0.0.1.1:8099:6224557381237174273] rollback status: Rollbacked

RM回滚事务日志

//1、注册分支事务,分支事务id:6224557381237174275; 全局事务id: 0.0.1.1:8099:6224557381237174273
o.a.seata.rm.AbstractResourceManager     : branch register success, xid:0.0.1.1:8099:6224557381237174273, branchId:6224557381237174275, lockKeys:account_tbl:2//2、分支事务回滚,回滚要依赖undo_log日志
o.a.s.c.r.p.c.RmBranchRollbackProcessor  : rm handle branch rollback process:BranchRollbackRequest{xid='0.0.1.1:8099:6224557381237174273', branchId=6224557381237174275, branchType=AT, resourceId='jdbc:mysql://127.0.0.1:3310/seata-account', applicationData='null'}//3、分支事务回滚中
org.apache.seata.rm.AbstractRMHandler    : Branch Rollbacking: 0.0.1.1:8099:6224557381237174273 6224557381237174275 jdbc:mysql://127.0.0.1:3310/seata-account//4、回滚完成,删除undo_log
o.a.s.r.d.undo.AbstractUndoLogManager    : xid 0.0.1.1:8099:6224557381237174273 branch 6224557381237174275, undo_log deleted with GlobalFinished//5、分支事务回滚成功
o.a.s.rm.datasource.DataSourceManager    : branch rollback success, xid:0.0.1.1:8099:6224557381237174273, branchId:6224557381237174275//6、分支事务回滚结果.二阶段回滚
org.apache.seata.rm.AbstractRMHandler    : Branch Rollbacked result: PhaseTwo_Rollbacked

再次看下三张表的数据,如果事务回滚成功,数据是没有变化的,不会发生修改或者新增
最后看下undo_log表,应该是无数据,但是Auto_Increment的值已经变成了2,证明undo_log中新增过一条数据,然后又被删除了。这印证了,事务回滚会利用到undo_log,回滚完成,就删除undo_log

http://www.ds6.com.cn/news/101666.html

相关文章:

  • 网站制作排序重庆搜索排名提升
  • asp.net 网站管理系统百度百科推广联系方式
  • 基于html5的旅游网站开发自动收录网
  • 校园互动网站建设推广引流的10个渠道
  • 郑州做网站网站建设费用如何去推广一个app
  • 牛什么的网站建设正规的微信推广平台
  • 虹口房产网站建设网络营销管理系统
  • 外贸网站如何做推广怎么让网站快速收录
  • 健康湖州网站网站收录提交入口
  • 加速百度对网站文章的收录社会新闻热点事件
  • 网站权重优化方式开鲁视频
  • 企业做网站分一般为哪几种类型好看的html网页
  • 北京公司网站建设费用seo前景
  • 专业做营销网站杭州优化排名哪家好
  • 微网站 尺寸产品推广渠道有哪些
  • 太原做网站页面的北京首页关键词优化
  • 深圳网站建设信科便宜品牌整合营销
  • 一般的政府网站空间多少钱一年seo单页快速排名
  • 江苏省建设工程备案网站合肥关键词排名技巧
  • h5响应式网站做动画营销广告语
  • 电商网站建设策划书公众号推广渠道
  • 工厂做网站如何做网页链接
  • 建浏览器网站制作搜索关键词排名推广
  • 网站建设需要哪些工作室电商seo是什么
  • 公司网站维护都需要怎么做外链代发免费
  • dedecms做网站怎么查看免费的大数据分析平台
  • 做销售在哪些网站注册好昆山网站建设
  • 网站建设人员职责百度关键词seo公司
  • 做包装的网站郑州网站建设推广优化
  • wordpress5.0启多站点常州seo