搭建Seata分布事务(基于Nacos注册+Mysql配置)

news2024/11/17 5:55:44

文章目录

    • 一:拉取Seata镜像
    • 二:运行Seata容器
      • 2.1. 容器内目录拷贝到宿主机
      • 2.2. 编辑 registry.conf 和 file.conf
        • 2. 2.1. 编辑注册中心相关文件
        • 2.2.2. 编辑Seata存储数据的相关配置文件
      • 2.3. 宿主机文件拷贝至容器内部
    • 三:Nacos注册中心相关配置操作
      • 3.1 配置 seataServer.properties
      • 3.2 重启seata服务 - > 看是否注入seata
      • 3.3 没有注入 - > 进入容器查看配置文件
      • 3.4 重启服务或刷新,在此查看,成功

一:拉取Seata镜像

docker pull seataio/seata-server:1.4.2

二:运行Seata容器

docker run -d --name seata-server -p 8091:8091 seataio/seata-server:1.4.2

2.1. 容器内目录拷贝到宿主机

docker cp seata-server:/seata-server /usr/local/home/docker/seata

2.2. 编辑 registry.conf 和 file.conf

[root@master01 resources]# pwd
/usr/local/home/docker/seata/seata-server/resources
[root@master01 resources]# ll
总用量 24
-rw-r--r-- 1 root root 1869 1223 01:53 file.conf
-rw-r--r-- 1 root root 3112 11 1970 file.conf.example
drwxr-xr-x 3 root root   19 11 1970 io
drwxr-xr-x 2 root root  114 11 1970 logback
-rw-r--r-- 1 root root 2222 11 1970 logback.xml
drwxr-xr-x 3 root root   22 11 1970 META-INF
-rw-r--r-- 1 root root 1324 11 1970 README.md
-rw-r--r-- 1 root root 1327 11 1970 README-zh.md
-rw-r--r-- 1 root root 1982 1223 03:18 registry.conf

2. 2.1. 编辑注册中心相关文件

vim registry.conf

registry {
      type = "nacos"
      nacos {
    		#  应用名
			application = "seata-server"
			#  nacos ip 地址
			serverAddr = "101.****:8848"
			#  nacos创建的分组
			group = "SEATA_GROUP"
			#  nacos 创建的命名空间名
			namespace = "seata-naming"
			cluster = "default"
			#   nacos登录的账号和密码
			username = "nacos"
			password = "nacos"
  }
  config {
	  # file、nacos 、apollo、zk、consul、etcd3
	  type = "nacos"
	  nacos {
            #  nacos ip 地址
		    serverAddr = "101.****:8848"
		    #  nacos 创建的命名空间名
		    namespace = "seata-naming"
		    #  nacos创建的分组
		    group = "SEATA_GROUP"
		    #   nacos登录的账号和密码
		    username = "nacos"
		    password = "nacos"
		    #   nacos配置相当于主键id,唯一标识配置
		    dataId = "seataServer.properties"
	  }
	  file {
	     name = "file.conf"
	  }
  }

2.2.2. 编辑Seata存储数据的相关配置文件

vim file.conf;
这里面连接的库就是上面执行脚本的库;

 ## transaction log store, only used in seata-server
store {
  ## store mode: file、db、redis
  mode = "db"
  ## database store property
  db {
    ## 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.cn.jdbc.Driver"
    ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
    url = "jdbc:mysql://182.****:3307/seata-config"
    user = "****"
    password = "****"
    minConn = 5
    maxConn = 100
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }
}

刚刚修改的是宿主机文件,但需注意即使是挂载目录进入容器相关修改的配置文件也不会生效

2.3. 宿主机文件拷贝至容器内部

docker cp /usr/local/home/docker/seata/seata-server/resources/registry.conf 16920a0fb6a5:/seata-server/resources/registry.conf
docker cp /usr/local/home/docker/seata/seata-server/resources/file.conf 16920a0fb6a5:/seata-server/resources/file.conf

三:Nacos注册中心相关配置操作

3.1 配置 seataServer.properties

填写:Data Id = seataServer.properties
GROUP = SEATA_GROUP
配置内容为:

transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableClientBatchSendRequest=false
transport.threadFactory.bossThreadPrefix=NettyBoss
transport.threadFactory.workerThreadPrefix=NettyServerNIOWorker
transport.threadFactory.serverExecutorThreadPrefix=NettyServerBizHandler
transport.threadFactory.shareBossWorker=false
transport.threadFactory.clientSelectorThreadPrefix=NettyClientSelector
transport.threadFactory.clientSelectorThreadSize=1
transport.threadFactory.clientWorkerThreadPrefix=NettyClientWorkerThread
transport.threadFactory.bossThreadSize=1
transport.threadFactory.workerThreadSize=default
transport.shutdown.wait=3
service.vgroupMapping.storage-service-group=default
service.vgroupMapping.order-service-group=default
service.vgroupMapping.account-service-group=default
service.default.grouplist=192.168.23.3:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
client.rm.asyncCommitBufferLimit=10000
client.rm.lock.retryInterval=10
client.rm.lock.retryTimes=30
client.rm.lock.retryPolicyBranchRollbackOnConflict=true
client.rm.reportRetryCount=5
client.rm.tableMetaCheckEnable=false
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000


store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://192.168.56.104:3306/seata-config?useUnicode=true&rewriteBatchedStatements=true
store.db.user=root
store.db.password=123456
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000


server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000


transport.serialization=seata
transport.compressor=none
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

在这里插入图片描述

3.2 重启seata服务 - > 看是否注入seata

3.3 没有注入 - > 进入容器查看配置文件

已经生效

[root@master01 resources]# docker exec -it 4d0f7460795d sh
/seata-server # ls
classes       libs          resources     sessionStore
/seata-server # cd resources/
/seata-server/resources # ls
META-INF           README.md          file.conf.example  logback            registry.conf
README-zh.md       file.conf          io                 logback.xml
/seata-server/resources # vi registry.conf

在这里插入图片描述

3.4 重启服务或刷新,在此查看,成功

在这里插入图片描述

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

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

相关文章

TikTok发布What‘s Next趋势报告,2023年有哪些增长机会?

获悉,近日TikTok for Business发布了《Whats Next 2023 TikTok 全球流行趋势报告》,帮助营销人员了解消费者的需求在来年将如何变化,以及这对他们在TikTok内外的策略将产生怎样的影响。这份报告将有趣与实用相结合,重点剖析了品牌…

阿里巴巴新产“Java架构核心宝典”,全是流行技术,限时开放

导言 什么是架构师?对于程序员来说,聊架构是一个永不过时的话题。实际上,每一家公司都有自己对架构师不同的定位,因为不同的公司,所处的阶段、业务模式以及应用场景都不一样,因此对架构师的要求不一样&…

直播带货不再独揽大旗,货架电商神秘崛起,链动2+1模式助力引流

​“WXG(微信事业群)最亮眼的业务是视频号,基本上是全场(全公司)的希望。”12月22日,在线上召开内部员工大会时,腾讯CEO马化腾再度把视频号推至C位。这句话昨天也一度冲上热搜。 马化腾在内部员…

后台Service限制

每次在后台运行时,应用都会消耗一部分有限的设备资源,例如 RAM。 这可能会影响用户体验,如果用户正在使用占用大量资源的应用(例如玩游戏或观看视频),影响会尤为明显。 为了提升用户体验,Androi…

ESP8266-C开发-3串口下载固件失败方案

一、串口下载固件失败 以下是报错信息。 …………………………[2022-12-23 09:01:17,338][ESP8266Loader_spi[1]][espDownloader.pyo][line:351][ERROR]: Chip sync error: Failed to connect to ESP8266: Timed out waiting for packet header [2022-12-23 09:01:17,338][ESP…

Zookeeper 4 Zookeeper JavaAPI 操作 4.1 Curator 介绍 4.2 Curator API 常用操作【建立连接】

Zookeeper 【黑马程序员Zookeeper视频教程,快速入门zookeeper技术】 文章目录Zookeeper4 Zookeeper JavaAPI 操作4.1 Curator 介绍4.1.1 Curator 介绍4.2 Curator API 常用操作4.2.1 Curator API 常用操作4.2.2 建立连接4 Zookeeper JavaAPI 操作 4.1 Curator 介绍…

使用形态学处理相关算法对芯片电路图焊接锡点缺陷进行检测

up目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 当前我国信息科技的发展, 产业界自动化生产水平越来越高。 具体在电子产品行业, 随着精细化和自动化的发展, 电子产品的焊点质量的好坏, 深刻地影响着产品成品的质…

Unity下如何实现RTMP或RTSP流播放和录制

技术背景 在探讨Unity平台RTMP或RTSP直播流数据播放和录制之前,我们先简单回顾下RTSP或RTMP直播流数据在Unity平台的播放流程: 通过Native RTSP或RTSP直播播放SDK回调RGB/YUV420/NV12等其中的一种未压缩的图像格式;Unity下创建相应的RGB/YU…

工作几年后想转行学编程,如何操作才靠谱?

30岁转行来得及么?继结婚、生子、就业、买房后,又一个对30岁的灵魂拷问来了。 在一档综艺节目里,有位年过30的“实习生”为了能让孩子有更好的生活条件、也为了自己的事业与发展,她选择在而立之年放下自己曾经所擅长的&#xff0c…

微信键盘终于正式发布,张小龙说:其目的并不是为了抢夺输入法市场

自从2021年1月份,张小龙在微信公开课透露:微信将上线属于自己的专属输入法,到现在已经快2年过了。 今天终于正式发布了,下面我们一起来体验下。 1、安装 打开App Store,输入“微信键盘”,点击获取就可以…

刷爆力扣之字符串中的单词数

刷爆力扣之字符串中的单词数 HELLO,各位看官大大好,我是阿呆 🙈🙈🙈 今天阿呆继续记录下力扣刷题过程,收录在专栏算法中 😜😜😜 该专栏按照不同类别标签进行刷题&#…

STATIC和静态分析的必要性

​有一款正常工作的软件。那么可以说正常工作的软件都是好软件吗&#xff1f;在漫威的《黑豹》电影中有一个场景我深深地看过。 <图 1> 电影《黑豹》的场景 就算做的好&#xff0c;也有进步的空间! 我认为好的软件也是如此。 即使它可以工作并且没有问题&#xff0c;但总…

Vue2.x中的Vuex

目录 一、vuex是什么 1.1、概念 1.2、Github地址 1.3、使用场景 1.4、同胞传值 1.5、Vuex工作原理 1.6、搭建Vuex环境 二、求和案例 2.1、getters用法 2.2、mapState与mapGetters 2.3、mapActions与mapMutations 2.4、Vuex模块化命名空间namespace 2.5、头插人员案…

Nacos 寻址机制

目录 1. 什么是寻址机制 2. 源码讲解 MemberLookup AbstractMemberLookup 2.1 单机寻址 2.2. 文件寻址 2.3 地址服务器寻址 1. 什么是寻址机制 假设存在一个 Nacos 集群&#xff0c;其内部具有 A , B , C 三个节点。 客户端如何决定向集群中的哪个节点发送请求 在 appl…

基于Springboot+Mybatis+mysql+element-vue高校就业管理系统

基于SpringbootMybatismysqlelement-vue高校就业管理系统一、系统介绍二、功能展示1.用户登陆注册2.个人信息(学生端)3.查看企业岗位信息&#xff08;学生端&#xff09;4.我的应聘(学生端)5.学生信息管理&#xff08;辅导员&#xff09;6.三方协议书审核&#xff08;辅导员&am…

向用户展示推荐算法,TikTok主动“透明化”

获悉&#xff0c;近日TikTok宣布推出一项新功能&#xff0c;用户可以查看推荐主页&#xff08;For You&#xff09;中某个视频被推荐的原因&#xff0c;这一功能让用户拥有了更多的知情权&#xff0c;让TikTok的算法变得更透明化。新功能新功能推出后&#xff0c;用户可以在视频…

Diskless:云与互联网数据中心的下一个大变革

作为数字经济的核心产业&#xff0c;云与互联网数据中心正面临着下一波技术浪潮的冲击&#xff1a;云原生应用和Serverless无服务器计算的全面普及&#xff0c;推动数据中心底层硬件资源彻底解耦池化和重组整合&#xff0c;形成新的扁平分层——新型存算分离硬件架构&#xff0…

定时循环执行Python脚本 —— 定时执行专家

目录 提前准备 方案一、执行DOS命令 方式 1、在《定时执行专家》里新建“执行DOS命令”任务 方案二、执行脚本文件 方式 1、编写 .bat 脚本&#xff0c;用来执行Python脚本 2、在《定时执行专家》里新建“执行脚本文件”任务 本文提供两种使用《定时执行专家》定时循环执…

挑选在线客服系统的七大注意事项

在线客服系统是客户关怀软件&#xff0c;能够为访客和客服提供即时对话&#xff0c;对访客来说&#xff0c;能够为其提供一个快速、高效的沟通方式&#xff0c;即时性的互动提高访客沟通体验&#xff1b;对客服来说&#xff0c;有效提高客服效率,为客服人员节省大量宝贵时间。 …

机器学习 | 支持向量机

一.基本原理 SVM是一种二分类模型 基本思想&#xff1a;在特征空间中寻找间隔最大的分离超平面使数据得到高效的二分类&#xff0c;具体来讲&#xff0c;有三种情况&#xff08;不加核函数的话就是线性模型&#xff0c;加了之后才会升级为一个非线性模型&#xff09; 当训练…