当前位置: 首页 > news >正文

深入浅出:Seata 分布式事务管理器的部署与安装实战指南

Seata 是什么?

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了AT、TCC、SAGA XA 事务模式,为用户打造一站式的分布式解决方案。

  • 官方文档地址 https://seata.apache.org/zh-cn/docs/ops/deploy-guide-beginner/

安装启动

file模式启动

  1. 前往官方项目主页下载1.1.0版并解压:https://github.com/seata/seata/releases
  2. 不需要改动配置进入 bin 目录执行命令:
./seata-server.sh -h 127.0.0.1 -p 8091 -m file -n 1

在这里插入图片描述

db模式启动

  1. 同样使用刚刚下载的编译包,进入对应目录

  2. 找到 conf 文件夹,主要关注如下两个文件
    Seata安装

  3. 打开 registry.conf ,配置 configregistry 的节点都为 file
    Seata安装

Seata安装

  1. 打开 file.conf ,配置 modedb 并配置相关数据库链接
    Seata安装
  2. 创建数据库 seata 并且执行对应的 sql 脚本
/*
 Navicat Premium Data Transfer

 Source Server         : mysql_localhost
 Source Server Type    : MySQL
 Source Server Version : 50723
 Source Host           : localhost:3306
 Source Schema         : seata

 Target Server Type    : MySQL
 Target Server Version : 50723
 File Encoding         : 65001

 Date: 10/02/2020 23:42:58
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for branch_table
-- ----------------------------
DROP TABLE IF EXISTS `branch_table`;
CREATE TABLE `branch_table`  (
  `branch_id` bigint(20) NOT NULL,
  `xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `transaction_id` bigint(20) NULL DEFAULT NULL,
  `resource_group_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `resource_id` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `branch_type` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `status` tinyint(4) NULL DEFAULT NULL,
  `client_id` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `gmt_create` datetime(6) NULL DEFAULT NULL,
  `gmt_modified` datetime(6) NULL DEFAULT NULL,
  PRIMARY KEY (`branch_id`) USING BTREE,
  INDEX `idx_xid`(`xid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci;

-- ----------------------------
-- Table structure for global_table
-- ----------------------------
DROP TABLE IF EXISTS `global_table`;
CREATE TABLE `global_table`  (
  `xid` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `transaction_id` bigint(20) NULL DEFAULT NULL,
  `status` tinyint(4) NOT NULL,
  `application_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `transaction_service_group` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `transaction_name` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `timeout` int(11) NULL DEFAULT NULL,
  `begin_time` bigint(20) NULL DEFAULT NULL,
  `application_data` varchar(2000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `gmt_create` datetime(0) NULL DEFAULT NULL,
  `gmt_modified` datetime(0) NULL DEFAULT NULL,
  PRIMARY KEY (`xid`) USING BTREE,
  INDEX `idx_gmt_modified_status`(`gmt_modified`, `status`) USING BTREE,
  INDEX `idx_transaction_id`(`transaction_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci;

-- ----------------------------
-- Table structure for lock_table
-- ----------------------------
DROP TABLE IF EXISTS `lock_table`;
CREATE TABLE `lock_table`  (
  `row_key` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `xid` varchar(96) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `transaction_id` bigint(20) NULL DEFAULT NULL,
  `branch_id` bigint(20) NOT NULL,
  `resource_id` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `table_name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `pk` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `gmt_create` datetime(0) NULL DEFAULT NULL,
  `gmt_modified` datetime(0) NULL DEFAULT NULL,
  PRIMARY KEY (`row_key`) USING BTREE,
  INDEX `idx_branch_id`(`branch_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci;

SET FOREIGN_KEY_CHECKS = 1;

  1. 进入 bin 目录执行命令: ./seata-server.sh -h 127.0.0.1 -p 8091 -m db -n 1
    Seata安装

相关文章:

  • CAP应用
  • 大模型之Transformers , PyTorch和Keras
  • 【Python爬虫】简单案例介绍2
  • iOS 设备配置和描述文件管理
  • Framework Binder架构分解
  • 双按键控制LED(中断优先级)
  • ‌DeepSeek模型在非图形智能体的应用中是否需要GPU
  • 印度zj游戏出海代投本土网盟广告核心优势
  • 程序化广告行业(84/89):4A广告代理公司与行业资质解读
  • 【计算机网络】网络基础(协议,网络传输流程、Mac/IP地址 、端口号)
  • 高并发内存池(定长内存池基础)
  • STM32 认识STM32
  • 【AI飞】AutoIT入门一:AutoIT来了,准备让AI动起来
  • 数据库实战篇,SQL在Kooboo中的实际应用(一)
  • Epplus 8+ 许可证设置
  • ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(系列开篇)
  • 【NLP】25.python实现点积注意力,加性注意力,Decoder(解码器)与 Attention
  • 六、adb通过Wifi连接
  • cut命令:剪切
  • LeetCode[18]四数之和
  • “面具女孩”多次恐吓电梯内两幼童,当事女孩及家长道歉后获谅解
  • 五一“大车流”来了,今日午后G40沪陕高速开始迎来出沪高峰
  • 日韩 “打头阵”与美国贸易谈判,汽车、半导体产业忧虑重重
  • 朝鲜派兵库尔斯克是否有助于解决乌克兰危机?外交部回应
  • 三杀皇马剑指四冠,硬扛到底的巴萨,赢球又赢人
  • “十四五”以来少数民族发展资金累计下达边疆省区252亿元