升级Seata Server 1.5.2

news2024/11/17 7:43:13

目录

    • 引言
    • 下载地址
    • 配置
    • 初始Mysql数据库
    • 支持TCC Fence

引言

最近在做Seata TCC集成,集成过程中将Seata Server由原来的1.4.2升级为最新的1.5.2,本文记录了Seata 1.5的升级过程。

原Seata 1.4.2的安装过程可参见我之前的博客:
分布式事务 - Seata - AT入门 => 二、启动Seata Server(TC)

下载地址

下载地址:https://github.com/seata/seata/releases/tag/v1.5.2
在这里插入图片描述

配置

解压后可以发现原来的conf/registry.conf配置文件没有了,可直接修改application.yml进行配置。
在这里插入图片描述

application.yml配置内容也类似原registry.conf,主要包括如下两方面配置:

  • Seata使用的配置中心(支持file, nacos, consul, apollo, zk, etcd3)
  • Seata使用的服务注册中心(支持file, nacos, eureka, redis, zk, consul, etcd3, sofa)

同样以配置中心、注册中心使用Nacos,store.mode=db(mysql)为例,给出application.yml示例配置如下:

server:
  port: 7091

spring:
  application:
    name: seata-server
# 日志配置
logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  # 不外接日志,故如下配置可暂不考虑
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash
# 新增加的console控制台,
# 可通过访问http://localhost:7091进行登录,账号如下seata/seata
console:
  user:
    username: seata
    password: seata

seata:
  # Seata接入Nacos配置中心
  config:
    # support: file, nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848
      namespace: luo-dev
      group: SEATA_GROUP
      username: nacos
      password: nacos
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key: ""
      #secret-key: ""
      data-id: seataServer.properties
  # Seata接入Nacos服务注册中心
  registry:
    # support: file, nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace: luo-dev
      cluster: default
      username: nacos
      password: nacos
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key: ""
      #secret-key: ""
  # 此处可不必配置,由于接入了nacos配置,以下store相关配置可直接通过seataServer.properties进行配置
  # store:
    # support: file 、 db 、 redis
    # mode: db
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

上述配置中的使用的Nacos配置seataServer.properties,原始内容参见:
1.5.2/script/config-center/config.txt
具体的调整可参见我之前的博客:
分布式事务 - Seata - AT入门 => 二、启动Seata Server(TC) => (5)导入初始配置到nacos

初始Mysql数据库

从Seata1.4升级到1.5,数据库脚本有变化,以mysql为例:
1.4 msyql脚本: 1.4.2/script/server/db/mysql.sql
1.5 mysql脚本: 1.5.2/script/server/db/mysql.sql
相较于1.4版本,1.5版本mysql脚本主要调整如下:
新增加了distributed_lock表,
原有的lock_table表新增加了status列,
且由1.4的utf8编码调整为1.5的utf8mb4编码。

切记升级前使用新版本的数据库脚本初始化数据库。

支持TCC Fence

Seata1.5版本后解决了TCC模式下的幂等、空回滚、悬挂的问题,
若需支持此特性,还需在各自服务的业务数据库中额外导入表tcc-fence-log

CREATE TABLE IF NOT EXISTS `tcc_fence_log`
(
    `xid`           VARCHAR(128)  NOT NULL COMMENT 'global id',
    `branch_id`     BIGINT        NOT NULL COMMENT 'branch id',
    `action_name`   VARCHAR(64)   NOT NULL COMMENT 'action name',
    `status`        TINYINT       NOT NULL COMMENT 'status(tried:1;committed:2;rollbacked:3;suspended:4)',
    `gmt_create`    DATETIME(3)   NOT NULL COMMENT 'create time',
    `gmt_modified`  DATETIME(3)   NOT NULL COMMENT 'update time',
    PRIMARY KEY (`xid`, `branch_id`),
    KEY `idx_gmt_modified` (`gmt_modified`),
    KEY `idx_status` (`status`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4;

注: Seata 1.5解决TCC幂等、悬挂、空回滚问题可参见:
阿里 Seata 新版本终于解决了 TCC 模式的幂等、悬挂和空回滚问题

做完以上调整后,可直接通过/bin/seata-server.bat|sh进行启动。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/60918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TPU编程竞赛系列|基于TPU平台的人车目标检测初赛收官!

近日,AI算法创新赛-“基于TPU平台的人车目标检测”初赛正式结束,经过激烈地角逐,最终排名TOP20的队伍成功进入复赛,开启新的赛程! 目标检测是计算机视觉的热门方向,广泛应用于各种智能视频监控系统中。人、…

Flink系列之Flink中State设计详解与企业案例实践

title: Flink系列 二、Flink State 设计详解 Flink 官网解释:Apache Flink — Stateful Computations over Data Streams 前课中 WordCount 的例子,可以得知:其实我们会发现,单词出现的次数有累计的效果。如果没有状态的管理&am…

自制肥鲨HDO2电源升压延长线

自制肥鲨HDO2电源升压延长线1. 问题源由2. 解决方案3. 材料准备4. 最终延长线产出4.1 裸照4.2 成品5. 参考资料1. 问题源由 之前我们介绍了【自制肥鲨HDO2电源降压延长线,支持3S~6S动力电池】,主要解决使用动力电池给眼镜供电的问题。 但是马上有兄弟反…

SpringMVC执行流程

SpringMVC的流程 整个过程开始于客户端发出的一个HTTP请求,Web应用服务器接收到这个请求。如果匹配DispatcherServlet的请求映射路径,则Web容器将该请求转交给DispatcherServlet处理。DispatcherServlet接收到这个请求后,将根据请求的信息&a…

Linux环境下Vivado和HLS功能测试

一. 简介 针对已经完成的Vivado在Linux下的安装与运行,本文主要通过一个LED灯闪烁的案例对Vivado和HLS在Linux操作系统下的运行流程进行介绍,并对已安装软件功能进行一个简单的测试。 HLS将C代码的编译综合为Verilog或VHDL代码,本文对HLS生成…

[附源码]计算机毕业设计JAVA医院门诊信息管理系统

[附源码]计算机毕业设计JAVA医院门诊信息管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM my…

MySQL视图

MySQL视图 VIEW(视图) 概念 可以被当作是虚拟表或存储查询 视图跟表格的不同是,表格中有实际储存资料,而视图是建立在表格之上的一个架构,它本身并不实际储存资料。 临时表在用户退出或同数据库的连接断开后就自动…

[LeetCode解题报告] 1610. 可见点的最大数目

[LeetCode解题报告] 1610. 可见点的最大数目一、 题目1. 题目描述2. 原题链接二、 解题报告1. 思路分析2. 复杂度分析3. 代码实现三、 本题小结四、 参考链接一、 题目 1. 题目描述 可见点的最大数目 难度:2147 给你一个点数组 points 和一个表示角度的整数 ang…

01-25-javajvm-JVM和Java体系架构

01-java-JVM和Java体系架构: 1、jvm底层,对性能调优,java是动态内存分配 2、java的跨平台性: Java虚拟机关心“字节码”文件,Java虚拟机和语言关性,只要其他编程语言的编译结果满足并包含Java虚拟机的内部指令集、符…

ch55xduino

1.把wch的ch55x系列单片机,移植到Arduino,制成所谓的“ch55xduino”:GitHub - DeqingSun/ch55xduino: An Arduino-like programming API for the CH55X 2.ch55x系列单片机比较(立创/云汉2022年12月报价) (1)CH552T:2…

ECMAScript新特性

代码 ECMAScript概述 ECMAScript 是脚本语言的标准化规范,也就是语言的语法。比如:怎样定义变量、怎样定义函数和逻辑运算等等。 那么ECMAScript 和 JavaScript 是何关系? JavaScript 是ECMAScript 的扩展语言,JavaScript实现了…

项目管理逻辑:日志\周报\月报, 一直要求写, 有用吗?

目录 1.公司管控项目: 2.什么是项目的生命周期? 3.项目管控举例 3.1装修项目阶段划分 3.2研发项目 4.控制项目的核心 1.公司管控项目: 写周报,日报,项目问题照样失控, 其实本质上的问题就是 我们没有如何设置好项目的阶段和项目的里程碑. 项目管理的五个阶段 2.什么是…

Golang基本命令操作

在前两期【初探Golang语言之环境搭建】 和 【Golang语法总结与学习】,对环境搭建和基本语法有介绍,本篇对常用的命令进行学习和梳理,记录下来,方便备查。 一、Go 语言基本命令 // 编译,生成exe文件 go build // 移除…

家庭用户无线上网案例(AC通过三层口对AP进行管理)

组网需求 为一个家庭用户使用的网络架构。该家庭消费用户的上网流量大多是低速流量,例如浏览网页、玩游戏、看视频等。家庭成员使用的无线终端主要为手机、PC、电视机等。终端接入的数量正常情况下在10个以内,偶尔有家庭聚会等特殊情况,终端接…

微服务框架 SpringCloud微服务架构 11 自定义镜像 11.1 镜像结构

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构11 自定义镜像11.1 镜像结构11.1.1 镜像结构11.1.2 总结11 自定义镜像 11…

【人工智能与机器学习】——线性回归、逻辑回归与分类评价指标(学习笔记)

📖 前言:线性回归(Lincar Regression)模型是最简单的线性模型之一,简而言之就像一元一次函数,是所有机器学习初学者的起点。而逻辑回归(Logistic Regression)则稍显复杂,…

微服务架构

单体架构 优点: 1:部署简单: 由于是完整的结构体,可以直接部署在一个服务器上即可。 2:技术单一: 项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发。 3:用人成本低: 单个程序员可以完成业务接口…

k8s之Pod控制器详解

文章目录一、Pod控制器介绍1、什么是Pod控制器1.2、ReplicaSet(RS)1.3、Deployment(Deploy)1.3.1、重建更新1.3.2、滚动更新1.3.2、版本回退1.3.3、金丝雀发布1.4、Horizontal Pod Autoscaler(HPA)1.5、DaemonSet(DS)1.6、Job1.7、CronJob(CJ)一、Pod控制器介绍 Pod是kubernet…

c语言结构体看这篇文章就够啦(详细介绍结构体)

前言: c语言两大重要点,一个是指针,另一个就是结构体啦,这篇文章我将全面的介绍一下结构体,和他的使用,相信大家看完这篇以后定能对结构体有个深入的理解,并且会正确的使用它。 💞 &…

智工教育:注册计量师一级和二级的科目一样吗?

注册计量师有二级、一级之分,其中二级考试所涉及的科目为《计量法律法规及综合知识》《计量专业实务与案例分析》,必须要在连续2年内考过,否则就要重新报考。 而一级的考试科目,则分别是《计量法律法规及综合知识》、《测量数据处…