简介:

博主使用的是seata-server1.4     spring-cloud-alibaba 2.2.2.RELEASE    openfeign 2.2.3.RELEASE

看该文章前,请先下载好nacos

参考文档:

Nacos官方文档地址: https://nacos.io/zh-cn/docs/what-is-nacos.html

1.  下载seata-server,解压

百度云盘下载地址:https://pan.baidu.com/s/1xa19lrrYDowICxGVVqmvRA

提取码:9log

2.  配置seata/conf/registry.conf

registry {# file 、nacos 、eureka、redis、zk、consul、etcd3、sofa# 修改为nacostype = "nacos"loadBalance = "RandomLoadBalance"loadBalanceVirtualNodes = 10# 修改nacos的ip端口,namespace 注意serverAddr 不能带httpnacos {application = "seata-server"serverAddr = "127.0.0.1:8848"group = "SEATA_GROUP"namespace = ""cluster = "default"username = ""password = ""}file {name = "file.conf"}
}config {# file、nacos 、apollo、zk、consul、etcd3type = "nacos"# 修改nacos的ip端口,namespace 注意serverAddr 不能带httpnacos {serverAddr = "127.0.0.1:8848"namespace = ""group = "SEATA_GROUP"username = ""password = ""cluster = "default"}file {name = "file.conf"}
}

注意:seata/conf/file.conf  该文件不需要配置,可忽略,因为后面把配置信息同步到nacos上,读取配置的时候直接从nacos上读取,不会从file.conf上读取。

3. 修改seata/config.txt  注意:从官网下载的seata-server1.4解压出来是没有config.txt  需要手动创建并配置,内容如下:

transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableClientBatchSendRequest=false
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
service.vgroupMapping.storage-service-group=default
service.vgroupMapping.order-service-group=default
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=false
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
store.mode=db
store.publicKey=
store.file.dir=file_store/data
store.file.maxBranchSessionSize=16384
store.file.maxGlobalSessionSize=512
store.file.fileWriteBufferCacheSize=16384
store.file.flushDiskMode=async
store.file.sessionReloadReadSize=100
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata1?useSSL=false&characterEncoding=UTF-8&useUnicode=true&serverTimezone=UTC
store.db.user=root
store.db.password=root
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
store.redis.mode=single
store.redis.single.host=127.0.0.1
store.redis.single.port=6379
store.redis.maxConn=10
store.redis.minConn=1
store.redis.maxTotal=100
store.redis.database=0
store.redis.password=
store.redis.queryLimit=100
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
log.exceptionRate=100
transport.serialization=seata
transport.compressor=none
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

需要修改:

store.mode=db

store.db.driverClassName=com.mysql.cj.jdbc.Driver
            store.db.url=jdbc:mysql://127.0.0.1:3306/seata1?useSSL=false&characterEncoding=UTF-8&useUnicode=true&serverTimezone=UTC
            store.db.user=root
            store.db.password=root

4. 把config.txt导入到nacos里,进入seata\conf 运行:

            sh nacos-config.sh 127.0.0.1

           说明:这个不是cmd窗口,而是git命令窗口如下:

验证:

5. 先启动nacos,再启动seata-server ,进入seata\bin\seata-server.bat

验证是否成功:浏览器打开nacos地址,查看是否注册成功。

6. 创建seata-product-service项目:

6.1 pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>seata-order-service</artifactId><version>0.0.1-SNAPSHOT</version><name>seata-order-service</name><description></description><parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version></parent><dependencies><!--spring boot web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--配置中心 nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--注册中心 nacos--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--seata--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.3.RELEASE</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.3.7.RELEASE</version><configuration><mainClass>cn.seata.demo.SeataOrderServiceApplication</mainClass></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

  6.2 bootstrap.properties

# Nacos认证信息
spring.cloud.nacos.config.username=
spring.cloud.nacos.config.password=
spring.cloud.nacos.config.contextPath=/nacos
# 设置配置中心服务端地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
# Nacos 配置中心的namespace。需要注意,如果使用 public 的 namcespace ,请不要填写这个值,直接留空即可
# spring.cloud.nacos.config.namespace=

  6.3 application.properties

# 应用名称
spring.application.name=seata-product-service
# 应用服务 WEB 访问端口
server.port=8081# Nacos 服务发现与注册配置,其中子属性 server-addr 指定 Nacos 服务器主机和端口
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
# 注册到 nacos 的指定 namespace,默认为 public
spring.cloud.nacos.discovery.namespace=public
# Nacos认证信息
spring.cloud.nacos.discovery.username=
spring.cloud.nacos.discovery.password=# seata 配置
seata.application-id=${spring.application.name}
seata.service.grouplist.seata-server=192.168.136.136:8091
seata.registry.nacos.server-addr=127.0.0.1:8848
seata.registry.type=nacos
seata.config.type=nacos
seata.config.nacos.server-addr=127.0.0.1:8848
seata.tx-service-group=storage-service-group# 数据库驱动:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/seata2?serverTimezone=UTC
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=root#mybatis puls 配置
mybatis-plus.mapper-locations=classpath*:mappers/*.xml
mybatis-plus.typeAliasesPackage=cn.seata.demo.entity

6.4 SeataProductServiceApplication.java

package cn.seata.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
/*** @author hdx*/
@EnableFeignClients
@SpringBootApplication(scanBasePackages = "cn.seata")
public class SeataProductServiceApplication {public static void main(String[] args) {SpringApplication.run(SeataProductServiceApplication.class, args);}}

剩下代码略过,项目源码地址:

                  链接:https://pan.baidu.com/s/1VutnWmajhPrMFN3QlLcHbA 
                  提取码:2voy 

觉得好记得点个赞咯 ^_^ !

分布式事务seata整合nacos+openfeign相关推荐

  1. 【实践篇】SpringCloud + Eureka + Mybatis plus 整合分布式事务Seata

    纵观全文 项目简介 配置Seata Server服务 修改conf下的registry.conf文件 修改conf下的file.conf文件 启动seata server服务 在系统服务中配置使用Se ...

  2. Seata分布式事务控制整合Mybatis-Plus导致事务控制失效

    解决方案 1. pom文件引入Druid数据源 <!--druid--> <dependency> <groupId>com.alibaba</groupId ...

  3. SpringCloudAlibaba 微服务整合分布式事务Seata

    基于AT模式 创建undo_log(回滚日志表)表, 每个数据库需要创建 注意:UNDO_LOG Table:不同数据库在类型上会略有差别.详见官网 -- 注意此处0.7.0+ 增加字段 contex ...

  4. 分布式事务 seata 最全入门教程

    基本介绍 什么是分布式事务 指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败.从本质上来说,分布式事务就是为了保证不同数据库 ...

  5. 分布式事务 - Seata - TCC模式

    目录 一.什么是TCC 二.AT & TCC区别 及 适用场景 三.代码集成示例 3.1 升级Seata 1.5.2 3.2 示例场景说明 3.3 TCC核心接口定义 3.4 TCC相关阶段规 ...

  6. 微服务-分布式事务seata

    什么是分布式事务 单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源, 业务操作需要调用三个服务来完成.此时每个服务内部的数据一致性由本地事务来保证,但是全局的 ...

  7. 分布式事务Seata详细使用教程

    分布式事务Seata使用 seata服务的本地化及docker部署见此教程:分布式事务Seata安装:本地部署.docker部署seata springboot项目配置 微服务环境:添加依赖 < ...

  8. 多个mapper的事务回滚_揭秘蚂蚁金服分布式事务 Seata 的AT、Saga和TCC模式

    作者| 屹远(陈龙),蚂蚁金服分布式事务核心研发 . 导语 本文根据 8月11日 SOFA Meetup#3 广州站 <分布式事务 Seata 及其三种模式详解>主题分享整理,着重分享分布 ...

  9. 阿里微服务架构下分布式事务Seata

    转载自  阿里微服务架构下分布式事务Seata Seata 是什么? Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务.在 Seata 开源之前,S ...

最新文章

  1. android 设置自动弹框,安卓开发 弹出对话框,然后自动消失
  2. oracle addm报告
  3. python快速自学方式-Python怎样自学?
  4. Swift学习--常量.变量.数据类型的使用(一)
  5. Windows应用程序开发
  6. python我想对你说_python学习第3天-----字典、解构
  7. python正则表达式匹配括号并删除_如何使用正则表达式删除括号内的文本?
  8. python设置文件编码_python批量修改文件编码格式的方法
  9. SpringCloud Eureka服务治理
  10. java project 连接hibernate 出错
  11. 计算机的需求配置,软件最佳运行对计算机配置最低要求怎样?
  12. 如何使用python提高办公效率-提升Python程序运行效率的6个方法
  13. 计算机管理格式化没有顺利完成,内存卡无法格式化
  14. 盘点13个值得程序员逛的论坛
  15. mac 安装apk包 =》 adb (安装android 包)
  16. java create 透明图片_Java 如何生成透明背景色的图片
  17. linux 配置vpn 客户端,mandriva下成功配置vpn客户端
  18. 多年的人工智能安全机制争议 检察官、行刑者与道德家这么表示
  19. 平面设计面试官常问的问题有哪些?
  20. 破解excel工作表保护

热门文章

  1. 效应论——破窗效应(zt)
  2. Qtum量子链周报(10月22日-10月28日)
  3. 多自由度有阻尼matlab,多自由度阻尼系统固有振型的MATLAB求解程序
  4. 【解决方案】智慧水利:EasyNVR+EasyNVS视频监控解决方案
  5. 阿里 c语言研发笔试题,阿里巴巴集团2014校园招聘笔试题
  6. 电脑报警声音详细解释
  7. 荷混凝柱截StructureРoint spColumn 5.50 1CD载筋
  8. 性能测试知多少?怎样开展性能测试
  9. 入职避坑指南(杭州)
  10. 解题报告 (十) 单调栈