Samples for seata-go

Clone this repo:

Branches

  1. 4003c99 fix module replacement and database configuration (#54) by FengZhang · 5 days ago main
  2. fc74bcf update undo log compress type config (#48) by smiletrl · 10 months ago
  3. 12fe9ff fix samples conf file path (#44) by smiletrl · 11 months ago
  4. 39c58ef Update seata go version(#41) by 576470954 · 11 months ago
  5. d146005 optimize: add ASF basic config (#43) by jimin · 12 months ago

seata-go-samples

How to run samples

  1. Start the seata-server service with the docker file under the /dockercomposer folder

    git clone https://seata.apache.org/seata-go-samples.git
    
    cd dockercompose
    
    docker-compose -f docker-compose.yml up -d seata-server
    
  2. Start and run a sample, for example let's run a basic distributed transaction sample of AT

    cd at/basic
    
    go run .
    

Customize mysql connection configurations

The default mysql connection configuration is suitable with dockercompose/docker-compose.yml.

You can also customize it by system environment.

System Env Supported:

  1. MYSQL_HOST
  2. MYSQL_PORT
  3. MYSQL_USERNAME
  4. MYSQL_PASSWORD
  5. MYSQL_DB

How to use go mod replace to test samples for new PR

  1. Modify the seata-go dependency version to v0.0.0-incompatible, and remove the version number if it exists in the original dependency path.

    //seata.apache.org/seata-go v1.2.0
    seata.apache.org/seata-go v0.0.0-incompatibl
    
  2. Find the absolute or relative path to your local code.

    /Users/mac/Desktop/GO/seata-go
    ../seata-go
    
  3. Add the replace module to the go.mod file and change it to the local code path.

    seata.apache.org/seata-go =>  ../seata-go
    
  4. Synchronization dependencies.

    go mod tidy
    
  5. Run the sample test code.

How to use go workspace to test samples for new PR (Recommended)

You can use your local project forked to test new pr that haven't merged into seata.apache.org/seata-go.

  1. Make sure your go version is 1.18 or later.

  2. Fork and download two projects (seata-go and seata-go-samples), and put them into a same local directory.

For examples:

/Users/xxx/code/github.com/yourid/seata-go
/Users/xxx/code/github.com/yourid/seata-go-samples
  1. Execute go work init command in projects root directory.
cd /Users/xxx/code/github.com/yourid
go work init

You will find a go.work file in /Users/xxx/code/github.com/yourid.

  1. Add seata-go and seata-go-samples into the same go workspace.
go work use ./seata-go
go work use ./seata-go-samples

Now, the content of go.work file is as follows.

go 1.19

use (
        ./seata-go
        ./seata-go-samples
)
  1. Run the sample test code in seata-go-samples.