一、前言
Seata出现前,大部分公司使用的都是TCC或者MQ(RocketMq)等来解决分布式事务的问题,TCC代码编写复杂,每个业务均需要实现三个入口,侵入性强,RocketMQ保证的是最终一致性。
二、环境准备
1、nacos:(这里采用最新版本2.1.1)
下载地址:https://github.com/alibaba/nacos/releases
官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html
2、seata:(这里采用最新版本1.5.2)
下载地址:https://github.com/seata/seata/releases
官方文档:http://seata.io/zh-cn/docs/overview/what-is-seata.html
3、其它:
redis、maven、mysql等(自行安装)
三、项目搭建(这里仅作本地测试,均采用单机模式)
1、mysql 自行下载、安装,创建数据库seata、nacos、server1、server2
2、nacos
①解压压缩包,进入nacos目录
②进入conf目录,拷贝nacos-mysql.sql到数据库nacos初始化
③打开application.properties,找到如下配置,放开注释,修改为本地连接
### If use MySQL as datasource: spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=nacos db.password.0=nacos
④进入bin目录,执行cmd命令," .\startup.cmd -m standalone",观察到如下日志,无报错,即启动成功
⑤上图标出的即为nacos管理界面的地址,账号密码均为nacos,登录成功
⑥新建命令空间,我这里加的"yhc",大家可以自定义,不过后面seata和server的配置需要对应上,后文也会提到。
⑦新建配置"seata.yml",这个配置可以从seata官网demo中找到,注意只用修改db连接即可。
metrics: enabled: false exporterList: prometheus exporterPrometheusPort: 9898 registryType: compact server: maxCommitRetryTimeout: -1 maxRollbackRetryTimeout: -1 recovery: asynCommittingRetryPeriod: 1000 committingRetryPeriod: 1000 rollbackingRetryPeriod: 1000 timeoutRetryPeriod: 1000 rollbackRetryTimeoutUnlockEnable: false undo: logDeletePeriod: 86400000 logSaveDays: 7 store: db: branchTable: branch_table datasource: druid dbType: mysql driverClassName: com.mysql.cj.jdbc.Driver globalTable: global_table lockTable: lock_table maxConn: 30 maxWait: 5000 minConn: 5 password: root queryLimit: 100 url: jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true&useSSL=false user: root mode: db transport: compressor: none serialization: seata
3、seata
①解压压缩包,进入seata目录
②进入/script/server/db目录,拷贝mysql.sql到数据库seata初始化
③进入/conf目录,修改application.yml配置文件,配置中心和注册中心改为nacos
seata: config: # support: nacos, consul, apollo, zk, etcd3 type: nacos nacos: server-addr: localhost:8848 namespace: c23f9030-953e-46bb-8c6e-0bf4a8227a8c group: yhc username: nacos password: nacos data-id: seata.yml registry: # support: nacos, eureka, redis, zk, consul, etcd3, sofa type: nacos nacos: application: seata-server server-addr: localhost:8848 namespace: c23f9030-953e-46bb-8c6e-0bf4a8227a8c group: yhc username: nacos password: nacos
④进入/bin目录,双击执行seata-server.bat启动
⑤打开nacos列表,观察seata服务注册成功
4、服务接入(更新中...)
标签:seata,nacos2.1,seata1.5,db,nacos,server,mysql,1000,springboot From: https://www.cnblogs.com/yhc-910/p/16735445.html