docker中安装seata,以nacos为配置中心

news2024/11/19 3:37:43

docker中安装seata,以nacos为配置中心

  • 一、环境
  • 二、拉取seata镜像
    • 1、查看seata有哪些镜像
    • 2、查看原来有没有seata镜像
    • 3、拉取最新版本
    • 4、拉取指定版本
  • 三、配置seata
    • 1、创建seata相关的数据库
    • 2、创建seata配置文件目录
    • 3、启动seata容器
    • 4、复制seata容器下的配置文件到宿主机
    • 5、配置yml文件
    • 6、在nacos中增加seata配置
    • 7、重启seata

一、环境

docker23.0.3
nacos2.2.1

二、拉取seata镜像

1、查看seata有哪些镜像

使用如下命令查看seata有哪些镜像:

docker search seata

在这里插入图片描述

可以看到有很多seata镜像,一般选择stars最高的那个,就是seataio/seata-server。

2、查看原来有没有seata镜像

使用如下命令查看本地镜像:

docker images

在这里插入图片描述

可以看到我这里是有一份seata镜像的,使用如下命令删除:

docker rmi -f "IMAGE ID"

这是我的

docker rmi -f 67a654ca2e05

在这里插入图片描述

3、拉取最新版本

拉取最新版本的镜像直接使用如下命令:

docker pull seataio/seata-server

在这里插入图片描述

拉取的过程需要点时间,耐心等待即可。

结束后可以看看拉取的结果,命令如下:

docker images

在这里插入图片描述

4、拉取指定版本

假如我想要拉取 1.6.1 版本的seata,可以使用如下命令:

docker pull seataio/seata-server:1.6.1

在这里插入图片描述

同样,查看一下拉取成功没有:

docker images

在这里插入图片描述

拉取成功,后面就用 1.6.1 版本的镜像。

三、配置seata

1、创建seata相关的数据库

数据库脚本地址:

https://github.com/apache/incubator-seata/tree/master/script/server/db

在这里插入图片描述

用的是哪个数据库就选择哪个数据库的脚本,我这里用的mysql的。

创建一个数据库,执行脚本即可,我的数据库名为 cj-seata 。

在这里插入图片描述

2、创建seata配置文件目录

我目录为 /www/wwwroot/changjing/docker/seata ,命令如下:

mkdir -p /www/wwwroot/changjing/docker/seata

在这里插入图片描述

3、启动seata容器

这里只是简单启动,为了获得seata容器最初的配置文件,后面经过修改后从宿主机挂载到容器,命令如下:

docker run -d --name seata -p 7091:7091 seataio/seata-server:1.6.1

在这里插入图片描述

4、复制seata容器下的配置文件到宿主机

复制配置文件的命令如下:

docker cp seata:/seata-server/resources /www/wwwroot/changjing/docker/seata

在这里插入图片描述

到宿主机的配置文件目录看一下

在这里插入图片描述

可以看到配置文件已经拿下来了,主要修改的就是这个配置文件。

为了防止操作失误,可以先备份一份,命令如下:

cp application.yml application_bk.yml

在这里插入图片描述

5、配置yml文件

修改的是application.yml文件,修改内容如下:

在这里插入图片描述

这是完整的配置:

#  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: 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:
  user:
    username: seata
    password: seata

seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: 127.0.0.1:8848   # nacos的访问地址,因为是在docker中,ip地址改为宿主机地址
      namespace:
      group: SEATA_GROUP  # nacos的分组
      username: nacos     # nacos的用户名
      password: nacos     # nacos的密码
      context-path:
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key:
      #secret-key:
      data-id: seata.properties  # nacos中的配置文件名称
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server       # seata启动后在nacos的服务名
      server-addr: 127.0.0.1:8848  # nacos的访问地址,因为是在docker中,ip地址改为宿主机地址
      group: SEATA_GROUP   # nacos的分组
      namespace:
      cluster: default     # 这个歌参数在每个微服务seata时会用到
      username: nacos      # nacos的用户名
      password: nacos      # nacos的密码
      context-path:
      ##if use MSE Nacos with auth, mutex with username/password attribute
      #access-key:
      #secret-key:
  store:    
    # support: file 、 db 、 redis
    mode: db
    db:
      datasource: druid
      db-type: mysql
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/cj-seata?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false
      user: root
      password: 123456
      min-conn: 10
      max-conn: 100
      global-table: global_table
      branch-table: branch_table
      lock-table: lock_table
      distributed-lock-table: distributed_lock
      query-limit: 1000
      max-wait: 5000
#  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

6、在nacos中增加seata配置

在这里插入图片描述

完整内容如下:

service.vgroupMapping.ruoyi-system-group=default   # 这个在微服务版的若依中使用seata的服务中会用到
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/cj-seata?useUnicode=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

7、重启seata

前面为了拿到配置文件,简单启动了一下seata容器,需要把前面那个停止并删除。

在这里插入图片描述

停止seata命令如下:

docker stop "容器ID或者容器名称"

这是我的:

docker stop seata

在这里插入图片描述

删除命令如下:

docker rm -f "容器ID或者容器名称"

这是我的:

docker rm -f seata

在这里插入图片描述

启动命令如下:

docker run -d --name seata \
-p 8091:8091 \
-p 7091:7091 \
-e SEATA_IP=127.0.0.1 \
-v /www/wwwroot/changjing/docker/seata/resources:/seata-server/resources \
seataio/seata-server:1.6.1

解释:

docker run -d --name seata \                                                       -d 表示运行在后台,--name 指定名称为seata
-p 8091:8091 \                                                                     这是后面需要注册到nacos的seata服务端口号
-p 7091:7091 \                                                                     这是seata的客户端端口号
-e SEATA_IP=127.0.0.1 \                                                            这是seata注册到nacos中的 IP ,可以解决Java程序连不上seata客户端的问题,默认为运行docker容器的内网地址
-v /www/wwwroot/changjing/docker/seata/resources:/seata-server/resources \         seata 配置文件目录,“:”前为服务器目录,“:”后为seata容器中的目录
seataio/seata-server:1.6.1                                                         指定 docker seata 版本,这里是1.6.1版本

在这里插入图片描述

然后就可以在项目中使用seata了。

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

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

相关文章

leetcode刷题(剑指offer) 509.斐波那契数

509.斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 n…

读书笔记:九句耐人寻味的话

“情商一定是让别人和自己都舒服。如果让别人舒服,自己却很痛苦,那不叫情商,叫智障。” Emotional intelligence must be about making both others and oneself comfortable. If it makes others comfortable but oneself miserable, thats …

盛最多水的容器[中等]

一、题目 给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i, 0)和(i, height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。也就是求x轴与y轴的面积。 说明:你不能倾…

Threejs 展示——obj 格式模型导入

文章目录 需求分析1. HTML版本2. Vue 版本 需求 导入obj 格式的模型数据 分析 .obj&#xff1a;Wavefront OBJ 格式&#xff0c;是一种广泛使用的三维模型文件格式。预览 .obj格式文件的软件可点此下载需要准备两种格式的数据&#xff0c;如下所示 1. HTML版本 html <!…

电脑和手机连接酒店的wifi,网络不通导致charles无法抓手机的包

查看苹果手机&#xff0c;连wifi后的ip地址 电脑去ping 手机的ip地址&#xff0c;发现ping不通 解决方案&#xff1a; 应该是酒店wifi的问题&#xff0c;让朋友开个手机热点&#xff0c;电脑和我的手机都连这个热点&#xff0c;就可以抓包了

13.Golang中面向对象的多态及基本要素

目录 概述实践多态实现代码结果 基本要素 结束 概述 Golang中类的表示与封装继承 用这种方式并不能实现多态 需要结合 interface 来实现。 实践 多态实现 代码 package mainimport "fmt"type AnimalIF interface {// 这两个方法&#xff0c;实现类&#xff0c;必…

python笔记10

1、继承 继承是面向对象编程中的一个重要概念&#xff0c;它允许一个类&#xff08;子类&#xff09;继承另一个类&#xff08;父类&#xff09;的属性和方法。通过继承&#xff0c;子类可以重用父类的代码&#xff0c;并且有机会添加新的属性和方法&#xff0c;或者重写父类的…

【C++】一题掌握空指针

今天看见一道面试题&#xff0c;比较有意思&#xff0c;这一分享出来&#xff1a; 1.下面程序能编译通过吗&#xff1f; 2.下面程序会崩溃吗&#xff1f;在哪里崩溃 class A {public:void PrintA(){cout<<_a<<endl;}void Show(){cout<<"Show()"&…

.ui文件相关

目录 ui类生成过程&#xff1a; 提问&#xff1a; 等以后自己熟练了用代码写这些样式内容&#xff0c;尽量用代码写&#xff0c;原因很简单&#xff1a; 用代码写的可以直接修改代码&#xff0c;但是在设计界面修改的东西&#xff0c;电脑没有QC这玩意&#xff0c;还真不好改…

ChatGPT4 比 ChatGPT3.5 强在了那里?

刚开始的时候我还在纠结&#xff0c;一个月20 刀的ChatGPT4 &#xff0c;到底值不值这个价钱&#xff1f;使用过后发现&#xff0c;诶嘛真香。因为 GPT4 比 GPT3.5 多了太多功能&#xff0c;特别是识图能力&#xff0c;用好的话效率翻倍。 1. 看图写代码 ChatGPT4 相比 ChatG…

【极数系列】Flink集成DataSource读取集合数据(07)

文章目录 01 引言02 简介概述03 基于集合读取数据3.1 集合创建数据流3.2 迭代器创建数据流3.3 给定对象创建数据流3.4 迭代并行器创建数据流3.5 基于时间间隔创建数据流3.6 自定义数据流 04 源码实战demo4.1 pom.xml依赖4.2 创建集合数据流作业4.3 运行结果日志 01 引言 源码地…

用ASM HEMT模型提取GaN器件的参数

标题&#xff1a;Physics-Based Multi-Bias RF Large-Signal GaNHEMT Modeling and Parameter Extraction Flow (JEDS 17年) 模型描述 该模型的核心是对表面势&#xff08;ψ&#xff09;及其随施加的栅极电压&#xff08;Vg&#xff09;和漏极电压&#xff08;Vd&#xff09…

【数据结构1-3】集合

有时候&#xff0c;我们并不关心数据之间的前后关系&#xff0c;也不关心数据的层次关系。一些确定元素只是单纯的聚集在一起&#xff0c;这样的元素聚集体被称为集合。 当希望知道某个数据是否存在一个集合中&#xff0c;或者两个元素是否在同一个集合中时&#xff0c;就需要使…

JVM系列——对象管理

JVM对象分布 对象头 第一类是用于存储对象自身的运行时数据&#xff0c;如哈希码&#xff08;HashCode&#xff09;、GC 分代年龄、锁状态标志、线程持有的锁、偏向线程 ID、偏向时间戳等 另外一部分是类型指针&#xff0c;即对象指向它的类型元数据的指针&#xff0c;Java 虚…

敲黑板啦!CSGO游戏搬砖项目操作注意事项

CSGO游戏搬砖项目怎么赚钱的&#xff0c;利润在哪&#xff1f; 1.两个平台之间币种不一样&#xff0c;就存在一个汇率差&#xff0c;两平台装备价格也不一样&#xff0c;汇率差-价格差利润。 CSGO游戏搬砖项目具体有哪些操作步骤&#xff1f; 1、准备一台电脑&#xff0c;配置…

Git学习,基础,安装,配置,笔记总结

Git安装与常用命令 本教程里的git命令例子都是在Git Bash中演示的,会用到一些基本的linux命令,在此为大家提前列举: ls/ll 查看当前目录 cat 查看文件内容 touch 创建文件 vi vi编辑器(使用vi编辑器是为了方便展示效果,学员可以记事本、editPlus、notPad++等其它编 辑…

C#使用OpenCvSharp4库读取电脑摄像头数据并实时显示

一、OpenCvSharp4库 OpenCvSharp4库是一个基于.Net封装的OpenCV库&#xff0c;Github源代码地址为&#xff1a;https://github.com/shimat/opencvsharp&#xff0c;里面有关于Windows下安装OpenCvSharp4库的描述&#xff0c;如下图所示&#xff1a; 二、C#使用OpenCvSharp4库…

React 组件生命周期-概述、生命周期钩子函数 - 挂载时、生命周期钩子函数 - 更新时、生命周期钩子函数 - 卸载时

React 组件生命周期-概述 学习目标&#xff1a; 能够说出组件的生命周期一共几个阶段 组件的生命周期是指组件从被创建到挂在到页面中运行&#xff0c;在到组件不用时卸载组件 注意&#xff1a;只有类组件才有生命周期&#xff0c;函数组件没有生命周期(类组件需要实例化&…

监听项目中指定属性数据,点击或模块显示时

当项目中&#xff0c;需要获取某个页面上、某个标签上、有指定自定义属性时&#xff0c;需要在点击该元素时进行公共逻辑处理&#xff0c;或该元素在显示的时候进行逻辑处理&#xff0c;这时可以定义一个公共的方法&#xff0c;在每个页面引用&#xff0c;并写入数据即可 &…

Win11系统连接带HDMI接口的显示器后,电脑没有声音如何调试

解决这个问题的方法很简单&#xff0c;没有那么复杂。之所以使用HDMI接口连接了显示器后没声音&#xff0c;原因就是HDMI接口是包含音频视频两种信号的接口。当电脑的HDMI接口被使用时&#xff0c;系统就会默认从HDMI设备输出声音信号了&#xff0c;而此时如果HDMI设备没有声音…