百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2024-09-04 02:44 3 浏览

环境声明

软件

版本

安装教程

操作系统

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。

数据库创建

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

Seata 配置

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

yaml复制代码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 的配置

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

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

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

启动 seata-server

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

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

Seata Server 开机自启

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

下载 WinSW

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

配置 WinSW

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

  2. 修改 seata-service.xml 文件的配置如下:
  3. xml复制代码
  4. <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 目录下,执行以下命令完成服务的安装和启动

bash复制代码# 安装服务
seata-service.exe install
# 启动服务
seata-service.exe start
# 查看服务状态
seata-service.exe status

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

其他命令

bash复制代码# 卸载服务
seata-service.exe uninstall
# 重启服务
seata-service.exe restart

SpringBoot 整合 Seata

依赖 pom.xml

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

yaml复制代码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

less复制代码/**
 * 订单支付
 */
@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


作者:有来技术
链接:https://juejin.cn/post/7250361765053087781

相关推荐

当Frida来“敲”门(frida是什么)

0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

服务端性能测试实战3-性能测试脚本开发

前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

Linux和Windows下:Python Crypto模块安装方式区别

一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

Python 3 加密简介(python des加密解密)

Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

怎样从零开始编译一个魔兽世界开源服务端Windows

第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

附1-Conda部署安装及基本使用(conda安装教程)

Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

如何配置全世界最小的 MySQL 服务器

配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

如何使用Github Action来自动化编译PolarDB-PG数据库

随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

面向NDK开发者的Android 7.0变更(ndk android.mk)

订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

OpenSSH 安全漏洞,修补操作一手掌握

1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

Linux:lsof命令详解(linux lsof命令详解)

介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

幻隐说固态第一期:固态硬盘接口类别

前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

新品轰炸 影驰SSD多款产品登Computex

分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...