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

泰安房产信息网官网首页seo全称

泰安房产信息网官网首页,seo全称,怎么自己做一个网页,自己做网站推广前言 项目中需要A服务调用B服务#xff0c;当A服务方法体内出现异常时#xff0c;若B服务方法已执行#xff0c;要求B服务能够进行回滚#xff0c;需要借助分布式事务实现。Seata是一个比较成熟的分布式事务工具#xff0c;但官方文档比较简洁#xff0c;查阅网上资料也…前言 项目中需要A服务调用B服务当A服务方法体内出现异常时若B服务方法已执行要求B服务能够进行回滚需要借助分布式事务实现。Seata是一个比较成熟的分布式事务工具但官方文档比较简洁查阅网上资料也版本较多不太统一在此记录一下集成过程以供下次参考。 环境信息 操作系统Windows10 JDK1.8.0_351 SpringCloud版本2021.0.3 Seata版本1.7.0 集成过程 一、部署启动seata-server 1. 下载seata-server 从Github上下载所需版本的seata-server-x.x.x.zip我这里是1.7.0后在本机解压。解压后理论上直接运行bin目录下的seata-server.bat脚本就可以运行seata服务linux环境下执行sh seata-server.sh。但实际项目中肯定要结合数据库和Nacos使用所以需要修改配置文件。 2. 修改配置文件 需要注意的是1.5.0之前的版本配置文件是有多个的都位于conf文件夹下如file.conf,registry,conf等。在1.5.0版本之后都整合到一个配置文件里了即application.yml。以下配置项请按照自己版本查找修改。 以seata-1.7.0为例打开conf/application.yml进行修改重点修改nacos部分配置。 server:port: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seataextend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seatapassword: seataseata:# nacos配置config:type: nacosnacos:server-addr: 127.0.0.1:8848namespace:group: SEATA_GROUPusername:password:context-path:data-id: seataServer.properties##if use MSE Nacos with auth, mutex with username/password attribute#access-key:#secret-key:registry:# nacos配置type: nacosnacos:application: seata-serverserver-addr: 127.0.0.1:8848group: SEATA_GROUPnamespace:cluster: defaultusername:password:context-path:##if use MSE Nacos with auth, mutex with username/password attribute#access-key:#secret-key: # server: # service-port: 8091 #If not configured, the default is ${server.port} 1000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login修改成功后意味着seata将从nacos获取配置信息同时注册自身服务到nacos中心。 3. nacos预备 注意到上面配置项中有一项seata.config.data-idseataServer.properties意思为要读nacos上的seataServer.properties配置文件接下来去Nacos创建该配置文件注意Group与第2步中的保持一致这里是SEATA_GROUP。 具体配置项是从seata-server-1.7.0/seata/script/config-center/config.txt粘贴修改而来其他博客一般建议全粘笔者查找源码发现那些通用配置项代码里已经写好默认值了如果不修改没必要都粘过来这里只使用对我们有用的配置主要是数据库配置信息。 #Transaction storage configuration, only for the server. store.modedb store.lock.modedb store.session.modedb#These configurations are required if the store mode is db. store.db.datasourcedruid store.db.dbTypemysql store.db.driverClassNamecom.mysql.cj.jdbc.Driver store.db.urljdbc:mysql://x.x.x.x:3306/ccxi_seata?useSSLfalseuseUnicodetruerewriteBatchedStatementstrue store.db.userroot store.db.passwordpassword1234$#11 store.db.minConn5 store.db.maxConn30 store.db.globalTableglobal_table store.db.branchTablebranch_table store.db.distributedLockTabledistributed_lock store.db.queryLimit100 store.db.lockTablelock_table store.db.maxWait5000注意数据库连接串和驱动类型一定要写对如果是Mysql8要使用com.mysql.cj.jdbc.Driver。可参考自己Java项目中的配置进行填写。 4. 数据库建表 在上面配置的数据库内执行seata-server-1.7.0/seata/script/server/db目录下的sql脚本根据数据库类型创建服务端所需的表。 5. 启动seata-server server端基础配置已经完成运行bin下的seata-server.bat脚本启动服务linux执行sh seata-server.sh命令。出现下述打印即为启动成功。linux到/root/logs/seata目录下查看打印日志 启动成功后可登录http://ip:7091/#/login 进入seata管理页面默认用户名和密码都为seata。 同时检查nacos上是否成功注册了seata服务 二、微服务客户端集成 1. 添加pom依赖 server已经启动接下来要把需要使用分布式事务的微服务都注册到server上去。首先在每个微服务内添加pom依赖。其中seata-spring-boot-starter这个包为seata核心包版本号要与自己上述服务端保持一致。此外如果使用SpringCloudspring-cloud-starter-alibaba-seata也必不可少这个包的版本号最好与所使用SpringCloud版本保持一致。 dependencies...!-- Seata--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactIdversion${alibaba.cloud.version}/versionexclusionsexclusiongroupIdio.seata/groupIdartifactIdseata-spring-boot-starter/artifactId/exclusion/exclusions/dependencydependencygroupIdio.seata/groupIdartifactIdseata-spring-boot-starter/artifactIdversion1.7.0/version/dependency... /dependencies2. 客户端添加seata配置 包引入后需要在微服务yml里添加seata客户端所需的配置: #seata客户端配置 seata:enabled: trueapplication-id: ccxi-abctx-service-group: ccxi_tx_groupservice:vgroup-mapping:ccxi_tx_group: defaultregistry:type: nacosnacos:server-addr: 127.0.0.1:8848namespace: publicgroup: SEATA_GROUPapplication: seata-server其中tx-service-group为我们自定义的事务组名字随便起但是下面service.vgroup-mapping下一定要有一个对应你这个名字的映射映射到defaultseata默认的集群名称。 nacos方面我们仅配置注册项即registry下的配置配置内容与服务端保持一致。这里只配置registry信息而不再配置config相关信息是因为一是作为客户端没有必要再到nacos读取配置本来也没多少配置项且不需要频繁更换。二是如果使用nacos配置则需要在nacos上再配置tx-service-group等信息费力不讨好且容易与本来的微服务配置形成混淆。 3. 创建undo_log表仅AT模式 seata中默认使用的是AT模式该模式需求每个客户端库内都存在一张undo_log表用于回滚事务时临时记录数据。如使用该模式需要自行在业务库内创表。 CREATE TABLE undo_log (id bigint(20) NOT NULL AUTO_INCREMENT,branch_id bigint(20) NOT NULL,xid varchar(100) NOT NULL,context varchar(128) NOT NULL,rollback_info longblob NOT NULL,log_status int(11) NOT NULL,log_created datetime NOT NULL,log_modified datetime NOT NULL,ext varchar(100) DEFAULT NULL,PRIMARY KEY (id),UNIQUE KEY ux_undo_log (xid,branch_id) ) ENGINEInnoDB AUTO_INCREMENT1 DEFAULT CHARSETutf8;4. 启动客户端 配置完成后照常启动微服务如果没有异常在服务端和客户端分别能看到打印证明客户端成功注册到了服务端。 5. 测试及使用 在所需要使用分布式事务的方法上添加注解GlobalTransactional,当方法内发生异常时就可以带动所调用微服务进行回滚。 Override GlobalTransactional(rollbackFor Exception.class) public void approve(Long id, String taskKey, String comment) throws Exception {Ticket ticket getTicket(id);// 调用流程微服务进行审批操作processClient.approve(ticket, taskKey, comment, null);// 修改本地工单状态ticket.setState(TicketState.APPROVED);ticketService.saveOrUpdate(ticket);// 记录操作日志processLogger.log(ticket.getBusinessKey(), 审批通过, null);// 抛出异常测试分布式事务throw new Exception(出现异常测试分布式事务); }如果成功触发回滚两个微服务的控制台均会打印相关信息重点关注xid应该为一致的。 服务A日志 服务B日志 补充 按照上面步骤集成完之后如果发现不能正常回滚应在每个服务的方法内打印下xid看看是否一致有没有xid为空的。如果有服务拿不到xid检查下微服务调用时是否拦截掉了这部分header信息。 System.out.println(RootContext.getXID());【坑】另外windows下使用时服务端经常会自己卡住需要手动到bat窗口内敲回车来解除卡顿。 作者鹿里噜哩 链接https://juejin.cn/post/7257713854745395255 来源稀土掘金
http://www.dnsts.com.cn/news/13708.html

相关文章:

  • 怎样在网站上做超链接苏州网站建设制作工作室
  • 集宁做网站的公司wordpress 年度归档
  • 涉县住房与城乡建设厅网站注册公司名字有没有重复在哪可以查
  • 重庆璧山网站制作公司电话大学 生免费商业网站设计
  • 网站 公众号信息化建设工作wordpress下载类型主题
  • 贵阳网站设计方案公司主页怎么制作
  • flash+xml网站模板手机百度账号登录入口
  • win7怎么做网站服务器在线做ps是什么网站
  • 网站开发绩效考核与薪酬最近的热点新闻事件
  • 威海企业做网站哪家好工商局网站查询入口
  • 做网站横幅的图片山东省住房和建设厅注册中心网站
  • 温州网站设计服务商做网站要找什么软件
  • 手机用什么软件做网站高级软件开发工程师证书含金量
  • 做外贸没有网站可以吗有什么彩票网站做代理好点
  • 购物网站开发设计做短视频的能跟几个网站签约
  • 个人网站模板代码网站设计制作都有哪些
  • 承德网站建设价格怎么把网站做二维码
  • 做外贸的免费网站佛山营销手机网站建设
  • 郑州哪家公司给国外做网站响应式布局基本知识
  • 网站点击率如何做影视网站开发
  • 辽源做网站南通做网站公司
  • 外汇自动跟单网站开发如何给网站弄ftp
  • linux视频播放网站在哪些网站可以发布推广信息
  • 如何查询网站打开速度变慢虚拟主机网站源码
  • 网站建设优化公司排名wordpress弹出搜索
  • seo快速建站看片应该搜什么关键词哪些词
  • 织梦建站教程下载wordpress文章点击数插件
  • 唐山设计网站公司网站建设的请示报告
  • 制作一个网站怎么做宁乡网页设计
  • 做网站教程视频附近学电脑在哪里报名