分布式事务篇-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,一经查实,立即删除!

相关文章

MANIFEST.MF作用

你对MANIFEST.MF这个文件知道多少?_G探险者的博客-CSDN博客

Flask教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Flask是一个用Python编写的Web应用程序框架。 它由Armin Ronacher开发,他领导一个名为Pocco的国际Python爱好者团队。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目。Flask 则以最简原则,自身框架只附带很简单的路由、模…

[Go版]算法通关村第十五关白银——海量数据场景下的热门算法题

目录 题目:从 40个亿 中产生一个不存在的整数要求:假设你有 1GB 的内存来完成这项任务Go代码 进阶:如果只有 10MB 的内存可用,该怎么办?1. 考虑10MB的内存,用位图存储的数据容量有多少?2. 考虑4…

计算机网络aaaaaaa

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

如何允许远程访问MySQL

许多网站和应用程序一开始都将web服务器和数据库后端托管在同一台机器上。不过,随着时间的推移,这样的设置可能会变得繁琐和难以扩展。一种常见的解决方案是通过设置远程数据库来分离这些功能,允许服务器和数据库在各自的机器上按自己的速度增…

深入探讨代理技术:保障网络安全与爬虫效率

在当今数字化时代,代理技术在网络安全与爬虫领域扮演着重要角色。从Socks5代理、IP代理,到网络安全和爬虫应用,本文将深入探讨这些关键概念,揭示它们如何相互关联以提高网络安全性和爬虫效率。 1. 代理技术简介 代理技术是一种允…

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 免费地授…

计网-控制平面

下个月前最后一篇计网笔记,再坚挺一下,网络如同海洋,任我穿梭遨游~~ ——题记 大多数的算法更新,就是枚举 路由器与交换机的区别 文章目录 概述小白Dilistra:w的邻域按权值排序,v[w,i]min(c[w,i],v[w,i-1]c[i-1,i],...…

VB车辆管理系统SQL设计与实现

摘 要 随着信息时代的到来,信息高速公路的兴起,全球信息化进入了一个新的发展时期。人们越来越认识到计算机强大的信息模块处理功能,使之成为信息产业的基础和支柱。 我国经济的快速发展,汽车已经成为人们不可缺少的交通工具。对于拥有大量车辆的机关企事业来说,车辆的…

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的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基…

获取ID地址

import javax.servlet.http.HttpServletRequest; import java.net.InetAddress; import java.net.UnknownHostException;/*** 请求工具类* Created by macro on 2020/10/8.*/ public class RequestUtil {/*** 获取请求真实IP地址*/public static String getRequestIp(HttpServl…

3.RabbitMQ 架构以及 通信方式

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