Seata单机部署

Seata单机安装

一、环境

操作系统:Centos7及以上或者Mac
Seata版本: 1.3.0
Nacos版本:2.0.4
Seata集群部署
Seata官网
Seata下载地址

二、file.conf配置
  1. 路径:在根目录下的【config】文件夹下
  2. 采用DB模式进行配置,文件内如,其他内如可以保留也可以直接删除
## transaction log store, only used in seata-server
store {
  ## store mode: file、db、redis
  mode = "db"
  
  ## 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.cj.jdbc.Driver"
    url = "jdbc:mysql://127.0.0.1:3306/seata?characterEncoding=utf-8&serverTimezone=UTC"
    user = "root"
    password = "Root@1234"
    minConn = 5
    maxConn = 30
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }
}
三、registry.conf配置
  1. 路径:在根目录下的【config】文件夹下
  2. 该文件主要作用是:将Seata的服务端和客户端的一些配置信息注入到配置中心中(本文采用的是阿里巴巴的Nacos配置中心,小伙伴们也可以自己选择),配置内如如下:
  3. 更多配置说明
  • registry部分
registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos"
  # nacos的配置信息项
  nacos {
    # 当前seata在nacos中的服务名
    application = "seata-server"
    # nacos的地址,当人这里也可以配置nginx配置的nacos集群
    serverAddr = "127.0.0.1:8848"
    # 分组名称
    group = "SEATA_GROUP"
    # 命名空间,使用默认
    namespace = ""
    # 是否集群
    cluster = "default"
    # nacos的用户
    username = "nacos"
    # nacos用户对应密码
    password = "nacos"
  }
}
  • config部分
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos"
  # nacos的配置信息项
  nacos {
    # nacos的地址,当人这里也可以配置nginx配置的nacos集群
    serverAddr = "127.0.0.1:8848"
    # 命名空间,使用默认
    namespace = ""
    # 分组名称
    group = "SEATA_GROUP"
    # nacos的用户
    username = "nacos"
    # nacos用户对应密码
    password = "nacos"
  }
}
四、创建seata数据库
  • 可以采用Mysql数据使用如下脚本创建表结果,创建脚本大家可以下载seata源码后在【script】文件夹下的”/server/db“路径下找到mysql.sql脚本文件。脚本内容如下:
-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(
    `xid`                       VARCHAR(128) NOT NULL,
    `transaction_id`            BIGINT,
    `status`                    TINYINT      NOT NULL,
    `application_id`            VARCHAR(32),
    `transaction_service_group` VARCHAR(32),
    `transaction_name`          VARCHAR(128),
    `timeout`                   INT,
    `begin_time`                BIGINT,
    `application_data`          VARCHAR(2000),
    `gmt_create`                DATETIME,
    `gmt_modified`              DATETIME,
    PRIMARY KEY (`xid`),
    KEY `idx_gmt_modified_status` (`gmt_modified`, `status`),
    KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(
    `branch_id`         BIGINT       NOT NULL,
    `xid`               VARCHAR(128) NOT NULL,
    `transaction_id`    BIGINT,
    `resource_group_id` VARCHAR(32),
    `resource_id`       VARCHAR(256),
    `branch_type`       VARCHAR(8),
    `status`            TINYINT,
    `client_id`         VARCHAR(64),
    `application_data`  VARCHAR(2000),
    `gmt_create`        DATETIME(6),
    `gmt_modified`      DATETIME(6),
    PRIMARY KEY (`branch_id`),
    KEY `idx_xid` (`xid`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(
    `row_key`        VARCHAR(128) NOT NULL,
    `xid`            VARCHAR(96),
    `transaction_id` BIGINT,
    `branch_id`      BIGINT       NOT NULL,
    `resource_id`    VARCHAR(256),
    `table_name`     VARCHAR(32),
    `pk`             VARCHAR(36),
    `gmt_create`     DATETIME,
    `gmt_modified`   DATETIME,
    PRIMARY KEY (`row_key`),
    KEY `idx_branch_id` (`branch_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;
  • 数据库信息如下:
    在这里插入图片描述
五、配置信息推送到配置中心
  1. 通过执行[script/config-center/nacos]目录下的”nacos-config.sh“脚本,将上述配置项推送到配置中心
  2. 命令格式: sh ./nacos-config.sh [-h|-p|-g|-u|-w|-t]
# 默认启动
&> sh ./nacos-config.sh
# 指定命名空间命令
&> sh ./nacos-config.sh -t 626a816f-3062-4a97-b27a-07aeed26ee85
  1. 参数说明,Nacos为例:
    1. -h 配置中心IP地址
    2. -p 配置中心端口
    3. -g 分组名称
    4. -u 用户
    5. -w 密码
    6. -t 命名空间或者组合

!!!注意:如果Nacos使用的集群部署,需要将配置的集群服务节点全部启动才能使用上面命令推送配置信息成功,否则将推送失败。

  • 结果如下图:
    在这里插入图片描述
六、启动

命令格式:sh seata-server.sh -p 8091 -h 127.0.0.1 -m file
启动参数说明:

  1. -h 指定在注册中心注册的 IP
  2. -p 指定 server 启动的端口
  3. -m 事务日志存储方式,默认file
  4. -n 用于指定seata-server节点ID,默认为 1
  5. -help 帮助
# 默认启动方式
&> ./bin/seata-server.sh -p 8092
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值