Seata下载安装 | 集成Nacos配置 | 简单栗子

Posted 做猪呢,最重要的是开森啦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Seata下载安装 | 集成Nacos配置 | 简单栗子相关的知识,希望对你有一定的参考价值。

1. Seata下载安装:

截至目前最新版本为1.5.1,本文使用的是1.4.2版本;下载地址: 官网下载 |  百度云( 提取码:8w9p)

由于是本地windows做简单实验,下载zip包;linux或者docker部署可以参考官网

2. Seata集成Nacos配置:

集成Nacos首先就得安装部署好Nacos,可以参考windows安装或者docker安装,我这里使用本地nacos

 2.1. 修改registry.conf:

解压zip,在conf文件夹,对注册中心和配置中心进行相应配置,这里使用的是nacos;

registry 
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"

  nacos 
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "DEFAULT_GROUP"
    namespace = "dev"
    cluster = "DEFAULT"
    username = "nacos"
    password = "nacos"
  


config 
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"

  nacos 
    serverAddr = "127.0.0.1:8848"
    namespace = "dev"
    group = "DEFAULT_GROUP"
    username = "nacos"
    password = "nacos"
    dataId = "seataServer.properties"
  


 2.2. nacos配置中心进行seata服务配置:

  • 题外:如果2.1中type使用的file,则还需要修改file.conf文件进行数据库储存配置
 2.3. seata-server服务启动:

Windows执行bat程序即可,默认端口8091:


3. 举个栗子:

详细代码就不贴了(可以见GitHUb),大概就是:

  • 调用订单Order服务接口,先对订单状态进行确认;再feign调用积分Integral服务进行加积分
  • 其中积分服务接口,加完积分后触发个异常,也就相当于调用积分服务时异常了
  • 使用seata就可以保证异常的时候,订单状态没有发生更改、积分也没有发生更改

  • 使用@GlobalTransactional标注方法,这里默认使用Seata的AT模式,需要undo_log表,建表语句如下:
-- 注意此处0.3.0+ 增加唯一索引 ux_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`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
3.1. 栗子seata依赖说明:
  • 使用的spring-cloud-starter-alibaba-seata:2.2.5.RELEASE版本进行自动配置,包括数据源代理
  • 内部使用了seata-spring-boot-starter依赖,使用的是1.3.0,导致其内部使用的seata-all依赖也是1.3.0版本
  • 如果像下文指定使用1.4.2版本,数据源自动代理的方式不太一样,需要在启动类加上@EnableAutoDataSourceProxy;参考链接
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
    <!--            <exclusions>-->
    <!--                &lt;!&ndash;版本较低,1.3.0,因此排除&ndash;&gt;-->
    <!--                <exclusion>-->
    <!--                    <artifactId>seata-spring-boot-starter</artifactId>-->
    <!--                    <groupId>io.seata</groupId>-->
    <!--                </exclusion>-->
    <!--            </exclusions>-->
</dependency>
<!--seata starter 采用1.4.2版本 ,需要在启动类加上@EnableAutoDataSourceProxy才会自动对数据源代理-->
<!--        <dependency>-->
<!--            <groupId>io.seata</groupId>-->
<!--            <artifactId>seata-spring-boot-starter</artifactId>-->
<!--            <version>1.4.2</version>-->
<!--        </dependency>-->

以上是关于Seata下载安装 | 集成Nacos配置 | 简单栗子的主要内容,如果未能解决你的问题,请参考以下文章

springcloud seata nacos环境搭建

Seata的部署与微服务集成

Seata的部署与微服务集成

SpringCloud - Spring Cloud Alibaba 之 Seata分布式事务服务;集成Nacos配置中心(十九)

SpringBoot集成nacos+seata1.5.1相关注意事项

SpringBoot集成nacos+seata1.5.1相关注意事项