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

目录

    • 环境声明
    • Seata 安装
      • 下载 Seata
      • 数据库创建
      • Seata 配置
      • Nacos 配置
      • 启动 Seata
    • Seata 配置开机自启
      • 下载 WinSW
      • 配置 WinSW
      • 安装和启动服务
    • SpringBoot 整合 Seata
      • 依赖 pom.xml
      • 配置 application.yml
      • 实战应用
    • 微服务商城源码
    • 联系我

环境声明

软件 版本 安装教程
操作系统 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

Windows 安装 Seata 1.6.1 并配置开机自启_第1张图片

数据库创建

创建名为 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 的配置

Windows 安装 Seata 1.6.1 并配置开机自启_第2张图片

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

Windows 安装 Seata 1.6.1 并配置开机自启_第3张图片

修改 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 文件启动

Windows 安装 Seata 1.6.1 并配置开机自启_第4张图片

Windows 安装 Seata 1.6.1 并配置开机自启_第5张图片

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

Windows 安装 Seata 1.6.1 并配置开机自启_第6张图片

Seata 配置开机自启

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

下载 WinSW

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

Windows 安装 Seata 1.6.1 并配置开机自启_第7张图片

配置 WinSW

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

    Windows 安装 Seata 1.6.1 并配置开机自启_第8张图片

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

    <service>
      
      <id>seataid>
      
      <name>Seata Servicename>
      
      <description>Seata 服务description>
      
      <logpath>D:\middleware\seata\bin\logslogpath>
      
      <logmode>rolllogmode>
      
      <executable>D:\middleware\seata\bin\seata-server.batexecutable>
      
      <startmode>Automaticstartmode>
    service>
    

安装和启动服务

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

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

Windows 安装 Seata 1.6.1 并配置开机自启_第9张图片

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

Windows 安装 Seata 1.6.1 并配置开机自启_第10张图片

其他命令

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

SpringBoot 整合 Seata

依赖 pom.xml

<dependency>
    <groupId>com.alibaba.cloudgroupId>
    <artifactId>spring-cloud-starter-alibaba-seataartifactId>
    <exclusions>
        <exclusion>
            <groupId>com.alibabagroupId>
            <artifactId>druidartifactId>
        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
前端 mall-admin mall-admin
移动端 mall-app mall-app

联系我

如果在您阅读本文的过程中遇到任何问题或有疑惑之处,欢迎通过开源组织首页加我好友。
有来开源组织:gitee.com/youlaiorg

你可能感兴趣的:(#,Seata,windows,分布式,spring,cloud,spring,boot,微服务)