docker部署seata1.6.0

docker部署seata1.6.0

Seata 是 阿里巴巴 开源的 分布式事务中间件,解决 微服务 场景下面临的分布式事务问题。需要先搭建seata服务端然后与springcloud的集成以实现分布式事务控制的过程 ,项目中只需要在远程调用APi服务的方法上使用注解 @GlobalTransactional,就能实现跨模块事务回滚。

一、安装seata1.6.0

docker pull seataio/seata-server:1.6.0
# 启动容器
docker run -d --name seata-server -p 8091:8091 -p 7091:7091  seataio/seata-server:1.6.0
# 拷贝文件到宿主机目录/opt/seata/seata-server(这个目录需要先手动创建)
cd /opt
mkdir seata
cd /opt/seata
mkdir seata-server
docker cp seata-server:/seata-server/resources  /opt/seata/seata-server/
# 停止并删除容器
docker stop seata-server
docker rm seata-server
# 修改/opt/seata/seata-server/resources目录下的文件application.yml
# 重新启动容器
docker run -i -t -d --restart always --name seata-server \
-p 7091:7091 -p 8091:8091  \
-e SEATA_IP=192.168.124.11 \
-e SEATA_PORT=8091 \
-e TZ=Asia/Shanghai  \
-v /opt/seata/seata-server/resources:/seata-server/resources \
-v /etc/localtime:/etc/localtime \
seataio/seata-server:1.6.0# -e SEATA_IP=[公网IP] 这个ip必须是公网ip,否则会访问失败

在这里插入图片描述

二、修改配置文件application.yml

  • 修改控制台登录账号密码
console:user:username: seata11password: 123456
  • 修改type=nacos
  • 修改nacos连接的账号密码
  • 修改数据库连接
#  Copyright 1999-2019 Seata.io Group.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#  http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.server:port: 7091spring:application:name: seata-serverlogging:config: classpath:logback-spring.xmlfile:path: ${user.home}/logs/seataextend:logstash-appender:destination: 127.0.0.1:4560kafka-appender:bootstrap-servers: 127.0.0.1:9092topic: logback_to_logstashconsole:user:username: seata11password: 123456
seata:config:# support: nacos, consul, apollo, zk, etcd3type: nacosnacos:server-addr: 192.168.124.11:8848namespace: eca990b0-5481-4f9e-b4d0-f2a517bb26778group: SEATA_GROUPusername: rootpassword: 123456#context-path:##if use MSE Nacos with auth, mutex with username/password attribute#access-key: ""#secret-key: ""data-id: seataServer.propertiesregistry:# support: nacos, eureka, redis, zk, consul, etcd3, sofatype: nacospreferred-networks: 30.240.*nacos:application: seata-serverserver-addr: 192.168.124.11:8848group: SEATA_GROUPnamespace: eca990b0-5481-4f9e-b4d0-f2a517bb26778cluster: defaultusername: rootpassword: 123456#context-path:##if use MSE Nacos with auth, mutex with username/password attribute#access-key: ""#secret-key: ""store:# support: file 、 db 、 redismode: dbsession:mode: dblock:mode: dbfile:dir: sessionStoremax-branch-session-size: 16384max-global-session-size: 512file-write-buffer-cache-size: 16384session-reload-read-size: 100flush-disk-mode: asyncdb:datasource: druiddb-type: mysqldriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://192.168.124.11:3306/seata_db?rewriteBatchedStatements=trueuser: rootpassword: 123456min-conn: 5max-conn: 100global-table: global_tablebranch-table: branch_tablelock-table: lock_tabledistributed-lock-table: distributed_lockquery-limit: 100max-wait: 5000server:service-port: 8091 #If not configured, the default is '${server.port} + 1000security:secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017tokenValidityInMilliseconds: 1800000ignore:urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/api/v1/auth/login

三、nacos中创建配置文件seataServer.properties

在这里插入图片描述

  • seataServer.properties
  • 修改service.vgroupMapping.mygroup=default

#For details about configuration items, see https://seata.io/zh-cn/docs/user/configurations.html
#Transport configuration, for client and server
transport.type=TCP
transport.server=NIO
transport.heartbeat=true
transport.enableTmClientBatchSendRequest=false
transport.enableRmClientBatchSendRequest=true
transport.enableTcServerBatchSendResponse=false
transport.rpcRmRequestTimeout=30000
transport.rpcTmRequestTimeout=30000
transport.rpcTcRequestTimeout=30000
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
transport.serialization=seata
transport.compressor=none#Transaction routing rules configuration, only for the client
# 此处的mygroup名字可以自定义,只修改这个值即可,
# 需要在nacos中配置dataId为service.vgroupMapping.mygroup,配置格式:为txt,内容为default
service.vgroupMapping.mygroup=default
#If you use a registry, you can ignore it
service.default.grouplist=192.168.124.11:8091
service.enableDegrade=false
service.disableGlobalTransaction=false#Transaction rule configuration, only for the client
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=true
client.rm.tableMetaCheckerInterval=60000
client.rm.sqlParserType=druid
client.rm.reportSuccessEnable=false
client.rm.sagaBranchRegisterEnable=false
client.rm.sagaJsonParser=fastjson
client.rm.tccActionInterceptorOrder=-2147482648
client.tm.commitRetryCount=5
client.tm.rollbackRetryCount=5
client.tm.defaultGlobalTransactionTimeout=60000
client.tm.degradeCheck=false
client.tm.degradeCheckAllowTimes=10
client.tm.degradeCheckPeriod=2000
client.tm.interceptorOrder=-2147482648
client.undo.dataValidation=true
client.undo.logSerialization=jackson
client.undo.onlyCareUpdateColumns=true
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
client.undo.logTable=undo_log
client.undo.compress.enable=true
client.undo.compress.type=zip
client.undo.compress.threshold=64k
#For TCC transaction mode
tcc.fence.logTableName=tcc_fence_log
tcc.fence.cleanPeriod=1h#Log rule configuration, for client and server
log.exceptionRate=100#Transaction storage configuration, only for the server. The file, db, and redis configuration values are optional.
# 默认为file,一定要改为db,我们自己的服务启动会连接不到seata
store.mode=db
store.lock.mode=db
store.session.mode=db
#Used for password encryption#These configurations are required if the `store mode` is `db`. If `store.mode,store.lock.mode,store.session.mode` are not equal to `db`, you can remove the configuration block.
# 修改mysql的配置# 数据存储方式,db代表数据库
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.124.11:3306/seata_db?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
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.distributedLockTable=distributed_lock
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
# 事务、日志等配置#Transaction rule configuration, only for the server
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.distributedLockExpireTime=10000
server.xaerNotaRetryTimeout=60000
server.session.branchAsyncQueueSize=5000
server.session.enableBranchAsyncRemove=false
server.enableParallelRequestHandle=false#Metrics configuration, only for the server
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898

四、nacos中配置service.vgroupMapping.mygroup

在这里插入图片描述

五、项目中配置seata

  • bootstrap.yml中配置

seata:application-id: ${spring.application.name}#数据源代理模式使用AT模式(可以不用配置,seata默认使用AT模式)data-source-proxy-mode: ATtx-service-group: mygroup # 事务分组名称,要和服务端对应#事务群组(可以每个应用独立取名,也可以使用相同的名字),#要与服务端nacos配置seataServer.properties中service.vgroupMapping.mygroup=default中存在,#此处的mygroup名字可以自定义,与 tx-service-group: mygroup中的mygroup保持一致service:vgroup-mapping:mygroup: defaultenabled: falseregistry:type: nacosnacos:username: rootpassword: 123456namespace: @nacos.config.namespace@server-addr: @nacos.server-addr@group: SEATA_GROUP#seata服务名application: seata-serverconfig:type: nacosnacos:username: rootpassword: 123456namespace: @nacos.config.namespace@server-addr: @nacos.server-addr@group: SEATA_GROUP

六、导入seata数据库

  • seata-server-1.6.0下载地址:https://github.com/apache/incubator-seata/tags
    在这里插入图片描述

  • 数据库脚本目录: \seata-server-1.6.0\seata\script\server\db
    在这里插入图片描述
    在这里插入图片描述

  • 配置完后重启seata容器 docker restart seata-server

  • 项目中就可以使用分布式事务了

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

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

相关文章

电商+支付双系统项目------电商系统中收货模块的开发

本篇文章是讲关于项目的收货地址模块的设计。这个就比较简单了,我就不像之前的文章讲的那么详细了,就简单讲讲就好。 首先先设计 DAO 层: package com.imooc.mall.dao;import com.imooc.mall.pojo.Shipping; import org.apache.ibatis.annot…

分类预测 | Matlab实现KPCA-ISSA-LSSVM基于核主成分分析和改进的麻雀搜索算法优化最小二乘支持向量机故障诊断分类预测

分类预测 | Matlab实现KPCA-ISSA-LSSVM基于核主成分分析和改进的麻雀搜索算法优化最小二乘支持向量机故障诊断分类预测 目录 分类预测 | Matlab实现KPCA-ISSA-LSSVM基于核主成分分析和改进的麻雀搜索算法优化最小二乘支持向量机故障诊断分类预测分类效果基本描述程序设计参考资…

Unity接入SQLite (一):SQLite介绍

1.简介 SQLite是一个开源的嵌入式关系数据库管理系统。它是一种轻量级的数据库引擎,不需要单独的服务器进程,可以直接嵌入到应用程序中使用。Sqlite使用简单、高效,并且具有对标准SQL的完整支持。它适用于需要在本地存储和访问数据的应用程序…

wordpress免费主题模板

免费大图wordpress主题 首页是一张大图的免费wordpress主题模板。简洁实用,易上手。 https://www.jianzhanpress.com/?p5857 wordpress免费模板 动态效果的wordpress免费模板,banner是动态图片效果,视觉效果不错。 https://www.jianzhan…

C++从入门到精通 第六章(函数)

写在前面: 本系列专栏主要介绍C的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程,笔者的原创部分主要在示例代码的注释部分。除了参考下面的链接教程以外,笔者还参考了其它的一些C教材(比…

学习Markdown

https://shadows.brumm.af 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些…

什么是MapReduce

1.1 MapReduce到底是什么 Hadoop MapReduce是一个软件框架,基于该框架能够容易地编写应用程序,这些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠的,具有容错能力的方式并行地处理上TB级别的海量数据集。这个定…

Flutter插件开发指南01: 通道Channel的编写与实现

Flutter插件开发指南01: 通道Channel的编写与实现 视频 https://www.bilibili.com/video/BV1ih4y1E7E3/ 前言 本文将会通过一个加法计算,来实现 Channel 的双向通讯,让大家有个一个体会。 Flutter插件 Flutter插件是Flutter应用程序与原生平台之间的桥…

1.CSS单位总结

CSS 单位总结 经典真题 px 和 em 的区别 CSS 中的哪些单位 首先,在 CSS 中,单位分为两大类,绝对长度单位和相对长度单位。 绝对长度单位 我们先来说这个,绝对长度单位最好理解,和我们现实生活中是一样的。在我们…

WordPress关键漏洞影响25000+站点;Cisco漏洞被勒索软件利用;朝鲜黑客瞄准全球国防公司 | 安全周报 0223

1. CISA警告:Akira勒索软件正在利用Cisco ASA/FTD 漏洞 近日,美国网络安全和基础设施安全局(CISA)发布了一份警告,指出Akira勒索软件正在积极利用Cisco的Adaptive Security Appliance (ASA) 和 Firepower Threat Defe…

2022云边协同大会:核心内容与学习收获(附大会核心PPT下载)

云计算进入惠普发展期,边缘计算需求激增,云边协同成为未来重要演进方向。同时,5G的规模建设和边缘计算的持续部署,驱动数据处理向边端扩散,使算力走向泛在化,云边端一体化驱动算力更好的满足社会各界不同需…

普中51单片机学习(DS1302)

DS1302时钟 DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。内部含有31个字节静态RAM,可提供用户访问。采用串行数据传送方式,使得管脚数量最少,简单SPI 3线接口。工作电压…

辩证易货模式做成App的可行性分析

随着科技的进步和移动互联网的普及,越来越多的传统业务模式开始寻求数字化转型,以适应市场的发展和满足用户的需求。易货模式,作为一种古老而又现代的交易方式,同样面临着这样的机遇和挑战。那么,将辩证易货模式做成Ap…

深入理解 v-for 中 key 的重要性

查看本专栏目录 关于作者 还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas&#x…

【网络编程】okhttp源码解析

文章目录 配置清单框架结构解析 配置清单 首先了解一下okHttp的配置清单&#xff1a; Dispatcher dispatcher &#xff1a;调度器&#xff0c;⽤于调度后台发起的⽹络请求&#xff0c;有后台总请求数和单主机总请求数的控制。List<Protocol> protocols &#xff1a;⽀持…

mkdocs+mermaid主题增加内容选项卡

"C" c #include <stdio.h> int main(void) { printf("Hello world!\n"); return 0; } "C" c #include <iostream> int main(void) { std::cout << "Hello world!" << std::endl; return 0; }

与Sora同架构的Stable Diffusion 3.0 震撼发布

Stability AI 发布了 Stable Diffusion 3&#xff0c;这款图像生成 AI 模型再次刷新了人们的认知。 这款由 Stability AI 倾力打造的文本变图模型&#xff0c;可是迄今为止最强大的“黑科技”&#xff01;无论你想生成多主题的奇幻场景&#xff0c;还是高精度的风景写真&#…

Vision Transformer - VIT

文章目录 1. Embedding层2. Encoder层3. MLP Head层4. Hybrid混合模型 论文&#xff1a;An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 网址&#xff1a;https://arxiv.org/abs/2010.11929 Hybrid - 传统CNN和Transformer混合模型 模型架构 输…

一次有趣的nginx Tcp4层代理转发的试验

nginx主配置文件添加配置&#xff1a; stream {log_format proxy $remote_addr [$time_local] $protocol status:$status bytes_sent:$bytes_sent bytes_received:$bytes_received $session_time upstream_addr:"$upstream_addr" "$upstream_bytes_sent" …

C#,入门教程(05)——Visual Studio 2022源程序(源代码)自动排版的功能动画图示

上一篇&#xff1a; C#&#xff0c;入门教程(04)——Visual Studio 2022 数据编程实例&#xff1a;随机数与组合https://blog.csdn.net/beijinghorn/article/details/123533838 新来的徒弟们交上来的C#代码&#xff0c;可读性往往很差。 今天一问才知道&#xff0c;他们居然不…