mac | Windows 本地部署 Seata1.7.0,Nacos 作为配置中心、注册中心,MySQL 存储信息

1、本人环境介绍

系统 macOS 15.4.1 (24E263)

MySQL 8.2.0 (官方默认是5.7版本)
Seata 1.7.0
Nacos 2.3.2

jdk 17

2、下载

本次实践的 seata 版本为 v1.7.0,下载地址

2.1、下载到本地之后解压

注意:1.5版本(不记得是不是这个版本)之后没有那个registy.conf的配置了,直接在.yml文件中配置即可,你知道这回事就行了,别再傻傻地去搞那个registry

2.2、创建数据库表

1、 创建名称为 seata 的数据库
2、导入数据库表,脚本如下:

3、查看效果

3、配置 seata

3.1、配置 .yml

我直接上我的配置给大家参考,至于都有哪些可配置项,可以参考application.example.yml 这个文件

复制代码
server:
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${log.home:${user.home}/logs/seata}

console:
  user:
    username: seata
    password: seata
seata:
  # 配置中心
  config:
    type: nacos # 指定使用 nacos 作为配置中心
    nacos:
      server-addr: 127.0.0.1:8848
      namespace:  seata # 命名空间,如果不写默认使用 Nacos 的 public 命名空间
      group: DEFAULT_GROUP # 我直接用 Nacos 的默认,你也可以自己起一个分组叫做 SEATA_GROUP
      username: nacos # 如果你的 nacos 没配置账号密码则不需要写这两项
      password: nacos
      data-id: seataServer.properties # 也就是配置中心 Nacos 上的文件名称
  # 注册中心
  registry:
    type: nacos
    nacos:
      application: seata-server # seata tc 服务注册到 nacos的服务名称,可以自定义,需与上面的 spring.application.name属性一致
      server-addr: 127.0.0.1:8848
      group: DEFAULT_GROUP
      namespace: d50a537a-65ce-4c85-8b6f-e05a2518f1f4
      # cluster: 
      username: nacos
      password: nacos
  #  server:
  #    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey:  SeataSecretKey0c382ef121d778043159209298fd40bf3850a017 # 这项不要登录不进seata
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login,/metadata/v1/**

3.2、配置Nacos 配置中心

官方给出了一个 config.txt 来配置,参考链接:config.txt

大家可自行参考上面的配置项目,我这里简单配置主要的数据库部分即可,多余的不配置会自动使用默认设置

在 nacos 中做如下操作:

3.2.1 创建命名空间

也就是上方提到的 .yml 文件中使用的 namespace,如果你没配置的话也可以,那么 .yml 文件中 namespace 字段不写即可

3.2.2、创建 seataServer.properties 配置文件


配置内容填入如下信息:

复制代码
#事务会话信息存储方式
store.mode=db
#事务锁信息存储方式
store.lock.mode=db
#事务回话信息存储方式
store.session.mode=db

#存储方式为db
store.db.dbType=mysql # 设置使用的存储类型是 mysql
store.db.datasource=druid
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 下方你的数据库名称如果不是 seata 记得修正
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true&useSSL=false
store.db.user=root # 写你的数据库用户
store.db.password=root 写你的数据库密码
store.db.minConn=5
store.db.maxConn=30
store.db.queryLimit=100
store.db.maxWait=5000
# 下面 4 项对应的数据库中几张数据表
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.lockTable=lock_table
store.db.distributedLockTable=distributed_lock

注意:不需要像网上其它文章说的那样需要使用 script\目录下的脚本将 config.txt 一项一项导入到 nacos 中!按照我的配置即可

最终的配置中心效果如下:

如果你没指定 namespce ,则将创建在上图 public选项卡下。

4、启动 Seata

是不是到了激动人心的时刻?

进入到 bin\ 目录

4.1、执行启动命令

前提:注意看有没有执行权限,没有的话记得 chmod +x seata-server.sh

复制代码
# 如果是 Windows 系统则直接双击 `seata-server.bat` 即可
sh seata-server.sh

此时控制台会输出如下信息:

此时去看 nacos 的服务列表看到如下信息证明你成功启动了~

但是!!!

如果不成功,我也是踩坑过来的人

坑1:请打开启动脚本 sh seata-server.sh 并编辑

找到 start_server() 函数,将 nohup 后台启动的改成前台启动

即:

复制代码
nohup $JAVACMD ${JAVA_OPT} ${NEW_ARGS} >> /dev/null 2>&1 &

先替换成:

$JAVACMD ${JAVA_OPT} ${NEW_ARGS}

让其以前台形式启动,这样子你就可以看到 Spring Boot 启动的日志了,便可看到你哪里报错了

坑2:jdk版本太低报错:

seata-setup.sh: line 139: [[: 138:: syntax error in expression (error token is ":")

我这里改到jdk17就行了

这个版本你按照我的配置进行,应该是不会错了,因为我之前学别人的配置遇到的报错都已经解决了。希望能帮助到大家

相关推荐
Umi·3 分钟前
MySQL之DQL使用实例
数据库·mysql
麻瓜code39 分钟前
Spring AI 全模块 API 字典一览(1.1.0 版)
人工智能·windows·spring
贾公子1 小时前
检测结果怎么落库——表结构、状态机与三类对账
后端·mysql
z06.1 小时前
Linux系统中MySQL的安装
linux·mysql
zrc0070072 小时前
steam无法登录 steam错误 登录时出现错误。请稍后再试。解决办法 steam无法登录解决办法 湖南地区steam DNS问题解决办法
windows·经验分享·游戏·缓存·游戏程序·创业创新·玩游戏
Small-Young2 小时前
数据库乐观锁深度解析:MySQL、PostgreSQL 实战 + Spring Boot 集成指南
数据库·spring boot·mysql·postgresql·乐观锁·并发控制
浮生若城2 小时前
MySQL 数据库基础
数据库·mysql
香蕉大香蕉(06敬畏市场)3 小时前
MySQL 单点详解(09)
java·数据库·mysql·面试·八股·大厂实习
BK贝壳3 小时前
布尔队列 BHA_Queue:入队出队均摊 O(1);附 BHA_Dict
windows
-星空下无敌3 小时前
Windows Docker K8s 安装部署Naocs ,SpringBoot 3.x 4.x 整合Naocs 版本兼容 配置中心、服务注册与发现
windows·docker·nacos·kubernetes·springboot·alibaba