helm部署Seata服务

第 9 篇 Helm 部署 Seata Server 使用 helm 部署 Seata Server,并实现高可用集群。 阅读详情

helm部署Seata服务

拉取Seata服务代码

git clone https://github.com/seata/seata.git
cd seata/
// 切到自己需要的版本
git checkout v1.4.2

打chart包并推送到自己chart仓库

cd script/server/helm/
helm package ./seata-server --version 1.4.2
helm cm-push seata-server-1.4.2.tgz --password=密码 --username=用户名 chart仓库地址

部署Seata服务

// 添加seata所在chart仓库
helm repo add 仓库名称 --username 用户名 --password 密码 chart库地址

// 在需要部署seata服务的集群节点上拉取chart包
helm pull 仓库名称/seata-server --version 1.4.2

// 安装seata服务
helm install -f values.yaml seata-server ./seata-server

values.yaml文件内容

replicaCount: 1

namespace: default

image:
  repository: seataio/seata-server
  tag: 1.4.2
  pullPolicy: IfNotPresent

service:
  type: NodePort
  port: 30091

env:
  seataPort: "8091"
  storeMode: "file"
  seataIp: "127.0.0.1"
  seataConfigName: "file:/root/seata-config/registry"

volume:
  - name: seata-config
    mountPath: /root/seata-config
    hostPath: /root/work/seata/seata-config/file
  • 将部署节点上/root/work/seata/seata-config/file目录挂载到/root/seata-config

  • env.seataConfigName指定seata服务启动时加载配置文件位置,registry即registry.conf文件

  • 官方提供的chart包不能直接通过环境参数指定注册中心、连接数据库等信息,只能通过挂载文件的方式配置。如果想要直接通过values文件中指定这些
    信息只能自己基于官方源码自己制作镜像、chart包

  • 通过挂载主机文件的方式有个问题就是必须在每个节点上都需要有这个配置文件,因为如果seata服务的pod调度到没有配置文件的节点将会拿不到文件无法启动

/root/work/seata/seata-config/file下需要的配置文件

registry.conf

配置注册中心及配置中心的信息

registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "eureka"

  nacos {
    application = "seata-server"
    serverAddr = "127.0.0.1:8848"
    group = "SEATA_GROUP"
    namespace = ""
    cluster = "default"
    username = ""
    password = ""
  }
  eureka {
    # 配置eureka注册中心信息
    serviceUrl = "http://localhost:8000/eureka"
    application = "seata-server"
    weight = "1"
  }
  redis {
    serverAddr = "localhost:6379"
    db = 0
    password = ""
    cluster = "default"
    timeout = 0
  }
  zk {
    cluster = "default"
    serverAddr = "127.0.0.1:2181"
    sessionTimeout = 6000
    connectTimeout = 2000
    username = ""
    password = ""
  }
  consul {
    cluster = "default"
    serverAddr = "127.0.0.1:8500"
    aclToken = ""
  }
  etcd3 {
    cluster = "default"
    serverAddr = "http://localhost:2379"
  }
  sofa {
    serverAddr = "127.0.0.1:9603"
    application = "default"
    region = "DEFAULT_ZONE"
    datacenter = "DefaultDataCenter"
    cluster = "default"
    group = "SEATA_GROUP"
    addressWaitTime = "3000"
  }
  file {
    name = "file.conf"
  }
}

config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "file"

  nacos {
    serverAddr = "127.0.0.1:8848"
    namespace = ""
    group = "SEATA_GROUP"
    username = ""
    password = ""
    dataId = "seataServer.properties"
  }
  consul {
    serverAddr = "127.0.0.1:8500"
    aclToken = ""
  }
  apollo {
    appId = "seata-server"
    ## apolloConfigService will cover apolloMeta
    apolloMeta = "http://192.168.1.204:8801"
    apolloConfigService = "http://192.168.1.204:8080"
    namespace = "application"
    apolloAccesskeySecret = ""
    cluster = "seata"
  }
  zk {
    serverAddr = "127.0.0.1:2181"
    sessionTimeout = 6000
    connectTimeout = 2000
    username = ""
    password = ""
    nodePath = "/seata/seata.properties"
  }
  etcd3 {
    serverAddr = "http://localhost:2379"
  }
  file {
    name = "file.conf"
  }
}
  • 如果使用Spring Cloud微服务架构,需要将Seata服务注册到注册中心,以便客户端能通过注册中心访问Seata服务
file.conf

配置数据库等信息,如下为配置mysql数据库样例

## transaction log store, only used in seata-server
store {
  ## store mode: file、db、redis
  mode = "db"
  ## rsa decryption public key
  publicKey = ""
  ## file store property
  file {
    ## store location dir
    dir = "sessionStore"
    # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
    maxBranchSessionSize = 16384
    # globe session size , if exceeded throws exceptions
    maxGlobalSessionSize = 512
    # file buffer size , if exceeded allocate new buffer
    fileWriteBufferCacheSize = 16384
    # when recover batch read size
    sessionReloadReadSize = 100
    # async, sync
    flushDiskMode = async
  }

  ## 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.jdbc.Driver"
    ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
    url = "jdbc:mysql://localhost:3306/seata?rewriteBatchedStatements=true&useUnicode=true&characterEncoding=utf-8&useSSL=false"
    user = "root"
    password = "root"
    minConn = 5
    maxConn = 100
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }

  ## redis store property
  redis {
    ## redis mode: single、sentinel
    mode = "single"
    ## single mode property
    single {
      host = "127.0.0.1"
      port = "6379"
    }
    ## sentinel mode property
    sentinel {
      masterName = ""
      ## such as "10.28.235.65:26379,10.28.235.65:26380,10.28.235.65:26381"
      sentinelHosts = ""
    }
    password = ""
    database = "0"
    minConn = 1
    maxConn = 10
    maxTotal = 100
    queryLimit = 100
  }
}

如下为配置oracle数据库样例

## transaction log store, only used in seata-server
store {
  ## store mode: file、db、redis
  mode = "redis"
  ## rsa decryption public key
  publicKey = ""
  ## file store property
  file {
    ## store location dir
    dir = "sessionStore"
    # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
    maxBranchSessionSize = 16384
    # globe session size , if exceeded throws exceptions
    maxGlobalSessionSize = 512
    # file buffer size , if exceeded allocate new buffer
    fileWriteBufferCacheSize = 16384
    # when recover batch read size
    sessionReloadReadSize = 100
    # async, sync
    flushDiskMode = async
  }

  ## 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 = "oracle"
    driverClassName = "oracle.jdbc.driver.OracleDriver"
    ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
    url = "jdbc:oracle:thin:@localhost:1521:FEIDA"
    user = "root"
    password = "root"
    minConn = 5
    maxConn = 100
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }

  ## redis store property
  redis {
    ## redis mode: single、sentinel
    mode = "single"
    ## single mode property
    single {
      host = "localhost"
      port = "6379"
    }
    ## sentinel mode property
    sentinel {
      masterName = ""
      ## such as "10.28.235.65:26379,10.28.235.65:26380,10.28.235.65:26381"
      sentinelHosts = ""
    }
    password = ""
    database = "0"
    minConn = 1
    maxConn = 10
    maxTotal = 100
    queryLimit = 100
  }
}

配置数据库的原因是Seata服务需要一些表来记录分布式事务的信息,以便进行分布式事务控制。即可以单独创建数据库指定,也可以使用已有数据库,建议
单独创建数据库

Skywalking在微服务监控与链路追踪中的实践指南 分布式系统监控是微服务架构的关键支撑技术,通过采集和分析跨服务调用链数据实现故障快速定位。APM(应用性能管理)系统采用探针技术实现无侵入式埋点,结合TraceID实现全链路追踪,能直观展示请求在服务间的流转路径。Skywalking作为开源APM工具,提供拓扑图自动生成、细粒度指标监控等核心功能,特别适合金融支付、电商等高并发场景。通过实战案例可见,其能将生产环境问题定位时间从数天缩短至分钟级,大幅提升运维效率。典型部署方案包含Agent探针、OAP服务端和ES存储集群,支持K8s环境动态扩展。 阅读详情

相关推荐

Seata高并发压测实战:AT模式调优与故障避坑指南

分布式事务是微服务架构中保障数据一致性的核心机制,其性能与稳定性直接决定系统在大促、秒杀等高并发场景下的可用性。Seata作为主流开源方案,以AT模式实现业务无侵入的强一致性,但默认配置在QPS破3000后易出现全局锁争抢、undo_log写入瓶颈、回滚失败率陡升等问题。本文基于真实电商压测场景(8600 TPS),深入解析AT模式的事务粒度设计、undo_log存储优化(如TiDB替代MySQL)、全局锁热点治理及五层故障定位法,聚焦Seata高并发落地中的可量化指标(如GlobalLock队列长度、Un

weixin_33623304的博客 178

k8s helm Seata1.5.1

4.我只是改动了values.yaml与templates下的deployment.yaml。在上面添加了些许改动,只不过是用helm部署了,其余的操作还是跟上篇博文一样子的。3.下载seta helm部署yaml文件:文件位于:不知道的可看上篇博文。把/seata-server/resources 下的文件挂载到。7.访问nacos 看到已经被注册到nacos中。2.环境:k8s 、nfs环境 或是动态存储。seataConfigName:后面的内容。/data/k8s/resource下。......

hunheidaode的博客 1864

Electron多窗口开发避坑指南:Pinia状态同步的3种解决方案对比

本文深入探讨了在Electron多窗口应用中实现Pinia状态同步的三种核心方案。针对Electron多窗口架构下状态隔离的挑战,文章对比了基础事件通信、共享存储以及智能Pinia插件等方案的优劣与适用场景,并提供了生产级的实现指南与选型建议,帮助开发者构建健壮高效的桌面应用。

spice的博客 479

SpringCloud学习笔记(十一)----分布式事务 Seata

SpringCloud Alibaba Seata处理分布式事务 分布式事务问题 单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。 比说:用户购买商品的业务逻辑。整个业务逻辑由3个微服务提供支持: 仓储服务:对给定的商品扣除仓储数量。 订单服务:根据采购需求创建订单。 账户服务:从用户账户中扣除余额。 架构图如下: 按照正常的逻辑来说,当订单服务收

qq_43404873的博客 947

【AI平台】n8n入门2:第一个工作流,调用本地大模型

n8n是一款开源的,专注于AI工作流构建,支持灵活的自定义与集成。就是可以把大模型和其他工具联合起来,这就厉害了。而且,免费功能又强大,目前很火,来研究一下。

正经教主是个热衷于正经学习分享的教主。 4536

从CAD到完美网格:HyperMesh几何清理全流程指南(2023最新版)

本文详细介绍了2023最新版HyperMesh在几何清理和网格划分方面的全流程操作指南。从CAD导入、几何修复到中面提取和网格生成,系统性地分享了实战验证的解决方案,帮助工程师高效处理复杂几何体,提升有限元模型质量。特别针对汽车和航空航天领域的常见问题,提供了智能化工具和优化技巧。

weixin_29306011的博客 228

第5章 云原生应用实战-Kubernetes部署Seata

本文介绍如何在Kubernetes中部署一个Seata服务

王珂的专栏 363

基于STM32避障/循迹/蓝牙遥控小车的硬件与软件底层设计

1、实现2m的自动直线行驶,要求左右偏移不大于10cm。2、车载显示屏显示车辆当前行驶速度或车辆运行时间,当前方20cm内出现障碍物时显示与前方障碍物的距离,车每次转弯蜂鸣器报警,同时通过左右指示灯指示转弯方向。3、依次驶过障碍物①②③④,且不触碰障碍物。4、成功进行调头转弯,行驶过程中车轮不碾压黑实线。5、在车道指定位置停车且不越界。6、通过红外、蓝牙、WiFi等任意一种方式实现对小车的控制,使其前进、后退、左转、右转。

2301_78758161的博客 1万+

3分钟上手!Seata Helm Chart一键部署K8s分布式事务方案

Seata 是一款简单易用、高性能的开源分布式事务解决方案,专为微服务架构设计。通过 Helm Chart 部署 Seata 到 Kubernetes 集群,可实现分布式事务的快速落地,有效解决跨服务数据一致性问题。 ## 🌟 为什么选择 Seata Helm Chart? 传统分布式事务部署面临配置复杂、环境依赖多、扩缩容困难等问题。Seata Helm Chart 提供以下核心优势:

gitblog_00863的博客 543

基于verilog的16QAM调制

思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差...

weixin_30725467的博客 2929

Amos实战:如何用Bootstrap法检验中介效应?附完整操作步骤

本文详细介绍了如何使用Amos软件通过Bootstrap法检验中介效应,包括模型设定、参数配置和结果解读。Bootstrap方法因其不依赖正态分布假设、统计功效高等优势,成为中介效应分析的首选方法。文章提供了完整的操作步骤和实用建议,帮助研究者准确评估变量间的中介作用机制。

zz67890的博客 1444

k8s Seata1.5.1

4.上传:把文件上传到服务器 因为我是hostpath配置的,没有使用nfs,所以k8s每个node节点都需要复制一份。太麻烦我就没有搞,但是应该是可以使用的了。Seata1.5.1目前应该是不在使用 registory.conf file.conf那种部署了。本人已经挂载出来了,所以会是这个样子的,你们没有在没有挂载出来可以进去看看。我是直接挂载的seata1.5.1这个版本的resource下的文件.我是在csdn没找到部署这1.5.0以上版本的。本人按照官网的方式部署了2天都没有成功!...

hunheidaode的博客 1267

手把手教你用Simulink搭建交流异步电机矢量控制模型(附完整仿真文件)

本文提供了一份详细的Simulink仿真指南,手把手教你从零开始搭建交流异步电机矢量控制模型。内容涵盖主电路搭建、坐标变换实现、双闭环PI调节器设计、转子磁链观测器调试等核心步骤,并附有完整的仿真文件,帮助读者跨越理论到实践的鸿沟,掌握高性能电机控制系统的建模与仿真技能。

pz890123的博客 671

Kubernetes基于Helm的配置与部署基本原理

摘要:Kubernetes是自动化部署和管理应用程序的工具,主要功能包括自动化部署、弹性伸缩、自我修复和负载均衡。其核心概念包括Pod(最小部署单元)和Deployment(管理Pod副本数量和更新)。部署方式分为原生YAML文件配置和使用Helm工具。Helm作为Kubernetes的包管理器,通过Chart模板实现动态配置,包括Chart.yaml、values.yaml和templates目录等组件,提供模板化、可配置性和生命周期管理三大核心能力,特别适合复杂有状态服务的部署。Helm相较于原生方式,

deve_lan的博客 892

FPGA/IC 秋招笔试/面试题总结(续)

FPGA/IC 秋招笔试/面试题总结(续)来啦… 文章目录二十七、状态机1. Moore/Mealy状态机2.一、二、三段式状态机 二十七、状态机 1. Moore/Mealy状态机 (1)Moore状态机: 输出只由当前状态决定,即次态=f(现态。输入),输出=f(现态) Moore型状态机的输出信号是直接由状态寄存器译码得到的。 Moore型状态机检测序列1101如下 Moore型状态机输出函数只由状态变量决定,想要输出Z=1,必须S4状态形成,即寄存器中的1101都打进去后才可以。输出Z=1会在

Crazzy_M的博客 2万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

第十二章节 xxjob, seata, zk, minio,activeMQ进行 helm化

要将你提供的 Docker 命令转换为 Helm Chart,你需要将相关的配置转化为 Kubernetes 资源文件,并使用 Helm 的模板语法进行参数化配置。以下是一个基本的 Helm Chart 示例,包括DeploymentService和文件。

lixiemang8887的博客 903

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Seata:微服务架构下数据一致性的创新解决方案

在微服务架构的浪潮中,数据一致性问题成为技术架构师面临的最大挑战之一。当业务逻辑跨越多个服务边界时,如何保证跨服务的事务一致性?Apache Seata作为一款开源分布式事务解决方案,提供了从AT模式到Saga模式的完整技术栈,帮助企业在微服务转型中实现数据一致性保障。本文将深入探讨Seata的创新架构设计、核心实现原理以及在实际场景中的最佳实践。 ## 微服务数据一致性的核心挑战 传统单体应

gitblog_00229的博客 636

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

分布式事务 - Seata的安装

Seata是一个需要独立部署的中间件,除了直接部署外,还支持多种部署方式,比如Docker、Kubernetes、Helm。本文主要介绍直接安装的方式。 在Seata官网下载1.2.0版本的安装包 进入${SEATA_HOME}\bin目录,根据系统类型执行相应的启动脚本。 seata支持设置启动参数,完整的参数列表如下 参数 全写 作用 备注 -h –host 指定在注册中心注册的ip 不指定时获取当前的IP地址,外部访问部署在云环境和容器中的server,建议指定 -p –por

yang的博客 624

SpringBlade企业级微服务架构深度解析:高性能SaaS多租户平台技术实现

SpringBlade作为商业级项目升级优化而来的企业级微服务架构,采用Spring Boot 3.2、Spring Cloud 2023、Java 17等前沿技术栈,为企业构建高性能、可扩展的SaaS多租户平台提供了完整的技术解决方案。该平台在六年生产实践中不断演进,从Camden到Hoxton再到2023的技术架构迭代,经历了从fat jar到docker再到k8s+jenkins的部署架构升

gitblog_01090的博客 596

企业级微服务架构优化实践:基于Spring Boot的RuoYi-Vue-Pro完整解决方案

在数字化转型浪潮中,企业级应用开发面临诸多技术挑战:如何平衡快速开发与系统稳定性?如何在单体架构与微服务架构之间做出合理选择?如何确保系统在高并发场景下的性能表现?RuoYi-Vue-Pro作为一款基于Spring Boot + Vue的企业级快速开发平台,通过模块化架构设计、分布式组件集成和云原生适配能力,为这些技术难题提供了完整的解决方案。该平台支持RBAC动态权限、数据权限、SaaS多租户、

gitblog_00278的博客 1146

k8s部署若依微服务架构流程,v3.6.6

目录若依Cloud微服务对应关系表ruoyi架构图极简流程图(改造后)安装部署从这开始看:必要的准备redis安装安装MySQL安装nacos使用maven打包项目使用K8S部署Ruoyi组件部署gatewaynacos配置编写Dockerfile启动,生成镜像分发镜像使用K8S启动gateway部署auth部署system部署成功,网站验证部署ui前端成果验收排错心得1,nacos里配置必须写服务名称,2,pv持久化存储问题3,po启动顺序4,ui的nginx容器启动失败5,镜像只在 master 节点存

zbdjdmm的博客 535

Spring Cloud Alibaba在Kubernetes环境中的部署实践与场景验证

Spring Cloud Alibaba在Kubernetes环境中的部署实践与场景验证 【免费下载链接】spring-cloud-alibaba Spring Cloud Alibaba provides a one-stop solution for application development for the d...

gitblog_00094的博客 475

尚硅谷云原生实战学习笔记

尚硅谷云原生实战学习笔记,学吧,学无止境。

李英俊小朋友 1690

企业级微服务架构实战:基于hzero平台的核心设计与项目落地

微服务架构通过将单体应用拆分为一组小型、独立的服务,实现了系统的松耦合、高内聚和独立部署,是现代企业应对复杂业务、提升研发效能的关键技术路径。其核心价值在于支持技术栈异构、弹性伸缩和快速迭代,广泛应用于电商、金融、物联网等大规模分布式场景。在具体实践中,如何高效构建统一的技术中台、实现精细化的权限与数据隔离,成为企业级应用的核心挑战。本文聚焦于多租户(SaaS)架构与领域驱动设计(DDD)的深度实践,通过解析一个集成了身份管理、消息服务和文件处理等通用能力的微服务应用平台,阐述如何利用代码生成与低代码理念,

weixin_33898233的博客 598

2026年Java后端开发技能树(附学习路线图)

例如,通过Seata实现分布式事务时,需结合AT模式与Saga模式的优劣进行选型。扎实的Java基础仍是核心竞争力。除了掌握集合、多线程、JVM内存模型等传统知识点,2026年需重点关注GraalVM原生镜像、ZGC低延迟垃圾回收等新特性。在数字化转型加速的2026年,Java后端开发依然是企业级应用的核心支柱。本文将通过一份2026年Java后端开发技能树(附学习路线图),为你拆解关键学习方向,助你高效进阶。学习路线图建议采用"分层递进"策略:先夯实Java基础,再突破分布式架构,最终融合云原生生态。

qfculd_937的博客 242

2024年Java后端开发技能树(附学习路线图)

例如,通过Seata实现分布式事务时,需结合AT模式与Saga模式的优劣进行选型。除了掌握集合、多线程、JVM内存模型等传统知识点,2024年需重点关注GraalVM原生镜像、ZGC低延迟垃圾回收等新特性。在数字化转型加速的2024年,Java后端开发依然是企业级应用的核心支柱。本文将通过一份2024年Java后端开发技能树(附学习路线图),为你拆解关键学习方向,助你高效进阶。学习路线图建议采用"分层递进"策略:先夯实Java基础,再突破分布式架构,最终融合云原生生态。**云原生与容器化部署**

yljdaw_597的博客 206
上一篇: NFS服务器安装及NFS制备程序安装
下一篇: docker in docker
炒栗子不加糖
博客等级 码龄10年 68粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值