关键词

seata-1.4.0安装及在springcloud中使用详解

seata-1.4.0安装及在springcloud中使用详解

Seata是一款分布式事务解决方案,提供了对Spring Cloud、Dubbo等微服务框架的支持。本篇攻略将详细讲解Seata-1.4.0的安装及在Spring Cloud中的使用方法。

安装Seata-1.4.0

  1. 下载Seata-1.4.0

可以从官网 http://seata.io/zh-cn/ 下载Seata-1.4.0的安装包。

  1. 解压安装包

解压文件到指定文件夹,例如解压到 /usr/local/seata 目录中。

  1. 修改配置文件

进入 /usr/local/seata/conf 目录,编辑 file.conf 文件,并修改 mode、store.mode 和 store.file.mode 三个参数的值,让它们都等于 file:

```
## transaction log store
store {
## store mode: file、db
## store.mode = "file"
mode = "file"

 ## file store
 file {
   ## store location dir
   dir = "sessionStore"

   ## branch session size , if exceeded first try compress lockkey and retry write acoss different files
   max-branch-session-size = 16384

   ## file size threshold, above which it is divided into multiple files
   file-size-limit = "16MB"

   ## flush disk mode, sync、async
   flush-disk-mode = async

   ## flush interval, unit ms
   flush-disk-interval = 1000

   ## compression type, none、gzip
   compress = none

   ## branch session expire time ,the unit is minute
   max-branch-session-age = 1440

   ## file store mode: memory,mmap
   store-file-mode = "file"
 }

}
```

  1. 启动Seata服务

进入 /usr/local/seata/bin 目录,并执行以下命令:

sh seata-server.sh -p 8091 -m file

即可启动Seata服务。

在Spring Cloud中使用Seata-1.4.0

  1. 引入Seata的依赖

在 Spring Boot 项目的 pom.xml 文件中,添加以下依赖:

xml
<dependency>
<groupId>io.seata</groupId>
<artifactId>seata-spring-boot-starter</artifactId>
<version>1.4.0</version>
</dependency>

  1. 启用Seata的自动配置

在Spring Boot项目的配置类中添加注解@EnableAutoDataSourceProxy和@EnableSeata ,示例如下:

java
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableAutoDataSourceProxy
@EnableSeata
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
}

  1. 配置Seata的参数

在项目的 application.yml 文件中配置Seata的参数,示例如下:

yaml
spring:
cloud:
alibaba:
seata:
tx-service-group: my_test_tx_group
seata:
enabled: true
application-id: order-service
tx-service-group: my_test_tx_group
config:
type: file
file:
name: 'file:/usr/local/seata/conf/registry'
service:
vgroupMapping.my_test_tx_group: default
default.grouplist: 127.0.0.1:8091

  1. 在业务代码中使用Seata

在需要进行分布式事务管理的方法上添加@GlobalTransactional注解,示例如下:

java
@Service
public class OrderService {
@GlobalTransactional
public String createOrder(OrderInfo orderInfo) {
// 业务代码
}
}

  1. 对Seata进行测试

使用Postman或其他工具发送POST请求:

POST http://localhost:9500/order/create
{
"skuId": 1,
"count": 2,
"totalAmount": 100
}

如果返回结果成功,那么Seata在Spring Cloud中的配置就已经完成了。

示例说明

以下是两个使用Seata的简单示例:

  1. 使用Seata进行分布式事务管理的简单示例

在一个微服务中需要对多个服务进行调用,要保证这些调用全部成功或全部失败。这时,可以使用Seata对分布式事务进行管理,保证数据的一致性和完整性。

  1. 使用Seata对订单库存进行管理的示例

在执行订单操作的时候,需要对商品库存进行检查,如果库存不足则不能执行订单操作。此时,可以使用Seata对商品库存的操作进行管理,保证在执行订单的同时,库存数量得到正确的维护。

本文链接:http://task.lmcjl.com/news/18828.html

展开阅读全文