当前位置: 首页 > 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]四数之和
  • 国务院国资委:推动央企强化资金统筹,确保及时付款
  • 《蛮好的人生》上海特色鲜明,聚焦荧屏甚少出现的保险业
  • 解放日报:订单不撤,中国工程师有能力
  • 专访|松重丰:“美食家”不孤独,他在自由地吃饭
  • 考艾的森林与雾气中,艺术在生长
  • 梅德韦杰夫:如果欧盟和美国 “撒手不管”,俄罗斯会更快解决俄乌冲突