zoukankan      html  css  js  c++  java
  • seata源码学习(2)-环境搭建

    准备环境

    启动nacos

    1. 解压nacos安装包

    2. 初始化数据库

      新建数据库nacos_config,然后执行conf/nacos-mysql.sql中的脚本,如图

    1. 修改配置文件

      #*************** Config Module Related Configurations ***************#
      ### If use MySQL as datasource:
      spring.datasource.platform=mysql
      
      ### Count of DB:
      db.num=1
      
      ### Connect URL of DB:
      db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
      db.user.0=root
      db.password.0=admin123
      
    2. 启动nacos

      startup.cmd -m standalone

    1. 登录nacos web界面

      打开 http://127.0.0.1:8848/nacos

      用户名密码为nacos/nacos

    启动seata

    1. 解压seata安装包

    2. 初始化数据库

      新建数据库seata

      数据库脚本位于源码目录下script/server/db/mysql.sql

    执行成功后生成3个表

    1. 修改配置文件

      conf/registry.conf

      把registry和config对象下面的type值改为nacos

      registry {
        # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
        type = "nacos"
        loadBalance = "RandomLoadBalance"
        loadBalanceVirtualNodes = 10
      
        nacos {
          application = "seata-server"
          serverAddr = "127.0.0.1:8848"
          group = "SEATA_GROUP"
          namespace = ""
          cluster = "default"
          username = ""
          password = ""
        }
      }
      
      config {
        # file、nacos 、apollo、zk、consul、etcd3
        type = "nacos"
      
        nacos {
          serverAddr = "127.0.0.1:8848"
          namespace = ""
          group = "SEATA_GROUP"
          username = ""
          password = ""
        }
      
      }
      
      

      conf/file.conf

      修改mode值为db

      设置db对象下面的数据库属性(url、user、password)

      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.
          dbTy	pe = "mysql"
          driverClassName = "com.mysql.jdbc.Driver"
          url = "jdbc:mysql://127.0.0.1:3306/seata"
          user = "root"
          password = "admin123"
          minConn = 5
          maxConn = 100
          globalTable = "global_table"
          branchTable = "branch_table"
          lockTable = "lock_table"
          queryLimit = 100
          maxWait = 5000
        }
      
       
      
      }
      
    2. 启动seata server

      bin/seata-server.bat

    1. 查看nacos的服务列表

      生成seata-server服务

    运行sample

    1. 下载sample代码

      git clone https://github.com/seata/seata-samples

    2. 导入IDEA

      准备运行springboot-mybatis的样例

    几个project的规划如下

    项目 端口 说明
    sbm-common-service / 公共方法
    sbm-storage-service 8081 仓库应用
    sbm-order-service 8082 订单应用
    sbm-account-service 8083 账户应用
    sbm-business-service 8084 业务应用,购物API的入口
    1. 执行sql脚本

      脚本为sql/all_in_one.sql

      可以复制内容放到navicat中直接执行

      数据表如下

      数据库 说明
      db_account account_tbl 账户表
      db_order order_tbl 订单表
      db_storage storage_tbl 仓库表

      image-20210326222154612

    2. 修改所有应用的数据库连接属性

      spring:
        datasource:
          type: com.alibaba.druid.pool.DruidDataSource
          driver-class-name: com.mysql.jdbc.Driver
          url: jdbc:mysql://127.0.0.1:3306/db_account?useSSL=false&serverTimezone=UTC
          username: root
          password: admin123
      
    3. 启动分布式应用

      分别启动

      • sbm-storage-service
      • sbm-order-service
      • sbm-account-service
      • sbm-business-service
    4. 调用购物接口

      浏览器访问 http://localhost:8084/api/business/purchase/commit

      返回true表示购物成功

  • 相关阅读:
    ES6标准入门之正则表达式的拓展
    将博客搬至CSDN
    CUDA杂谈
    QT源码解析笔记
    图解DTS和PTS
    图解 I帧,B帧以及P帧
    这半年的一些事情
    C++的一些编程规范
    pjsip与QT进行适配
    编程规范检测脚本
  • 原文地址:https://www.cnblogs.com/huiyao/p/14584610.html
Copyright © 2011-2022 走看看