分布式事务篇-2.1 阿里云轻量服务器--Docker--部署Seata

文章目录

  • 前言
  • 一、Seata 介绍
  • 二、Docker 部署:
    • 2.1.拉取镜像:
    • 2.2.运行镜像:
    • 2.3.拷贝配置文件:
    • 2.4.部署:
    • 2.5.参数解释:
      • 2.5.1 端口:
      • 2.5.2 SEATA_IP:
      • 2.5.3 SEATA_PORT:
      • 2.5.4 STORE_MODE:
      • 2.5.5 SERVER_NODE:
      • 2.5.6 SEATA_ENV:
      • 2.5.7 SEATA_CONFIG_NAME:
  • 总结
  • 参考:


前言

本文介绍基于Seata 解决分布式事务,Seata 是一个服务所有首先需要对其进行部署。


一、Seata 介绍

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

二、Docker 部署:

2.1.拉取镜像:

docker pull seataio/seata-server:1.5.0

2.2.运行镜像:

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

2.3.拷贝配置文件:

# 进入容器
docker exec -it seata-server sh

在这里插入图片描述

# 创建文件夹
# 配置文件
mkdir -p /root/seata/config
# 日志文件
mkdir -p /root/seata/logs
# 事务存储文件(file 存储模式使用)
mkdir -p /root/seata/sessionStore
# cp
docker cp seata-server:/seata-server/resources /root/seata/config

在这里插入图片描述
拷贝完毕删除容器:

docker stop seata-server
docker rm seata-server

2.4.部署:

docker run -d  --name seata-server1.5 \
--privileged=true \-p 8091:8091 \-p 7091:7091 \-v /root/seata/config/resources:/seata-server/resources  \
-v /root/seata/sessionStore:/seata-server/sessionStore   \
-v /root/seata/logs:/root/logs/seata   \
-e SEATA_IP=[公网ip] \
-e SEATA_PORT=8091 \seataio/seata-server:1.5.0 

2.5.参数解释:

2.5.1 端口:

  • 8091 端口是用来提供 seata-server 的事务管理服务的端口。其他应用程序将通过该端口与 seata-server 进行通信,将事务的操作请求发送到 seata-server 并接收事务处理结果。应用程序需要配置与 seata-server 通信的 IP 地址、端口号和事务组 ID。

  • 7091 端口是用来向 seata-server 注册 seata-client 的端口。在应用程序启动时,seata-client 将会注册自己的信息到 seata-server,包括事务分组、数据源、事务日志存储等信息。seata-server 会使用该端口接收 seata-client 的注册请求。

需要注意的是,seata-server 的端口号可以根据实际需求进行配置和更改,上述的8091和7091端口号只是默认值,可以在 seata 的配置文件中进行修改。

2.5.2 SEATA_IP:

可选, 指定seata-server启动的IP, 该IP用于向注册中心注册时使用, 如eureka等

2.5.3 SEATA_PORT:

可选, 指定seata-server启动的端口, 默认为 8091,SEATA_PORT 是 seata-server 的环境变量,用于指定 seata-server 监听的端口号。

当启动 seata-server 容器时,可以通过设置 SEATA_PORT 环境变量来指定 seata-server 使用的端口号。例如,可以使用以下命令来启动 seata-server 容器并将 SEATA_PORT 设置为 8090:

docker run --name seata-server -p 8090:8090 -e SEATA_PORT=8090 -d seataio/seata-server

这样,seata-server 将会在容器内监听端口号 8090。在实际应用中,你可以根据需要将 SEATA_PORT 环境变量设置成你所需的端口号。

2.5.4 STORE_MODE:

可选, 指定seata-server的事务日志存储方式, 支持db ,file,redis(Seata-Server 1.3及以上版本支持), 默认是 file;

2.5.5 SERVER_NODE:

可选, 用于指定seata-server节点ID, 如 1,2,3…, 默认为 根据ip生成;
在 Seata 1.5 版本中,SERVER_NODE 是一个环境变量,用于指定 Seata Client 连接的 Seata Server 节点。

当你的应用程序作为 Seata Client 运行时,它需要知道要连接的 Seata Server 的主机和端口。通过设置 SERVER_NODE 环境变量,可以告诉 Seata Client 要连接的 Seata Server 节点信息。

SERVER_NODE 的格式为 {host}:{port},其中 {host} 是 Seata Server 所在的主机名或 IP 地址,{port} 是 Seata Server 监听的端口号。

以下是一个示例的启动命令,演示如何使用 SERVER_NODE 环境变量进行配置:

java -jar your-application.jar -DSERVER_NODE=127.0.0.1:8091

在上述命令中,SERVER_NODE 被设置为 127.0.0.1:8091,表示 Seata Client 要连接的 Seata Server 运行在本地的 8091 端口。

要注意的是,SERVER_NODE 的值应该与实际运行的 Seata Server 的主机和端口相匹配,以便 Seata Client 能够正确连接到 Seata Server。

2.5.6 SEATA_ENV:

可选, 指定 seata-server 运行环境, 如 dev, test 等, 服务启动时会使用 registry-dev.conf 这样的配置。

2.5.7 SEATA_CONFIG_NAME:

可选, 指定配置文件位置, 如 file:/root/registry, 将会加载 /root/registry.conf 作为配置文件,如果需要同时指定 file.conf文件,需要将registry.conf的config.file.name的值改为类似file:/root/file.conf:

  • 创建conf 文件夹及 registry.conf文件:
    在这里插入图片描述

  • 文件内容:

registry {# file 、nacos 、eureka、redis、zk、consul、etcd3、sofatype = "nacos"nacos {application = "seata-server"serverAddr = "192.168.2.6:8001"group = "SEATA_GROUP"namespace = ""cluster = "default"username = "nacos"password = "nacos"}
}config {# file、nacos 、apollo、zk、consul、etcd3type = "nacos"nacos {serverAddr = "192.168.2.6:8001"namespace = ""group = "SEATA_GROUP"username = "nacos"password = "nacos"}
}
  • 部署时指定 SEATA_CONFIG_NAME:
docker run -d  --name seata-server1.5 \-p 8091:8091 \-p 7091:7091 \-v /root/seata/config:/seata-server/resources  \
-e SEATA_IP=localhost \-e SEATA_PORT=8091 \
-e  SEATA_CONFIG_NAME=file:/root/seata/conf/registry  \seataio/seata-server:1.5.0 

总结

以上内容通过Docker 工具在阿里云部署分布式服务Seata,并且已file 存储事务数,注册和配置中心都以file 模式进行。

参考:

使用 Docker 部署 Seata Server (1.5.0及以上)

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

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

相关文章

计算机网络aaaaaaa

差错检测 在一段时间内,传输错误的比特占所传输比特总数的比率称为误码率BER(Bit Error Rate) 11111111111111111111111111111111111111111111111111111111111111111111111111111111 11111111111111111111111111111111111111111111111111111111111111111111111111…

c#在MVC Api(.net framework)当中使用Swagger,以及Demo下载

主要的步骤就是创建项目,通过nuget 添加Swashbuckle包,然后在SwaggerConfig当中进行相关的配置。 具体的步骤,可以参考下面的链接: https://www.cnblogs.com/94pm/p/8046580.htmlhttps://blog.csdn.net/xiaouncle/article/detail…

Boost开发指南-4.12utility

utility utility库不是一个有统一主题的Boost库,而是包含了若干个很小但有用的工具。 本章开头介绍的noncopyable.swap都曾经被归类在utility库里(现在则属于core库),此外utility还包括其他很多个实用类,如 base_from_member、compressed_pair、checke…

瞬态电压抑制器(TVS)汽车级 SZESD9B5.0ST5G 工作原理、特性参数、封装形式

什么是汽车级TVS二极管? TVS二极管是一种用于保护电子电路的电子元件。它主要用于电路中的过电压保护,防止电压过高而损坏其他部件。TVS二极管通常被称为“汽车级”是因为它们能够满足汽车电子系统的特殊要求。 在汽车电子系统中,由于车辆启…

蓝牙模块产品认证-国际市场准入准则之BQB认证认证基础知识

蓝牙模块产品认证-国际市场准入准则之BQB认证认证基础知识 前言 BQB认证介绍 Bluetooth SIG Bluetooth SIG 由八大无线通讯行业巨头成立的一家公司,专门负责蓝牙规格开发、 技术推广及资格认证工作,成立于1998年。 Bluetooth SIG拥有Bluetooth Trademarks 免费地授…

ChatGPT⼊门到精通(2):ChatGPT 能为我们做什么

⼀、雇佣免费的⼲活⼩弟 有了ChatGPT后,就好⽐你有了好⼏个帮你免费打⼯的「⼩弟」,他们可以帮你做很多 ⼯作。我简单总结⼀些我⽬前使⽤过的⽐较好的基于ChatGPT的服务和应⽤。 1、总结、分析 当我们在阅读⼀些⽂章和新闻的时候,有的⽂章写…

4.9 已建立连接的TCP,收到SYN会发生什么?

1. 客户端的 SYN 报文里的端口号与历史连接不相同 此时服务端会认为是新的连接要建立,于是就会通过三次握手来建立新的连接。 旧连接里处于 Established 状态的服务端最后会怎么样呢? 服务端给客户端发消息了:客户端连接已被关闭&#xff…

【Go 基础篇】深入探索:Go语言中的切片遍历与注意事项

嗨,Go语言学习者!在我们的编程旅程中,切片(Slice)是一个极其重要的工具。它可以帮助我们处理各种类型的数据,从而让我们的代码更加灵活和高效。本文将围绕Go语言中切片的遍历方法以及在遍历时需要注意的事项…

Scrum敏捷研发迭代式开发

Scrum是一个迭代式增量软件开发过程,是敏捷方法论中的重要框架之一。它通常用于敏捷软件开发,包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括Scrum主管(Scrum Master)、产品负责人(Product Owner&…

Android ---使用Jenkins 打包release版本不能安装或者安装后不显示APP

大家在用 Jenkins的时候,是不是会觉得很爽,因为他在用的过程中,是无脑的,毕竟一键触发!!!! 这边记录一个昨天,今天遇到的一个坑货问题,别人提交了所有代码&am…

ElasticSearch基础知识汇总

文章目录 前言一、认识ElasticSearch1.正向索引和倒排索引2. MySql与ElasticSearc3.IK分词器 二、ES索引库操作1.mapping映射属性2.索引库的CRUD 三、ES文档库操作 前言 Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基…

3.RabbitMQ 架构以及 通信方式

一、RabbitMQ的架构 RabbitMQ的架构可以查看官方地址 可以看出RabbitMQ中主要分为三个角色: Publisher:消息的发布者,将消息发布到RabbitMQ中的ExchangeRabbitMQ服务:Exchange接收Publisher的消息,并且根据Routes策…

抖店商品怎么让达人带货?说下找达人技巧和寄样后的操作,可收藏

我是王路飞。 找达人带货的玩法是公认出单快、易爆单、长久稳定的出单方式。 虽然新手可能感觉要给达人佣金,自己利润会降低,但是这种玩法可以让你快速入门,且能长久玩下去。 尤其是现在抖音直播间的产品全都是来自抖音小店的,…

YOLO目标检测——花蕊分类检测数据集下载分享

花蕊分类检测数据集共同7300图片,103类别,分别放在103个文件夹中,可应用于:植物学研究、花卉市场和园艺业、智能农业、视觉搜索引擎、等等 数据集点击下载:YOLO花蕊分类检测数据集7300图片102种类别.rar

多旋翼飞控底层算法开发系列实验 | 多旋翼动力系统设计实验3

多旋翼动力系统设计实验3 01/多旋翼动力系统简介​​​​​​​ 多旋翼无人机的动力系统通常包括螺旋桨、电机、电调以及电池。动力系统是多旋翼最重要的组成部分,它决定了多旋翼的主要性能,如悬停时间、载重能力、飞行速度和飞行距离等。动力系统的部件…

Elasticsearch 集成--Flink 框架集成

一、Flink 框架介绍 Apache Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 Apache Spark 掀开了内存计算的先河,以内存作为赌注,赢得了内存计算的飞速发展。 但是在其火热的同时,开发人员发现,在 Spark …

EasyExcel自定义字段对象转换器支持转换实体和集合实体

文章目录 1. 实现ObjectConverter2. 使用3. 测试3.1 导出excel3.2 导入excel 1. 实现ObjectConverter package com.tophant.cloud.common.excel.converters;import cn.hutool.json.JSONUtil; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.…

设计模式—原型模式(Prototype)

目录 一、什么是原型模式? 二、原型模式具有什么优缺点吗? 三、有什么缺点? 四、什么时候用原型模式? 五、代码展示 ①、简历代码初步实现 ②、原型模式 ③、简历的原型实现 ④、深复制 ⑤、浅复制 一、什么是原型模式&…

c++之指针

总结性质 我们如何在一个函数中获取数组的长度: 我们都知道,在main函数中我们获得数组的长度只需要使用sizeof(a)/sizeof(a【0】)即可获得,但当我们把一个数组传入到方法时,c默认把…

重生c++系列之类与对象(中篇)

好的继上期,我们今天带来c类与对象系列的继续学习。 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数。 …