SpringCloudAlibaba seata部署

部署指南

Seata新手部署指南(1.4.0版本)

Seata分TC、TM和RM三个角色,TC(Server端)为单独服务端部署,TM和RM(Client端)由业务系统集成。

资源目录介绍

点击查看
  • client

存放client端sql脚本 (包含 undo_log表) ,参数配置

  • config-center

各个配置中心参数导入脚本,config.txt(包含server和client,原名nacos-config.txt)为通用参数文件

  • server

server端数据库脚本 (包含 lock_table、branch_table 与 global_table) 及各个容器配置

注意事项

  • seata-spring-boot-starter
内置GlobalTransactionScanner自动初始化功能,若外部实现初始化,请参考SeataAutoConfiguration保证依赖加载顺序
默认开启数据源自动代理,可配置seata.enable-auto-data-source-proxy: false关闭
  • spring-cloud-starter-alibaba-seata

查看版本说明 2.1.0内嵌seata-all 0.7.1,2.1.1内嵌seata-all 0.9.0,2.2.0内嵌seata-spring-boot-starter 1.0.0, 2.2.1内嵌seata-spring-boot-starter 1.1.0

    2.1.0和2.1.1兼容starter解决方案:
@SpringBootApplication注解内exclude掉spring-cloud-starter-alibaba-seata内的com.alibaba.cloud.seata.GlobalTransactionAutoConfiguration
  • spring-cloud-starter-alibaba-seata推荐依赖配置方式
           <dependency>
                <groupId>io.seata</groupId>
                <artifactId>seata-spring-boot-starter</artifactId>
                <version>最新版</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
                <version>2.2.1.RELEASE</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.seata</groupId>
                        <artifactId>seata-spring-boot-starter</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

启动Server

Server端存储模式(store.mode)现有file、db、redis三种(后续将引入raft,mongodb),file模式无需改动,直接启动即可,下面专门讲下db和redis启动步骤。
注: file模式为单机模式,全局事务会话信息内存中读写并持久化本地文件root.data,性能较高;

db模式为高可用模式,全局事务会话信息通过db共享,相应性能差些;

redis模式Seata-Server 1.3及以上版本支持,性能较高,存在事务信息丢失风险,请提前配置合适当前场景的redis持久化配置.

步骤一:启动包
  • 点击下载
  • 官方钉钉群(群号:23171167,1群5000人已满,2群, 3群: 32033786),qq群(群号: 254657148,2群: 216012363)群文件共享下载
步骤二:建表(仅db)

全局事务会话信息由3块内容构成,全局事务–>分支事务–>全局锁,对应表global_table、branch_table、lock_table

步骤三:修改store.mode

启动包: seata–>conf–>file.conf,修改store.mode=“db或者redis”
源码: 根目录–>seata-server–>resources–>file.conf,修改store.mode=“db或者redis”

步骤四:修改数据库连接|redis属性配置

启动包: seata–>conf–>file.conf,修改store.db或store.redis相关属性。
源码: 根目录–>seata-server–>resources–>file.conf,修改store.db或store.redis相关属性。

步骤五:启动
  • 源码启动: 执行Server.java的main方法
  • 命令启动: seata-server.sh -h 127.0.0.1 -p 8091 -m db -n 1 -e test
    -h: 注册到注册中心的ip
    -p: Server rpc 监听端口
    -m: 全局事务会话信息存储模式,file、db、redis,优先读取启动参数 (Seata-Server 1.3及以上版本支持redis)
    -n: Server node,多个Server时,需区分各自节点,用于生成不同区间的transactionId,以免冲突
    -e: 多环境配置参考 http://seata.io/en-us/docs/ops/multi-configuration-isolation.html

注: 堆内存建议分配2G,堆外内存1G

业务系统集成Client

步骤一:添加seata依赖(建议单选)
  • 依赖seata-all
  • 依赖seata-spring-boot-starter,支持yml、properties配置(.conf可删除),内部已依赖seata-all
  • 依赖spring-cloud-alibaba-seata,内部集成了seata,并实现了xid传递
步骤二:undo_log建表、配置参数
步骤三:数据源代理(不支持自动和手动配置并存)
  1. 如果使用seata-all

    • 0.9.0版本开始seata支持自动代理数据源

      1.1.0: seata-all取消属性配置,改由注解@EnableAutoDataSourceProxy开启,并可选择jdk proxy或者cglib proxy
      1.0.0: client.support.spring.datasource.autoproxy=true
      0.9.0: support.spring.datasource.autoproxy=true
      

      如果采用XA模式,@EnableAutoDataSourceProxy(dataSourceProxyMode = "XA")

    • 手动配置可参考下方的例子

      @Primary
      @Bean("dataSource")
      public DataSource dataSource(DataSource druidDataSource) {
          //AT 代理 二选一
          return new DataSourceProxy(druidDataSource);
          //XA 代理
          return new DataSourceProxyXA(druidDataSource)
      }
      
  2. 如果使用seata-starter

    • 使用自动代理数据源时,如果使用XA模式还需要调整配置文件
      application.properties

      seata.data-source-proxy-mode=XA  
      

      application.yml

      seata:
        data-source-proxy-mode: XA
      
    • 如何关闭seata-spring-boot-starter的数据源自动代理?
      application.properties

      seata.enable-auto-data-source-proxy=false  
      

      application.yml

      seata:
        enable-auto-data-source-proxy: false
      
步骤四:初始化GlobalTransactionScanner
  • 手动
       @Bean
       public GlobalTransactionScanner globalTransactionScanner() {
           String applicationName = this.applicationContext.getEnvironment().getProperty("spring.application.name");
           String txServiceGroup = this.seataProperties.getTxServiceGroup();
           if (StringUtils.isEmpty(txServiceGroup)) {
               txServiceGroup = applicationName + "-fescar-service-group";
               this.seataProperties.setTxServiceGroup(txServiceGroup);
           }
   
           return new GlobalTransactionScanner(applicationName, txServiceGroup);
       }
  • 自动,引入seata-spring-boot-starter、spring-cloud-starter-alibaba-seata等jar
步骤五:实现xid跨服务传递
  • 手动 参考源码integration文件夹下的各种rpc实现 module
  • 自动 springCloud用户可以引入spring-cloud-starter-alibaba-seata,内部已经实现xid传递

部署 Server

Server支持多种方式部署:直接部署,使用 Docker, 使用 Docker-Compose, 使用 Kubernetes, 使用 Helm.

直接部署

  1. RELEASE页面下载相应版本并解压
  2. 直接启动

在 Linux/Mac 下

$ sh ./bin/seata-server.sh

在 Windows 下

bin\seata-server.bat

支持的启动参数

参数全写作用备注
-h–host指定在注册中心注册的 IP不指定时获取当前的 IP,外部访问部署在云环境和容器中的 server 建议指定
-p–port指定 server 启动的端口默认为 8091
-m–storeMode事务日志存储方式支持file,db,redis,默认为 file 注:redis需seata-server 1.3版本及以上
-n–serverNode用于指定seata-server节点ID1,2,3…, 默认为 1
-e–seataEnv指定 seata-server 运行环境dev, test 等, 服务启动时会使用 registry-dev.conf 这样的配置

如:

$ sh ./bin/seata-server.sh -p 8091 -h 127.0.0.1 -m file

容器部署

容器部署当前支持三种方式:

使用 Docker 部署 Seata Server

注意事项

  • 避免直接拉取latest版本镜像,latest版本并不一定是released版本,为避免不必要的问题,请到docker镜像仓库确定要拉取的镜像版本。

快速开始

启动seata-server实例
$ docker run --name seata-server -p 8091:8091 seataio/seata-server:1.4.2
指定seata-server IP和端口 启动
$ docker run --name seata-server \
        -p 8091:8091 \
        -e SEATA_IP=192.168.1.1 \
        -e SEATA_PORT=8091 \
        seataio/seata-server
Docker compose 启动

docker-compose.yaml 示例

version: "3"
services:
  seata-server:
    image: seataio/seata-server:${latest-release-version}
    hostname: seata-server
    ports:
      - "8091:8091"
    environment:
      - SEATA_PORT=8091
      - STORE_MODE=file

容器命令行及查看日志

$ docker exec -it seata-server sh
$ docker logs -f seata-server

使用自定义配置文件

自定义配置文件需要通过挂载文件的方式实现,将宿主机上的 registry.conffile.conf 挂载到容器中相应的目录

  • 指定 registry.conf

使用自定义配置文件时必须指定环境变量 SEATA_CONFIG_NAME, 并且值需要以file:开始, 如: file:/root/seata-config/registry

$ docker run --name seata-server \
        -p 8091:8091 \
        -e SEATA_CONFIG_NAME=file:/root/seata-config/registry \
        -v /User/seata/config:/root/seata-config  \
        seataio/seata-server

其中 -e 用于配置环境变量, -v 用于挂载宿主机的目录

  • 指定 file.conf

如果需要同时指定 file.conf 配置文件,则需要在 registry.conf 文件中将 config 配置改为以下内容,name 的值为容器中对应的路径

config {
  type = "file"

  file {
    name = "file:/root/seata-config/file.conf"
  }
}

环境变量

seata-server 支持以下环境变量:

  • SEATA_IP

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

  • SEATA_PORT

可选, 指定seata-server启动的端口, 默认为 8091

  • STORE_MODE

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

  • SERVER_NODE

可选, 用于指定seata-server节点ID, 如 1,2,3…, 默认为 根据ip生成

  • SEATA_ENV

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

  • SEATA_CONFIG_NAME

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

使用 docker-compose 部署 Seata Server

注意事项

  • 避免直接拉取latest版本镜像,latest版本并不一定是released版本,为避免不必要的问题,请到docker镜像仓库确定要拉取的镜像版本。

快速开始

无注册中心,file存储

该模式下,不需要注册中心,也不需要任何第三方存储中心。

docker-compose.yaml

version: "3.1"
services:
  seata-server:
    image: seataio/seata-server:${latest-release-version}
    hostname: seata-server
    ports:
      - "8091:8091"
    environment:
      - SEATA_PORT=8091
      - STORE_MODE=file

无注册中心,DB存储

db模式需要在数据库创建对应的表结构,[建表脚本]

(1)准备file.conf配置文件

更多存储模式支持可参考更多存储模式

# 存储模式
store.mode=db

store.db.datasource=druid
store.db.dbType=mysql
# 需要根据mysql的版本调整driverClassName
# mysql8及以上版本对应的driver:com.mysql.cj.jdbc.Driver
# mysql8以下版本的driver:com.mysql.jdbc.Driver
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 注意根据生产实际情况调整参数host和port
store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
# 数据库用户名
store.db.user=
# 用户名密码
store.db.password=

(2)准备registry.conf文件

更多注册中心支持可参考注册中心

更多配置中心支持可参考配置中心

直连模式(无注册中心)

registry {
  type = "file"
}

config {
  type = "file"
  
  file {
    name="file:/root/seata-config/file.conf"
  }
}

(3)准备docker-compose.yaml文件

version: "3.1"
services:
  seata-server:
    image: seataio/seata-server:${latest-release-version}
    hostname: seata-server
    ports:
      - "8091:8091"
    environment:
      - SEATA_PORT=8091
      - SEATA_CONFIG_NAME=file:/root/seata-config/registry
    volumes:
    # 需要把file.conf和registry.conf都放到./seata-server/config文件夹中
      - "./seata-server/config:/root/seata-config"

nacos注册中心,db存储

db模式需要在数据库创建对应的表结构,[建表脚本]

(1)准备registry.conf文件

nacos注册中心。

更多注册中心支持可参考注册中心

更多配置中心支持可参考配置中心

registry {
  type = "nacos"
  
  nacos {
  # seata服务注册在nacos上的别名,客户端通过该别名调用服务
    application = "seata-server"
  # 请根据实际生产环境配置nacos服务的ip和端口
    serverAddr = "127.0.0.1:8848"
  # nacos上指定的namespace
    namespace = ""
    cluster = "default"
    username = "nacos"
    password = "nacos"
  }
}

config {
  type = "nacos"
  
  nacos {
    # 请根据实际生产环境配置nacos服务的ip和端口
    serverAddr = "127.0.0.1:8848"
    # nacos上指定的namespace
    namespace = ""
    group = "SEATA_GROUP"
    username = "nacos"
    password = "nacos"
  # 从v1.4.2版本开始,已支持从一个Nacos dataId中获取所有配置信息,你只需要额外添加一个dataId配置项
    dataId: "seataServer.properties"
  }
}

(2)准备nacos配置中心配置

更多存储模式支持可参考更多存储模式

你需要在nacos新建配置,此处dataId为seataServer.properties

# 存储模式
store.mode=db

store.db.datasource=druid
store.db.dbType=mysql
# 需要根据mysql的版本调整driverClassName
# mysql8及以上版本对应的driver:com.mysql.cj.jdbc.Driver
# mysql8以下版本的driver:com.mysql.jdbc.Driver
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 注意根据生产实际情况调整参数host和port
store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
# 数据库用户名
store.db.user=
# 用户名密码
store.db.password=

(3)准备docker-compose.yaml文件

version: "3.1"
services:
  seata-server:
    image: seataio/seata-server:${latest-release-version}
    hostname: seata-server
    ports:
      - "8091:8091"
    environment:
      # 指定seata服务启动端口
      - SEATA_PORT=8091
      # 注册到nacos上的ip。客户端将通过该ip访问seata服务。
      # 注意公网ip和内网ip的差异。
      - SEATA_IP=127.0.0.1
      - SEATA_CONFIG_NAME=file:/root/seata-config/registry
    volumes:
    # 因为registry.conf中是nacos配置中心,只需要把registry.conf放到./seata-server/config文件夹中
      - "./seata-server/config:/root/seata-config"

高可用部署

seata高可用依赖于注册中心、数据库,可不依赖配置中心。

db模式需要在数据库创建对应的表结构,[建表脚本]

(1)准备file.conf配置文件

更多存储模式支持可参考更多存储模式

# 存储模式
store.mode=db

store.db.datasource=druid
store.db.dbType=mysql
# 需要根据mysql的版本调整driverClassName
# mysql8及以上版本对应的driver:com.mysql.cj.jdbc.Driver
# mysql8以下版本的driver:com.mysql.jdbc.Driver
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 注意根据生产实际情况调整参数host和port
store.db.url=jdbc:mysql://127.0.0.1:3306/seata-server?useUnicode=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false
# 数据库用户名
store.db.user=
# 用户名密码
store.db.password=

(2)准备registry.conf文件

nacos注册中心。

更多注册中心支持可参考注册中心

更多配置中心支持可参考配置中心

registry {
  type = "nacos"
  
  nacos {
  # seata服务注册在nacos上的别名,客户端通过该别名调用服务
    application = "seata-server"
  # nacos服务的ip和端口
    serverAddr = "127.0.0.1:8848"
  # nacos上指定的namespace
    namespace = ""
    cluster = "default"
    username = "nacos"
    password = "nacos"
  }
}

config {
  type = "file"
  
  file {
    name="file:/root/seata-config/file.conf"
  }
}

(3)准备docker-compose.yaml文件

只要保持配置一致,seata服务可在一台机器上部署多实例,也可同时部署在多台不同的主机下面实现服务高可用。 高可用部署

version: "3.1"
services:
  # seata服务1
  seata-server-1:
    image: seataio/seata-server:${latest-release-version}
    hostname: seata-server
    ports:
      - "8091:8091"
    environment:
      # 指定seata服务启动端口
      - SEATA_PORT=8091
      # 注册到nacos上的ip。客户端将通过该ip访问seata服务。
      # 注意公网ip和内网ip的差异。
      - SEATA_IP=127.0.0.1
      - SEATA_CONFIG_NAME=file:/root/seata-config/registry
    volumes:
    # 需要把file.conf和registry.conf都放到./seata-server/config文件夹中
      - "./seata-server/config:/root/seata-config"
  # seata服务2
  seata-server-2:
    image: seataio/seata-server:${latest-release-version}
    hostname: seata-server
    ports:
      - "8092:8092"
    environment:
      # 指定seata服务启动端口
      - SEATA_PORT=8092
      # 注册到nacos上的ip。客户端将通过该ip访问seata服务。
      # 注意公网ip和内网ip的差异。
      - SEATA_IP=127.0.0.1
      - SEATA_CONFIG_NAME=file:/root/seata-config/registry
    volumes:
    # 需要把file.conf和registry.conf都放到./seata-server/config文件夹中
      - "./seata-server/config:/root/seata-config"
  
  # seata服务3......seata服务N

环境变量

seata-server 支持以下环境变量:

  • SEATA_IP

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

  • SEATA_PORT

可选, 指定seata-server启动的端口, 默认为 8091

  • STORE_MODE

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

  • SERVER_NODE

可选, 用于指定seata-server节点ID, 如 1,2,3…, 默认为 根据ip生成

  • SEATA_ENV

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

  • SEATA_CONFIG_NAME

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

使用 Kubernetes 部署 Seata Server

快速启动

创建 seata-server.yaml

apiVersion: v1
kind: Service
metadata:
  name: seata-server
  namespace: default
  labels:
    k8s-app: seata-server
spec:
  type: NodePort
  ports:
    - port: 8091
      nodePort: 30091
      protocol: TCP
      name: http
  selector:
    k8s-app: seata-server

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: seata-server
  namespace: default
  labels:
    k8s-app: seata-server
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: seata-server
  template:
    metadata:
      labels:
        k8s-app: seata-server
    spec:
      containers:
        - name: seata-server
          image: docker.io/seataio/seata-server:latest
          imagePullPolicy: IfNotPresent
          env:
            - name: SEATA_PORT
              value: "8091"
            - name: STORE_MODE
              value: file
          ports:
            - name: http
              containerPort: 8091
              protocol: TCP
$ kubectl apply -f seata-server.yaml

自定义配置

环境变量

支持的环境变量和 Docker 相同,可以参考 使用 Docker 部署 Seata Server

使用自定义配置文件

指定配置文件可以通过挂载文件或使用 ConfigMap 的方式实现,挂载后需要通过指定 SEATA_CONFIG_NAME 指定配置文件位置,并且环境变量的值需要以file:开始, 如: file:/root/seata-config/registry

  • Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: seata-server
  namespace: default
  labels:
    k8s-app: seata-server
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: seata-server
  template:
    metadata:
      labels:
        k8s-app: seata-server
    spec:
      containers:
        - name: seata-server
          image: docker.io/seataio/seata-server:latest
          imagePullPolicy: IfNotPresent
          env:
            - name: SEATA_CONFIG_NAME
              value: file:/root/seata-config/registry
          ports:
            - name: http
              containerPort: 8091
              protocol: TCP
          volumeMounts:
            - name: seata-config
              mountPath: /root/seata-config
      volumes:
        - name: seata-config
          configMap:
            name: seata-server-config

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: seata-server-config
data:
  registry.conf: |
    registry {
        type = "nacos"
        nacos {
          application = "seata-server"
          serverAddr = "192.168.199.2"
        }
    }
    config {
      type = "nacos"
      nacos {
        serverAddr = "192.168.199.2"
        group = "SEATA_GROUP"
      }
    }

使用 Helm 部署 Seata Server

快速启动

$ cd ./script/server/helm/seata-server
$ helm install seata-server ./seata-server

自定义配置

环境变量

支持的环境变量和 Docker 相同,可以参考 使用 Docker 部署 Seata Server

使用自定义配置文件

指定配置文件可以通过挂载的方式实现,如将/root/workspace/seata/seata-config/file 下的配置文件挂载到 pod 中,挂载后需要通过指定 SEATA_CONFIG_NAME 指定配置文件位置,并且环境变量的值需要以file:开始, 如: file:/root/seata-config/registry

  • Values.yaml
replicaCount: 1

namespace: default

image:
  repository: seataio/seata-server
  tag: latest
  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/workspace/seata/seata-config/file

Seata 高可用部署

Seata 的高可用依赖于注册中心、配置中心和数据库来实现

Seata-Server

Seata-Server 需要使用注册中心,并把事务数据保存到数据库中,以 Nacos 为例

  • 修改registry.conf的注册中心配置
registry {
  type = "nacos"

  nacos {
    application = "seata-server"
    serverAddr = "192.168.199.2"
    namespace = ""
    cluster = "default"
    username = ""
    password = ""
  }
}

config {
  type = "nacos"
  
  nacos {
    serverAddr = "192.168.199.2"
    namespace = ""
    group = "SEATA_GROUP"
    username = ""
    password = ""
  }
}
  • 需要修改配置中心的以下几个配置(含db与redis,二者选其一 注:redis需seata-server 1.3版本及以上)
service.vgroupMapping.my_test_tx_group=default
store.mode=db|redis
-----db-----
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.jdbc.Driver
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true
store.db.user=root
store.db.password=123456
----redis----
store.redis.host=127.0.0.1
store.redis.port=6379
store.redis.maxConn=10
store.redis.minConn=1
store.redis.database=0
store.redis.password=null
store.redis.queryLimit=100
  • db模式需要在数据库创建 global_table, branch_table, lock_table

相应的脚本在GitHub 的 /script/server/db/ 目录下

这样,启动多个seata-server,即可实现其高可用


以 Kubernetes 为例,部署文件参考:

apiVersion: v1
kind: Service
metadata:
  name: seata-ha-server
  namespace: default
  labels:
    app.kubernetes.io/name: seata-ha-server
spec:
  type: ClusterIP
  ports:
    - port: 8091
      protocol: TCP
      name: http
  selector:
    app.kubernetes.io/name: seata-ha-server

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: seata-ha-server
  namespace: default
  labels:
    app.kubernetes.io/name: seata-ha-server
spec:
  replicas: 3
  selector:
    matchLabels:
      app.kubernetes.io/name: seata-ha-server
  template:
    metadata:
      labels:
        app.kubernetes.io/name: seata-ha-server
    spec:
      containers:
        - name: seata-ha-server
          image: docker.io/seataio/seata-server:latest
          imagePullPolicy: IfNotPresent
          env:
            - name: SEATA_CONFIG_NAME
              value: file:/root/seata-config/registry
          ports:
            - name: http
              containerPort: 8091
              protocol: TCP
          volumeMounts:
            - name: seata-config
              mountPath: /root/seata-config
      volumes:
        - name: seata-config
          configMap:
            name: seata-ha-server-config


---
apiVersion: v1
kind: ConfigMap
metadata:
  name: seata-ha-server-config
data:
  registry.conf: |
    registry {
        type = "nacos"
        nacos {
          application = "seata-server"
          serverAddr = "192.168.199.2"
        }
    }
    config {
      type = "nacos"
      nacos {
        serverAddr = "192.168.199.2"
        group = "SEATA_GROUP"
      }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值