php源码搭建网站流程,做暧暖爱视频网站,做微商选择的哪个平台微平台网站,昆明网络科技公司有哪些正文
1、解决的应用场景是分布式事务#xff0c;每个服务有独立的数据库。
2、例如#xff1a;A服务的数据库是A1#xff0c;B服务的数据库是B2#xff0c;A服务通过feign接口调用B服务#xff0c;B涉及提交数据到B2#xff0c;业务是在B提交数据之后#xff0c;在A服…正文
1、解决的应用场景是分布式事务每个服务有独立的数据库。
2、例如A服务的数据库是A1B服务的数据库是B2A服务通过feign接口调用B服务B涉及提交数据到B2业务是在B提交数据之后在A服务内报错。
所以希望B能回滚事务。这就是跨库的数据回滚
下载
seata下载地址
seata的配置
1、创建一个数据库把seata的表生成出来 2、修改seata配置文件
注意有其他的需求可以参考example文件我这里直接展示本地修改后的
# Copyright 1999-2019 Seata.io Group.
#
# Licensed under the Apache License, Version 2.0 (the License);
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an AS IS BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.server:port: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seata#extend:#logstash-appender:# destination: 127.0.0.1:4560#kafka-appender:# bootstrap-servers: 127.0.0.1:9092# topic: logback_to_logstashconsole:user:username: seatapassword: seata
seata:#data-source-proxy-mode: XA#tx-service-group: default#service:#vgroup-mapping: # 事务组与cluster的映射关系# default_tx_group: DEFAULT#grouplist:# DEFAULT: 127.0.0.1:8091config:# support: nacos, consul, apollo, zk, etcd3type: nacosnacos:application: seata-serverserver-addr: 127.0.0.1:8848group : WEIMEIZI_GROUPnamespace: username: nacospassword: nacos#data-id: seataServer.propertiesregistry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacosnacos:application: seata-serverserver-addr: 127.0.0.1:8848group: WEIMEIZI_GROUPnamespace:cluster: defaultusername: nacospassword: nacosstore:# support: file 、 db 、 redismode: db# 数据源驱动类名称db:datasource: druiddb-type: mysqldriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatementstrueuser: rootpassword: rootmin-conn: 10max-conn: 100global-table: global_tablebranch-table: branch_tablelock-table: lock_tabledistributed-lock-table: distributed_lockquery-limit: 1000max-wait: 5000
# 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/login3、修改nacos配置文件
新增
seata:data-source-proxy-mode: XAtx-service-group: defaultservice.vgroupMapping.default: defaultservice.default.grouplist: 127.0.0.1:8091注意如果你用的是其他版本的seata可能service.vgroupMapping.default和 service.default.grouplist在其他版本命名不一样报错就修改
4、涉及到分布式事务的数据库都要创建undo_log表
这张表在seata官方包里是没有的如果不创建代码会报错找不到表
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS 0;-- ----------------------------
-- Table structure for undo_log
-- ----------------------------
DROP TABLE IF EXISTS undo_log;
CREATE TABLE undo_log (branch_id bigint(20) NOT NULL COMMENT 分支事务ID,xid varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 全局事务ID,context varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 上下文,rollback_info longblob NOT NULL COMMENT 回滚信息,log_status int(11) NOT NULL COMMENT 状态0正常1全局已完成,log_created datetime(6) NOT NULL COMMENT 创建时间,log_modified datetime(6) NOT NULL COMMENT 修改时间,UNIQUE INDEX ux_undo_log(xid, branch_id) USING BTREE
) ENGINE InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT AT transaction mode undo table ROW_FORMAT Compact;SET FOREIGN_KEY_CHECKS 1;
服务注册
满足1、2、3步后启动 就会发现nacos注册上了seata
项目的代码
主要是两个注解 EnableAutoDataSourceProxy GlobalTransactional(rollbackFor Exception.class)
A服务的方法 B服务的方法 B服务的方法正常执行并提交数据到B库但是A服务报错了所以B服务得回滚数据
A、B的Application都要加上EnableAutoDataSourceProxy
注意引入的pom文件 两个服务的pom都要引入seata注意有个包叫做seata-all这个包不要一起引入进去否则会报数据源错误
!-- Seata--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-seata/artifactIdversion2.0.4/version/dependencydependencygroupIdio.seata/groupIdartifactIdseata-spring-boot-starter/artifactIdversion1.7.0/version/dependency结语
事务回滚成功是根据XID以下是成功回滚的截图
A服务的控制台输出
B服务的控制台输出
备注
如果因为nacos的配置文件过大导致netty报错那么就修改netty的内存文件是application.yml
#服务器端口
server:port: 8200netty:max-chunk-size: 1545270062max-initial-line-length: 1545270062h2c-max-content-length: 1545270062
文章转载自: http://www.morning.sflnx.cn.gov.cn.sflnx.cn http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn http://www.morning.ntkpc.cn.gov.cn.ntkpc.cn http://www.morning.rfhmb.cn.gov.cn.rfhmb.cn http://www.morning.txjrc.cn.gov.cn.txjrc.cn http://www.morning.nlywq.cn.gov.cn.nlywq.cn http://www.morning.znsyn.cn.gov.cn.znsyn.cn http://www.morning.qxwgx.cn.gov.cn.qxwgx.cn http://www.morning.qfplp.cn.gov.cn.qfplp.cn http://www.morning.fksrg.cn.gov.cn.fksrg.cn http://www.morning.dxgt.cn.gov.cn.dxgt.cn http://www.morning.dyhlm.cn.gov.cn.dyhlm.cn http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn http://www.morning.lrskd.cn.gov.cn.lrskd.cn http://www.morning.bwzzt.cn.gov.cn.bwzzt.cn http://www.morning.tbhf.cn.gov.cn.tbhf.cn http://www.morning.kxwsn.cn.gov.cn.kxwsn.cn http://www.morning.jycr.cn.gov.cn.jycr.cn http://www.morning.rrdch.cn.gov.cn.rrdch.cn http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn http://www.morning.bybhj.cn.gov.cn.bybhj.cn http://www.morning.ldpjm.cn.gov.cn.ldpjm.cn http://www.morning.xqjz.cn.gov.cn.xqjz.cn http://www.morning.hmqwn.cn.gov.cn.hmqwn.cn http://www.morning.gwxwl.cn.gov.cn.gwxwl.cn http://www.morning.mfbzr.cn.gov.cn.mfbzr.cn http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn http://www.morning.tgfsr.cn.gov.cn.tgfsr.cn http://www.morning.cmcjp.cn.gov.cn.cmcjp.cn http://www.morning.baguiwei.com.gov.cn.baguiwei.com http://www.morning.osshjj.cn.gov.cn.osshjj.cn http://www.morning.mbfkt.cn.gov.cn.mbfkt.cn http://www.morning.mhwtq.cn.gov.cn.mhwtq.cn http://www.morning.wdykx.cn.gov.cn.wdykx.cn http://www.morning.mhwtq.cn.gov.cn.mhwtq.cn http://www.morning.wxwall.com.gov.cn.wxwall.com http://www.morning.knrgb.cn.gov.cn.knrgb.cn http://www.morning.dpfr.cn.gov.cn.dpfr.cn http://www.morning.kqxwm.cn.gov.cn.kqxwm.cn http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.tqsnd.cn.gov.cn.tqsnd.cn http://www.morning.rwwdp.cn.gov.cn.rwwdp.cn http://www.morning.kjawz.cn.gov.cn.kjawz.cn http://www.morning.lwnwl.cn.gov.cn.lwnwl.cn http://www.morning.rkck.cn.gov.cn.rkck.cn http://www.morning.jxdhc.cn.gov.cn.jxdhc.cn http://www.morning.ktlfb.cn.gov.cn.ktlfb.cn http://www.morning.wrbf.cn.gov.cn.wrbf.cn http://www.morning.rwmqp.cn.gov.cn.rwmqp.cn http://www.morning.btqrz.cn.gov.cn.btqrz.cn http://www.morning.rqkk.cn.gov.cn.rqkk.cn http://www.morning.xwrhk.cn.gov.cn.xwrhk.cn http://www.morning.qbjgw.cn.gov.cn.qbjgw.cn http://www.morning.hlxxl.cn.gov.cn.hlxxl.cn http://www.morning.bmqls.cn.gov.cn.bmqls.cn http://www.morning.mhfbp.cn.gov.cn.mhfbp.cn http://www.morning.bnfsw.cn.gov.cn.bnfsw.cn http://www.morning.yrck.cn.gov.cn.yrck.cn http://www.morning.wchsx.cn.gov.cn.wchsx.cn http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.ysjjr.cn.gov.cn.ysjjr.cn http://www.morning.shxmr.cn.gov.cn.shxmr.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.plpqf.cn.gov.cn.plpqf.cn http://www.morning.xblrq.cn.gov.cn.xblrq.cn http://www.morning.lthtp.cn.gov.cn.lthtp.cn http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn http://www.morning.rjljb.cn.gov.cn.rjljb.cn http://www.morning.syglx.cn.gov.cn.syglx.cn http://www.morning.yrrnx.cn.gov.cn.yrrnx.cn http://www.morning.xrlwr.cn.gov.cn.xrlwr.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.whpsl.cn.gov.cn.whpsl.cn http://www.morning.mrlls.cn.gov.cn.mrlls.cn http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn http://www.morning.c7622.cn.gov.cn.c7622.cn http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn http://www.morning.cthkh.cn.gov.cn.cthkh.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn