美文网首页
seata0.9.0服务端 搭建过程

seata0.9.0服务端 搭建过程

作者: 甯缺毋滥 | 来源:发表于2021-01-11 16:09 被阅读0次

    一.下载seata-server

    基于我们的项目采用的是

    1.spring-cloud Hoxton.RELEASE
    2.spring-cloud-alibaba 2.1.1RELEASE

    所以seata版本采用0.9.0版本,下载seata-service,并在linux 上部署AT模式

    https://github.com/seata/seata/releases/tag/v0.9.0

    版本选择

    二.修改seata-server配置文件

    在seata-service文件夹中修改\seata\conf\registry.conf 与 \seata\conf\file.conf 2个文件

    2.1.registry.conf文件

    registry {
      # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
      type = "nacos"   #注册中心采用nacos
    
      nacos {
        serverAddr = "172.18.44.112:8848"
        namespace = ""
        cluster = "default"
      }
    }
    
    config {
      # file、nacos 、apollo、zk、consul、etcd3
      type = "file"  #配置中心直接使用file模式
    
      file {
        name = "file.conf"
      }
    }
    

    2.2file.conf文件(存储方式采用db->58行,并且修改db信息->82~85行)

    transport {
      # tcp udt unix-domain-socket
      type = "TCP"
      #NIO NATIVE
      server = "NIO"
      #enable heartbeat
      heartbeat = true
      #thread factory for netty
      thread-factory {
        boss-thread-prefix = "NettyBoss"
        worker-thread-prefix = "NettyServerNIOWorker"
        server-executor-thread-prefix = "NettyServerBizHandler"
        share-boss-worker = false
        client-selector-thread-prefix = "NettyClientSelector"
        client-selector-thread-size = 1
        client-worker-thread-prefix = "NettyClientWorkerThread"
        # netty boss thread size,will not be used for UDT
        boss-thread-size = 1
        #auto default pin or 8
        worker-thread-size = 8
      }
      shutdown {
        # when destroy server, wait seconds
        wait = 3
      }
      serialization = "seata"
      compressor = "none"
    }
    service {
      #vgroup->rgroup
      vgroup_mapping.my_test_tx_group = "default"  
    #注意这里的名称与客户端yml文件中的spring-cloud-alibaba-seata-tx-service-group 的值一致
      #only support single node
      default.grouplist = "172.18.44.110:8091" #采用service端服务器的ip
      #degrade current not support
      enableDegrade = false
      #disable
      disable = false
      #unit ms,s,m,h,d represents milliseconds, seconds, minutes, hours, days, default permanent
      max.commit.retry.timeout = "-1"
      max.rollback.retry.timeout = "-1"
    }
    
    client {
      async.commit.buffer.limit = 10000
      lock {
        retry.internal = 10
        retry.times = 30
      }
      report.retry.count = 5
      tm.commit.retry.count = 1
      tm.rollback.retry.count = 1
    }
    
    ## transaction log store
    store {
      ## store mode: file、db
      mode = "db"   #采用db储存信息
    
      ## file store
      file {
        dir = "sessionStore"
    
        # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
        max-branch-session-size = 16384
        # globe session size , if exceeded throws exceptions
        max-global-session-size = 512
        # file buffer size , if exceeded allocate new buffer
        file-write-buffer-cache-size = 16384
        # when recover batch read size
        session.reload.read_size = 100
        # async, sync
        flush-disk-mode = async
      }
    
      ## database store
      db {
        ## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp) etc.
        datasource = "dbcp"
        ## mysql/oracle/h2/oceanbase etc.
        db-type = "mysql"
        driver-class-name = "com.mysql.jdbc.Driver"     #db的连接信息
        url = "jdbc:mysql://127.0.0.1:3306/seata"
        user = "root"
        password = "root"
        min-conn = 1
        max-conn = 3
        global.table = "global_table"
        branch.table = "branch_table"
        lock-table = "lock_table"
        query-limit = 100
      }
    }
    lock {
      ## the lock store mode: local、remote
      mode = "remote"
    
      local {
        ## store locks in user's database
      }
    
      remote {
        ## store locks in the seata's server
      }
    }
    recovery {
      #schedule committing retry period in milliseconds
      committing-retry-period = 1000
      #schedule asyn committing retry period in milliseconds
      asyn-committing-retry-period = 1000
      #schedule rollbacking retry period in milliseconds
      rollbacking-retry-period = 1000
      #schedule timeout retry period in milliseconds
      timeout-retry-period = 1000
    }
    
    transaction {
      undo.data.validation = true
      undo.log.serialization = "jackson"
      undo.log.save.days = 7
      #schedule delete expired undo_log in milliseconds
      undo.log.delete.period = 86400000
      undo.log.table = "undo_log"
    }
    
    ## metrics settings
    metrics {
      enabled = false
      registry-type = "compact"
      # multi exporters use comma divided
      exporter-list = "prometheus"
      exporter-prometheus-port = 9898
    }
    
    support {
      ## spring
      spring {
        # auto proxy the DataSource bean
        datasource.autoproxy = false
      }
    }
    

    三.建表

    3.1.seata数据库

    创建seata数据库 sql位置 /seata/conf/db_store.sql

    3.2.undo_log表

    业务数据库中建立此表 sql位置 /seata/conf/db_undo_log.sql

    如果没有找到相应脚本,可以去官网找一下,这里列出我找到的mysql版本
    db_store
    undo_log

    四.部署

    解压 tar zxf seata-server-0.9.0.tar.gz
    进入/seata/bin
    启动服务端 /seata/bin# sh seata-server.sh

    服务端启动信息 客户端连接信息

    至此

    相关文章

      网友评论

          本文标题:seata0.9.0服务端 搭建过程

          本文链接:https://www.haomeiwen.com/subject/msrdaktx.html