热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringCloud集成Seata配置

1.1安装配置Seata服务端在Seata服务端下载页面提供了服务端的压缩包,也可以直接通过命令来下载seata-server-1.4.2wgethttps:gi

1.1 安装配置Seata服务端

在Seata服务端下载页面提供了服务端的压缩包,也可以直接通过命令来下载seata-server-1.4.2

wget https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.tar.gz

压缩包解压后的目录如下:

[root@lizhi seata-server-1.4.2]# ll
total 24
drwxr-xr-x 3 root root 90 Feb 14 17:57 bin
drwxr-xr-x 4 502 games 156 Feb 14 17:57 conf
drwxr-xr-x 3 502 games 8192 Feb 14 13:35 lib
-rw-r--r-- 1 502 games 11365 May 13 2019 LICENSE
drwxr-xr-x 2 502 games 136 Feb 14 17:58 logs

进入到conf/目录中,修改配置文件

-rw-r--r-- 1 502 games 1859 Feb 14 13:27 file.conf
-rw-r--r-- 1 502 games 3112 Apr 25 2021 file.conf.example
drwxr-xr-x 2 502 games 114 Feb 14 10:50 logback
-rw-r--r-- 1 502 games 2222 Apr 25 2021 logback.xml
drwxr-xr-x 3 502 games 22 Apr 25 2021 META-INF
-rw-r--r-- 1 502 games 1324 Apr 25 2021 README.md
-rw-r--r-- 1 502 games 1327 Apr 25 2021 README-zh.md
-rw-r--r-- 1 502 games 1976 Feb 14 17:57 registry.conf

修改registry.conf文件,配置nacos作为注册中心和配置中心

# 注册中心
registry {# file 、nacos 、eureka、redis、zk、consul、etcd3、sofatype = "nacos"nacos {application = "seata-server"serverAddr = "127.0.0.1:8848"group = "SEATA_GROUP"namespace = "24712b7c-05ad-4b79-af97-1d202431f521"cluster = "default"username = ""password = ""}
}# 配置中心
config {# file、nacos 、apollo、zk、consul、etcd3type = "nacos"nacos {serverAddr = "127.0.0.1:8848"namespace = ""group = "SEATA_GROUP"username = ""password = ""dataId = "seataServer.properties"}
}

除了配置注册中心和配置中心外,还需要配置数据存储方式,修改file.conf文件,将存储模式改为db,并修改数据库的连接信息

store {## store mode: file、db、redismode = "db"## rsa decryption public keypublicKey = ""## database store propertydb {## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.datasource = "druid"## mysql/oracle/postgresql/h2/oceanbase etc.dbType = "mysql"driverClassName = "com.mysql.cj.jdbc.Driver"## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection paramurl = "jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true"user = "root"password = "lz123"minConn = 5maxConn = 100globalTable = "global_table"branchTable = "branch_table"lockTable = "lock_table"queryLimit = 100maxWait = 5000}

注意:如果使用的是MySQL8.0以上,需要将数据库驱动类的名称改为com.mysql.cj.jdbc.Driver,并在lib目录中下载mysql-connector-java-8.0.27.jar

wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.27/mysql-connector-java-8.0.27.jar

1.2 配置初始化参数


方法一:

在较低的版本中,seata-server解压完之后,在conf目录下还有一个config.txt文件,里面记录了Seata启动时必须的初始化参数,但seata-server-1.4.2中并没有这个文件

我们可以在https://github.com/seata/seata/tree/develop/script/config-center中看到这个配置文件,下载这个配置,修改里面的参数

如果配置了Nacos作为配置中心,然后再下载https://github.com/seata/seata/tree/develop/script/config-center/nacos中的nacos-config.sh,然后执行脚本,将config.txt中的初始化参数加载到nacos的配置中心

https://github.com/seata/seata/tree/develop/script/config-center下面,为每种配置中心的启动脚本都有详细的参数介绍

方法二:

方法一这种方式,相对来说是比较复杂的,在seata-server-1.4.2以后的版本中,我们可以在registry.conf中配置配置中心时,就可以通过dataId来创建配置

registry.conf的nacos配置中心的dataId默认为seataServer.properties,我们在Nacos的控制台就可以直接创建一个这样的配置,其中的配置的内容就是config.txt的内容

注:配置的时候需要特别注意,如果Seata服务端与MySQL服务端在同一台服务器,一定要注意数据库连接时会使用localhost的用户名和密码,否则就会报the {store.db.driverClassName} can't be empty,这样的问题有时候很难排查

1.3 创建数据库表

如果存储方式配置的是db类型,那么就需要创建几张表来存储事务信息

https://github.com/seata/seata/tree/develop/script/server/db提供了相应的建表语句

在建表前,首先要创建配置中指定的数据库名,比如seata

1.4 启动Seata服务端

在前面这些都配置好了之后,就可以启动seata-server了

nohup ./seata-server.sh -p 18091 -n 1 >seata.log 2>&1 &

-h: 注册到注册中心的ip
-p: Server rpc 监听端口
-m: 全局事务会话信息存储模式,file、db、redis,优先读取启动参数 (Seata-Server 1.3及以上版本支持redis)
-n: Server node,多个Server时,需区分各自节点,用于生成不同区间的transactionId,以免冲突
-e: 多环境配置参考 http://seata.io/en-us/docs/ops/multi-configuration-isolation.html

可以启动两个服务端,然后就可以在nacos控制台,看到服务注册的信息

1.5 客户端配置

SpringCloud整合Seata时,需要添加如下依赖


<dependency><groupId>com.alibaba.cloudgroupId><artifactId>spring-cloud-starter-alibaba-seataartifactId><exclusions><exclusion><groupId>io.seatagroupId><artifactId>seata-spring-boot-starterartifactId>exclusion>exclusions>
dependency>
<dependency><groupId>io.seatagroupId><artifactId>seata-spring-boot-starterartifactId><version>1.4.2version>
dependency>

注&#xff1a;由于cloud中的seata-spring-boot-starter不是最新的&#xff0c;所以将其排除&#xff0c;单独添加最新的依赖

然后就是在yml中添加配置&#xff0c;客户端与服务端的配置要保持一致

seata:enabled: trueapplication-id: ${spring.application.name}# 客户端和服务端在同一个事务组tx-service-group: shop-public# 自动数据源代理enable-auto-data-source-proxy: true# 数据源代理模式(分布式事务方案)data-source-proxy-mode: AT# 事务群组,配置项值为TC集群名,需要与服务端保持一致service:vgroup-mapping:shop-public: default#整合nacos配置中心config:type: nacosnacos:server-addr: xxx.com:8848group: SEATA_GROUPnamespace: 24712b7c-05ad-4b79-af97-1d202431f521data-id: seataServer.properties#整合nacos注册中心registry:type: nacosnacos:server-addr: xxx.com:8848group: SEATA_GROUPnamespace: 24712b7c-05ad-4b79-af97-1d202431f521# 默认TC集群名cluster: default# 服务名,与服务端中registry.conf配置要一致application: seata-server

由于需要配置数据源代理模式(默认为AT)&#xff0c;还有sagatcc等方式&#xff0c;这些方式都需要创建表&#xff0c;而相关表模型也都有准备

https://github.com/seata/seata/tree/develop/script/client中提供了相关的表模。.


推荐阅读
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 学习笔记(34):第三阶段4.2.6:SpringCloud Config配置中心的应用与原理第三阶段4.2.6SpringCloud Config配置中心的应用与原理
    立即学习:https:edu.csdn.netcourseplay29983432482?utm_sourceblogtoedu配置中心得核心逻辑springcloudconfi ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
author-avatar
woshishuia小姐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有