首页 虚拟现实

Seata 1.7.0 本地极速部署:Nacos + MySQL 双剑合璧(Mac/Windows 通用)

分类:虚拟现实
字数: (5276)
阅读: (0569)
内容摘要:Seata 1.7.0 本地极速部署:Nacos + MySQL 双剑合璧(Mac/Windows 通用),

在微服务架构盛行的今天,Seata 作为一款优秀的分布式事务解决方案,备受关注。本文将手把手教你如何在 MacWindows 环境下本地部署 Seata 1.7.0,并以 Nacos 作为配置中心和注册中心,MySQL 存储相关信息。避免大家踩坑,快速搭建一个可用于开发和测试的 Seata 环境。

1. 准备工作

在开始之前,请确保你已经安装并配置好了以下环境:

  • JDK 8 或以上版本
  • MySQL 5.7 或以上版本 (例如: 8.0.28)
  • Nacos 2.0 或以上版本
  • Maven

2. 安装 Nacos

如果还没有安装 Nacos,可以参考以下步骤进行安装:

  1. 下载 Nacos 安装包:

    Seata 1.7.0 本地极速部署:Nacos + MySQL 双剑合璧(Mac/Windows 通用)
    curl -O https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
    tar -zxvf nacos-server-2.2.3.tar.gz
    cd nacos/bin
    
  2. 启动 Nacos 服务:

    sh startup.sh -m standalone # 单机模式启动
    

    Nacos 默认端口是 8848,可以通过浏览器访问 http://localhost:8848/nacos 进入 Nacos 控制台。默认用户名密码为 nacos/nacos

3. 配置 Nacos

Seata 需要在 Nacos 中存储配置信息,包括 registry.conf 和 file.conf。

Seata 1.7.0 本地极速部署:Nacos + MySQL 双剑合璧(Mac/Windows 通用)
  1. 创建 Seata 配置:在 Nacos 控制台中,创建以下配置项:

    • Data ID: registry.confGroup: SEATA_GROUP配置内容:

      registry {
        type = "nacos"
        nacos {
          serverAddr = "127.0.0.1:8848" # Nacos 服务地址
          namespace = "" # Nacos 命名空间,默认空
          cluster = "default"
        }
      }
      
      config {
        type = "nacos"
        nacos {
          serverAddr = "127.0.0.1:8848" # Nacos 服务地址
          namespace = "" # Nacos 命名空间,默认空
        }
      }
      
    • Data ID: file.confGroup: SEATA_GROUP配置内容: (可以使用 Seata release 包中 conf 目录下的 file.conf)。 这部分配置包含了事务协调器的各种参数。

      Seata 1.7.0 本地极速部署:Nacos + MySQL 双剑合璧(Mac/Windows 通用)
  2. 重要提示: 确保 registry.conf 中的 serverAddr 配置正确,否则 Seata 客户端无法连接到 Nacos 服务。特别是使用 Docker 部署 Nacos 时,需要注意端口映射和网络配置。

4. 创建数据库

Seata 需要一个数据库来存储事务相关的信息。创建一个名为 seata 的数据库,并执行 Seata 提供的 SQL 脚本(位于 Seata release 包的 db_script/mysql.sql)。

-- 注意根据你的 MySQL 版本修改 SQL 脚本
CREATE DATABASE IF NOT EXISTS seata;
USE seata;

-- -------------------------------- The table for recording distributed transaction logs --------------
DROP TABLE IF EXISTS `undo_log`;
CREATE TABLE `undo_log` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `branch_id` bigint(20) NOT NULL,
  `xid` varchar(100) NOT NULL,
  `context` varchar(128) NOT NULL,
  `rollback_info` longblob NOT NULL,
  `log_status` int(11) NOT NULL,
  `log_created` datetime NOT NULL,
  `log_modified` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `ux_undo_log` (`branch_id`,`xid`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

5. 下载 Seata Server

下载 Seata 1.7.0 Server release 包:

Seata 1.7.0 本地极速部署:Nacos + MySQL 双剑合璧(Mac/Windows 通用)
curl -O https://github.com/seata/seata/releases/download/v1.7.0/seata-server-1.7.0.zip
unzip seata-server-1.7.0.zip
cd seata-server-1.7.0

6. 配置 Seata Server

修改 seata-server-1.7.0/resources/application.yml 文件,配置数据库连接信息和注册中心、配置中心信息。

spring:
  application:
    name: seata-server
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848 # Nacos 服务地址
        namespace: # Nacos 命名空间,默认空
        group: SEATA_GROUP
      discovery:
        server-addr: 127.0.0.1:8848 # Nacos 服务地址
        namespace: # Nacos 命名空间,默认空
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/seata?characterEncoding=utf8&useSSL=false # MySQL 连接地址
    username: root # MySQL 用户名
    password: your_password # MySQL 密码
    driver-class-name: com.mysql.cj.jdbc.Driver

7. 启动 Seata Server

sh bin/seata-server.sh

Seata Server 默认端口是 8091,可以通过查看日志文件 logs/seata-server.log 来确认服务是否成功启动。

8. 常见问题及解决方案

  • Nacos 连接失败: 检查 registry.confapplication.yml 中的 serverAddr 配置是否正确,以及 Nacos 服务是否正常运行。
  • 数据库连接失败: 检查 application.yml 中的数据库连接信息是否正确,以及 MySQL 服务是否正常运行。
  • 事务回滚失败: 检查 Undo Log 表是否存在,以及 Seata 客户端是否正确配置了事务组。
  • Windows 环境启动失败: 尝试使用 bin\seata-server.bat 启动 Seata Server。可能需要设置 JAVA_HOME 环境变量。

9. 总结

本文详细介绍了如何在 MacWindows 环境下本地部署 Seata 1.7.0,并以 Nacos 作为配置中心和注册中心,MySQL 存储相关信息。希望本文能够帮助你快速搭建一个可用于开发和测试的 Seata 环境,并在实际项目中应用 Seata 解决分布式事务问题。在生产环境中,推荐使用高可用的 Nacos 集群和 MySQL 集群,并配置 Seata Server 的负载均衡,以确保系统的稳定性和可靠性。可以考虑使用 Nginx 作为反向代理和负载均衡器,并监控 Nginx 的并发连接数等指标,以及使用宝塔面板等工具进行可视化管理。

Seata 1.7.0 本地极速部署:Nacos + MySQL 双剑合璧(Mac/Windows 通用)

转载请注明出处: 代码一只喵

本文的链接地址: http://m.acea4.store/blog/623012.SHTML

本文最后 发布于2026-04-15 13:53:18,已经过了12天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 修仙党 2 天前
    为什么我的 seata-server 启动的时候一直报 MySQL 连接错误,检查配置都没问题啊?
  • 草莓味少女 1 天前
    学习了,之前一直卡在 Nacos 配置上,看了这篇终于搞定了。
  • 社畜一枚 6 天前
    请问下楼主,Nacos 集群环境下,Seata 的配置有什么需要特别注意的吗?
  • 格子衫青年 2 天前
    写得真详细,按照步骤一步一步操作,成功部署了Seata,感谢!
  • 四川担担面 6 天前
    文章很棒,避免了很多坑。建议加上 Seata Client 的配置示例,会更完善。