seata的部署和集成

一、部署Seata的tc-server

1.下载

首先我们要下载seata-server包,地址在http://seata.io/zh-cn/blog/download.html

当然,课前资料也准备好了:

2.解压

在非中文目录解压缩这个zip包,其目录结构如下:

3.修改配置

修改conf目录下的registry.conf文件:

内容如下:

registry {
  # tc服务的注册中心类,这里选择nacos,也可以是eureka、zookeeper等
  type = "nacos"
​
  nacos {
    # seata tc 服务注册到 nacos的服务名称,可以自定义
    application = "seata-tc-server"
    serverAddr = "127.0.0.1:8848"
    group = "DEFAULT_GROUP"
    namespace = ""
    cluster = "SH"
    username = "nacos"
    password = "nacos"
  }
}
​
config {
  # 读取tc服务端的配置文件的方式,这里是从nacos配置中心读取,这样如果tc是集群,可以共享配置
  type = "nacos"
  # 配置nacos地址等信息
  nacos {
    serverAddr = "127.0.0.1:8848"
    namespace = ""
    group = "SEATA_GROUP"
    username = "nacos"
    password = "nacos"
    dataId = "seataServer.properties"
  }
}

4.在nacos添加配置

特别注意,为了让tc服务的集群可以共享配置,我们选择了nacos作为统一配置中心。因此服务端配置文件seataServer.properties文件需要在nacos中配好。

格式如下:

配置内容如下:

# 数据存储方式,db代表数据库
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password
### Seata 分布式事务框架的部署教程 #### 1. 环境准备 在部署 Seata 前,需确保环境满足以下条件: - Java 运行时环境 (JDK 8 或更高版本)[^2]。 - 数据库支持(MySQL、PostgreSQL 等),用于存储全局事务日志分支事务状态[^3]。 #### 2. 下载并解压 Seata Server 可以从官方 GitHub 页面下载最新稳定版的 Seata 发行包。通过命令行执行如下操作获取压缩文件: ```bash wget https://github.com/seata/seata/releases/download/v1.x.xx/seata-server-x.x.zip unzip seata-server-x.x.zip -d /opt/seata/ cd /opt/seata/bin ``` 上述路径可以根据实际需求调整安装目录位置。 #### 3. 配置数据库表结构 运行脚本初始化所需的数据库表结构,在 `seata/script` 文件夹下找到对应类型的 SQL 脚本文件,例如 MySQL 的建表语句位于 `db/mysql.sql` 中。将其导入到指定的目标数据库实例中: ```sql -- 使用 mysql 客户端或其他工具加载 sql 文件 source /path/to/seata/script/db/mysql.sql; ``` #### 4. 修改配置文件 进入 `/conf/registry.conf` 其他相关配置项编辑区域设置注册中心以及配置管理方式,默认情况下会采用 Nacos 或者 Eureka 来作为服务发现机制之一;另外还需要定义好 storage mode 参数指向所使用的持久化方案——file/file-db/jdbc 等形式][^[^23]。 对于 JDBC 存储模式下的数据源连接字符串部分,则需要按照实际情况填写完整信息: ```properties store { mode = "db" db { datasource = "mysql" driverClassName = "com.mysql.cj.jdbc.Driver" url = "jdbc:mysql://localhost:3306/seata?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false" user = "root" password = "" } } ``` #### 5. 启动 Seata Server 当一切准备工作完成后就可以启动 server 实例了。如果是在 Linux 平台上可以利用 shell script 执行 start.sh : ```bash ./seata-server.sh -p 8091 -m tcp & ``` 这里 `-p` 表示监听端口号而 `-m` 则指定了通信协议(tcp/netty),具体参数可根据项目需求灵活定制。 #### 6. 应用集成客户端 SDK 最后一步就是在各个微服务模块里引入依赖并将必要的属性注入进去以便于正常调用远程接口参与全局事务控制流程。以 Spring Boot 工程为例说明如何快速接入该功能组件: 添加 Maven POM.XML 插件声明片段: ```xml <dependency> <groupId>io.seata</groupId> <artifactId>seata-spring-boot-starter</artifactId> <version>x.x.x.RELEASE</version><!-- 版本号匹配 --> </dependency> ``` 接着更新 application.yml/yaml 格式的资源配置文档内容样例如下所示: ```yaml spring: cloud: alibaba: seata: tx-service-group: my_test_tx_group # 自定义分组名称 seata: enabled: true service: vgroup-mapping: my_test_tx_group: default # 映射规则关联至默认处理逻辑单元上 ``` 至此整个过程结束即可开始测试验证效果啦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值