zoukankan      html  css  js  c++  java
  • Windows下搭建Nacos及Seata

    一、简介

    本文主要描述Nacos及Seata在Windows环境下环境搭建
    

    下载相关软件:

    二、安装

    2.1安装Nacos
    解压nacos-server-1.1.4.zip,进入nacos/bin,双击运行startup.cmd,如果是在Linux下,则sh startup.sh -m standalone
    在浏览器打开Nacos web 控制台:http://localhost:8848/nacos/index.html,输入nacos的账号和密码,分别为nacos:nacos
    
    2.2安装Seata
    解压seata-server-0.9.0.zip,进入seata/conf,修改registry.conf配置
    

    目前seata支持如下的file、nacos 、apollo、zk、consul的注册中心和配置中心。这里使用nacos。将type改为nacos

    registry {
      # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
      type = "nacos"
    
      nacos {
        serverAddr = "localhost"
        namespace = "public"
        cluster = "default"
      }
      eureka {
        serviceUrl = "http://localhost:8761/eureka"
        application = "default"
        weight = "1"
      }
      redis {
        serverAddr = "localhost:6379"
        db = "0"
      }
      zk {
        cluster = "default"
        serverAddr = "127.0.0.1:2181"
        session.timeout = 6000
        connect.timeout = 2000
      }
      consul {
        cluster = "default"
        serverAddr = "127.0.0.1:8500"
      }
      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 = "localhost"
        namespace = "public"
        cluster = "default"
      }
      consul {
        serverAddr = "127.0.0.1:8500"
      }
      apollo {
        app.id = "seata-server"
        apollo.meta = "http://192.168.1.204:8801"
      }
      zk {
        serverAddr = "127.0.0.1:2181"
        session.timeout = 6000
        connect.timeout = 2000
      }
      etcd3 {
        serverAddr = "http://localhost:2379"
      }
      file {
        name = "file.conf"
      }
    }
    
    
    • serverAddr="localhost" #nacos 的地址
    • namespace="public" #nacos的命名空间默认为public
    • cluster="default" #集群设置未默认 default

    修改conf/nacos-config.txt配置

    transport.type=TCP
    transport.server=NIO
    transport.heartbeat=true
    transport.thread-factory.boss-thread-prefix=NettyBoss
    transport.thread-factory.worker-thread-prefix=NettyServerNIOWorker
    transport.thread-factory.server-executor-thread-prefix=NettyServerBizHandler
    transport.thread-factory.share-boss-worker=false
    transport.thread-factory.client-selector-thread-prefix=NettyClientSelector
    transport.thread-factory.client-selector-thread-size=1
    transport.thread-factory.client-worker-thread-prefix=NettyClientWorkerThread
    transport.thread-factory.boss-thread-size=1
    transport.thread-factory.worker-thread-size=8
    transport.shutdown.wait=3
    service.vgroup_mapping.my_test_tx_group=default
    service.enableDegrade=false
    service.disable=false
    service.max.commit.retry.timeout=-1
    service.max.rollback.retry.timeout=-1
    client.async.commit.buffer.limit=10000
    client.lock.retry.internal=10
    client.lock.retry.times=30
    client.lock.retry.policy.branch-rollback-on-conflict=true
    client.table.meta.check.enable=true
    client.report.retry.count=5
    client.tm.commit.retry.count=1
    client.tm.rollback.retry.count=1
    store.mode=db
    store.file.dir=file_store/data
    store.file.max-branch-session-size=16384
    store.file.max-global-session-size=512
    store.file.file-write-buffer-cache-size=16384
    store.file.flush-disk-mode=async
    store.file.session.reload.read_size=100
    store.db.datasource=dbcp
    store.db.db-type=mysql
    store.db.driver-class-name=com.mysql.jdbc.Driver
    store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true
    store.db.user=root
    store.db.password=root
    store.db.min-conn=1
    store.db.max-conn=3
    store.db.global.table=global_table
    store.db.branch.table=branch_table
    store.db.query-limit=100
    store.db.lock-table=lock_table
    recovery.committing-retry-period=1000
    recovery.asyn-committing-retry-period=1000
    recovery.rollbacking-retry-period=1000
    recovery.timeout-retry-period=1000
    transaction.undo.data.validation=true
    transaction.undo.log.serialization=jackson
    transaction.undo.log.save.days=7
    transaction.undo.log.delete.period=86400000
    transaction.undo.log.table=undo_log
    transport.serialization=seata
    transport.compressor=none
    metrics.enabled=false
    metrics.registry-type=compact
    metrics.exporter-list=prometheus
    metrics.exporter-prometheus-port=9898
    support.spring.datasource.autoproxy=false
    
    

    这里主要修改了如下几项:

    store.mode :存储模式 默认file 这里我修改为db 模式 ,并且需要三个表global_table、branch_table和lock_table
    store.db.driver-class-name: 默认没有,会报错。添加了 com.mysql.jdbc.Driver
    store.db.datasource=dbcp :数据源 dbcp
    store.db.db-type=mysql : 存储数据库的类型为mysql
    store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true #修改为自己的数据库url、port、数据库名称
    store.db.user=root :数据库的账号
    store.db.password=123456 :数据库的密码
    

    db模式下的所需的三个表的数据库脚本位于seataconfdb_store.sql

    将Seata配置添加到Nacos中

    Windows(需要安装Python环境)下运行:python nacos-config.py localhost
    Linux下运行:sh ./seata-server.sh
    
    程序执行成功会显示

    init nacos config finished, please start seata-server

    启动Seata

    seata-server.bat(win环境)或seata-server.sh(linux环境)

    Windows:

    seata-server.bat -p 9200 -h 127.0.0.1 -m db

    Linux:

    sh ./seata-server.sh -p 9200 -h 127.0.0.1 -m db

    相关说明:p为端口,h为注册服务的ip,m为采用数据库记录模式。

  • 相关阅读:
    汉语-词语:关怀
    心理学-交流:我真的关心ta,却不知道如何表达 | 如何科学地表达关心?
    汉语-词语:关心
    汉语-词语:安慰
    医疗时鲜资讯:医疗行业未来的变革(续前篇)
    字典转模型的过程中,空值和id特殊字符的处理
    最简单的基于FFmpeg的移动端样例附件:Android 自带播放器
    创建存储过程向表中循环加入数据
    分布式事务 原理及使用范例一则
    hdu 1166
  • 原文地址:https://www.cnblogs.com/isunsine/p/11951247.html
Copyright © 2011-2022 走看看