Windows 安装 Seata 1.6.1 并配置开机自启

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: Windows 安装 Seata 1.6.1 并配置开机自启

环境声明

软件 版本 安装教程
操作系统 windows /
Nacos 2.2.2 Windows 安装 Nacos 2.2
MySQL 8.0.27 Linux 安装 MySQL 8

Seata 安装


下载 Seata


下载seata-server-1.6.1.zip (⬇️ 更多版本下载), 将文件解压到本地目录 D:\middleware\seata。

1.png

数据库创建


创建名为 seata 的数据库 ,执行脚本 seata\script\server\db\mysql.sql 创建表结构的创建


Seata 配置


参考 seata\conf\application-example.yml 示例配置文件修改 seata\conf\application.yml 的配置中心和注册中心的方式为 nacos ,数据存储模式为 db

seata:
  # 配置中心-nacos
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      namespace:
      group: SEATA_GROUP
      username: nacos
      password: nacos
      context-path:
      data-id: seataServer.properties
  # 注册中心-nacos
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace:
      # TC 集群名称,下文 Seata 客户端中配置事务分组名和集群名映射使用
      cluster: default
      username: nacos
      password: nacos
  # 数据存储模式-db 数据库
  store:
    # support: file 、 db 、 redis
    mode: db

Nacos 配置


访问 Nacos 控制台,配置列表 public 命名空间创建名为 seataServer.properties 的配置

2.png


复制 seata\script\config-center\config.txt 内容至 seataServer.properties

3.png


修改 seataServer.properties 的数据库连接信息

# 修改数据库连接
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true
store.db.user=username
store.db.password=password

启动 Seata


进入 seata\bin 目录,鼠标双击 seata-server.bat 文件启动

4.png5.png

启动成功之后,访问 Nacos 控制台查看服务是否注册成功

6.png


Seata 配置开机自启


WinSW(Windows Service Wrapper 是一个开源的 Windows 服务包装器,它可以帮助你将应用程序打包成系统服务,并实现开机自启动的功能。


下载 WinSW


下载 WinSW-x64.exe v2.12.0 (⬇️ 更多版本下载) 和 sample-minimal.xml

7.png

配置 WinSW


  1. 重命名 WinSW-x64.exe 为 seata-service.exe , sample-minimal.xm 为 seata-service.xml ,将重命名后的文件放置在D:\middleware\seata\bin 目录下

8.png2.修改 seata-service.xml 文件的配置如下:

<service>
  <!-- 唯一服务ID-->
  <id>seata</id>
  <!-- 显示服务的名称 -->
  <name>Seata Service</name>
  <!-- 服务描述 -->
  <description>Seata 服务</description>
  <!-- 日志路径-->
  <logpath>D:\middleware\seata\bin\logs</logpath>
  <!-- 日志模式 -->
  <logmode>roll</logmode>
  <!-- 指定启动可执行文件 -->
  <executable>D:\middleware\seata\bin\seata-server.bat</executable>
  <!-- 开机启动 -->
  <startmode>Automatic</startmode>
</service>

安装和启动服务


CMD 切换到 D:\middleware\seata\bin 目录下,执行以下命令完成服务的安装和启动

# 安装服务
seata-service.exe install
# 启动服务
seata-service.exe start
# 查看服务状态
seata-service.exe status

9.png


在 Windows 系统服务列表可以看到 Seata 服务(已验证可以开机自启动)

10.png

其他命令

# 卸载服务
seata-service.exe uninstall
# 重启服务
seata-service.exe restart

SpringBoot 整合 Seata


依赖 pom.xml

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </exclusion>
    </exclusions>
</dependency>

配置 application.yml

seata:
  enabled: true
  # 事务分组名
  tx-service-group: default_tx_group
  service:
    # 事务分组名和集群名映射(default_tx_group:default),default 是上文 seata server 配置的 TC 集群名
    vgroup-mapping:
      default_tx_group: default 
  # 注册中心
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: localhost:8848
      namespace:
      group: SEATA_GROUP
      username: nacos
      password: nacos

实战应用


在需要开启全局事务的方法添加 @GlobalTransactional 注解,项目完整源码 🔗 youlai-mall

/**
 * 订单支付
 */
@Override
@GlobalTransactional
public boolean payOrder(Long orderId) {
    OmsOrder order = this.getById(orderId);
    Assert.isTrue(order != null, "订单不存在");
    Assert.isTrue(OrderStatusEnum.UNPAID.getValue().equals(order.getStatus()), "订单不可支付,请检查订单状态");
    RLock lock = redissonClient.getLock(ORDER_LOCK_PREFIX + order.getOrderSn());
    try {
        lock.lock();
        // 扣减余额
        memberFeignClient.deductBalance(SecurityUtils.getMemberId(), order.getPayAmount());
        // 扣减库存
        skuFeignClient.deductStock(order.getOrderSn());
        // 修改订单状态 → 【已支付】
        // ....
        return true;
    } finally {
        //释放锁
        if (lock.isLocked()) {
            lock.unlock();
        }
    }
}

微服务商城源码

名称/Git仓库 Github Gitee
开源组织 有来开源组织 有来开源组织
后端 youlai-mall📖 youlai-mall📖
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
4月前
|
人工智能 JavaScript 开发工具
极速上手!Claude Code 原生支持 Windows 免WSL安装教程
Claude Code 现已支持 Windows 原生运行,无需 WSL 配置。本文提供详细安装教程,涵盖 Node.js 环境验证、Git 安装及 Claude Code 配置步骤,助你快速上手这一强大 AI 编程工具。
2672 5
|
4月前
|
存储 虚拟化 Windows
VMware安装Windows10
本案例介绍了在Windows系统上使用VMware Workstation 17.5 Pro安装配置Windows 10虚拟机的详细步骤,包括所需设备、软件下载链接、虚拟机设置及系统安装全过程。
1538 133
VMware安装Windows10
|
3月前
|
安全 Ubuntu iOS开发
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
200 3
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
|
4月前
|
安全 数据安全/隐私保护 Windows
ZyperWin++使用教程!让Windows更丝滑!c盘飘红一键搞定!ZyperWin++解决系统优化、Office安装和系统激活
ZyperWin++是一款仅5MB的开源免费Windows优化工具,支持快速优化、自定义设置与垃圾清理,兼具系统加速、隐私保护、Office安装等功能,轻便无广告,小白也能轻松上手,是提升电脑性能的全能管家。
1632 0
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2012 操作系统保姆级教程(附链接)
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
692 1
|
缓存 JavaScript 前端开发
Windows7压缩包安装node.js 报错提示windows Server 2012 R2 和安装React脚手架 最详细教程
对于Windows 7安装node.js 提示“This application is only supported on wWindows 8.1,windows Server 2012 R2, or higher.”类似这种情况的,该问题是因为node.js官方在 x12版本后就不支持win7系统了。
|
安全 网络安全 虚拟化
VMware中安装Windows Server 2012系统
在VMware中安装Windows Server 2012系统
3232 2
|
文件存储 iOS开发 Windows
在服务器的raid1中安装windows server系统(踩坑记录)
在服务器的raid1中安装windows server系统(踩坑记录)
在服务器的raid1中安装windows server系统(踩坑记录)