springboot2.7.x整合nacos+seata

1、nacos及seata下载地址

Nacos Server 下载 | Nacos 官网

Seata Java Download | Apache Seata

这里的seata版本用2.1.0版本。

2、启动nacos

D:\本地-seata-nacos\nacos-server\bin>startup.cmd -m standalone

3、修改seata的conf下的application的内容

这里的数据库seata自己创建,并需要创建4张表:

-- auto-generated definition
create table branch_table
(
    branch_id         bigint        not null
        primary key,
    xid               varchar(128)  not null,
    transaction_id    bigint        null,
    resource_group_id varchar(32)   null,
    resource_id       varchar(256)  null,
    branch_type       varchar(8)    null,
    status            tinyint       null,
    client_id         varchar(64)   null,
    application_data  varchar(2000) null,
    gmt_create        datetime(6)   null,
    gmt_modified      datetime(6)   null
);

create index idx_xid
    on branch_table (xid);

-- auto-generated definition
create table distributed_lock
(
    lock_key   char(20)    not null
        primary key,
    lock_value varchar(20) not null,
    expire     bigint      null
);

-- auto-generated definition
create table global_table
(
    xid                       varchar(128)  not null
        primary key,
    transaction_id            bigint        null,
    status                    tinyint       not null,
    application_id            varchar(32)   null,
    transaction_service_group varchar(32)   null,
    transaction_name          varchar(128)  null,
    timeout                   int           null,
    begin_time                bigint        null,
    application_data          varchar(2000) null,
    gmt_create                datetime      null,
    gmt_modified              datetime      null
);

create index idx_status_gmt_modified
    on global_table (status, gmt_modified);

create index idx_transaction_id
    on global_table (transaction_id);
-- auto-generated definition
create table lock_table
(
    row_key        varchar(168)      not null
        primary key,
    xid            varchar(128)      null,
    transaction_id bigint            null,
    branch_id      bigint            not null,
    resource_id    varchar(256)      null,
    table_name     varchar(256)      null,
    pk             varchar(36)       null,
    status         tinyint default 0 not null comment '0:locked ,1:rollbacking',
    gmt_create     datetime          null,
    gmt_modified   datetime          null
);

create index idx_branch_id
    on lock_table (branch_id);

create index idx_status
    on lock_table (status);

create index idx_xid
    on lock_table (xid);


4、在nacos的页面中添加配置

seataClient.properties的配置内容如下:

# 事务组映射
service.vgroupMapping.my_test_tx_group=default
# Seata 服务端地址
service.grouplist.default=127.0.0.1:8091
# 客户端与服务端通信的线程池大小
client.rm.async.commit.buffer.limit=10000
client.rm.lock.retry.interval=10
client.rm.lock.retry.times=30
client.rm.lock.retry.policy.branch-rollback-on-conflict=true
client.tm.commit.retry.count=5
client.tm.rollback.retry.count=5

seataServer.properties的配置内容如下:

# 事务日志存储模式,这里使用数据库存储
store.mode=db
# 数据库相关配置
store.db.datasource=druid
store.db.db-type=mysql
store.db.driver-class-name=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://localhost:3306/seata?useUnicode=true&characterEncoding=utf-8&useSSL=false
store.db.user=root
store.db.password=root
store.db.min-conn=5
store.db.max-conn=30
store.db.global-table=global_table
store.db.branch-table=branch_table
store.db.lock-table=lock_table
store.db.query-limit=100

# 其他配置,可按需调整
service.vgroupMapping.my_test_tx_group=default
service.grouplist.default=127.0.0.1:8091

5、可以启动seata服务

启动后看seata是否注册到nacos中

6、微服务整合Seata的配置

seata:
  enabled: true
  tx-service-group: default_tx_group
  enable-auto-data-source-proxy: false
  registry:
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      username: nacos
      password: nacos
      data-id: seataServer.properties
      cluster: default
      application: seata-server
  service:
    vgroup-mapping:
      default_tx_group: default
    disable-global-transaction: false

可以在业务类中添加@GlobalTransactional注解:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值