天天看点

Windowns10配置安装Seata14.0(注册中心和配置中心用的都是nacos)

翻来翻来csnd,倒腾了一天一夜,也没看到一篇关于Windowns10下安装配置nacos完整的解释,都是缺胳膊少腿的,废话不多说直接进入主题!!!

我的环境:window10+nacos2.0.2+seata1.4.0+git2.3.0+mysql8.0

安装步骤:

  1. 安装nacos(数据持久化在MySQL),此处省略
  2. 下载windows版本的seata1.4.0安装版本、源码版本(源码版本不下载也行,等下说名用途)

    第一个是安装包,第二个是源码包,打开分布解压就行

    Windowns10配置安装Seata14.0(注册中心和配置中心用的都是nacos)
  3. MySQL数据库创建事务相关的库和表

    在你的MySQL数据库创建一个用处存储tc事务相关属性的库:seata,然后打开命令行执行建表

-- The script used when storeMode is 'db' ----------
-- 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. 配置registry.conf

    在安装包根目录conf文件夹有个registry.conf 文件,打开并配置:注册中心和配置中心

    **注册中心:把seata注册到nacos上。

    **配置中心:**出厂的时候默认设置是fiel,读取conf目录下本地的file.conf文件,这个文件是用来保存TC事务的一些属性的。如果设置配置中心为nacos,则不需要配置file.conf,但是需要配置config.txt(下面会说这个玩意哪里来的)并上传到nacos。我这是用的是nacos作为配置中心。

# **注册中心**:
registry {
  # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
  type = "nacos" #这里写nacos
  loadBalance = "RandomLoadBalance"
  loadBalanceVirtualNodes = 10
  nacos {
    application = "seata-server" #seata的服务名称
    serverAddr = "localhost:8848" #nacos的地址和端口
    group = "SEATA_GROUP" #默认就行
    namespace = ""#默认就行
    username = "nacos" #nacos的账号
    password = "nacos" #nacos的密码
  }
  #省略了一堆代码,往下拉
  ...
  ...
  ...
# **配置中心**:
config {
  # file、nacos 、apollo、zk、consul、etcd3
  type = "nacos" #写nacos

  nacos {
    serverAddr = "localhost:8848" #nacos地址端口
    namespace = "" #默认空
    group = "SEATA_GROUP" #默认
    username = "nacos" #nacos账号
    password = "nacos"  #nacos密码
    dataId = "seata.properties" #这个可以都不写,反正我写了,也没啥
  }
  
           
  1. 配置config.txt

    其实config.txt和file.conf文件两者的内容其实都是一样的,只是格式不一样而已:这里主要配置数据库还有这个seata将用于哪个微服务。

    config.txt来源:1、seata源码目录script\config-center

    2、github

#mysql配置
store.mode=db #存储类型db
store.file.dir=file_store/data
store.file.maxBranchSessionSize=16384
store.file.maxGlobalSessionSize=512
store.file.fileWriteBufferCacheSize=16384
store.file.flushDiskMode=async
store.file.sessionReloadReadSize=100
store.db.datasource=druid
store.db.dbType=mysql
store.db.driverClassName=com.mysql.cj.jdbc.Driver #msyql8.0用这个驱动
store.db.url=jdbc:mysql://localhost:3306/seata
store.db.user=username
store.db.password=password
#service配置
service.vgroupMapping.my_test_tx_group=seata-order-service#这个得记住了,不能写默认的
service.default.grouplist=127.0.0.1:8091
service.enableDegrade=false
service.disableGlobalTransaction=false
           

保存!!!

6. 配置nacos

主要是命名空间的ID可以自定义也可以系统生成,创建后记住那串命名空间的ID号,等下要用。

Windowns10配置安装Seata14.0(注册中心和配置中心用的都是nacos)

7.git下上传配置文件

在对应的源码目录,也就是下面这个,打开git命令行

Windowns10配置安装Seata14.0(注册中心和配置中心用的都是nacos)

执行:

sh nacos/nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 命名空间ID -u nacos账号 -w nacos密码
           

说明:

-h:注册中心nacos的IP

-p:注册中心nacos端口

-g:配置分组,默认值为’SEATA_GROUP’j即可。

-t:对应Nacos的namespace ID字段。

-u:用户名

-w:密码

执行后如下,证明上传完成。

Windowns10配置安装Seata14.0(注册中心和配置中心用的都是nacos)

打开nacos,可以看到,证明配置成功。

Windowns10配置安装Seata14.0(注册中心和配置中心用的都是nacos)
  1. 启东seata:安装文件包的bin目录下,cmd直接启动seata-server.bat。
    Windowns10配置安装Seata14.0(注册中心和配置中心用的都是nacos)
    大功告成,可以开心的撸啦啦啦啦啦啦啦啦啦啦啦。