This is an automated email from the ASF dual-hosted git repository. zhaoyunxing pushed a commit to branch 1.5 in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git
commit bb2883ce524043729ebcc2286d3c9f8833fd14db Author: phil <[email protected]> AuthorDate: Tue Jul 13 13:20:19 2021 +0800 Feature/1.5 seata test (#166) * update: test pass by tesing * update: mysql init sql auto Co-authored-by: yuefengbo <[email protected]> --- .run/seata/seata_client_app.run.xml | 2 +- .run/seata/seata_order-svc_app.run.xml | 2 +- .run/seata/seata_product-svc_app.run.xml | 2 +- seata/client/app/client.go | 17 +++--- seata/client/app/svc/svc.go | 1 + seata/docker/docker-compose.yml | 34 ++++++++++++ seata/docker/mysql/script/seata.sql | 62 ++++++++++++++++++++++ .../mysql/script}/seata_order.sql | 0 .../mysql/script}/seata_product.sql | 0 seata/order-svc/app/dao/dao.go | 5 +- seata/order-svc/app/order_svc.go | 1 + seata/order-svc/app/server.go | 19 ++++--- seata/product-svc/app/dao/dao.go | 1 + seata/product-svc/app/product_svc.go | 1 + seata/product-svc/app/server.go | 19 ++++--- 15 files changed, 131 insertions(+), 35 deletions(-) diff --git a/.run/seata/seata_client_app.run.xml b/.run/seata/seata_client_app.run.xml index c34da8c..97941d0 100644 --- a/.run/seata/seata_client_app.run.xml +++ b/.run/seata/seata_client_app.run.xml @@ -1,5 +1,5 @@ <component name="ProjectRunConfigurationManager"> - <configuration default="false" name="seata/client/app" type="GoApplicationRunConfiguration" factoryName="Go Application"> + <configuration default="false" name="seata/client/app" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="seata"> <module name="dubbo-go-samples" /> <working_directory value="$PROJECT_DIR$" /> <envs> diff --git a/.run/seata/seata_order-svc_app.run.xml b/.run/seata/seata_order-svc_app.run.xml index def3fd7..f12d2bf 100644 --- a/.run/seata/seata_order-svc_app.run.xml +++ b/.run/seata/seata_order-svc_app.run.xml @@ -1,5 +1,5 @@ <component name="ProjectRunConfigurationManager"> - <configuration default="false" name="seata/order-svc/app" type="GoApplicationRunConfiguration" factoryName="Go Application"> + <configuration default="false" name="seata/order-svc/app" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="seata"> <module name="dubbo-go-samples" /> <working_directory value="$PROJECT_DIR$" /> <envs> diff --git a/.run/seata/seata_product-svc_app.run.xml b/.run/seata/seata_product-svc_app.run.xml index 7fcfc16..264f05f 100644 --- a/.run/seata/seata_product-svc_app.run.xml +++ b/.run/seata/seata_product-svc_app.run.xml @@ -1,5 +1,5 @@ <component name="ProjectRunConfigurationManager"> - <configuration default="false" name="seata/product-svc/app" type="GoApplicationRunConfiguration" factoryName="Go Application"> + <configuration default="false" name="seata/product-svc/app" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="seata"> <module name="dubbo-go-samples" /> <working_directory value="$PROJECT_DIR$" /> <envs> diff --git a/seata/client/app/client.go b/seata/client/app/client.go index 451fdbf..2a7809e 100644 --- a/seata/client/app/client.go +++ b/seata/client/app/client.go @@ -27,24 +27,23 @@ import ( ) import ( - "github.com/apache/dubbo-go-samples/seata/client/app/svc" -) - -import ( + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" "github.com/apache/dubbo-go/common/logger" _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/filter_impl" _ "github.com/apache/dubbo-go/protocol/dubbo" _ "github.com/apache/dubbo-go/registry/protocol" + _ "github.com/apache/dubbo-go/registry/zookeeper" + "github.com/transaction-wg/seata-golang/pkg/client" config2 "github.com/transaction-wg/seata-golang/pkg/client/config" "github.com/transaction-wg/seata-golang/pkg/client/tm" +) - _ "github.com/apache/dubbo-go/filter/filter_impl" - - _ "github.com/apache/dubbo-go/cluster/cluster_impl" - _ "github.com/apache/dubbo-go/cluster/loadbalance" - _ "github.com/apache/dubbo-go/registry/zookeeper" +import ( + "github.com/apache/dubbo-go-samples/seata/client/app/svc" ) const ( diff --git a/seata/client/app/svc/svc.go b/seata/client/app/svc/svc.go index 5a53342..8d219d1 100644 --- a/seata/client/app/svc/svc.go +++ b/seata/client/app/svc/svc.go @@ -25,6 +25,7 @@ import ( import ( "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/config" + context2 "github.com/transaction-wg/seata-golang/pkg/client/context" "github.com/transaction-wg/seata-golang/pkg/client/tm" ) diff --git a/seata/docker/docker-compose.yml b/seata/docker/docker-compose.yml new file mode 100644 index 0000000..d5dca01 --- /dev/null +++ b/seata/docker/docker-compose.yml @@ -0,0 +1,34 @@ +version: '3.1' +services: + # mysql + mysql: + image: mysql:5.7 + container_name: mysqlt + privileged: true # 授权 + command: --default-authentication-plugin=mysql_native_password --default-time-zone='+08:00' # 指定使用插件 + volumes: + - ./mysql/script:/docker-entrypoint-initdb.d + ports: + - 3306:3306 + environment: + MYSQL_ROOT_PASSWORD: '123456' # root用户密码 + # seata + seata: + image: seataio/seata-server:latest + container_name: seatat + hostname: seata-server + ports: + - 8091:8091 + environment: + - SEATA_PORT=8091 + expose: + - 8091 + # nacos + nacos: + image: nacos/nacos-server:2.0.0 + container_name: nacost +# network_mode: host + ports: + - 8848:8848 + environment: + - MODE=standalone #启动模式是独立模式 \ No newline at end of file diff --git a/seata/docker/mysql/script/seata.sql b/seata/docker/mysql/script/seata.sql new file mode 100644 index 0000000..cfbe50e --- /dev/null +++ b/seata/docker/mysql/script/seata.sql @@ -0,0 +1,62 @@ +-- -------------------------------- The script used when storeMode is 'db' -------------------------------- + +CREATE database if NOT EXISTS `seata` default character set utf8mb4 collate utf8mb4_unicode_ci; +USE `seata`; + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; +-- 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; diff --git a/seata/scripts/seata_order.sql b/seata/docker/mysql/script/seata_order.sql similarity index 100% rename from seata/scripts/seata_order.sql rename to seata/docker/mysql/script/seata_order.sql diff --git a/seata/scripts/seata_product.sql b/seata/docker/mysql/script/seata_product.sql similarity index 100% rename from seata/scripts/seata_product.sql rename to seata/docker/mysql/script/seata_product.sql diff --git a/seata/order-svc/app/dao/dao.go b/seata/order-svc/app/dao/dao.go index a216fae..ece4584 100644 --- a/seata/order-svc/app/dao/dao.go +++ b/seata/order-svc/app/dao/dao.go @@ -18,15 +18,14 @@ package dao import ( - hessian "github.com/apache/dubbo-go-hessian2" "time" ) import ( + hessian "github.com/apache/dubbo-go-hessian2" + "github.com/bwmarrin/snowflake" -) -import ( "github.com/transaction-wg/seata-golang/pkg/client/at/exec" "github.com/transaction-wg/seata-golang/pkg/client/context" ) diff --git a/seata/order-svc/app/order_svc.go b/seata/order-svc/app/order_svc.go index 1cbc4bc..100136d 100644 --- a/seata/order-svc/app/order_svc.go +++ b/seata/order-svc/app/order_svc.go @@ -23,6 +23,7 @@ import ( import ( "github.com/apache/dubbo-go/common/constant" + context2 "github.com/transaction-wg/seata-golang/pkg/client/context" ) diff --git a/seata/order-svc/app/server.go b/seata/order-svc/app/server.go index c45c1a1..95b71b0 100644 --- a/seata/order-svc/app/server.go +++ b/seata/order-svc/app/server.go @@ -27,24 +27,23 @@ import ( ) import ( - dao2 "github.com/apache/dubbo-go-samples/seata/order-svc/app/dao" -) - -import ( + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" "github.com/apache/dubbo-go/common/logger" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/filter_impl" _ "github.com/apache/dubbo-go/protocol/dubbo" _ "github.com/apache/dubbo-go/registry/protocol" + _ "github.com/apache/dubbo-go/registry/zookeeper" + "github.com/transaction-wg/seata-golang/pkg/client" "github.com/transaction-wg/seata-golang/pkg/client/at/exec" config2 "github.com/transaction-wg/seata-golang/pkg/client/config" +) - _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" - _ "github.com/apache/dubbo-go/filter/filter_impl" - - _ "github.com/apache/dubbo-go/cluster/cluster_impl" - _ "github.com/apache/dubbo-go/cluster/loadbalance" - _ "github.com/apache/dubbo-go/registry/zookeeper" +import ( + dao2 "github.com/apache/dubbo-go-samples/seata/order-svc/app/dao" ) const ( diff --git a/seata/product-svc/app/dao/dao.go b/seata/product-svc/app/dao/dao.go index 5e5fe4f..a9f5e89 100644 --- a/seata/product-svc/app/dao/dao.go +++ b/seata/product-svc/app/dao/dao.go @@ -19,6 +19,7 @@ package dao import ( hessian "github.com/apache/dubbo-go-hessian2" + "github.com/transaction-wg/seata-golang/pkg/client/at/exec" "github.com/transaction-wg/seata-golang/pkg/client/context" ) diff --git a/seata/product-svc/app/product_svc.go b/seata/product-svc/app/product_svc.go index 9d97211..d32c518 100644 --- a/seata/product-svc/app/product_svc.go +++ b/seata/product-svc/app/product_svc.go @@ -23,6 +23,7 @@ import ( import ( "github.com/apache/dubbo-go/common/constant" + context2 "github.com/transaction-wg/seata-golang/pkg/client/context" ) diff --git a/seata/product-svc/app/server.go b/seata/product-svc/app/server.go index f39b1ac..68db9be 100644 --- a/seata/product-svc/app/server.go +++ b/seata/product-svc/app/server.go @@ -27,24 +27,23 @@ import ( ) import ( - dao2 "github.com/apache/dubbo-go-samples/seata/product-svc/app/dao" -) - -import ( + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" "github.com/apache/dubbo-go/common/logger" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/filter_impl" _ "github.com/apache/dubbo-go/protocol/dubbo" _ "github.com/apache/dubbo-go/registry/protocol" + _ "github.com/apache/dubbo-go/registry/zookeeper" + "github.com/transaction-wg/seata-golang/pkg/client" "github.com/transaction-wg/seata-golang/pkg/client/at/exec" config2 "github.com/transaction-wg/seata-golang/pkg/client/config" +) - _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" - _ "github.com/apache/dubbo-go/filter/filter_impl" - - _ "github.com/apache/dubbo-go/cluster/cluster_impl" - _ "github.com/apache/dubbo-go/cluster/loadbalance" - _ "github.com/apache/dubbo-go/registry/zookeeper" +import ( + dao2 "github.com/apache/dubbo-go-samples/seata/product-svc/app/dao" ) const (
