Seata es una solución de transacciones distribuidas de código abierto dedicada a proporcionar servicios de transacciones distribuidas de alto rendimiento y fáciles de usar. Seata proporcionará a los usuarios los modos de transacción AT, TCC, SAGA y XA, creando una solución distribuida integral para los usuarios.
Imprimir
Descargar Seata
Descargue la versión correspondiente de Seata de acuerdo con las instrucciones de la versión springcloud alibaba; de lo contrario, pueden ocurrir varios problemas de incompatibilidad de versiones.
Dirección de descarga: https://github.com/seata/seata/releases
Instalar Seata
Dirección de descarga del paquete de recursos: https://github.com/seata/seata/tree/develop/script
Los siguientes pasos siguen el almacenamiento de base de datos como ejemplo.
- Descomprimir el paquete de instalación de Seata
- Si usa almacenamiento de base de datos, debe crear tablas en la base de datos. (Ejecute el script del archivo sql -> servidor -> db -> mysql.sql en el paquete de recursos)
- Abra el archivo de configuración (seata -> conf -> file.conf)
- Modificar store.mode="db"
- Modifique la URL de configuración de la conexión de la base de datos, el nombre de usuario y la contraseña
para completar la configuración básica de Seata. Ejecute seata/bin/seata-server.bat para iniciar Seata, y la configuración local se usa de manera predeterminada.
Seata configura el centro de configuración y el centro de registro de Nacos
- Abra el archivo de configuración (seata -> conf -> registro.conf)
- Modificar registro.type="nacos"
- Modificar la configuración de conexión del registro nacos
- Modificar config.type="nacos"
- Modificar la configuración de conexión del centro de configuración nacos
- Coloque el script del paquete de recursos en el directorio de instalación de seata
- Abra el archivo de configuración (seata -> script -> config-center -> config.txt)
- Modificar store.mode="db"
- Modificar URL de configuración de conexión de base de datos, nombre de usuario, contraseña
- Ejecute el script para sincronizar la coordinación con nacos.
- Ejecute el comando en el directorio (seata -> script -> config-center -> nacos)
# 如果nacos不在本地,可以通过参数指定nacos服务的IP、端口、groupId、命名空间
liunx: ./nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 命名空间
# python脚本中分组是固定写死的,自定义需要修改脚本
python: nacos-config.py localhost:8848 命名空间
Ejecuta seata/bin/seata-server.bat para volver a iniciar Seata, que es la configuración en nacos.
Parámetros de inicio de Seata en liunx
./seata-server.sh -p 8092 -n 1
-h: 注册到注册中心的ip
-p: Server rpc 监听端口
-m: 全局事务会话信息存储模式,file、db、redis,优先读取启动参数 (Seata-Server 1.3及以上版本支持redis)
-n: Server node,多个Server时,需区分各自节点,用于生成不同区间的transactionId,以免冲突
-e: 多环境配置参考 http://seata.io/en-us/docs/ops/multi-configuration-isolation.html
Configuración detallada de parámetros de Seata: https://seata.io/zh-cn/docs/user/configurations.html
Springcloud integra el cliente de Seata
- Agregar dependencia de Maven
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>
- Añadir configuración application.yml
seata:
# 事务分组 config.txt中的service.vgroupMapping.my_test_tx_group
tx-service-group: my_test_tx_group
# seata注册中心配置 参考 seata安装目录 -> conf -> registry.conf
registry:
type: nacos
nacos:
application: seata-server # seata服务名
server-addr: localhost:8848 # nacos服务地址
group: SEATA_GROUP # nacos分组 默认为:SEATA_GROUP
namespace: public # nacos命名空间
cluster: default # 集群名称 需要与config.txt中的service.vgroupMapping.my_test_tx_group的配置一致
username: nacos # nacos用户名
password: nacos # nacos密码
# seata配置中心配置 参考 seata安装目录 -> conf -> registry.conf
config:
type: nacos
nacos:
server-addr: localhost:8848 # nacos服务地址
group: SEATA_GROUP # nacos分组
namespace: public # nacos命名空间
username: nacos # nacos用户名
password: nacos# nacos密码
- Después de agregar el contenido anterior, puede usar la anotación @GlobalTransactional para manejar transacciones distribuidas.