You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by la...@apache.org on 2021/09/24 08:19:30 UTC

[dubbo-go-samples] branch master updated: fix: remove unused samples

This is an automated email from the ASF dual-hosted git repository.

laurence pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git


The following commit(s) were added to refs/heads/master by this push:
     new 863cbac  fix: remove unused samples
863cbac is described below

commit 863cbac31e2bd8bdc062c05e2724eccf606e9c94
Author: LaurenceLiZhixin <38...@qq.com>
AuthorDate: Fri Sep 24 16:19:15 2021 +0800

    fix: remove unused samples
---
 .github/workflows/github-actions.yml               |   2 +-
 .run/api-triple-client.run.xml                     |   2 +-
 .run/api-triple-server.run.xml                     |   2 +-
 .run/async-client.run.xml                          |  15 -
 .run/async-server.run.xml                          |  15 -
 .run/async-test.run.xml                            |  17 --
 .run/attachment-go-client.run.xml                  |  15 -
 .run/attachment-go-server.run.xml                  |  15 -
 .run/chain-backend-server.run.xml                  |  15 -
 .run/chain-backend-test.run.xml                    |  17 --
 .run/chain-frontend-client.run.xml                 |  15 -
 .run/chain-middle-server.run.xml                   |  16 --
 .run/chain-middle-test.run.xml                     |  17 --
 .run/config-api-client.run.xml                     |   4 +-
 .run/config-api-server.run.xml                     |   4 +-
 .run/config-api-test.run.xml                       |  17 --
 ...ient.run.xml => configcenter-zk-client.run.xml} |   6 +-
 ...rver.run.xml => configcenter-zk-server.run.xml} |   6 +-
 .../configcenter-apollo-client.run.xml             |  24 +-
 .../configcenter-apollo-server.run.xml             |  24 +-
 .run/configcenter/configcenter-apollo-test.run.xml |  16 --
 .../configcenter/configcenter-nacos-client.run.xml |   2 +-
 .../configcenter/configcenter-nacos-server.run.xml |   2 +-
 .run/configcenter/configcenter-nacos-test.run.xml  |  17 --
 .../configcenter-zookeeper-client.run.xml          |  15 -
 .../configcenter-zookeeper-server.run.xml          |  15 -
 .../configcenter-zookeeper-test.run.xml            |  17 --
 .run/context-dubbo-client.run.xml                  |   2 +-
 .run/context-dubbo-server.run.xml                  |   2 +-
 .run/context-test.run.xml                          |  17 --
 .run/context-triple-client.run.xml                 |  24 +-
 .run/context-triple-server.run.xml                 |  24 +-
 .run/direct-go-client.run.xml                      |  14 -
 .run/docker-client.run.xml                         |  15 -
 .run/docker-server.run.xml                         |  15 -
 .run/docker-test.run.xml                           |  17 --
 ...o-go-client.run.xml => dubbo-go-server.run.xml} |   5 +-
 .run/filter-custom-client.run.xml                  |  15 -
 .run/filter-custom-server.run.xml                  |  15 -
 .run/filter-custom-test.run.xml                    |  17 --
 .run/filter-sentinel-client.run.xml                |  15 -
 .run/filter-sentinel-server.run.xml                |  15 -
 .run/filter-sentinel-test.run.xml                  |  17 --
 .run/filter-tpslimit-client.run.xml                |  15 -
 .run/filter-tpslimit-server.run.xml                |  15 -
 .run/filter-tpslimit-test.run.xml                  |  17 --
 .run/game-go-game-server.run.xml                   |  16 --
 .run/game-go-gate-server.run.xml                   |  16 --
 .run/general/general-dubbo-go-client.run.xml       |  15 -
 .run/general/general-dubbo-go-server.run.xml       |  15 -
 .run/general/general-grpc-stream-go-client.run.xml |  15 -
 .run/general/general-grpc-stream-go-server.run.xml |  15 -
 .run/general/general-jsonrpc-go-client.run.xml     |  15 -
 .run/general/general-jsonrpc-go-server.run.xml     |  15 -
 .run/general/general-rest-go-client.run.xml        |  15 -
 .run/general/general-rest-go-server.run.xml        |  15 -
 .run/generic-default-go-client.run.xml             |   2 +-
 .run/generic-default-go-server.run.xml             |   2 +-
 .run/group-go-client.run.xml                       |  15 -
 .run/group-go-server-group-a.run.xml               |  15 -
 .run/group-go-server-group-b.run.xml               |  15 -
 .run/logger-default.run.xml                        |   2 +-
 .run/logger-level.run.xml                          |   2 +-
 .run/logger-rolling.run.xml                        |   2 +-
 .run/metric-go-client.run.xml                      |  15 -
 .run/metric-go-server.run.xml                      |  15 -
 .../multi-registry-go-client.run.xml               |  15 -
 .../multi-registry-go-server.run.xml               |  15 -
 .run/multi-zone/multi-zone-go-client.run.xml       |  15 -
 .run/multi-zone/multi-zone-go-server-hz.run.xml    |  15 -
 .run/multi-zone/multi-zone-go-server-sh.run.xml    |  15 -
 .run/registry/etcd/registry_etcd_go-client.run.xml |   2 +-
 .run/registry/etcd/registry_etcd_go-server.run.xml |   2 +-
 .run/registry/registry-zookeeper-go-client.run.xml |   2 +-
 .run/registry/registry-zookeeper-go-server.run.xml |   2 +-
 .run/router/router-client.run.xml                  |  17 --
 .run/router/router-server.run.xml                  |  15 -
 .run/router/router-server2.run.xml                 |  15 -
 .run/rpc/dubbo/rpc-dubbo-go-client.run.xml         |   3 +-
 .run/rpc/jsonrpc/rpc-jsonrpc-go-client.run.xml     |   2 +-
 .run/rpc/jsonrpc/rpc-jsonrpc-go-server.run.xml     |   2 +-
 .run/rpc/triple-pb-dubbogo-grpc-go-client.run.xml  |  24 +-
 .run/rpc/triple-pb-dubbogo-grpc-go-server.run.xml  |  24 +-
 .run/rpc/triple-pb-dubbogo-java-go-client.run.xml  |  24 +-
 .run/rpc/triple-pb-dubbogo-java-go-server.run.xml  |  24 +-
 .run/seata/seata-client-app.run.xml                |  16 --
 .run/seata/seata-order-svc.run.xml                 |  16 --
 .run/seata/seata-product.run.xml                   |  16 --
 .../discovery-nacos-server.run.xml                 |  15 -
 .run/service-discovery/zk-client.run.xml           |  15 -
 .run/tengine/tengine-go-server.run.xml             |  15 -
 .run/tls-go-client.run.xml                         |  15 -
 .run/tls-go-server.run.xml                         |  15 -
 .run/tracing/dubbo/tracing-dubbo-go-client.run.xml |   4 +-
 .run/tracing/dubbo/tracing-dubbo-go-server.run.xml |   4 +-
 .run/tracing/grpc/tracing-grpc-go-client.run.xml   |   6 +-
 .run/tracing/grpc/tracing-grpc-go-server.run.xml   |   6 +-
 .../jsonrpc/tracing-jsonrpc-go-client.run.xml      |   4 +-
 .../jsonrpc/tracing-jsonrpc-go-server.run.xml      |   4 +-
 ...erver.run.xml => triple-hessian-client.run.xml} |   6 +-
 .run/triple-msgpack-client.run.xml                 |   2 +-
 .run/triple-msgpack-server.run.xml                 |   2 +-
 .run/triple-server.run.xml                         |  11 -
 .run/triple/triple-codec-extension-client.run.xml  |  15 -
 .run/triple/triple-codec-extension-server.run.xml  |  15 -
 .run/triplego-hessian-server.run.xml               |   6 +-
 README_zh.md                                       |  24 +-
 chain/README.md                                    |  77 ------
 chain/README_zh.md                                 |  80 ------
 chain/backend/cmd/server.go                        |  76 -----
 chain/backend/conf/client.yml                      |  67 -----
 chain/backend/conf/log.yml                         |  27 --
 chain/backend/conf/server.yml                      |  73 -----
 chain/backend/pkg/cat_service.go                   |  51 ----
 chain/backend/pkg/dog_service.go                   |  51 ----
 chain/backend/pkg/lion_service.go                  |  51 ----
 chain/backend/pkg/tiger_service.go                 |  51 ----
 chain/backend/tests/integration/main_test.go       |  94 -------
 chain/backend/tests/integration/services_test.go   |  55 ----
 chain/build/test.sh                                |  48 ----
 chain/docker/docker-compose.yml                    |   9 -
 chain/docker/docker-health-check.sh                |  10 -
 chain/frontend/cmd/client.go                       |  56 ----
 chain/frontend/conf/client.yml                     |  59 ----
 chain/frontend/conf/log.yml                        |  27 --
 chain/frontend/pkg/people.go                       |  36 ---
 chain/middle/cmd/server.go                         |  76 -----
 chain/middle/conf/client.yml                       |  67 -----
 chain/middle/conf/log.yml                          |  27 --
 chain/middle/conf/server.yml                       |  52 ----
 chain/middle/conf/test.yml                         |  59 ----
 chain/middle/pkg/american_service.go               |  78 ------
 chain/middle/pkg/chinese_service.go                |  78 ------
 chain/middle/tests/integration/main_test.go        |  70 -----
 chain/middle/tests/integration/services_test.go    |  46 ---
 docker/Dockerfile                                  |   5 -
 docker/README.md                                   |  49 ----
 docker/README_zh.md                                |  52 ----
 docker/docker_run.sh                               |   5 -
 docker/go-client/cmd/client.go                     |  67 -----
 docker/go-client/conf/client.yml                   |  59 ----
 docker/go-client/conf/log.yml                      |  27 --
 docker/go-client/pkg/user.go                       |  42 ---
 docker/go-server/cmd/server.go                     |  79 ------
 docker/go-server/conf/client.yml                   |  59 ----
 docker/go-server/conf/log.yml                      |  27 --
 docker/go-server/conf/server.yml                   |  55 ----
 docker/go-server/docker/docker-compose.yml         |   9 -
 docker/go-server/docker/docker-health-check.sh     |  10 -
 docker/go-server/pkg/user.go                       |  62 -----
 docker/go-server/tests/integration/main_test.go    |  71 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 filter/custom/README.md                            |  93 -------
 filter/custom/README_zh.md                         |  93 -------
 filter/custom/go-client/cmd/client.go              |  67 -----
 filter/custom/go-client/conf/client.yml            |  59 ----
 filter/custom/go-client/conf/log.yml               |  28 --
 filter/custom/go-client/pkg/user.go                |  42 ---
 filter/custom/go-server/cmd/server.go              |  79 ------
 filter/custom/go-server/conf/client.yml            |  59 ----
 filter/custom/go-server/conf/log.yml               |  28 --
 filter/custom/go-server/conf/server.yml            |  58 ----
 filter/custom/go-server/docker/docker-compose.yml  |   9 -
 .../custom/go-server/docker/docker-health-check.sh |  10 -
 filter/custom/go-server/pkg/custom_filter.go       |  93 -------
 filter/custom/go-server/pkg/user.go                |  62 -----
 .../go-server/tests/integration/main_test.go       |  71 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 filter/sentinel/README.md                          |  48 ----
 filter/sentinel/README_zh.md                       |  48 ----
 filter/sentinel/go-client/cmd/client.go            |  95 -------
 filter/sentinel/go-client/conf/client.yml          |  62 -----
 filter/sentinel/go-client/conf/log.yml             |  28 --
 filter/sentinel/go-client/pkg/user.go              |  42 ---
 filter/sentinel/go-server/cmd/server.go            | 106 -------
 filter/sentinel/go-server/conf/client.yml          |  59 ----
 filter/sentinel/go-server/conf/log.yml             |  28 --
 filter/sentinel/go-server/conf/server.yml          |  58 ----
 .../sentinel/go-server/docker/docker-compose.yml   |   9 -
 .../go-server/docker/docker-health-check.sh        |  10 -
 filter/sentinel/go-server/pkg/user.go              |  62 -----
 .../go-server/tests/integration/main_test.go       |  71 -----
 .../tests/integration/userprovider_test.go         |  43 ---
 filter/tpslimit/README.md                          | 173 ------------
 filter/tpslimit/README_zh.md                       | 173 ------------
 filter/tpslimit/go-client/cmd/client.go            |  65 -----
 filter/tpslimit/go-client/conf/client.yml          |  59 ----
 filter/tpslimit/go-client/conf/log.yml             |  28 --
 filter/tpslimit/go-client/pkg/user.go              |  43 ---
 filter/tpslimit/go-server/cmd/server.go            |  79 ------
 filter/tpslimit/go-server/conf/client.yml          |  59 ----
 filter/tpslimit/go-server/conf/log.yml             |  28 --
 filter/tpslimit/go-server/conf/server.yml          |  60 ----
 .../tpslimit/go-server/docker/docker-compose.yml   |   9 -
 .../go-server/docker/docker-health-check.sh        |  10 -
 filter/tpslimit/go-server/pkg/limit_strategy.go    |  69 -----
 filter/tpslimit/go-server/pkg/reject_handler.go    | 107 -------
 filter/tpslimit/go-server/pkg/user.go              |  62 -----
 .../go-server/tests/integration/main_test.go       |  71 -----
 .../tests/integration/userprovider_test.go         |  50 ----
 game/README.md                                     | 302 --------------------
 game/README_zh.md                                  | 307 ---------------------
 game/go-server-game/cmd/server.go                  |  82 ------
 game/go-server-game/conf/client.yml                |  67 -----
 game/go-server-game/conf/log.yml                   |  27 --
 game/go-server-game/conf/server.yml                |  71 -----
 game/go-server-game/docker/docker-compose.yml      |   9 -
 game/go-server-game/docker/docker-health-check.sh  |  10 -
 game/go-server-game/pkg/consumer.go                |  24 --
 game/go-server-game/pkg/provider.go                | 127 ---------
 .../tests/integration/gameprovider_test.go         |  51 ----
 game/go-server-game/tests/integration/main_test.go |  55 ----
 game/go-server-gate/cmd/server.go                  | 156 -----------
 game/go-server-gate/conf/client.yml                |  75 -----
 game/go-server-gate/conf/log.yml                   |  27 --
 game/go-server-gate/conf/server.yml                |  64 -----
 game/go-server-gate/docker/docker-compose.yml      |   9 -
 game/go-server-gate/docker/docker-health-check.sh  |  10 -
 game/go-server-gate/pkg/consumer.go                |  45 ---
 game/go-server-gate/pkg/provider.go                |  41 ---
 .../tests/integration/gateprovider_test.go         |  37 ---
 game/go-server-gate/tests/integration/main_test.go |  55 ----
 game/pkg/consumer/game/basketball.go               |  36 ---
 game/pkg/consumer/gate/basketball.go               |  34 ---
 game/pkg/pojo/info.go                              |  27 --
 game/pkg/pojo/result.go                            |  32 ---
 game/website/css/style.css                         |  54 ----
 game/website/img/bac.png                           | Bin 313830 -> 0 bytes
 game/website/index.html                            |  56 ----
 game/website/js/api.js                             |  64 -----
 game/website/js/index.js                           | 130 ---------
 go.mod                                             |   7 -
 go.sum                                             |  95 -------
 group/README.md                                    |  36 ---
 group/README_zh.md                                 |  36 ---
 group/go-client/cmd/client.go                      |  78 ------
 group/go-client/conf/client.yml                    |  69 -----
 group/go-client/conf/log.yml                       |  27 --
 group/go-client/pkg/user.go                        |  50 ----
 group/go-server-group-a/cmd/server.go              |  79 ------
 group/go-server-group-a/conf/client.yml            |  60 ----
 group/go-server-group-a/conf/log.yml               |  27 --
 group/go-server-group-a/conf/server.yml            |  55 ----
 group/go-server-group-a/docker/docker-compose.yml  |   9 -
 .../docker/docker-health-check.sh                  |  10 -
 group/go-server-group-a/pkg/user.go                |  62 -----
 .../tests/integration/main_test.go                 |  71 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 group/go-server-group-b/cmd/server.go              |  79 ------
 group/go-server-group-b/conf/client.yml            |  60 ----
 group/go-server-group-b/conf/log.yml               |  27 --
 group/go-server-group-b/conf/server.yml            |  55 ----
 group/go-server-group-b/docker/docker-compose.yml  |   9 -
 .../docker/docker-health-check.sh                  |  10 -
 group/go-server-group-b/pkg/user.go                |  62 -----
 .../tests/integration/main_test.go                 |  71 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 metric/README.md                                   |  39 ---
 metric/README_zh.md                                |  39 ---
 metric/go-client/cmd/client.go                     |  70 -----
 metric/go-client/conf/client.yml                   |  59 ----
 metric/go-client/conf/log.yml                      |  28 --
 metric/go-client/pkg/user.go                       |  42 ---
 metric/go-server/cmd/server.go                     |  89 ------
 metric/go-server/conf/client.yml                   |  59 ----
 metric/go-server/conf/log.yml                      |  28 --
 metric/go-server/conf/server.yml                   |  61 ----
 metric/go-server/docker/config/prometheus.yml      |  18 --
 metric/go-server/docker/docker-compose.yml         |  41 ---
 metric/go-server/docker/docker-health-check.sh     |  10 -
 metric/go-server/pkg/user.go                       |  68 -----
 metric/go-server/tests/integration/main_test.go    |  71 -----
 .../tests/integration/userprovider_test.go         |  48 ----
 multi-registry/README.md                           |  35 ---
 multi-registry/README_zh.md                        |  36 ---
 multi-registry/go-client/cmd/client.go             |  67 -----
 multi-registry/go-client/conf/client.yml           |  61 ----
 multi-registry/go-client/conf/log.yml              |  28 --
 multi-registry/go-client/pkg/user.go               |  42 ---
 multi-registry/go-server/cmd/server.go             |  80 ------
 multi-registry/go-server/conf/client.yml           |  61 ----
 multi-registry/go-server/conf/log.yml              |  28 --
 multi-registry/go-server/conf/server.yml           |  59 ----
 multi-registry/go-server/docker/docker-compose.yml |  28 --
 .../go-server/docker/docker-health-check.sh        |  14 -
 multi-registry/go-server/pkg/user.go               |  62 -----
 .../go-server/tests/integration/main_test.go       |  71 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 multi-zone/README.md                               |  42 ---
 multi-zone/build/test.sh                           |  47 ----
 multi-zone/docker/docker-compose.yml               |  13 -
 multi-zone/docker/docker-health-check.sh           |  18 --
 multi-zone/go-client/cmd/client.go                 |  83 ------
 multi-zone/go-client/conf/client.yml               |  68 -----
 multi-zone/go-client/conf/log.yml                  |  28 --
 multi-zone/go-client/pkg/user.go                   |  42 ---
 .../go-client/tests/integration/main_test.go       |  54 ----
 .../tests/integration/userprovider_test.go         |  58 ----
 multi-zone/go-server-hz/cmd/server.go              |  79 ------
 multi-zone/go-server-hz/conf/client.yml            |  61 ----
 multi-zone/go-server-hz/conf/log.yml               |  28 --
 multi-zone/go-server-hz/conf/server.yml            |  56 ----
 multi-zone/go-server-hz/pkg/user.go                |  63 -----
 .../go-server-hz/tests/integration/main_test.go    |  71 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 multi-zone/go-server-sh/cmd/server.go              |  79 ------
 multi-zone/go-server-sh/conf/client.yml            |  61 ----
 multi-zone/go-server-sh/conf/log.yml               |  28 --
 multi-zone/go-server-sh/conf/server.yml            |  56 ----
 multi-zone/go-server-sh/pkg/user.go                |  63 -----
 .../go-server-sh/tests/integration/main_test.go    |  71 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 registry/etcd/go-client/cmd/client.go              |   2 +
 registry/etcd/go-client/conf/log.yml               |  27 --
 registry/etcd/go-server/conf/log.yml               |  27 --
 registry/kubernetes/README.md                      |  29 --
 registry/kubernetes/client.yaml                    |  15 -
 registry/kubernetes/role-binding.yaml              |  11 -
 registry/kubernetes/role.yaml                      |   8 -
 registry/kubernetes/sa.yaml                        |   4 -
 registry/kubernetes/server.yaml                    |  23 --
 .../etcd/docker/docker-compose.yml                 |  26 --
 registry/servicediscovery/etcd/go-client/README.md |  93 -------
 .../servicediscovery/etcd/go-client/README_zh.md   |  93 -------
 .../servicediscovery/etcd/go-client/cmd/client.go  |  64 -----
 .../etcd/go-client/conf/dubbogo.yaml               |  40 ---
 .../servicediscovery/etcd/go-client/conf/log.yml   |  27 --
 .../servicediscovery/etcd/go-client/pkg/user.go    |  42 ---
 .../servicediscovery/etcd/go-server/cmd/server.go  |  74 -----
 .../etcd/go-server/conf/dubbogo.yaml               |  47 ----
 .../servicediscovery/etcd/go-server/conf/log.yml   |  27 --
 .../servicediscovery/etcd/go-server/pkg/user.go    |  62 -----
 .../etcd/go-server/tests/integration/main_test.go  |  75 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 .../nacos/docker/docker-compose.yml                |  21 --
 .../nacos/docker/docker-health-check.sh            |   3 -
 registry/servicediscovery/nacos/go-client/FIXME.md |  40 ---
 .../servicediscovery/nacos/go-client/cmd/client.go |  65 -----
 .../nacos/go-client/conf/dubbogo.yaml              |  41 ---
 .../servicediscovery/nacos/go-client/pkg/user.go   |  42 ---
 .../servicediscovery/nacos/go-server/cmd/server.go |  74 -----
 .../nacos/go-server/conf/dubbogo.yaml              |  40 ---
 .../servicediscovery/nacos/go-server/pkg/user.go   |  62 -----
 .../nacos/go-server/tests/integration/main_test.go |  76 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 .../servicediscovery/zookeeper/go-client/FIXME.md  |  40 ---
 .../zookeeper/go-client/cmd/client.go              |  74 -----
 .../zookeeper/go-client/conf/client.yml            |  78 ------
 .../zookeeper/go-client/conf/log.yml               |  27 --
 .../zookeeper/go-client/conf/server.yml            |  33 ---
 .../zookeeper/go-client/pkg/user.go                |  42 ---
 .../zookeeper/go-server/cmd/server.go              |  85 ------
 .../zookeeper/go-server/conf/client.yml            |  78 ------
 .../zookeeper/go-server/conf/log.yml               |  27 --
 .../zookeeper/go-server/conf/server.yml            |  76 -----
 .../zookeeper/go-server/docker/docker-compose.yml  |   8 -
 .../go-server/docker/docker-health-check.sh        |  10 -
 .../zookeeper/go-server/pkg/user.go                |  62 -----
 .../go-server/tests/integration/main_test.go       |  76 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 .../servicediscovery/zookeeper/java-client/pom.xml | 115 --------
 .../servicediscovery/zookeeper/java-client/run.sh  |   2 -
 .../main/java/org/apache/dubbo/Application.java    |  37 ---
 .../src/main/java/org/apache/dubbo/User.java       |  79 ------
 .../main/java/org/apache/dubbo/UserProvider.java   |  24 --
 .../src/main/resources/dubbo.properties            |   1 -
 .../src/main/resources/log4j.properties            |   7 -
 .../src/main/resources/spring/dubbo-consumer.xml   |  33 ---
 .../servicediscovery/zookeeper/java-server/pom.xml | 122 --------
 .../servicediscovery/zookeeper/java-server/run.sh  |   2 -
 .../main/java/org/apache/dubbo/Application.java    |  31 ---
 .../src/main/java/org/apache/dubbo/User.java       |  79 ------
 .../main/java/org/apache/dubbo/UserProvider.java   |  24 --
 .../java/org/apache/dubbo/UserProviderImpl.java    |  32 ---
 .../src/main/resources/dubbo.properties            |   1 -
 .../src/main/resources/log4j.properties            |   7 -
 .../src/main/resources/spring/dubbo-provider.xml   |  38 ---
 router/uniform-router/README.md                    |  31 ---
 router/uniform-router/README_zh.md                 |  31 ---
 router/uniform-router/file/README.md               |  97 -------
 router/uniform-router/file/README_zh.md            | 105 -------
 router/uniform-router/file/go-client/cmd/client.go |  73 -----
 .../uniform-router/file/go-client/conf/client.yml  |  27 --
 .../file/go-client/conf/dest_rule.yml              |  11 -
 router/uniform-router/file/go-client/conf/log.yml  |  27 --
 .../file/go-client/conf/virtual_service.yml        |  22 --
 router/uniform-router/file/go-client/pkg/user.go   |  42 ---
 router/uniform-router/file/go-server/cmd/server.go |  80 ------
 .../uniform-router/file/go-server/conf/client.yml  |  28 --
 .../file/go-server/conf/dest_rule.yml              |  11 -
 router/uniform-router/file/go-server/conf/log.yml  |  27 --
 .../uniform-router/file/go-server/conf/server.yml  |  37 ---
 .../file/go-server/conf/virtual_service.yml        |  22 --
 .../file/go-server/docker/docker-compose.yml       |   9 -
 .../file/go-server/docker/docker-health-check.sh   |  10 -
 router/uniform-router/file/go-server/pkg/user.go   |  62 -----
 .../file/go-server/tests/integration/main_test.go  |  73 -----
 .../tests/integration/userprovider_test.go         |  39 ---
 .../uniform-router/file/go-server2/cmd/server.go   |  80 ------
 .../uniform-router/file/go-server2/conf/client.yml |  28 --
 .../file/go-server2/conf/dest_rule.yml             |  11 -
 router/uniform-router/file/go-server2/conf/log.yml |  27 --
 .../uniform-router/file/go-server2/conf/server.yml |  37 ---
 .../file/go-server2/conf/virtual_service.yml       |  22 --
 .../file/go-server2/docker/docker-compose.yml      |   9 -
 .../file/go-server2/docker/docker-health-check.sh  |  10 -
 router/uniform-router/file/go-server2/pkg/user.go  |  62 -----
 .../file/go-server2/tests/integration/main_test.go |  73 -----
 .../tests/integration/userprovider_test.go         |  35 ---
 router/uniform-router/k8s/README.md                |  39 ---
 router/uniform-router/k8s/README_zh.md             |  39 ---
 router/uniform-router/k8s/build.sh                 |  26 --
 router/uniform-router/k8s/deploy/client.yml        |  21 --
 router/uniform-router/k8s/deploy/crd.yml           |  43 ---
 router/uniform-router/k8s/deploy/server.yml        |  21 --
 router/uniform-router/k8s/deploy/server2.yml       |  21 --
 router/uniform-router/k8s/deploy/zk.yml            |  36 ---
 router/uniform-router/k8s/go-client/Dockerfile     |  10 -
 router/uniform-router/k8s/go-client/cmd/client.go  |  74 -----
 .../uniform-router/k8s/go-client/conf/client.yml   |  24 --
 .../k8s/go-client/conf/dest_rule.yml               |  11 -
 router/uniform-router/k8s/go-client/conf/log.yml   |  27 --
 .../k8s/go-client/conf/virtual_service.yml         |  18 --
 router/uniform-router/k8s/go-client/pkg/user.go    |  42 ---
 router/uniform-router/k8s/go-server/Dockerfile     |   8 -
 router/uniform-router/k8s/go-server/cmd/server.go  |  80 ------
 .../uniform-router/k8s/go-server/conf/client.yml   |  59 ----
 router/uniform-router/k8s/go-server/conf/log.yml   |  27 --
 .../uniform-router/k8s/go-server/conf/server.yml   |  37 ---
 .../k8s/go-server/docker/docker-compose.yml        |   9 -
 .../k8s/go-server/docker/docker-health-check.sh    |  10 -
 router/uniform-router/k8s/go-server/pkg/user.go    |  62 -----
 .../k8s/go-server/tests/integration/main_test.go   |  70 -----
 .../tests/integration/userprovider_test.go         |  35 ---
 router/uniform-router/k8s/go-server2/Dockerfile    |   8 -
 router/uniform-router/k8s/go-server2/cmd/server.go |  80 ------
 .../uniform-router/k8s/go-server2/conf/client.yml  |  59 ----
 router/uniform-router/k8s/go-server2/conf/log.yml  |  27 --
 .../uniform-router/k8s/go-server2/conf/server.yml  |  37 ---
 .../k8s/go-server2/docker/docker-compose.yml       |   9 -
 .../k8s/go-server2/docker/docker-health-check.sh   |  10 -
 router/uniform-router/k8s/go-server2/pkg/user.go   |  62 -----
 .../k8s/go-server2/tests/integration/main_test.go  |  70 -----
 .../tests/integration/userprovider_test.go         |  35 ---
 rpc/rest/README.md                                 |  95 -------
 rpc/rest/README_zh.md                              |  97 -------
 rpc/rest/go-client/cmd/client.go                   | 209 --------------
 rpc/rest/go-client/cmd/version.go                  |  22 --
 rpc/rest/go-client/conf/client.yml                 | 108 --------
 rpc/rest/go-client/conf/log.yml                    |  28 --
 rpc/rest/go-client/docker/docker-compose.yml       |   9 -
 rpc/rest/go-client/pkg/user.go                     |  97 -------
 rpc/rest/go-server/cmd/server.go                   |  92 ------
 rpc/rest/go-server/cmd/version.go                  |  22 --
 rpc/rest/go-server/conf/log.yml                    |  28 --
 rpc/rest/go-server/conf/server.yml                 | 121 --------
 rpc/rest/go-server/docker/docker-compose.yml       |   9 -
 rpc/rest/go-server/pkg/user.go                     |  73 -----
 rpc/rest/go-server/pkg/user_provider.go            | 105 -------
 rpc/rest/go-server/pkg/user_provider1.go           |  95 -------
 rpc/rest/go-server/pkg/user_provider2.go           | 105 -------
 seata/client/README.md                             |  12 -
 seata/client/app/client.go                         |  99 -------
 seata/client/app/svc/svc.go                        | 154 -----------
 seata/client/app/version.go                        |  22 --
 seata/client/assembly/bin/load.sh                  | 204 --------------
 seata/client/assembly/common/app.properties        |  24 --
 seata/client/assembly/common/build.sh              |  83 ------
 seata/client/assembly/linux/dev.sh                 |  36 ---
 seata/client/assembly/linux/release.sh             |  35 ---
 seata/client/assembly/linux/test.sh                |  35 ---
 seata/client/assembly/mac/dev.sh                   |  36 ---
 seata/client/assembly/mac/release.sh               |  34 ---
 seata/client/assembly/mac/test.sh                  |  34 ---
 seata/client/assembly/windows/dev.sh               |  34 ---
 seata/client/assembly/windows/release.sh           |  34 ---
 seata/client/assembly/windows/test.sh              |  34 ---
 seata/client/profiles/dev/client.yml               |  65 -----
 seata/client/profiles/dev/log.yml                  |  28 --
 seata/client/profiles/dev/seata.yml                |  25 --
 seata/client/profiles/release/client.yml           |  51 ----
 seata/client/profiles/release/log.yml              |  28 --
 seata/client/profiles/release/seata.yml            |  27 --
 seata/client/profiles/test/client.yml              |  50 ----
 seata/client/profiles/test/log.yml                 |  28 --
 seata/docker/docker-compose.yml                    |  32 ---
 seata/filter/seata_filter.go                       |  60 ----
 seata/order-svc/README.md                          |  18 --
 seata/order-svc/app/dao/dao.go                     | 149 ----------
 seata/order-svc/app/order_svc.go                   |  56 ----
 seata/order-svc/app/server.go                      | 112 --------
 seata/order-svc/app/version.go                     |  22 --
 seata/order-svc/assembly/bin/load.sh               | 152 ----------
 seata/order-svc/assembly/common/app.properties     |  24 --
 seata/order-svc/assembly/common/build.sh           |  82 ------
 seata/order-svc/assembly/linux/dev.sh              |  36 ---
 seata/order-svc/assembly/linux/release.sh          |  36 ---
 seata/order-svc/assembly/linux/test.sh             |  36 ---
 seata/order-svc/assembly/mac/dev.sh                |  36 ---
 seata/order-svc/assembly/mac/release.sh            |  36 ---
 seata/order-svc/assembly/mac/test.sh               |  36 ---
 seata/order-svc/assembly/windows/dev.sh            |  36 ---
 seata/order-svc/assembly/windows/release.sh        |  36 ---
 seata/order-svc/assembly/windows/test.sh           |  36 ---
 seata/order-svc/profiles/dev/log.yml               |  28 --
 seata/order-svc/profiles/dev/seata.yml             |  29 --
 seata/order-svc/profiles/dev/server.yml            |  57 ----
 seata/order-svc/profiles/release/log.yml           |  28 --
 seata/order-svc/profiles/release/seata.yml         |  30 --
 seata/order-svc/profiles/release/server.yml        |  60 ----
 seata/order-svc/profiles/test/log.yml              |  28 --
 seata/order-svc/profiles/test/server.yml           |  58 ----
 seata/product-svc/README.md                        |  18 --
 seata/product-svc/app/dao/dao.go                   |  76 -----
 seata/product-svc/app/product_svc.go               |  56 ----
 seata/product-svc/app/server.go                    | 113 --------
 seata/product-svc/app/version.go                   |  22 --
 seata/product-svc/assembly/bin/load.sh             | 152 ----------
 seata/product-svc/assembly/common/app.properties   |  24 --
 seata/product-svc/assembly/common/build.sh         |  82 ------
 seata/product-svc/assembly/linux/dev.sh            |  36 ---
 seata/product-svc/assembly/linux/release.sh        |  36 ---
 seata/product-svc/assembly/linux/test.sh           |  36 ---
 seata/product-svc/assembly/mac/dev.sh              |  36 ---
 seata/product-svc/assembly/mac/release.sh          |  36 ---
 seata/product-svc/assembly/mac/test.sh             |  36 ---
 seata/product-svc/assembly/windows/dev.sh          |  36 ---
 seata/product-svc/assembly/windows/release.sh      |  36 ---
 seata/product-svc/assembly/windows/test.sh         |  36 ---
 seata/product-svc/profiles/dev/log.yml             |  28 --
 seata/product-svc/profiles/dev/seata.yml           |  31 ---
 seata/product-svc/profiles/dev/server.yml          |  57 ----
 seata/product-svc/profiles/release/log.yml         |  28 --
 seata/product-svc/profiles/release/seata.yml       |  31 ---
 seata/product-svc/profiles/release/server.yml      |  60 ----
 seata/product-svc/profiles/test/log.yml            |  28 --
 seata/product-svc/profiles/test/server.yml         |  58 ----
 seata/scripts/seata_order.sql                      | 103 -------
 seata/scripts/seata_product.sql                    | 112 --------
 shop/README.md                                     |  44 ---
 shop/dubbo/go-service-order/app/order.go           |  72 -----
 shop/dubbo/go-service-order/app/product.go         |  56 ----
 shop/dubbo/go-service-order/app/service.go         |  75 -----
 shop/dubbo/go-service-order/app/version.go         |  30 --
 shop/dubbo/go-service-order/profiles/client.yml    |  65 -----
 shop/dubbo/go-service-order/profiles/log.yml       |  28 --
 shop/dubbo/go-service-order/profiles/server.yml    |  58 ----
 shop/dubbo/go-service-product/app/product.go       |  65 -----
 shop/dubbo/go-service-product/app/service.go       |  74 -----
 shop/dubbo/go-service-product/app/version.go       |  22 --
 shop/dubbo/go-service-product/profiles/log.yml     |  28 --
 shop/dubbo/go-service-product/profiles/server.yml  |  58 ----
 shop/dubbo/go-service-user/app/order.go            |  65 -----
 shop/dubbo/go-service-user/app/service.go          |  88 ------
 shop/dubbo/go-service-user/app/version.go          |  22 --
 shop/dubbo/go-service-user/profiles/client.yml     |  61 ----
 shop/dubbo/go-service-user/profiles/log.yml        |  28 --
 start_integrate_test.sh                            |  76 +----
 tengine/README.md                                  | 165 -----------
 tengine/README_zh.md                               | 162 -----------
 tengine/go-server/cmd/server.go                    |  78 ------
 tengine/go-server/conf/client.yml                  |  61 ----
 tengine/go-server/conf/log.yml                     |  27 --
 tengine/go-server/conf/server.yml                  |  54 ----
 tengine/go-server/docker/docker-compose.yml        |  20 --
 tengine/go-server/docker/docker-health-check.sh    |  10 -
 tengine/go-server/docker/tengine/nginx.conf        |  35 ---
 tengine/go-server/pkg/user.go                      |  55 ----
 tls/README.md                                      |  61 ----
 tls/README_zh.md                                   |  64 -----
 tls/certs/ca.key                                   |  16 --
 tls/certs/ca.pem                                   |  15 -
 tls/certs/client.key                               |  16 --
 tls/certs/client.pem                               |  18 --
 tls/certs/server.key                               |  16 --
 tls/certs/server.pem                               |  18 --
 tls/go-client/cmd/client.go                        | 110 --------
 tls/go-client/conf/client.yml                      |  61 ----
 tls/go-client/conf/log.yml                         |  27 --
 tls/go-client/pkg/user.go                          |  42 ---
 tls/go-server/cmd/server.go                        | 100 -------
 tls/go-server/conf/log.yml                         |  28 --
 tls/go-server/conf/server.yml                      |  57 ----
 tls/go-server/pkg/user.go                          |  62 -----
 tracing/dubbo/go-client/cmd/client.go              |   6 +-
 tracing/dubbo/go-server/cmd/server.go              |   6 +-
 tracing/grpc/go-client/cmd/client.go               |   6 +-
 tracing/grpc/go-server/cmd/server.go               |   6 +-
 tracing/jsonrpc/go-client/cmd/client.go            |   6 +-
 tracing/jsonrpc/go-server/cmd/server.go            |   6 +-
 590 files changed, 186 insertions(+), 25189 deletions(-)

diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml
index 686ce59..61e691f 100644
--- a/.github/workflows/github-actions.yml
+++ b/.github/workflows/github-actions.yml
@@ -2,7 +2,7 @@ name: CI
 
 on:
   push:
-    branches: [master, develop, 3.0, config-enhance]
+    branches: [master, develop]
   pull_request:
     branches: "*"
 
diff --git a/.run/api-triple-client.run.xml b/.run/api-triple-client.run.xml
index e27e5fe..1ba3d37 100644
--- a/.run/api-triple-client.run.xml
+++ b/.run/api-triple-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="api-triple-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-config-api">
+  <configuration default="false" name="api-triple-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="config-api">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <kind value="PACKAGE" />
diff --git a/.run/api-triple-server.run.xml b/.run/api-triple-server.run.xml
index d502f11..668c45d 100644
--- a/.run/api-triple-server.run.xml
+++ b/.run/api-triple-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="api-triple-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-config-api">
+  <configuration default="false" name="api-triple-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="config-api">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <kind value="PACKAGE" />
diff --git a/.run/async-client.run.xml b/.run/async-client.run.xml
deleted file mode 100644
index 3c6f9af..0000000
--- a/.run/async-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="async-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/async/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/async/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/async/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/async/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/async-server.run.xml b/.run/async-server.run.xml
deleted file mode 100644
index defee45..0000000
--- a/.run/async-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="async-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/async/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/async/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/async/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/async/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/async-test.run.xml b/.run/async-test.run.xml
deleted file mode 100644
index 4a3e434..0000000
--- a/.run/async-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="async-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/async" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/async/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/attachment-go-client.run.xml b/.run/attachment-go-client.run.xml
deleted file mode 100644
index 60a5eda..0000000
--- a/.run/attachment-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="attachment-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/attachment/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/attachment/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/attachment/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/attachment/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/attachment-go-server.run.xml b/.run/attachment-go-server.run.xml
deleted file mode 100644
index 5cff0ce..0000000
--- a/.run/attachment-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="attachment-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/attachment/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/attachment/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/attachment/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/attachment/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/chain-backend-server.run.xml b/.run/chain-backend-server.run.xml
deleted file mode 100644
index dc6e278..0000000
--- a/.run/chain-backend-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="chain-backend-server" type="GoApplicationRunConfiguration" factoryName="Go Application">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/chain" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="backend/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="backend/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/chain/backend/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/chain/backend/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/chain-backend-test.run.xml b/.run/chain-backend-test.run.xml
deleted file mode 100644
index e77f98a..0000000
--- a/.run/chain-backend-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="chain-backend-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/chain" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="backend/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="backend/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/chain/backend/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/chain-frontend-client.run.xml b/.run/chain-frontend-client.run.xml
deleted file mode 100644
index f6166eb..0000000
--- a/.run/chain-frontend-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="chain-frontend-client" type="GoApplicationRunConfiguration" factoryName="Go Application">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/chain" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="frontend/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="frontend/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/chain/frontend/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/chain/frontend/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/chain-middle-server.run.xml b/.run/chain-middle-server.run.xml
deleted file mode 100644
index 4db578e..0000000
--- a/.run/chain-middle-server.run.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="chain-middle-server" type="GoApplicationRunConfiguration" factoryName="Go Application">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/chain" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="middle/conf/server.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="middle/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="middle/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/chain/middle/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/chain/middle/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/chain-middle-test.run.xml b/.run/chain-middle-test.run.xml
deleted file mode 100644
index 8a5eeb5..0000000
--- a/.run/chain-middle-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="chain-middle-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/chain" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="middle/conf/test.yml" />
-      <env name="APP_LOG_CONF_FILE" value="middle/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/chain/middle/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/config-api-client.run.xml b/.run/config-api-client.run.xml
index 6e81484..6eb655d 100644
--- a/.run/config-api-client.run.xml
+++ b/.run/config-api-client.run.xml
@@ -1,9 +1,9 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="api-config-center-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-config-api" singleton="true">
+  <configuration default="false" name="api-config-center-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="config-api" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/config-api/configcenter/go-client/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/config-api/configcenter/nacos/go-client/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/config-api/go-client/cmd/client.go" />
     <method v="2" />
diff --git a/.run/config-api-server.run.xml b/.run/config-api-server.run.xml
index 8c8081a..8f97bac 100644
--- a/.run/config-api-server.run.xml
+++ b/.run/config-api-server.run.xml
@@ -1,9 +1,9 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="api-config-center-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-config-api" singleton="true">
+  <configuration default="false" name="api-config-center-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="config-api" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/config-api/configcenter/go-server/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/config-api/configcenter/nacos/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/config-api/go-server/cmd/server.go" />
     <method v="2" />
diff --git a/.run/config-api-test.run.xml b/.run/config-api-test.run.xml
deleted file mode 100644
index 87369f7..0000000
--- a/.run/config-api-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="config-api-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/config-api" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/config-api/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/configcenter/configcenter-nacos-client.run.xml b/.run/configcenter-zk-client.run.xml
similarity index 63%
copy from .run/configcenter/configcenter-nacos-client.run.xml
copy to .run/configcenter-zk-client.run.xml
index 4ddc91b..118be72 100644
--- a/.run/configcenter/configcenter-nacos-client.run.xml
+++ b/.run/configcenter-zk-client.run.xml
@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-nacos-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter" singleton="true">
+  <configuration default="false" name="configcenter-zk-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="configcenter">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/nacos/go-client/conf/dubbogo.yml" />
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/zookeeper/go-client/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/configcenter/nacos/go-client/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/configcenter/zookeeper/go-client/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/configcenter/nacos/go-client/cmd/client.go" />
     <method v="2" />
diff --git a/.run/configcenter/configcenter-nacos-server.run.xml b/.run/configcenter-zk-server.run.xml
similarity index 65%
copy from .run/configcenter/configcenter-nacos-server.run.xml
copy to .run/configcenter-zk-server.run.xml
index ac3335c..d275c1b 100644
--- a/.run/configcenter/configcenter-nacos-server.run.xml
+++ b/.run/configcenter-zk-server.run.xml
@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-nacos-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter">
+  <configuration default="false" name="configcenter-zk-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="configcenter">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/nacos/go-server/conf/dubbogo.yml" />
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/zookeeper/go-server/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/configcenter/nacos/go-server/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/configcenter/zookeeper/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/configcenter/nacos/go-server/cmd/server.go" />
     <method v="2" />
diff --git a/.run/configcenter/configcenter-apollo-client.run.xml b/.run/configcenter/configcenter-apollo-client.run.xml
index f6fdc16..c104d20 100644
--- a/.run/configcenter/configcenter-apollo-client.run.xml
+++ b/.run/configcenter/configcenter-apollo-client.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="configcenter-apollo-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter" singleton="true">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$/configcenter/apollo/go-client" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-client/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-client/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <filePath value="$PROJECT_DIR$/configcenter/apollo/go-client/cmd/client.go" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="configcenter-apollo-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="configcenter" singleton="true">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$/configcenter/apollo/go-client" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-client/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-client/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/configcenter/apollo/go-client/cmd/client.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/configcenter/configcenter-apollo-server.run.xml b/.run/configcenter/configcenter-apollo-server.run.xml
index de38711..f7e42f6 100644
--- a/.run/configcenter/configcenter-apollo-server.run.xml
+++ b/.run/configcenter/configcenter-apollo-server.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="configcenter-apollo-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter" singleton="true">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$/configcenter/apollo/go-server" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-server/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-server/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <filePath value="$PROJECT_DIR$/configcenter/apollo/go-client/cmd/server.go" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="configcenter-apollo-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="configcenter" singleton="true">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$/configcenter/apollo/go-server" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-server/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/configcenter/apollo/go-server/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/configcenter/apollo/go-client/cmd/server.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/configcenter/configcenter-apollo-test.run.xml b/.run/configcenter/configcenter-apollo-test.run.xml
deleted file mode 100644
index 1bfcf2b..0000000
--- a/.run/configcenter/configcenter-apollo-test.run.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-apollo-test" type="GoTestRunConfiguration" factoryName="Go Test" >
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/integrate_test/configcenter/apollo" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/configcenter/apollo/go-server/conf/dubbogo.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/integrate_test/configcenter/apollo/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/configcenter/configcenter-nacos-client.run.xml b/.run/configcenter/configcenter-nacos-client.run.xml
index 4ddc91b..db8036b 100644
--- a/.run/configcenter/configcenter-nacos-client.run.xml
+++ b/.run/configcenter/configcenter-nacos-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-nacos-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter" singleton="true">
+  <configuration default="false" name="configcenter-nacos-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="configcenter" singleton="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/configcenter/configcenter-nacos-server.run.xml b/.run/configcenter/configcenter-nacos-server.run.xml
index ac3335c..c79be08 100644
--- a/.run/configcenter/configcenter-nacos-server.run.xml
+++ b/.run/configcenter/configcenter-nacos-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-nacos-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-configcenter">
+  <configuration default="false" name="configcenter-nacos-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="configcenter">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/configcenter/configcenter-nacos-test.run.xml b/.run/configcenter/configcenter-nacos-test.run.xml
deleted file mode 100644
index abe59ab..0000000
--- a/.run/configcenter/configcenter-nacos-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-nacos-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/configcenter/nacos" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/configcenter/nacos/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/configcenter/configcenter-zookeeper-client.run.xml b/.run/configcenter/configcenter-zookeeper-client.run.xml
deleted file mode 100644
index 8900fb4..0000000
--- a/.run/configcenter/configcenter-zookeeper-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-zookeeper-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-        <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/configcenter/zookeeper/go-client/conf/log.yml" />
-        <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/configcenter/zookeeper/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/configcenter/zookeeper/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/configcenter/zookeeper/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/configcenter/configcenter-zookeeper-server.run.xml b/.run/configcenter/configcenter-zookeeper-server.run.xml
deleted file mode 100644
index e6083e5..0000000
--- a/.run/configcenter/configcenter-zookeeper-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-zookeeper-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-        <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/configcenter/zookeeper/go-server/conf/server.yml" />
-        <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/configcenter/zookeeper/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/configcenter/zookeeper/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/configcenter/zookeeper/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/configcenter/configcenter-zookeeper-test.run.xml b/.run/configcenter/configcenter-zookeeper-test.run.xml
deleted file mode 100644
index 0eba551..0000000
--- a/.run/configcenter/configcenter-zookeeper-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="configcenter-zookeeper-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/configcenter/zookeeper" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/configcenter/zookeeper/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/context-dubbo-client.run.xml b/.run/context-dubbo-client.run.xml
index 773db5b..ba139fa 100644
--- a/.run/context-dubbo-client.run.xml
+++ b/.run/context-dubbo-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="context-dubbo-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-context" singleton="false">
+  <configuration default="false" name="context-dubbo-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="context" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/context-dubbo-server.run.xml b/.run/context-dubbo-server.run.xml
index 4a879ca..3bf6451 100644
--- a/.run/context-dubbo-server.run.xml
+++ b/.run/context-dubbo-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="context-dubbo-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-context" singleton="false">
+  <configuration default="false" name="context-dubbo-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="context" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/context-test.run.xml b/.run/context-test.run.xml
deleted file mode 100644
index a3e85c4..0000000
--- a/.run/context-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="context-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/context" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/context/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/context-triple-client.run.xml b/.run/context-triple-client.run.xml
index b810a6b..9ea6b92 100644
--- a/.run/context-triple-client.run.xml
+++ b/.run/context-triple-client.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="context-triple-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-context">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/context/triple/go-client/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <package value="github.com/apache/dubbo-go-samples/context/triple/go-client/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <filePath value="$PROJECT_DIR$/helloworld/go-client/cmd/client.go" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="context-triple-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="context">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/context/triple/go-client/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/context/triple/go-client/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/helloworld/go-client/cmd/client.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/context-triple-server.run.xml b/.run/context-triple-server.run.xml
index 460e176..f92fa20 100644
--- a/.run/context-triple-server.run.xml
+++ b/.run/context-triple-server.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="context-triple-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-context">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/context/triple/go-server/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <package value="github.com/apache/dubbo-go-samples/context/triple/go-server/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <filePath value="$PROJECT_DIR$/helloworld/go-client/cmd/client.go" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="context-triple-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="context">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/context/triple/go-server/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/context/triple/go-server/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/helloworld/go-client/cmd/client.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/direct-go-client.run.xml b/.run/direct-go-client.run.xml
deleted file mode 100644
index b248033..0000000
--- a/.run/direct-go-client.run.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="direct-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="true">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/direct/go-client/conf/dubbogo.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/direct/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$/direct/go-client/cmd/client.go" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/docker-client.run.xml b/.run/docker-client.run.xml
deleted file mode 100644
index 68606cf..0000000
--- a/.run/docker-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="docker-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/docker/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/docker/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/docker/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/docker/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/docker-server.run.xml b/.run/docker-server.run.xml
deleted file mode 100644
index 071d0a5..0000000
--- a/.run/docker-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="docker-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/docker/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/docker/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/docker/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/docker/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/docker-test.run.xml b/.run/docker-test.run.xml
deleted file mode 100644
index 73f2171..0000000
--- a/.run/docker-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="docker-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/docker" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/docker/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/rpc/dubbo/rpc-dubbo-go-client.run.xml b/.run/dubbo-go-server.run.xml
similarity index 66%
copy from .run/rpc/dubbo/rpc-dubbo-go-client.run.xml
copy to .run/dubbo-go-server.run.xml
index 0327b87..be199fe 100644
--- a/.run/rpc/dubbo/rpc-dubbo-go-client.run.xml
+++ b/.run/dubbo-go-server.run.xml
@@ -1,13 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="rpc-dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application">
+  <configuration default="false" name="dubbo-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/dubbo">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/dubbo/go-client/conf/dubbogo.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/rpc/dubbo/go-client/conf/log.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/rpc/dubbo/go-client/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/rpc/dubbo/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/rpc/dubbo/go-client/cmd/client.go" />
     <method v="2" />
diff --git a/.run/filter-custom-client.run.xml b/.run/filter-custom-client.run.xml
deleted file mode 100644
index d9aea87..0000000
--- a/.run/filter-custom-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-custom-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-        <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/filter/custom/go-client/conf/log.yml" />
-        <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/filter/custom/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/filter/custom/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/filter/custom/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/filter-custom-server.run.xml b/.run/filter-custom-server.run.xml
deleted file mode 100644
index 61c6372..0000000
--- a/.run/filter-custom-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-custom-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/filter/custom/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/filter/custom/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/filter/custom/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/filter/custom/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/filter-custom-test.run.xml b/.run/filter-custom-test.run.xml
deleted file mode 100644
index 5687e05..0000000
--- a/.run/filter-custom-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-custom-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/filter/custom" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/filter/custom/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/filter-sentinel-client.run.xml b/.run/filter-sentinel-client.run.xml
deleted file mode 100644
index a8a6c2a..0000000
--- a/.run/filter-sentinel-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-sentinel-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-        <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/filter/sentinel/go-client/conf/log.yml" />
-        <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/filter/sentinel/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/filter/sentinel/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/filter/sentinel/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/filter-sentinel-server.run.xml b/.run/filter-sentinel-server.run.xml
deleted file mode 100644
index d6ebdc6..0000000
--- a/.run/filter-sentinel-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-sentinel-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/filter/sentinel/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/filter/sentinel/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/filter/sentinel/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/filter/sentinel/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/filter-sentinel-test.run.xml b/.run/filter-sentinel-test.run.xml
deleted file mode 100644
index 808bd76..0000000
--- a/.run/filter-sentinel-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-sentinel-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/filter/sentinel" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/filter/sentinel/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/filter-tpslimit-client.run.xml b/.run/filter-tpslimit-client.run.xml
deleted file mode 100644
index c9d2c62..0000000
--- a/.run/filter-tpslimit-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-tpslimit-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/filter/tpslimit/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/filter/tpslimit/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/filter/sentinel/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/filter/tpslimit/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/filter-tpslimit-server.run.xml b/.run/filter-tpslimit-server.run.xml
deleted file mode 100644
index 1c1b51d..0000000
--- a/.run/filter-tpslimit-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-tpslimit-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/filter/tpslimit/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/filter/tpslimit/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/filter/tpslimit/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/filter/tpslimit/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/filter-tpslimit-test.run.xml b/.run/filter-tpslimit-test.run.xml
deleted file mode 100644
index 0090326..0000000
--- a/.run/filter-tpslimit-test.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="filter-tpslimit-test" type="GoTestRunConfiguration" factoryName="Go Test">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$/filter/tpslimit" />
-    <useCustomBuildTags value="true" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="go-server/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="go-server/conf/log.yml" />
-    </envs>
-    <framework value="gotest" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/filter/tpslimit/go-server/tests/integration" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
diff --git a/.run/game-go-game-server.run.xml b/.run/game-go-game-server.run.xml
deleted file mode 100644
index 01fcd36..0000000
--- a/.run/game-go-game-server.run.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="game-go-game-server" type="GoApplicationRunConfiguration" factoryName="Go Application">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/game/go-server-game/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/game/go-server-game/conf/server.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/game/go-server-game/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/game/go-server-game/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/game/go-server-game/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/game-go-gate-server.run.xml b/.run/game-go-gate-server.run.xml
deleted file mode 100644
index 4a6badd..0000000
--- a/.run/game-go-gate-server.run.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="game-go-gate-server" type="GoApplicationRunConfiguration" factoryName="Go Application">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/game/go-server-gate/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/game/go-server-gate/conf/server.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/game/go-server-gate/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/game/go-server-gate/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/game/go-server-gate/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-dubbo-go-client.run.xml b/.run/general/general-dubbo-go-client.run.xml
deleted file mode 100644
index cd97597..0000000
--- a/.run/general/general-dubbo-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="general-dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="general">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/general/dubbo/go-client/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/dubbo/go-client/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/dubbo/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/dubbo/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-dubbo-go-server.run.xml b/.run/general/general-dubbo-go-server.run.xml
deleted file mode 100644
index 27410ec..0000000
--- a/.run/general/general-dubbo-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="general-dubbo-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="general">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/dubbo/go-server/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/general/dubbo/go-server/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/dubbo/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/dubbo/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-grpc-stream-go-client.run.xml b/.run/general/general-grpc-stream-go-client.run.xml
deleted file mode 100644
index db8c7e3..0000000
--- a/.run/general/general-grpc-stream-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="general-grpc-stream-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="general">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/general/grpc/stream/go-client/profiles/dev/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/grpc/stream/go-client/profiles/dev/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/grpc/stream/go-client/app/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/grpc/stream/go-client/app" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-grpc-stream-go-server.run.xml b/.run/general/general-grpc-stream-go-server.run.xml
deleted file mode 100644
index 6fa4356..0000000
--- a/.run/general/general-grpc-stream-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="general-grpc-stream-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="general">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/grpc/stream/go-server/profiles/dev/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/general/grpc/stream/go-server/profiles/dev/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/grpc/stream/go-server/app/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/grpc/stream/go-server/app" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-jsonrpc-go-client.run.xml b/.run/general/general-jsonrpc-go-client.run.xml
deleted file mode 100644
index 195edc0..0000000
--- a/.run/general/general-jsonrpc-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="general-jsonrpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="general">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/general/jsonrpc/go-client/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/jsonrpc/go-client/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/jsonrpc/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/jsonrpc/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-jsonrpc-go-server.run.xml b/.run/general/general-jsonrpc-go-server.run.xml
deleted file mode 100644
index c52f9ff..0000000
--- a/.run/general/general-jsonrpc-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="general-jsonrpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="general">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/general/jsonrpc/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/jsonrpc/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/jsonrpc/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/jsonrpc/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-rest-go-client.run.xml b/.run/general/general-rest-go-client.run.xml
deleted file mode 100644
index 244b4fd..0000000
--- a/.run/general/general-rest-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="general-rest-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/rest/go-client/conf/log.yml" />
-            <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/general/rest/go-client/conf/client.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <filePath value="$PROJECT_DIR$/general/rest/go-client/cmd/client.go" />
-        <package value="github.com/apache/dubbo-go-samples/general/rest/go-client/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <method v="2" />
-    </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/general/general-rest-go-server.run.xml b/.run/general/general-rest-go-server.run.xml
deleted file mode 100644
index a23b0ac..0000000
--- a/.run/general/general-rest-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="general-rest-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/rest/go-server/conf/log.yml" />
-            <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/general/rest/go-server/conf/server.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <filePath value="$PROJECT_DIR$/general/rest/go-server/cmd/server.go" />
-        <package value="github.com/apache/dubbo-go-samples/general/rest/go-server/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <method v="2" />
-    </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/generic-default-go-client.run.xml b/.run/generic-default-go-client.run.xml
index 3457202..1d1006f 100644
--- a/.run/generic-default-go-client.run.xml
+++ b/.run/generic-default-go-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="generic-default-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-generic">
+  <configuration default="false" name="generic-default-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="generic">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/generic-default-go-server.run.xml b/.run/generic-default-go-server.run.xml
index c7423bd..81c0495 100644
--- a/.run/generic-default-go-server.run.xml
+++ b/.run/generic-default-go-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="generic-default-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-generic">
+  <configuration default="false" name="generic-default-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="generic">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/group-go-client.run.xml b/.run/group-go-client.run.xml
deleted file mode 100644
index 5fdbcb5..0000000
--- a/.run/group-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="group-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="group">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/group/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/group/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/group/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/group/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/group-go-server-group-a.run.xml b/.run/group-go-server-group-a.run.xml
deleted file mode 100644
index a26044b..0000000
--- a/.run/group-go-server-group-a.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="group-go-server-group-a" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="group">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/group/go-server-group-a/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/group/go-server-group-a/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/group/go-server-group-a/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/group/go-server-group-a/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/group-go-server-group-b.run.xml b/.run/group-go-server-group-b.run.xml
deleted file mode 100644
index 6d41199..0000000
--- a/.run/group-go-server-group-b.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="group-go-server-group-b" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="group">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/group/go-server-group-b/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/group/go-server-group-b/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/group/go-server-group-b/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/group/go-server-group-b/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/logger-default.run.xml b/.run/logger-default.run.xml
index 198ba4b..5f63f7e 100644
--- a/.run/logger-default.run.xml
+++ b/.run/logger-default.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="logger-default" type="GoApplicationRunConfiguration" factoryName="Go Application">
+  <configuration default="false" name="logger-default" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="logger">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/logger-level.run.xml b/.run/logger-level.run.xml
index 358dffa..c68cf5a 100644
--- a/.run/logger-level.run.xml
+++ b/.run/logger-level.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="logger-level" type="GoApplicationRunConfiguration" factoryName="Go Application">
+  <configuration default="false" name="logger-level" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="logger">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/logger-rolling.run.xml b/.run/logger-rolling.run.xml
index b66fd29..084d1b6 100644
--- a/.run/logger-rolling.run.xml
+++ b/.run/logger-rolling.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="logger-rolling" type="GoApplicationRunConfiguration" factoryName="Go Application" nameIsGenerated="true">
+  <configuration default="false" name="logger-rolling" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="logger" nameIsGenerated="true">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/metric-go-client.run.xml b/.run/metric-go-client.run.xml
deleted file mode 100644
index a8c14cc..0000000
--- a/.run/metric-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="metric-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/metric/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/metric/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/metric/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/metric/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/metric-go-server.run.xml b/.run/metric-go-server.run.xml
deleted file mode 100644
index be62715..0000000
--- a/.run/metric-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="metric-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/metric/go-server/conf/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/metric/go-server/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/metric/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/metric/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/multi-registry/multi-registry-go-client.run.xml b/.run/multi-registry/multi-registry-go-client.run.xml
deleted file mode 100644
index 6676cc2..0000000
--- a/.run/multi-registry/multi-registry-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="multi-registry-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="multi-registry">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/multi-registry/go-client/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/multi-registry/go-client/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/multi-registry/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/multi-registry/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/multi-registry/multi-registry-go-server.run.xml b/.run/multi-registry/multi-registry-go-server.run.xml
deleted file mode 100644
index 121c146..0000000
--- a/.run/multi-registry/multi-registry-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="multi-registry-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="multi-registry">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/multi-registry/go-server/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/multi-registry/go-server/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/multi-registry/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/multi-registry/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/multi-zone/multi-zone-go-client.run.xml b/.run/multi-zone/multi-zone-go-client.run.xml
deleted file mode 100644
index 4c93ff6..0000000
--- a/.run/multi-zone/multi-zone-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="multi-zone-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="multi-zone">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/multi-zone/go-client/conf/client.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/multi-zone/go-client/conf/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/multi-zone/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/multi-zone/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/multi-zone/multi-zone-go-server-hz.run.xml b/.run/multi-zone/multi-zone-go-server-hz.run.xml
deleted file mode 100644
index 4ca96e3..0000000
--- a/.run/multi-zone/multi-zone-go-server-hz.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="multi-zone-go-server-hz" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="multi-zone">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/multi-zone/go-server-hz/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/multi-zone/go-server-hz/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/multi-zone/go-server-hz/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/multi-zone/go-server-hz/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/multi-zone/multi-zone-go-server-sh.run.xml b/.run/multi-zone/multi-zone-go-server-sh.run.xml
deleted file mode 100644
index f7962af..0000000
--- a/.run/multi-zone/multi-zone-go-server-sh.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="multi-zone-go-server-sh" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="multi-zone">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/multi-zone/go-server-sh/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/multi-zone/go-server-sh/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/multi-zone/go-server-sh/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/multi-zone/go-server-sh/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/registry/etcd/registry_etcd_go-client.run.xml b/.run/registry/etcd/registry_etcd_go-client.run.xml
index 8f897fd..403b4b9 100644
--- a/.run/registry/etcd/registry_etcd_go-client.run.xml
+++ b/.run/registry/etcd/registry_etcd_go-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="registry/etcd/go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="registry">
+  <configuration default="false" name="registry-etcd-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="registry">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/registry/etcd/registry_etcd_go-server.run.xml b/.run/registry/etcd/registry_etcd_go-server.run.xml
index 09eeaf5..6068891 100644
--- a/.run/registry/etcd/registry_etcd_go-server.run.xml
+++ b/.run/registry/etcd/registry_etcd_go-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="registry/etcd/go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="registry">
+  <configuration default="false" name="registry-etcd-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="registry">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/registry/registry-zookeeper-go-client.run.xml b/.run/registry/registry-zookeeper-go-client.run.xml
index fbcd0d6..7808c76 100644
--- a/.run/registry/registry-zookeeper-go-client.run.xml
+++ b/.run/registry/registry-zookeeper-go-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="registry-zookeeper-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-registry-zookeeper">
+  <configuration default="false" name="registry-zookeeper-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="registry">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <kind value="PACKAGE" />
diff --git a/.run/registry/registry-zookeeper-go-server.run.xml b/.run/registry/registry-zookeeper-go-server.run.xml
index d3b5b65..8ec2798 100644
--- a/.run/registry/registry-zookeeper-go-server.run.xml
+++ b/.run/registry/registry-zookeeper-go-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="registry-zookeeper-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="v3config-registry-zookeeper">
+  <configuration default="false" name="registry-zookeeper-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="registry">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <kind value="PACKAGE" />
diff --git a/.run/router/router-client.run.xml b/.run/router/router-client.run.xml
deleted file mode 100644
index 321b805..0000000
--- a/.run/router/router-client.run.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="router-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="router">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/router/uniform-router/file/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/router/uniform-router/file/go-client/conf/client.yml" />
-      <env name="CONF_VIRTUAL_SERVICE_FILE_PATH" value="$PROJECT_DIR$/router/uniform-router/file/go-client/conf/virtual_service.yml" />
-      <env name="CONF_DEST_RULE_FILE_PATH" value="$PROJECT_DIR$/router/uniform-router/file/go-client/conf/dest_rule.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/router/uniform-router/file/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/router/uniform-router/file/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/router/router-server.run.xml b/.run/router/router-server.run.xml
deleted file mode 100644
index 82b13ca..0000000
--- a/.run/router/router-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="router-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="router">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/router/uniform-router/file/go-server/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/router/uniform-router/file/go-server/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/router/uniform-router/file/go-server2/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/router/uniform-router/file/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/router/router-server2.run.xml b/.run/router/router-server2.run.xml
deleted file mode 100644
index 9b4a740..0000000
--- a/.run/router/router-server2.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="router-server2" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="router">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/router/uniform-router/file/go-server2/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/router/uniform-router/file/go-server2/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/router/uniform-router/file/go-server2/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/router/uniform-router/file/go-server2/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/rpc/dubbo/rpc-dubbo-go-client.run.xml b/.run/rpc/dubbo/rpc-dubbo-go-client.run.xml
index 0327b87..69c70ed 100644
--- a/.run/rpc/dubbo/rpc-dubbo-go-client.run.xml
+++ b/.run/rpc/dubbo/rpc-dubbo-go-client.run.xml
@@ -1,10 +1,9 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="rpc-dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application">
+  <configuration default="false" name="dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/dubbo">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/dubbo/go-client/conf/dubbogo.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/rpc/dubbo/go-client/conf/log.yml" />
     </envs>
     <kind value="PACKAGE" />
     <package value="github.com/apache/dubbo-go-samples/rpc/dubbo/go-client/cmd" />
diff --git a/.run/rpc/jsonrpc/rpc-jsonrpc-go-client.run.xml b/.run/rpc/jsonrpc/rpc-jsonrpc-go-client.run.xml
index 02447c7..a3bb3b9 100644
--- a/.run/rpc/jsonrpc/rpc-jsonrpc-go-client.run.xml
+++ b/.run/rpc/jsonrpc/rpc-jsonrpc-go-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="rpc-jsonrpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/jsonrpc">
+  <configuration default="false" name="jsonrpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/jsonrpc">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/rpc/jsonrpc/rpc-jsonrpc-go-server.run.xml b/.run/rpc/jsonrpc/rpc-jsonrpc-go-server.run.xml
index 544f751..b68da8f 100644
--- a/.run/rpc/jsonrpc/rpc-jsonrpc-go-server.run.xml
+++ b/.run/rpc/jsonrpc/rpc-jsonrpc-go-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="rpc-jsonrpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/jsonrpc">
+  <configuration default="false" name="jsonrpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/jsonrpc">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/rpc/triple-pb-dubbogo-grpc-go-client.run.xml b/.run/rpc/triple-pb-dubbogo-grpc-go-client.run.xml
index 49fbc0f..e2ea3ab 100644
--- a/.run/rpc/triple-pb-dubbogo-grpc-go-client.run.xml
+++ b/.run/rpc/triple-pb-dubbogo-grpc-go-client.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="triple-pb-dubbogo-grpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-grpc/go-client/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-grpc/go-client/cmd/client.go" />
-        <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-grpc/go-client/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="triple-pb-dubbogo-grpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-grpc/go-client/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-grpc/go-client/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-grpc/go-client/cmd/client.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/rpc/triple-pb-dubbogo-grpc-go-server.run.xml b/.run/rpc/triple-pb-dubbogo-grpc-go-server.run.xml
index 09ab314..adf45d4 100644
--- a/.run/rpc/triple-pb-dubbogo-grpc-go-server.run.xml
+++ b/.run/rpc/triple-pb-dubbogo-grpc-go-server.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="triple-pb-dubbogo-grpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-grpc/go-server/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-grpc/go-server/cmd/server.go" />
-        <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-grpc/go-server/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="triple-pb-dubbogo-grpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-grpc/go-server/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-grpc/go-server/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-grpc/go-server/cmd/server.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/rpc/triple-pb-dubbogo-java-go-client.run.xml b/.run/rpc/triple-pb-dubbogo-java-go-client.run.xml
index 4b21cc1..23bc1cd 100644
--- a/.run/rpc/triple-pb-dubbogo-java-go-client.run.xml
+++ b/.run/rpc/triple-pb-dubbogo-java-go-client.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="triple-pb-dubbogo-java-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-java/go-client/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-java/go-client/cmd/client.go" />
-        <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-java/go-client/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="triple-pb-dubbogo-java-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-java/go-client/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-java/go-client/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-java/go-client/cmd/client.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/rpc/triple-pb-dubbogo-java-go-server.run.xml b/.run/rpc/triple-pb-dubbogo-java-go-server.run.xml
index 564d9a7..fe3d005 100644
--- a/.run/rpc/triple-pb-dubbogo-java-go-server.run.xml
+++ b/.run/rpc/triple-pb-dubbogo-java-go-server.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="triple-pb-dubbogo-java-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-java/go-server/conf/dubbogo.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-java/go-server/cmd/server.go" />
-        <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-java/go-server/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <method v="2" />
-    </configuration>
+  <configuration default="false" name="triple-pb-dubbogo-java-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
+    <module name="dubbo-go-samples" />
+    <working_directory value="$PROJECT_DIR$" />
+    <envs>
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/pb/dubbogo-java/go-server/conf/dubbogo.yml" />
+    </envs>
+    <kind value="PACKAGE" />
+    <package value="github.com/apache/dubbo-go-samples/rpc/triple/pb/dubbogo-java/go-server/cmd" />
+    <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/general/dubbo3/rpc/triple/pb/dubbogo-java/go-server/cmd/server.go" />
+    <method v="2" />
+  </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/seata/seata-client-app.run.xml b/.run/seata/seata-client-app.run.xml
deleted file mode 100644
index 6764b3e..0000000
--- a/.run/seata/seata-client-app.run.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="seata-client-app" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="seata" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/seata/client/profiles/dev/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/seata/client/profiles/dev/client.yml" />
-      <env name="SEATA_CONF_FILE" value="$PROJECT_DIR$/seata/client/profiles/dev/seata.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/seata/client/app" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$/seata/client/app/client.go" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/seata/seata-order-svc.run.xml b/.run/seata/seata-order-svc.run.xml
deleted file mode 100644
index a7322d1..0000000
--- a/.run/seata/seata-order-svc.run.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="seata-order-svc" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="seata" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="SEATA_CONF_FILE" value="$PROJECT_DIR$/seata/order-svc/profiles/dev/seata.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/seata/order-svc/profiles/dev/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/seata/order-svc/profiles/dev/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/seata/order-svc/app" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$/seata/order-svc/app/server.go" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/seata/seata-product.run.xml b/.run/seata/seata-product.run.xml
deleted file mode 100644
index 356199d..0000000
--- a/.run/seata/seata-product.run.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="seata-product-svc" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="seata" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="SEATA_CONF_FILE" value="$PROJECT_DIR$/seata/product-svc/profiles/dev/seata.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/seata/product-svc/profiles/dev/server.yml" />
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/seata/product-svc/profiles/dev/log.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/seata/product-svc/app" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$/seata/product-svc/app/server.go" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/service-discovery/discovery-nacos-server.run.xml b/.run/service-discovery/discovery-nacos-server.run.xml
deleted file mode 100644
index d1fc74b..0000000
--- a/.run/service-discovery/discovery-nacos-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="discovery-nacos-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="service-discovery">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/registry/servicediscovery/nacos/go-server/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/registry/servicediscovery/nacos/go-server/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/registry/servicediscovery/nacos/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$/registry/servicediscovery/nacos/go-server/cmd/server.go" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/service-discovery/zk-client.run.xml b/.run/service-discovery/zk-client.run.xml
deleted file mode 100644
index 02645fd..0000000
--- a/.run/service-discovery/zk-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="zk-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="service-discovery">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/registry/serviecdiscovery/zookeeper/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/registry/servicediscovery/zookeeper/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/registry/servicediscovery/zookeeper/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/tengine/tengine-go-server.run.xml b/.run/tengine/tengine-go-server.run.xml
deleted file mode 100644
index 7f16718..0000000
--- a/.run/tengine/tengine-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tengine-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tengine">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/tengine/go-server/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/tengine/go-server/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tengine/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/tengine/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/tls-go-client.run.xml b/.run/tls-go-client.run.xml
deleted file mode 100644
index 2d41785..0000000
--- a/.run/tls-go-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tls-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/tls/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/tls/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tls/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/tls/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/tls-go-server.run.xml b/.run/tls-go-server.run.xml
deleted file mode 100644
index b4573ce..0000000
--- a/.run/tls-go-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-    <configuration default="false" name="tls-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
-        <module name="dubbo-go-samples" />
-        <working_directory value="$PROJECT_DIR$" />
-        <envs>
-            <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/tls/go-server/conf/server.yml" />
-            <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/tls/go-server/conf/log.yml" />
-        </envs>
-        <kind value="PACKAGE" />
-        <filePath value="$PROJECT_DIR$/tls/go-server/cmd/server.go" />
-        <package value="github.com/apache/dubbo-go-samples/tls/go-server/cmd" />
-        <directory value="$PROJECT_DIR$" />
-        <method v="2" />
-    </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml b/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml
index b1487be..07d680f 100644
--- a/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml
+++ b/.run/tracing/dubbo/tracing-dubbo-go-client.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
+  <configuration default="false" name="tracing-dubbo-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/dubbo/go-client/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tracing/dubbo/go-client/cmd/client.go" />
     <package value="github.com/apache/dubbo-go-samples/tracing/dubbo/go-client/cmd" />
     <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/tracing/dubbo/go-client/cmd/client.go" />
     <method v="2" />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml b/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml
index 9b96eea..c0a3140 100644
--- a/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml
+++ b/.run/tracing/dubbo/tracing-dubbo-go-server.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-dubbo-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
+  <configuration default="false" name="tracing-dubbo-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/dubbo/go-server/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tracing/dubbo/go-server/cmd/server.go" />
     <package value="github.com/apache/dubbo-go-samples/tracing/dubbo/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/tracing/dubbo/go-server/cmd/server.go" />
     <method v="2" />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/tracing/grpc/tracing-grpc-go-client.run.xml b/.run/tracing/grpc/tracing-grpc-go-client.run.xml
index 2ee87ad..1b77dd7 100644
--- a/.run/tracing/grpc/tracing-grpc-go-client.run.xml
+++ b/.run/tracing/grpc/tracing-grpc-go-client.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-grpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
+  <configuration default="false" name="tracing-grpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/grpc/go-client/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tracing/grpc/go-client/app/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/tracing/grpc/go-client/app" />
+    <package value="github.com/apache/dubbo-go-samples/tracing/grpc/go-client/cmd" />
     <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/tracing/grpc/go-client/app/client.go" />
     <method v="2" />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/tracing/grpc/tracing-grpc-go-server.run.xml b/.run/tracing/grpc/tracing-grpc-go-server.run.xml
index 0bfb2a7..da6e3ab 100644
--- a/.run/tracing/grpc/tracing-grpc-go-server.run.xml
+++ b/.run/tracing/grpc/tracing-grpc-go-server.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-grpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
+  <configuration default="false" name="tracing-grpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/grpc/go-server/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tracing/grpc/go-server/app/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/tracing/grpc/go-server/app" />
+    <package value="github.com/apache/dubbo-go-samples/tracing/grpc/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/tracing/grpc/go-server/app/server.go" />
     <method v="2" />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml b/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml
index 2e2f1c8..7f108dd 100644
--- a/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml
+++ b/.run/tracing/jsonrpc/tracing-jsonrpc-go-client.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-jsonrpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
+  <configuration default="false" name="tracing-jsonrpc-go-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/jsonrpc/go-client/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tracing/jsonrpc/go-client/cmd/client.go" />
     <package value="github.com/apache/dubbo-go-samples/tracing/jsonrpc/go-client/cmd" />
     <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/tracing/jsonrpc/go-client/cmd/client.go" />
     <method v="2" />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml b/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml
index 0cf179b..7301da1 100644
--- a/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml
+++ b/.run/tracing/jsonrpc/tracing-jsonrpc-go-server.run.xml
@@ -1,14 +1,14 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="tracing-jsonrpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" singleton="false">
+  <configuration default="false" name="tracing-jsonrpc-go-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="tracing" singleton="false">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
       <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/tracing/jsonrpc/go-server/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/tracing/jsonrpc/go-server/cmd/server.go" />
     <package value="github.com/apache/dubbo-go-samples/tracing/jsonrpc/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
+    <filePath value="$PROJECT_DIR$/tracing/jsonrpc/go-server/cmd/server.go" />
     <method v="2" />
   </configuration>
 </component>
\ No newline at end of file
diff --git a/.run/triplego-hessian-server.run.xml b/.run/triple-hessian-client.run.xml
similarity index 57%
copy from .run/triplego-hessian-server.run.xml
copy to .run/triple-hessian-client.run.xml
index 2d43990..86847e9 100644
--- a/.run/triplego-hessian-server.run.xml
+++ b/.run/triple-hessian-client.run.xml
@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="triplego-hessian-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="triple">
+  <configuration default="false" name="triple-hessian-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/dubbo3/hessian2/go-server/conf/dubbogo.yml" />
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/hessian2/go-client/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/rpc/dubbo3/hessian2/go-server/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/rpc/triple/hessian2/go-client/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/general/dubbo3/hessian2/go-server/cmd/server.go" />
     <method v="2" />
diff --git a/.run/triple-msgpack-client.run.xml b/.run/triple-msgpack-client.run.xml
index eee0b2f..118d7fc 100644
--- a/.run/triple-msgpack-client.run.xml
+++ b/.run/triple-msgpack-client.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="triple-msgpack-client" type="GoApplicationRunConfiguration" factoryName="Go Application">
+  <configuration default="false" name="triple-msgpack-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/triple-msgpack-server.run.xml b/.run/triple-msgpack-server.run.xml
index 69629e2..6f8ff34 100644
--- a/.run/triple-msgpack-server.run.xml
+++ b/.run/triple-msgpack-server.run.xml
@@ -1,5 +1,5 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="triple-msgpack-server" type="GoApplicationRunConfiguration" factoryName="Go Application">
+  <configuration default="false" name="triple-msgpack-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
diff --git a/.run/triple-server.run.xml b/.run/triple-server.run.xml
deleted file mode 100644
index 2a77a0c..0000000
--- a/.run/triple-server.run.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="triple-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="triple">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/rpc/dubbo3/api/dubbogo-grpc/server/dubbogo-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <filePath value="$PROJECT_DIR$/general/dubbo3/api/dubbogo-grpc/server/dubbogo-server/cmd/server.go" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/triple/triple-codec-extension-client.run.xml b/.run/triple/triple-codec-extension-client.run.xml
deleted file mode 100644
index 281ad5e..0000000
--- a/.run/triple/triple-codec-extension-client.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="triple-codec-extension-client" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="triple">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/dubbo3/codec-extension/go-client/conf/log.yml" />
-      <env name="CONF_CONSUMER_FILE_PATH" value="$PROJECT_DIR$/general/dubbo3/codec-extension/go-client/conf/client.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/dubbo3/codec-extension/go-client/cmd/client.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/dubbo3/codec-extension/go-client/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/triple/triple-codec-extension-server.run.xml b/.run/triple/triple-codec-extension-server.run.xml
deleted file mode 100644
index f011e4b..0000000
--- a/.run/triple/triple-codec-extension-server.run.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="triple-codec-extension-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="triple">
-    <module name="dubbo-go-samples" />
-    <working_directory value="$PROJECT_DIR$" />
-    <envs>
-      <env name="APP_LOG_CONF_FILE" value="$PROJECT_DIR$/general/dubbo3/codec-extension/go-server/conf/log.yml" />
-      <env name="CONF_PROVIDER_FILE_PATH" value="$PROJECT_DIR$/general/dubbo3/codec-extension/go-server/conf/server.yml" />
-    </envs>
-    <kind value="PACKAGE" />
-    <filePath value="$PROJECT_DIR$/general/dubbo3/codec-extension/go-server/cmd/server.go" />
-    <package value="github.com/apache/dubbo-go-samples/general/dubbo3/codec-extension/go-server/cmd" />
-    <directory value="$PROJECT_DIR$" />
-    <method v="2" />
-  </configuration>
-</component>
\ No newline at end of file
diff --git a/.run/triplego-hessian-server.run.xml b/.run/triplego-hessian-server.run.xml
index 2d43990..f0d13c5 100644
--- a/.run/triplego-hessian-server.run.xml
+++ b/.run/triplego-hessian-server.run.xml
@@ -1,12 +1,12 @@
 <component name="ProjectRunConfigurationManager">
-  <configuration default="false" name="triplego-hessian-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="triple">
+  <configuration default="false" name="triple-hessian-server" type="GoApplicationRunConfiguration" factoryName="Go Application" folderName="rpc/triple">
     <module name="dubbo-go-samples" />
     <working_directory value="$PROJECT_DIR$" />
     <envs>
-      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/dubbo3/hessian2/go-server/conf/dubbogo.yml" />
+      <env name="DUBBO_GO_CONFIG_PATH" value="$PROJECT_DIR$/rpc/triple/hessian2/go-server/conf/dubbogo.yml" />
     </envs>
     <kind value="PACKAGE" />
-    <package value="github.com/apache/dubbo-go-samples/rpc/dubbo3/hessian2/go-server/cmd" />
+    <package value="github.com/apache/dubbo-go-samples/rpc/triple/hessian2/go-server/cmd" />
     <directory value="$PROJECT_DIR$" />
     <filePath value="$PROJECT_DIR$/general/dubbo3/hessian2/go-server/cmd/server.go" />
     <method v="2" />
diff --git a/README_zh.md b/README_zh.md
index 6b93199..f2185d5 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -1,26 +1,18 @@
-# Dubbo Golang 示例
+# Dubbo Go 示例仓库
 
 ![CI](https://github.com/apache/dubbo-go-samples/workflows/CI/badge.svg)
 
 ## 本工程包含的示例
 
-* async: 异步调用
-* attachment: 如何通过 attachment 把用户数据从调用方传递给服务方
-* configcenter: 使用不同的配置中心,目前支持三种:zookeeper、apollo、和 nacos
-* direct: 直连模式
-* filter: 使用和扩展不同的 filter,目前包含了 custom_filter 和 tpslimit
-* rpc: dubbo下展示dubbo协议通信调用
+* config-api: 无需配置文件,使用 API 的方式启动服务、构造组件和使用。
+* configcenter: 使用不同的配置中心,目前支持:zookeeper、apollo、和 nacos
+* context: 如何通过 go context  把用户数据 attachment 从调用方传递给服务方
+* direct: 直连模式,无需注册中心,直连服务提供者
+* rpc: 使用 Dubbogo 框架启动 rpc 服务,发起调用
 * generic: 泛化调用
 * helloworld: 入门例子
-* multi_registry: 多注册
-* registry: 展示与不同注册中心的对接,包含了 nacos、etcd、kubernetes 和 servicediscovery
-* router: 展示了 dubbo3 统一路由规则的使用,包括基于文件路由配置和k8s环境下的动态路由配置
-* seata: 展示了与 seata 的对接
-* shop: 一个在线商店的小例子
-* tengine: 基于淘宝 Tengine 与 Dubbo-go 调用例子
-* tls: 在 Dubbo-go 中使用 TLS
-* tracing: 链路追踪
-* game: 游戏服务例子
+* registry: 展示与不同注册中心的对接,包含了 nacos、etcd 和 zookeeper。
+* tracing: 链路追踪例子,支持
 
 ## 如何运行
 
diff --git a/chain/README.md b/chain/README.md
deleted file mode 100644
index e797c10..0000000
--- a/chain/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-# Chain Sample
-
-### Backend
-
-Most of the samples in this project uses one consumer and one provider for simplification purpose. That is, there are only two nodes in the calling chain. This sample demonstrates how a calling chain which contains nodes more than two - three nodes at minimal, is configured. This sample contains three parts, which are:
-
-frontend -> middle -> backend
-
-1. backend: Backend services, including 'CatService', 'DogService', 'TigerService' and 'LionService'. In "backend" directory, only service providers are provided.
-2. middle: Middle services, in the middle of the calling chain, provides services 'ChineseService' and 'AmericanService', and consumes the services provided by "backend" directory. In  "middle" directory, both service providers and service consumers are provided.
-3. frontend: Frontend caller, consumes services provided by "middle" and output the result.   
-
-### Call other service in the current service
-
-**Code**
-
-```golang
-type DogService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (d *DogService) Reference() string {
-	return "DogService"
-}
-
-type TigerService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (t *TigerService) Reference() string {
-	return "TigerService"
-}
-
-func init() {
-	dog := new(DogService)
-	config.SetConsumerService(dog)
-	tiger := new(TigerService)
-	config.SetConsumerService(tiger)
-
-	config.SetProviderService(&ChineseService{
-		dog:   dog,
-		tiger: tiger,
-	})
-}
-```
-
-**Configuration**
-
-```yaml
-# reference config
-references:
-  "CatService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.CatService"
-  "DogService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.DogService"
-    
-# service config
-services:
-  "ChineseService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.ChineseService"
-  "AmericanService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.AmericanService"
-```
-
-Pls. refer to [HOWTO.md](../HOWTO.md) under the root directory to run this sample.
diff --git a/chain/README_zh.md b/chain/README_zh.md
deleted file mode 100644
index 200043a..0000000
--- a/chain/README_zh.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# 链路调用示例
-
-### 背景
-
-为了简化起见,绝大部分的例子都是展示了一个 consumer 调用一个 provider 的场景。也就是说,这个调用链路上只有两个节点。本例展示了大于两个节点的最小链路单元 —— 三节点,dubbo-go 是如何配置和工作的。在这个例子中,由三部分组成:
-
-frontend -> middle -> backend
-
-1. backend: 后端服务,包含 CatService、DogService、TigerService 和 LionService。"backend" 目录只包含了服务的提供者。
-2. middle: 中间服务,在链路的中间,负责向前端(frontend)暴露服务 ChineseService 和 AmericanService,并调用后端(backend)服务。"middle" 目录既包含了服务的提供者,也包含了服务的调用者。
-3. frontend: 前端调用者,调用 middle 提供的服务并输出。
-
-### 在提供的服务中调用其他服务的示例
-
-**代码**
-
-```golang
-type DogService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (d *DogService) Reference() string {
-	return "DogService"
-}
-
-type TigerService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (t *TigerService) Reference() string {
-	return "TigerService"
-}
-
-func init() {
-	dog := new(DogService)
-	config.SetConsumerService(dog)
-	tiger := new(TigerService)
-	config.SetConsumerService(tiger)
-
-	config.SetProviderService(&ChineseService{
-		dog:   dog,
-		tiger: tiger,
-	})
-}
-```
-
-**配置**
-
-```yaml
-# reference config
-references:
-  "CatService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.CatService"
-  "DogService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.DogService"
-    
-# service config
-services:
-  "ChineseService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.ChineseService"
-  "AmericanService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.AmericanService"
-```
-
-
-请参阅根目录中的 [HOWTO.md](../HOWTO_zh.md) 来运行本例。
-
-
diff --git a/chain/backend/cmd/server.go b/chain/backend/cmd/server.go
deleted file mode 100644
index 399b9cc..0000000
--- a/chain/backend/cmd/server.go
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-)
-
-import (
-	_ "github.com/apache/dubbo-go-samples/chain/backend/pkg"
-)
-
-var (
-	survivalTimeout = int(3e9)
-)
-
-// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run
-func main() {
-	config.Load()
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-	// It is not possible to block SIGKILL or syscall.SIGSTOP
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			// reload()
-		default:
-			time.AfterFunc(time.Duration(survivalTimeout), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			fmt.Println("provider app exit now...")
-			return
-		}
-	}
-}
diff --git a/chain/backend/conf/client.yml b/chain/backend/conf/client.yml
deleted file mode 100644
index e452323..0000000
--- a/chain/backend/conf/client.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "BackEndServicesTest"
-  module: "dubbo-go backend services test"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "CatService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.CatService"
-  "DogService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.DogService"
-  "TigerService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.TigerService"
-  "LionService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.LionService"
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/chain/backend/conf/log.yml b/chain/backend/conf/log.yml
deleted file mode 100644
index 8c3f700..0000000
--- a/chain/backend/conf/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "info"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/chain/backend/conf/server.yml b/chain/backend/conf/server.yml
deleted file mode 100644
index 4f7c330..0000000
--- a/chain/backend/conf/server.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "BackendServices"
-  module: "dubbo-go backend services"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-
-# service config
-services:
-  "CatService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.CatService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-  "DogService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.DogService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-  "TigerService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.TigerService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-  "LionService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.LionService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20000
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/chain/backend/pkg/cat_service.go b/chain/backend/pkg/cat_service.go
deleted file mode 100644
index 0595a3c..0000000
--- a/chain/backend/pkg/cat_service.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"fmt"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-)
-
-func init() {
-	config.SetProviderService(new(CatService))
-}
-
-type CatService struct {
-}
-
-func (c *CatService) GetID() (int, error) {
-	return 1, nil
-}
-
-func (c *CatService) GetName() (string, error) {
-	fmt.Println("I am a Cat!")
-	return "Cat", nil
-}
-
-func (c *CatService) Yell() (string, error) {
-	fmt.Println("Meow Meow!")
-	return "Meow Meow!", nil
-}
-
-func (c *CatService) Reference() string {
-	return "CatService"
-}
diff --git a/chain/backend/pkg/dog_service.go b/chain/backend/pkg/dog_service.go
deleted file mode 100644
index 059305b..0000000
--- a/chain/backend/pkg/dog_service.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"fmt"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-)
-
-func init() {
-	config.SetProviderService(new(DogService))
-}
-
-type DogService struct {
-}
-
-func (d *DogService) GetID() (int, error) {
-	return 0, nil
-}
-
-func (d *DogService) GetName() (string, error) {
-	fmt.Println("I am a Dog!")
-	return "Dog", nil
-}
-
-func (d *DogService) Yell() (string, error) {
-	fmt.Println("Woof Woof!")
-	return "Woof Woof!", nil
-}
-
-func (d *DogService) Reference() string {
-	return "DogService"
-}
diff --git a/chain/backend/pkg/lion_service.go b/chain/backend/pkg/lion_service.go
deleted file mode 100644
index f8cbb66..0000000
--- a/chain/backend/pkg/lion_service.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"fmt"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-)
-
-func init() {
-	config.SetProviderService(new(LionService))
-}
-
-type LionService struct {
-}
-
-func (l *LionService) GetID() (int, error) {
-	return 2, nil
-}
-
-func (l *LionService) GetName() (string, error) {
-	fmt.Println("I am a Lion!")
-	return "Lion", nil
-}
-
-func (l *LionService) Yell() (string, error) {
-	fmt.Println("Lion Lion!")
-	return "Lion Lion!", nil
-}
-
-func (l *LionService) Reference() string {
-	return "LionService"
-}
diff --git a/chain/backend/pkg/tiger_service.go b/chain/backend/pkg/tiger_service.go
deleted file mode 100644
index e7abf67..0000000
--- a/chain/backend/pkg/tiger_service.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"fmt"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-)
-
-func init() {
-	config.SetProviderService(new(TigerService))
-}
-
-type TigerService struct {
-}
-
-func (t *TigerService) GetID() (int, error) {
-	return 3, nil
-}
-
-func (t *TigerService) GetName() (string, error) {
-	fmt.Println("I am a Tiger!")
-	return "Tiger", nil
-}
-
-func (t *TigerService) Yell() (string, error) {
-	fmt.Println("Tiger Tiger!")
-	return "Tiger Tiger!", nil
-}
-
-func (t *TigerService) Reference() string {
-	return "TigerService"
-}
diff --git a/chain/backend/tests/integration/main_test.go b/chain/backend/tests/integration/main_test.go
deleted file mode 100644
index 1e71364..0000000
--- a/chain/backend/tests/integration/main_test.go
+++ /dev/null
@@ -1,94 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-)
-
-var cat = new(CatService)
-var dog = new(DogService)
-var tiger = new(TigerService)
-var lion = new(LionService)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(cat)
-	config.SetConsumerService(dog)
-	config.SetConsumerService(tiger)
-	config.SetConsumerService(lion)
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
-
-type CatService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (c *CatService) Reference() string {
-	return "CatService"
-}
-
-type DogService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (d *DogService) Reference() string {
-	return "DogService"
-}
-
-type TigerService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (t *TigerService) Reference() string {
-	return "TigerService"
-}
-
-type LionService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (l *LionService) Reference() string {
-	return "LionService"
-}
diff --git a/chain/backend/tests/integration/services_test.go b/chain/backend/tests/integration/services_test.go
deleted file mode 100644
index 7d8739e..0000000
--- a/chain/backend/tests/integration/services_test.go
+++ /dev/null
@@ -1,55 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"testing"
-)
-
-import (
-	"github.com/stretchr/testify/assert"
-)
-
-func TestCat(t *testing.T) {
-	name, err := cat.GetName()
-	assert.Nil(t, err)
-	assert.Equal(t, "Cat", name)
-	id, err := cat.GetID()
-	assert.Nil(t, err)
-	assert.Equal(t, 1, id)
-}
-
-func TestTiger(t *testing.T) {
-	id, err := tiger.GetID()
-	assert.Nil(t, err)
-	assert.Equal(t, 3, id)
-}
-
-func TestDog(t *testing.T) {
-	yell, err := dog.Yell()
-	assert.Nil(t, err)
-	assert.Equal(t, "Woof Woof!", yell)
-}
-
-func TestLion(t *testing.T) {
-	name, err := lion.GetName()
-	assert.Nil(t, err)
-	assert.Equal(t, "Lion", name)
-}
diff --git a/chain/build/test.sh b/chain/build/test.sh
deleted file mode 100755
index f1b1141..0000000
--- a/chain/build/test.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, softwarek
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This file is for integration testing only
-
-P_DIR="$1"
-
-# start zookeeper
-make PROJECT_DIR="$P_DIR" PROJECT_NAME="$(basename "$P_DIR")" BASE_DIR="$P_DIR"/dist -f build/Makefile docker-up
-
-make PROJECT_DIR="$P_DIR" PROJECT_NAME="$(basename "$P_DIR")" BASE_DIR="$P_DIR"/dist -f build/Makefile docker-health-check
-
-# start server
-make PROJECT_DIR="$P_DIR"/backend PROJECT_NAME="$(basename "$P_DIR"/backend)" BASE_DIR="$P_DIR"/backend/dist -f build/Makefile start
-sleep 10
-make PROJECT_DIR="$P_DIR"/middle PROJECT_NAME="$(basename "$P_DIR"/middle)" CONF_CONSUMER_FILE_PATH="$P_DIR"/middle/conf/client.yml BASE_DIR="$P_DIR"/middle/dist -f build/Makefile start
-sleep 30
-
-# start integration testing
-make PROJECT_DIR="$P_DIR"/backend PROJECT_NAME="$(basename "$P_DIR"/backend)" BASE_DIR="$P_DIR"/backend/dist -f build/Makefile integration
-result=$?
-
-make PROJECT_DIR="$P_DIR"/middle PROJECT_NAME="$(basename "$P_DIR"/middle)" BASE_DIR="$P_DIR"/middle/dist CONF_CONSUMER_FILE_PATH="$P_DIR"/middle/conf/test.yml -f build/Makefile integration
-result2=$?
-
-if [ $result -eq 0 ]; then
-    result=$result2
-fi
-
-# stop server and clean
-make PROJECT_DIR="$P_DIR"/backend PROJECT_NAME="$(basename "$P_DIR"/backend)" BASE_DIR="$P_DIR"/backend/dist -f build/Makefile clean
-make PROJECT_DIR="$P_DIR"/middle PROJECT_NAME="$(basename "$P_DIR"/middle)" BASE_DIR="$P_DIR"/middle/dist -f build/Makefile clean
-
-make PROJECT_DIR="$P_DIR" PROJECT_NAME="$(basename "$P_DIR")" BASE_DIR="$P_DIR"/dist -f build/Makefile docker-down
-
-exit $result
diff --git a/chain/docker/docker-compose.yml b/chain/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/chain/docker/docker-compose.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
diff --git a/chain/docker/docker-health-check.sh b/chain/docker/docker-health-check.sh
deleted file mode 100644
index 2cc32c2..0000000
--- a/chain/docker/docker-health-check.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-curl 127.0.0.1:2181
-res=$?
-passCode=52
-while [ "$res" != "$passCode" ];do
-  sleep 5
-  curl 127.0.0.1:2181
-  res=$?
-done
-
-sleep 5
diff --git a/chain/frontend/cmd/client.go b/chain/frontend/cmd/client.go
deleted file mode 100644
index 5406341..0000000
--- a/chain/frontend/cmd/client.go
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"fmt"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/chain/frontend/pkg"
-)
-
-func main() {
-	var chinese = new(pkg.ChineseService)
-	var american = new(pkg.AmericanService)
-	config.SetConsumerService(chinese)
-	config.SetConsumerService(american)
-	config.Load()
-	time.Sleep(3 * time.Second)
-	have, _ := chinese.Have()
-	fmt.Printf("chinese.Have(): %s\n", have)
-	hear, _ := chinese.Hear()
-	fmt.Printf("chinese.Hear(): %s\n", hear)
-	have, _ = american.Have()
-	fmt.Printf("american.Have(): %s\n", have)
-	hear, _ = american.Hear()
-	fmt.Printf("american.Hear(): %s\n", hear)
-}
diff --git a/chain/frontend/conf/client.yml b/chain/frontend/conf/client.yml
deleted file mode 100644
index 6784010..0000000
--- a/chain/frontend/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "Frontend"
-  module: "dubbo-go frontend"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "ChineseService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.ChineseService"
-  "AmericanService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.AmericanService"
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/chain/frontend/conf/log.yml b/chain/frontend/conf/log.yml
deleted file mode 100644
index 8c3f700..0000000
--- a/chain/frontend/conf/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "info"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/chain/frontend/pkg/people.go b/chain/frontend/pkg/people.go
deleted file mode 100644
index 737bdbc..0000000
--- a/chain/frontend/pkg/people.go
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-type ChineseService struct {
-	Have func() (string, error)
-	Hear func() (string, error)
-}
-
-func (c *ChineseService) Reference() string {
-	return "ChineseService"
-}
-
-type AmericanService struct {
-	Have func() (string, error)
-	Hear func() (string, error)
-}
-
-func (a *AmericanService) Reference() string {
-	return "AmericanService"
-}
diff --git a/chain/middle/cmd/server.go b/chain/middle/cmd/server.go
deleted file mode 100644
index 21bc691..0000000
--- a/chain/middle/cmd/server.go
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-)
-
-import (
-	_ "github.com/apache/dubbo-go-samples/chain/middle/pkg"
-)
-
-var (
-	survivalTimeout = int(3e9)
-)
-
-// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run
-func main() {
-	config.Load()
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-	// It is not possible to block SIGKILL or syscall.SIGSTOP
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			// reload()
-		default:
-			time.AfterFunc(time.Duration(survivalTimeout), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			fmt.Println("provider app exit now...")
-			return
-		}
-	}
-}
diff --git a/chain/middle/conf/client.yml b/chain/middle/conf/client.yml
deleted file mode 100644
index 8c978e5..0000000
--- a/chain/middle/conf/client.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "MiddleServices"
-  module: "dubbo-go middle services"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "CatService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.CatService"
-  "DogService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.DogService"
-  "TigerService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.TigerService"
-  "LionService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.LionService"
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/chain/middle/conf/log.yml b/chain/middle/conf/log.yml
deleted file mode 100644
index 8c3f700..0000000
--- a/chain/middle/conf/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "info"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/chain/middle/conf/server.yml b/chain/middle/conf/server.yml
deleted file mode 100644
index 13663cd..0000000
--- a/chain/middle/conf/server.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "MiddleServices"
-  module: "dubbo-go middle services"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-
-# service config
-services:
-  "ChineseService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.ChineseService"
-  "AmericanService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.AmericanService"
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20001
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/chain/middle/conf/test.yml b/chain/middle/conf/test.yml
deleted file mode 100644
index ddbfd98..0000000
--- a/chain/middle/conf/test.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "MiddleServicesTest"
-  module: "dubbo-go middle services test"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "ChineseService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.ChineseService"
-  "AmericanService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.demo.AmericanService"
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/chain/middle/pkg/american_service.go b/chain/middle/pkg/american_service.go
deleted file mode 100644
index d78ed71..0000000
--- a/chain/middle/pkg/american_service.go
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"fmt"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-)
-
-type CatService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (c *CatService) Reference() string {
-	return "CatService"
-}
-
-type LionService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (l *LionService) Reference() string {
-	return "LionService"
-}
-
-func init() {
-	cat := new(CatService)
-	config.SetConsumerService(cat)
-	lion := new(LionService)
-	config.SetConsumerService(lion)
-
-	config.SetProviderService(&AmericanService{
-		cat:  cat,
-		lion: lion,
-	})
-}
-
-type AmericanService struct {
-	cat  *CatService
-	lion *LionService
-}
-
-func (a *AmericanService) Have() (string, error) {
-	name, _ := a.cat.GetName()
-	return "I'm American and I have a " + name, nil
-}
-
-func (a *AmericanService) Hear() (string, error) {
-	name, _ := a.lion.GetName()
-	yell, _ := a.lion.Yell()
-	return fmt.Sprintf("I'm American and I heard a %s yells like %s", name, yell), nil
-}
-
-func (a *AmericanService) Reference() string {
-	return "AmericanService"
-}
diff --git a/chain/middle/pkg/chinese_service.go b/chain/middle/pkg/chinese_service.go
deleted file mode 100644
index f1fb8c1..0000000
--- a/chain/middle/pkg/chinese_service.go
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"fmt"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-)
-
-type DogService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (d *DogService) Reference() string {
-	return "DogService"
-}
-
-type TigerService struct {
-	GetID   func() (int, error)
-	GetName func() (string, error)
-	Yell    func() (string, error)
-}
-
-func (t *TigerService) Reference() string {
-	return "TigerService"
-}
-
-func init() {
-	dog := new(DogService)
-	config.SetConsumerService(dog)
-	tiger := new(TigerService)
-	config.SetConsumerService(tiger)
-
-	config.SetProviderService(&ChineseService{
-		dog:   dog,
-		tiger: tiger,
-	})
-}
-
-type ChineseService struct {
-	dog   *DogService
-	tiger *TigerService
-}
-
-func (c *ChineseService) Have() (string, error) {
-	name, _ := c.dog.GetName()
-	return "I'm Chinese and I have a " + name, nil
-}
-
-func (c *ChineseService) Hear() (string, error) {
-	name, _ := c.tiger.GetName()
-	yell, _ := c.tiger.Yell()
-	return fmt.Sprintf("I'm Chinese and I heard a %s yells like %s", name, yell), nil
-}
-
-func (c *ChineseService) Reference() string {
-	return "ChineseService"
-}
diff --git a/chain/middle/tests/integration/main_test.go b/chain/middle/tests/integration/main_test.go
deleted file mode 100644
index b359c20..0000000
--- a/chain/middle/tests/integration/main_test.go
+++ /dev/null
@@ -1,70 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-)
-
-var (
-	chinese  = new(ChineseService)
-	american = new(AmericanService)
-)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(chinese)
-	config.SetConsumerService(american)
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
-
-type ChineseService struct {
-	Have func() (string, error)
-	Hear func() (string, error)
-}
-
-func (c *ChineseService) Reference() string {
-	return "ChineseService"
-}
-
-type AmericanService struct {
-	Have func() (string, error)
-	Hear func() (string, error)
-}
-
-func (a *AmericanService) Reference() string {
-	return "AmericanService"
-}
diff --git a/chain/middle/tests/integration/services_test.go b/chain/middle/tests/integration/services_test.go
deleted file mode 100644
index 5b39ea6..0000000
--- a/chain/middle/tests/integration/services_test.go
+++ /dev/null
@@ -1,46 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"testing"
-)
-
-import (
-	"github.com/stretchr/testify/assert"
-)
-
-func TestChinese(t *testing.T) {
-	have, err := chinese.Have()
-	assert.Nil(t, err)
-	assert.Equal(t, "I'm Chinese and I have a Dog", have)
-	hear, err := chinese.Hear()
-	assert.Nil(t, err)
-	assert.Equal(t, "I'm Chinese and I heard a Tiger yells like Tiger Tiger!", hear)
-}
-
-func TestAmerican(t *testing.T) {
-	have, err := american.Have()
-	assert.Nil(t, err)
-	assert.Equal(t, "I'm American and I have a Cat", have)
-	hear, err := american.Hear()
-	assert.Nil(t, err)
-	assert.Equal(t, "I'm American and I heard a Lion yells like Lion Lion!", hear)
-}
diff --git a/docker/Dockerfile b/docker/Dockerfile
deleted file mode 100644
index e215389..0000000
--- a/docker/Dockerfile
+++ /dev/null
@@ -1,5 +0,0 @@
-FROM golang:latest as build
-ENV GO111MODULE on
-ENV CONF_PROVIDER_FILE_PATH  /release/conf/server.yml
-ADD ./go-server/dist/linux_amd64/ /
-ENTRYPOINT exec /release/go-server
\ No newline at end of file
diff --git a/docker/README.md b/docker/README.md
deleted file mode 100644
index 0e7c185..0000000
--- a/docker/README.md
+++ /dev/null
@@ -1,49 +0,0 @@
-# Docker example
-### 1. How to run
-This example shows developers how to build your server using dubbo-go framework to docker. 
-
-run :
-```shell script
-sudo sh docker_run.sh
-``` 
-
-Then you can build and pack your server to running docker.
-
-### docker file:
-```dockerfile
-FROM golang:latest as build
-ENV GO111MODULE on
-ENV CONF_PROVIDER_FILE_PATH  /release/conf/server.yml
-ADD ./go-server/dist/linux_amd64/ /
-ENTRYPOINT exec /release/go-server
-```
-
-### 2. Attention
-
-in docker_run.sh
-```shell script
-P_DIR=$(pwd)/go-server
-make GOOS="linux" PROJECT_DIR=$P_DIR PROJECT_NAME=$(basename $P_DIR) BASE_DIR=$P_DIR/dist -f ../build/Makefile build
-docker build --no-cache -t dubbogo-docker-sample .
-docker run --name zkserver -p 2181:2181 --restart always -d zookeeper:3.4.9
-docker run -e DUBBO_IP_TO_REGISTRY=127.0.0.1  -p 20000:20000  --link zkserver:zkserver dubbogo-docker-sample
-```
-
-- first start zookeeper as registry
-- second we should set ip_to_registry environment.  \
-Docker bridge network mode need to specify a registered host IP for external network communication. Dubbo provides two pairs of system attributes in the startup phase, which are used to set the IP and port addresses of external communication. 
-
-### 3. Test
-in go-server/tests/integration/
-
-run:
-```shell script
-go test -tags integration -v .
-```          
-
-You can get lines at the end of output:
-```
---- PASS: TestGetUser (0.00s)
-PASS
-ok      github.com/apache/dubbo-go-samples/docker/go-server/tests/integration   3.612s
-```
\ No newline at end of file
diff --git a/docker/README_zh.md b/docker/README_zh.md
deleted file mode 100644
index 54c1dbd..0000000
--- a/docker/README_zh.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Docker 示例
-### 1. 如何使用
-这个示例展示了开发者如何将dubbogo框架开发的应用打包为docker,并提供测试方案。
-
-当前目录下终端运行
-
-```shell script
-sudo sh docker_run.sh
-```
-
-你可以打包构建你的服务,并且以docker方式运行
-
-### Dockerfile:
-```dockerfile
-FROM golang:latest as build
-ENV GO111MODULE on
-ENV CONF_PROVIDER_FILE_PATH  /release/conf/server.yml
-ADD ./go-server/dist/linux_amd64/ /
-ENTRYPOINT exec /release/go-server
-```
-
-### 2.  重要过程
-
-在 docker_run.sh 脚本中
-```shell script
-P_DIR=$(pwd)/go-server
-make GOOS="linux" PROJECT_DIR=$P_DIR PROJECT_NAME=$(basename $P_DIR) BASE_DIR=$P_DIR/dist -f ../build/Makefile build
-docker build --no-cache -t dubbogo-docker-sample .
-docker run --name zkserver -p 2181:2181 --restart always -d zookeeper:3.4.9
-docker run -e DUBBO_IP_TO_REGISTRY=127.0.0.1  -p 20000:20000  --link zkserver:zkserver dubbogo-docker-sample
-```
-
-- 首先开启了zookeeper docker,用于注册服务
-
-- 之后需要设置 DUBBO_IP_TO_REGISTRY 环境变量.  \
-
-  docker桥接网络模型需要明确指定主机ip用于网络通信。Dubbo框架在运行参数中提供了两个系统属性,能够指定Ip和port进行注册,然后其他服务通过注册好的信息访问当前服务。
-
-### 3. 测试
-在 go-server/tests/integration/ 文件夹下
-
-运行:
-```shell script
-go test -tags integration -v .
-```
-
-你可以在测试日志的最后,看到测试成功的信息:
-```
---- PASS: TestGetUser (0.00s)
-PASS
-ok      github.com/apache/dubbo-go-samples/docker/go-server/tests/integration   3.612s
-```
diff --git a/docker/docker_run.sh b/docker/docker_run.sh
deleted file mode 100644
index 3b5b6e4..0000000
--- a/docker/docker_run.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-P_DIR=$(pwd)/go-server
-make GOOS="linux" PROJECT_DIR=$P_DIR PROJECT_NAME=$(basename $P_DIR) BASE_DIR=$P_DIR/dist -f ../build/Makefile build
-docker build --no-cache -t dubbogo-docker-sample .
-docker run --name zkserver -p 2181:2181 --restart always -d zookeeper:3.4.9
-docker run -e DUBBO_IP_TO_REGISTRY=127.0.0.1  -p 20000:20000  --link zkserver:zkserver dubbogo-docker-sample
diff --git a/docker/go-client/cmd/client.go b/docker/go-client/cmd/client.go
deleted file mode 100644
index ad8e322..0000000
--- a/docker/go-client/cmd/client.go
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"context"
-	"os"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/docker/go-client/pkg"
-)
-
-var userProvider = new(pkg.UserProvider)
-
-func init() {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&pkg.User{})
-}
-
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	gxlog.CInfo("\n\n\nstart to test dubbo")
-	user := &pkg.User{}
-	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-	if err != nil {
-		gxlog.CError("error: %v\n", err)
-		os.Exit(1)
-		return
-	}
-	gxlog.CInfo("response result: %v\n", user)
-}
diff --git a/docker/go-client/conf/client.yml b/docker/go-client/conf/client.yml
deleted file mode 100644
index 308d530..0000000
--- a/docker/go-client/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoClient"
-  module: "dubbo-go user-info client"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/docker/go-client/conf/log.yml b/docker/go-client/conf/log.yml
deleted file mode 100644
index 2b6e93a..0000000
--- a/docker/go-client/conf/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "debug"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/docker/go-client/pkg/user.go b/docker/go-client/pkg/user.go
deleted file mode 100644
index 7733ea4..0000000
--- a/docker/go-client/pkg/user.go
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/docker/go-server/cmd/server.go b/docker/go-server/cmd/server.go
deleted file mode 100644
index 7056379..0000000
--- a/docker/go-server/cmd/server.go
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/docker/go-server/pkg"
-)
-
-var (
-	survivalTimeout = int(3e9)
-)
-
-// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-	// It is not possible to block SIGKILL or syscall.SIGSTOP
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			// reload()
-		default:
-			time.AfterFunc(time.Duration(survivalTimeout), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			fmt.Println("provider app exit now...")
-			return
-		}
-	}
-}
diff --git a/docker/go-server/conf/client.yml b/docker/go-server/conf/client.yml
deleted file mode 100644
index 11ae382..0000000
--- a/docker/go-server/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoTest"
-  module: "dubbo-go user-info client"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/docker/go-server/conf/log.yml b/docker/go-server/conf/log.yml
deleted file mode 100644
index 970d988..0000000
--- a/docker/go-server/conf/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "error"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/docker/go-server/conf/server.yml b/docker/go-server/conf/server.yml
deleted file mode 100644
index 04f288f..0000000
--- a/docker/go-server/conf/server.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoServer"
-  module: "dubbo-go user-info server"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "zkserver:2181"
-
-# service config
-services:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 1
-        loadbalance: "random"
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20000
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/docker/go-server/docker/docker-compose.yml b/docker/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/docker/go-server/docker/docker-compose.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
diff --git a/docker/go-server/docker/docker-health-check.sh b/docker/go-server/docker/docker-health-check.sh
deleted file mode 100644
index 2cc32c2..0000000
--- a/docker/go-server/docker/docker-health-check.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-curl 127.0.0.1:2181
-res=$?
-passCode=52
-while [ "$res" != "$passCode" ];do
-  sleep 5
-  curl 127.0.0.1:2181
-  res=$?
-done
-
-sleep 5
diff --git a/docker/go-server/pkg/user.go b/docker/go-server/pkg/user.go
deleted file mode 100644
index 75d0916..0000000
--- a/docker/go-server/pkg/user.go
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	"github.com/dubbogo/gost/log"
-)
-
-func init() {
-	config.SetProviderService(new(UserProvider))
-	// ------for hessian2------
-	hessian.RegisterPOJO(&User{})
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-}
-
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
-	gxlog.CInfo("req:%#v", req)
-	rsp := User{"A001", "Alex Stocks", 18, time.Now()}
-	gxlog.CInfo("rsp:%#v", rsp)
-	return &rsp, nil
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (u User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/docker/go-server/tests/integration/main_test.go b/docker/go-server/tests/integration/main_test.go
deleted file mode 100644
index d028c55..0000000
--- a/docker/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,71 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-var userProvider = new(UserProvider)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/docker/go-server/tests/integration/userprovider_test.go b/docker/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 7183e64..0000000
--- a/docker/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,39 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"testing"
-)
-
-import (
-	"github.com/stretchr/testify/assert"
-)
-
-func TestGetUser(t *testing.T) {
-	user := &User{}
-	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-	assert.Nil(t, err)
-	assert.Equal(t, "A001", user.ID)
-	assert.Equal(t, "Alex Stocks", user.Name)
-	assert.Equal(t, int32(18), user.Age)
-	assert.NotNil(t, user.Time)
-}
diff --git a/filter/custom/README.md b/filter/custom/README.md
deleted file mode 100644
index f34b20f..0000000
--- a/filter/custom/README.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# Custom Filter Sample
-
-### Background
-
-Dubbo-go supports custom filter on both provider side and consumer side. By doing this, user has the opportunity to do some customized operations during the request, for example: logging or auditing, etc.
-
-### Example
-
-This example shows how to add a custom filter on the provider side.
-
-##### 1. Code
-
-A) First implement a custom filter on the provider side as shown below:
-
-```go
-type myCustomFilter struct{}
-
-func (mf myCustomFilter) Invoke(ctx context.Context, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result {
-    // the logic put here...
-    // you can get many params in url. And the invocation provides more information about
-    url := invoker.GetURL()
-    serviceKey := url.ServiceKey()
-    gxlog.CInfo("Here is the my custom filter. The service is invoked: %s", serviceKey)
-    return invoker.Invoke(ctx, invocation)
-}
-
-func (mf myCustomFilter) OnResponse(ctx context.Context, result protocol.Result, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result {
-    // you can do something here with result
-    gxlog.CInfo("Got result!")
-    if user, ok := result.Result().(*User); ok {
-        user.Name = strings.ToUpper(user.Name)
-        user.Age = user.Age + 10
-    }
-    return result
-}
-
-func GetMyCustomFilter() filter.Filter {
-    return &myCustomFilter{}
-}
-```
-
-This filter implementation will modify the response result before send it back to the consumer, for example: capitalize user's name, and add user's age by 10. At the same time, this filter also prints out messages for logging purpose.
-
-B) Register this custom filter with the name "MyCustomFilter":
-
-```go
-func init() {
-	/**
-	 * MyCustomFilter would be the name that used in your configuration file.
-	 * it can be used as reference filter and provider filter.
-	 * For example, using this filter in server, and the configure file looks like:
-	 *
-	 * filter: "MyCustomFilter",
-	 * registries:
-	 *  "demoZk":
-	 *    protocol: "zookeeper"
-	 *    timeout	: "3s"
-	 *    address: "127.0.0.1:2181"
-	 * Another important things is that you should make sure this statement executed. It usually means that
-	 * this file should be imported.
-	 */
-	extension.SetFilter("MyCustomFilter", GetMyCustomFilter)
-
-	// or using the singleton
-	// filter.SetFilter("MyCustomFilter", GetMyCustomFilterSingleton)
-}
-```
-
-##### 2. Configuration
-
-Configure this filter in the provider's configuration file like this:
-
-```yaml
-# filter config
-filter: "MyCustomFilter"
-```
-
-##### 3. Run
-
-Pls. refer to [HOWTO.md](../../HOWTO.md) under the root directory to run this sample.
-
-The provider side will print out:
-
-```bash
-[2021-03-10/16:30:52 github.com/apache/dubbo-go-samples/filter/custom/go-server/pkg.myCustomFilter.Invoke: custom_filter.go: 61] %s
-Here is the my custom filter. The service is invoked: org.apache.dubbo.UserProvider
-```
-
-And the consumer side will print out:
-
-```bash
-[2021-03-10/16:32:06 main.main: client.go: 64] %s response result: &{A001 ALEX STOCKS 28 2021-03-10 16:32:06.643 +0800 CST}
-``
diff --git a/filter/custom/README_zh.md b/filter/custom/README_zh.md
deleted file mode 100644
index cf07511..0000000
--- a/filter/custom/README_zh.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# 自定义 Filter 示例
-
-### 背景
-
-Dubbo-go 支持在服务端和客户端扩展自己的 filter,通过这样做,在请求链路上做一些自定义的处理,比如,监控或者审计等。
-
-### 示例
-
-在本例中,将以服务端为例,展示如何增加一个自定义的 filter。
-
-##### 1. 代码
-
-A) 首先在服务端实现一个自定义的 filter,如下所示:
-
-```go
-type myCustomFilter struct{}
-
-func (mf myCustomFilter) Invoke(ctx context.Context, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result {
-    // the logic put here...
-    // you can get many params in url. And the invocation provides more information about
-    url := invoker.GetURL()
-    serviceKey := url.ServiceKey()
-    gxlog.CInfo("Here is the my custom filter. The service is invoked: %s", serviceKey)
-    return invoker.Invoke(ctx, invocation)
-}
-
-func (mf myCustomFilter) OnResponse(ctx context.Context, result protocol.Result, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result {
-    // you can do something here with result
-    gxlog.CInfo("Got result!")
-    if user, ok := result.Result().(*User); ok {
-        user.Name = strings.ToUpper(user.Name)
-        user.Age = user.Age + 10
-    }
-    return result
-}
-
-func GetMyCustomFilter() filter.Filter {
-    return &myCustomFilter{}
-}
-```
-
-该 filter 会修改返回给客户端的结果,将用户名改为大写,并将用户的年龄加十。同时,还将在服务端打印日志。
-
-B) 把该 filter 注册成名为 "MyCustomFilter" 的 filter:
-
-```go
-func init() {
-	/**
-	 * MyCustomFilter would be the name that used in your configuration file.
-	 * it can be used as reference filter and provider filter.
-	 * For example, using this filter in server, and the configure file looks like:
-	 *
-	 * filter: "MyCustomFilter",
-	 * registries:
-	 *  "demoZk":
-	 *    protocol: "zookeeper"
-	 *    timeout	: "3s"
-	 *    address: "127.0.0.1:2181"
-	 * Another important things is that you should make sure this statement executed. It usually means that
-	 * this file should be imported.
-	 */
-	extension.SetFilter("MyCustomFilter", GetMyCustomFilter)
-
-	// or using the singleton
-	// filter.SetFilter("MyCustomFilter", GetMyCustomFilterSingleton)
-}
-```
-
-##### 2. 配置
-
-在服务端的配置文件中,按如下所示配置该 filter:
-
-```yaml
-# filter config
-filter: "MyCustomFilter"
-```
-
-##### 3. 运行
-
-请参阅根目录中的 [HOWTO.md](../../HOWTO_zh.md) 来运行本例。
-
-观察服务端的输出:
-
-```bash
-[2021-03-10/16:30:52 github.com/apache/dubbo-go-samples/filter/custom/go-server/pkg.myCustomFilter.Invoke: custom_filter.go: 61] %s
-Here is the my custom filter. The service is invoked: org.apache.dubbo.UserProvider
-```
-
-观察客户端的输出:
-
-```bash
-[2021-03-10/16:32:06 main.main: client.go: 64] %s response result: &{A001 ALEX STOCKS 28 2021-03-10 16:32:06.643 +0800 CST}
-```
\ No newline at end of file
diff --git a/filter/custom/go-client/cmd/client.go b/filter/custom/go-client/cmd/client.go
deleted file mode 100644
index 746d3f8..0000000
--- a/filter/custom/go-client/cmd/client.go
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"context"
-	"os"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/filter/custom/go-client/pkg"
-)
-
-var userProvider = new(pkg.UserProvider)
-
-func init() {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&pkg.User{})
-}
-
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	gxlog.CInfo("\n\n\nstart to test dubbo")
-	user := &pkg.User{}
-	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-	if err != nil {
-		gxlog.CError("error: %v\n", err)
-		os.Exit(1)
-		return
-	}
-	gxlog.CInfo("response result: %v\n", user)
-}
diff --git a/filter/custom/go-client/conf/client.yml b/filter/custom/go-client/conf/client.yml
deleted file mode 100644
index e69fc0f..0000000
--- a/filter/custom/go-client/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "UserInfoClient"
-  module : "dubbo-go user-info client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods :
-    - name: "GetUser"
-      retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/filter/custom/go-client/conf/log.yml b/filter/custom/go-client/conf/log.yml
deleted file mode 100644
index d0400fe..0000000
--- a/filter/custom/go-client/conf/log.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-level: "debug"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/filter/custom/go-client/pkg/user.go b/filter/custom/go-client/pkg/user.go
deleted file mode 100644
index 7733ea4..0000000
--- a/filter/custom/go-client/pkg/user.go
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/custom/go-server/cmd/server.go b/filter/custom/go-server/cmd/server.go
deleted file mode 100644
index f52f08b..0000000
--- a/filter/custom/go-server/cmd/server.go
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/filter/custom/go-server/pkg"
-)
-
-var (
-	survivalTimeout = int(3e9)
-)
-
-// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-	// It is not possible to block SIGKILL or syscall.SIGSTOP
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			// reload()
-		default:
-			time.AfterFunc(time.Duration(survivalTimeout), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			fmt.Println("provider app exit now...")
-			return
-		}
-	}
-}
diff --git a/filter/custom/go-server/conf/client.yml b/filter/custom/go-server/conf/client.yml
deleted file mode 100644
index 27b17c5..0000000
--- a/filter/custom/go-server/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "UserInfoTest"
-  module : "dubbo-go user-info client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods :
-    - name: "GetUser"
-      retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/filter/custom/go-server/conf/log.yml b/filter/custom/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/filter/custom/go-server/conf/log.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-level: "error"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/filter/custom/go-server/conf/server.yml b/filter/custom/go-server/conf/server.yml
deleted file mode 100644
index 781d5aa..0000000
--- a/filter/custom/go-server/conf/server.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoServer"
-  module: "dubbo-go user-info server"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-
-# service config
-services:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 1
-        loadbalance: "random"
-
-# filter config
-filter: "MyCustomFilter"
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20000
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/filter/custom/go-server/docker/docker-compose.yml b/filter/custom/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/filter/custom/go-server/docker/docker-compose.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
diff --git a/filter/custom/go-server/docker/docker-health-check.sh b/filter/custom/go-server/docker/docker-health-check.sh
deleted file mode 100644
index 2cc32c2..0000000
--- a/filter/custom/go-server/docker/docker-health-check.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-curl 127.0.0.1:2181
-res=$?
-passCode=52
-while [ "$res" != "$passCode" ];do
-  sleep 5
-  curl 127.0.0.1:2181
-  res=$?
-done
-
-sleep 5
diff --git a/filter/custom/go-server/pkg/custom_filter.go b/filter/custom/go-server/pkg/custom_filter.go
deleted file mode 100644
index fefb397..0000000
--- a/filter/custom/go-server/pkg/custom_filter.go
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"strings"
-	"sync"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/common/extension"
-	"dubbo.apache.org/dubbo-go/v3/filter"
-	"dubbo.apache.org/dubbo-go/v3/protocol"
-
-	"github.com/dubbogo/gost/log"
-)
-
-func init() {
-	/**
-	 * MyCustomFilter would be the name that used in your configuration file.
-	 * it can be used as reference filter and provider filter.
-	 * For example, using this filter in server, and the configure file looks like:
-	 *
-	 * filter: "MyCustomFilter",
-	 * registries:
-	 *  "demoZk":
-	 *    protocol: "zookeeper"
-	 *    timeout	: "3s"
-	 *    address: "127.0.0.1:2181"
-	 * Another important things is that you should make sure this statement executed. It usually means that
-	 * this file should be imported.
-	 */
-	extension.SetFilter("MyCustomFilter", GetMyCustomFilter)
-
-	// or using the singleton
-	// filter.SetFilter("MyCustomFilter", GetMyCustomFilterSingleton)
-}
-
-type myCustomFilter struct{}
-
-func (mf myCustomFilter) Invoke(ctx context.Context, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result {
-	// the logic put here...
-	// you can get many params in url. And the invocation provides more information about
-	url := invoker.GetURL()
-	serviceKey := url.ServiceKey()
-	gxlog.CInfo("Here is the my custom filter. The service is invoked: %s", serviceKey)
-	return invoker.Invoke(ctx, invocation)
-}
-
-func (mf myCustomFilter) OnResponse(ctx context.Context, result protocol.Result, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result {
-	// you can do something here with result
-	gxlog.CInfo("Got result!")
-	if user, ok := result.Result().(*User); ok {
-		user.Name = strings.ToUpper(user.Name)
-		user.Age = user.Age + 10
-	}
-	return result
-}
-
-func GetMyCustomFilter() filter.Filter {
-	return &myCustomFilter{}
-}
-
-var (
-	myFilterOnce sync.Once
-	myFilter     *myCustomFilter
-)
-
-/**
- * In most cases, the filter would be designed as singleton.
- */
-func GetMyCustomFilterSingleton() filter.Filter {
-	myFilterOnce.Do(func() {
-		myFilter = &myCustomFilter{}
-	})
-	return myFilter
-}
diff --git a/filter/custom/go-server/pkg/user.go b/filter/custom/go-server/pkg/user.go
deleted file mode 100644
index 75d0916..0000000
--- a/filter/custom/go-server/pkg/user.go
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	"github.com/dubbogo/gost/log"
-)
-
-func init() {
-	config.SetProviderService(new(UserProvider))
-	// ------for hessian2------
-	hessian.RegisterPOJO(&User{})
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-}
-
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
-	gxlog.CInfo("req:%#v", req)
-	rsp := User{"A001", "Alex Stocks", 18, time.Now()}
-	gxlog.CInfo("rsp:%#v", rsp)
-	return &rsp, nil
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (u User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/custom/go-server/tests/integration/main_test.go b/filter/custom/go-server/tests/integration/main_test.go
deleted file mode 100644
index d028c55..0000000
--- a/filter/custom/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,71 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-var userProvider = new(UserProvider)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/custom/go-server/tests/integration/userprovider_test.go b/filter/custom/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 4618a83..0000000
--- a/filter/custom/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,39 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"testing"
-)
-
-import (
-	"github.com/stretchr/testify/assert"
-)
-
-func TestGetUser(t *testing.T) {
-	user := &User{}
-	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-	assert.Nil(t, err)
-	assert.Equal(t, "A001", user.ID)
-	assert.Equal(t, "ALEX STOCKS", user.Name)
-	assert.Equal(t, int32(28), user.Age)
-	assert.NotNil(t, user.Time)
-}
diff --git a/filter/sentinel/README.md b/filter/sentinel/README.md
deleted file mode 100644
index a4ddb2f..0000000
--- a/filter/sentinel/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# Sentinel Filter Sample
-
-### Background
-
-In dubbo-go, [sentinel](https://github.com/alibaba/sentinel) is supported as a filter. This example demonstrates how sentinel is configured and used in dubbo-go. 
-
-### Example
-
-##### 1. Code
-
-Use the following code to initialize sentinel and the corresponding flow rule:
-
-```go
-var err error
-conf := sentinelConf.NewDefaultConfig()
-err = api.InitWithConfig(conf)
-
-_, err = flow.LoadRules([]*flow.Rule{
-    {
-        // protocol:consumer:interfaceName:group:version:method
-        Resource:               "dubbo:consumer:org.apache.dubbo.UserProvider:::GetUser()",
-        TokenCalculateStrategy: flow.Direct,
-        ControlBehavior:        flow.Reject,
-        Threshold:              1,
-        StatIntervalInMs:       1000,
-    },
-})
-```
-
-##### 2. Configuration
-
-There are two builtin sentinel filters: sentinel-consumer and sentinel-provider. The former filter is used on consumer side, and the latter is for provider side. Check the following snippet for how to config it:
-
-```yaml
-# consumer filter config
-filter: "sentinel-consumer"
-
-# provider filter config
-filter: "sentinel-provider"
-```
-
-##### 3. Run
-
-Pls. refer to [HOWTO.md](../../HOWTO.md) under the root directory to run this sample.
-
-```bash
-[2021-03-10/10:55:46 main.main: client.go: 80] error: SentinelBlockError: FlowControl, message: flow reject check blocked
-```
diff --git a/filter/sentinel/README_zh.md b/filter/sentinel/README_zh.md
deleted file mode 100644
index 677a71a..0000000
--- a/filter/sentinel/README_zh.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# Sentinel Filter 示例
-
-### 背景
-
-在 dubbo-go 中,[sentinel](https://github.com/alibaba/sentinel) 是作为 filter 的形式集成的。这个示例展示了如何在 dubbo-go 中配置并使用 sentinel。
-
-### 示例
-
-##### 1. 代码
-
-通过代码初始化 sentinel 并配置相关的限流规则,如下所示:
-
-```go
-var err error
-conf := sentinelConf.NewDefaultConfig()
-err = api.InitWithConfig(conf)
-
-_, err = flow.LoadRules([]*flow.Rule{
-    {
-        // protocol:consumer:interfaceName:group:version:method
-        Resource:               "dubbo:consumer:org.apache.dubbo.UserProvider:::GetUser()",
-        TokenCalculateStrategy: flow.Direct,
-        ControlBehavior:        flow.Reject,
-        Threshold:              1,
-        StatIntervalInMs:       1000,
-    },
-})
-```
-
-##### 2. 配置
-
-Sentinel filter 分为 sentinel-consumer 和 sentinel-provider 两种,分别用于 consumer 端和 provider 端,如下所示:
-
-```yaml
-# consumer filter config
-filter: "sentinel-consumer"
-
-# provider filter config
-filter: "sentinel-provider"
-```
-
-##### 3. 运行
-
-请参阅根目录中的 [HOWTO.md](../../HOWTO_zh.md) 来运行本例。
-
-```bash
-[2021-03-10/10:55:46 main.main: client.go: 80] error: SentinelBlockError: FlowControl, message: flow reject check blocked
-```
diff --git a/filter/sentinel/go-client/cmd/client.go b/filter/sentinel/go-client/cmd/client.go
deleted file mode 100644
index dac4c86..0000000
--- a/filter/sentinel/go-client/cmd/client.go
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"context"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	"github.com/alibaba/sentinel-golang/api"
-	sentinelConf "github.com/alibaba/sentinel-golang/core/config"
-	"github.com/alibaba/sentinel-golang/core/flow"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/filter/sentinel/go-client/pkg"
-)
-
-var userProvider = new(pkg.UserProvider)
-
-func init() {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&pkg.User{})
-}
-
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	if err := initSentinel(); err != nil {
-		panic(err)
-	}
-	_, err := flow.LoadRules([]*flow.Rule{
-		{
-			// protocol:consumer:interfaceName:group:version:method
-			Resource:               "dubbo:consumer:org.apache.dubbo.UserProvider:::GetUser()",
-			TokenCalculateStrategy: flow.Direct,
-			ControlBehavior:        flow.Reject,
-			Threshold:              1,
-			StatIntervalInMs:       1000,
-		},
-	})
-	if err != nil {
-		panic(err)
-	}
-
-	gxlog.CInfo("\n\n\nstart to test sentinel filter")
-	for i := 0; i <= 5; i++ {
-		user := &pkg.User{}
-		err = userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-		if err != nil {
-			gxlog.CError("error: %v\n", err)
-			continue
-		}
-		gxlog.CInfo("response result: %v\n", user)
-	}
-
-}
-
-func initSentinel() error {
-	// custom changes configs
-	conf := sentinelConf.NewDefaultConfig()
-	return api.InitWithConfig(conf)
-}
diff --git a/filter/sentinel/go-client/conf/client.yml b/filter/sentinel/go-client/conf/client.yml
deleted file mode 100644
index bd79b24..0000000
--- a/filter/sentinel/go-client/conf/client.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "UserInfoClient"
-  module : "dubbo-go user-info client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods :
-    - name: "GetUser"
-      retries: 3
-
-# filter config
-filter: "sentinel-consumer"
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/filter/sentinel/go-client/conf/log.yml b/filter/sentinel/go-client/conf/log.yml
deleted file mode 100644
index d0400fe..0000000
--- a/filter/sentinel/go-client/conf/log.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-level: "debug"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/filter/sentinel/go-client/pkg/user.go b/filter/sentinel/go-client/pkg/user.go
deleted file mode 100644
index 7733ea4..0000000
--- a/filter/sentinel/go-client/pkg/user.go
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/sentinel/go-server/cmd/server.go b/filter/sentinel/go-server/cmd/server.go
deleted file mode 100644
index 2e95792..0000000
--- a/filter/sentinel/go-server/cmd/server.go
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	"github.com/alibaba/sentinel-golang/api"
-	sentinelConf "github.com/alibaba/sentinel-golang/core/config"
-	"github.com/alibaba/sentinel-golang/core/flow"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/filter/sentinel/go-server/pkg"
-)
-
-var (
-	survivalTimeout = int(3e9)
-)
-
-// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-
-	if err := initSentinel(); err != nil {
-		panic(err)
-	}
-	_, err := flow.LoadRules([]*flow.Rule{
-		{
-			// protocol:consumer:interfaceName:group:version:method
-			Resource:               "dubbo:provider:org.apache.dubbo.UserProvider:::GetUser()",
-			TokenCalculateStrategy: flow.Direct,
-			ControlBehavior:        flow.Reject,
-			Threshold:              1,
-			StatIntervalInMs:       1000,
-		},
-	})
-	if err != nil {
-		panic(err)
-	}
-
-	initSignal()
-}
-
-func initSentinel() error {
-	// custom changes configs
-	conf := sentinelConf.NewDefaultConfig()
-	return api.InitWithConfig(conf)
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-	// It is not possible to block SIGKILL or syscall.SIGSTOP
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			// reload()
-		default:
-			time.AfterFunc(time.Duration(survivalTimeout), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			fmt.Println("provider app exit now...")
-			return
-		}
-	}
-}
diff --git a/filter/sentinel/go-server/conf/client.yml b/filter/sentinel/go-server/conf/client.yml
deleted file mode 100644
index 27b17c5..0000000
--- a/filter/sentinel/go-server/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "UserInfoTest"
-  module : "dubbo-go user-info client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods :
-    - name: "GetUser"
-      retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/filter/sentinel/go-server/conf/log.yml b/filter/sentinel/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/filter/sentinel/go-server/conf/log.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-level: "error"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/filter/sentinel/go-server/conf/server.yml b/filter/sentinel/go-server/conf/server.yml
deleted file mode 100644
index b614d94..0000000
--- a/filter/sentinel/go-server/conf/server.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoServer"
-  module: "dubbo-go user-info server"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-
-# service config
-services:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 1
-        loadbalance: "random"
-
-# filter config
-filter: "sentinel-provider"
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20000
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/filter/sentinel/go-server/docker/docker-compose.yml b/filter/sentinel/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/filter/sentinel/go-server/docker/docker-compose.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
diff --git a/filter/sentinel/go-server/docker/docker-health-check.sh b/filter/sentinel/go-server/docker/docker-health-check.sh
deleted file mode 100644
index 2cc32c2..0000000
--- a/filter/sentinel/go-server/docker/docker-health-check.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-curl 127.0.0.1:2181
-res=$?
-passCode=52
-while [ "$res" != "$passCode" ];do
-  sleep 5
-  curl 127.0.0.1:2181
-  res=$?
-done
-
-sleep 5
diff --git a/filter/sentinel/go-server/pkg/user.go b/filter/sentinel/go-server/pkg/user.go
deleted file mode 100644
index 75d0916..0000000
--- a/filter/sentinel/go-server/pkg/user.go
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	"github.com/dubbogo/gost/log"
-)
-
-func init() {
-	config.SetProviderService(new(UserProvider))
-	// ------for hessian2------
-	hessian.RegisterPOJO(&User{})
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-}
-
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
-	gxlog.CInfo("req:%#v", req)
-	rsp := User{"A001", "Alex Stocks", 18, time.Now()}
-	gxlog.CInfo("rsp:%#v", rsp)
-	return &rsp, nil
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (u User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/sentinel/go-server/tests/integration/main_test.go b/filter/sentinel/go-server/tests/integration/main_test.go
deleted file mode 100644
index d028c55..0000000
--- a/filter/sentinel/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,71 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-var userProvider = new(UserProvider)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/sentinel/go-server/tests/integration/userprovider_test.go b/filter/sentinel/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 397f3ab..0000000
--- a/filter/sentinel/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,43 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"testing"
-)
-
-import (
-	"github.com/stretchr/testify/assert"
-)
-
-func TestGetUser(t *testing.T) {
-	user := &User{}
-	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-	assert.Nil(t, err)
-	assert.Equal(t, "A001", user.ID)
-	assert.Equal(t, "Alex Stocks", user.Name)
-	assert.Equal(t, int32(18), user.Age)
-	assert.NotNil(t, user.Time)
-
-	// Because the sentinel filter, the second request will be an error
-	err = userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-	assert.NotNil(t, err)
-}
diff --git a/filter/tpslimit/README.md b/filter/tpslimit/README.md
deleted file mode 100644
index 714b727..0000000
--- a/filter/tpslimit/README.md
+++ /dev/null
@@ -1,173 +0,0 @@
-# TPSLimit Filter Sample
-
-### Background
-
-Dubbo-go has a builtin filter for limiting TPS purpose - "tpslimit". It can be enabled by configuring on the provider side, furthermore, user can customize the TPS limit strategy and the return value after the request is rejected.
-
-### Example
-
-##### 1. Code
-
-A) Customize TPS limit strategy:
-
-To customize TPS limit strategy, the interface "filter.TpsLimitStrategy" is needed to implement. In this example, the strategy is implemented as randomly rejecting the incoming request, see below: 
-
-```go
-func init() {
-	/*
-	 * register your implementation and them using it like:
-	 *
-	 * "UserProvider":
-	 *   registry: "hangzhouzk"
-	 *   protocol : "dubbo"
-	 *   interface : "com.ikurento.user.UserProvider"
-	 *   ... # other configuration
-	 *   tps.limiter: "method-service" # the name of limiter
-	 *   tps.limit.strategy: "RandomLimitStrategy"
-	 */
-	extension.SetTpsLimitStrategy("RandomLimitStrategy", &RandomTpsLimitStrategyCreator{})
-}
-
-/**
- * The RandomTpsLimitStrategy should not be singleton because different TpsLimiter will create many instances.
- * we won't want them affect each other.
- */
-type RandomTpsLimitStrategy struct {
-	rate     int
-	interval int
-}
-
-func (r RandomTpsLimitStrategy) IsAllowable() bool {
-	// this is a simple demo.
-	gxlog.CInfo("Random IsAllowable!")
-	randNum := rand.Int63n(2)
-	return randNum == 0
-}
-
-type RandomTpsLimitStrategyCreator struct{}
-
-func (creator *RandomTpsLimitStrategyCreator) Create(rate int, interval int) filter.TpsLimitStrategy {
-	return &RandomTpsLimitStrategy{
-		rate:     rate,
-		interval: interval,
-	}
-}
-```
-
-B) Customize execution handler when the request is rejected.
-
-Implement the interface "filter.RejectedExecutionHandler" to customize the return result to the client when the request is rejected. In this example, when the TPS limit criteria meets, the customized execution handler will return the error "The request is rejected and doesn't have any default value." back to the consumer.
-
-```go
-func init() {
-	/*
-	 * register your custom implementation into filter.
-	 * "DefaultValueHandler" is the name used in configure file, like server.yml:
-	 * "UserProvider":
-	 *   registry: "hangzhouzk"
-	 *   protocol : "dubbo"
-	 *   interface : "com.ikurento.user.UserProvider"
-	 *   ... # other configuration
-	 *   tps.limiter: "method-service",
-	 *
-	 *   tps.limit.rejected.handler: "DefaultValueHandler",
-	 * So when the invocation is over the tps limitation, it will return the default value.
-	 * This is a common use case.
-	 */
-	extension.SetRejectedExecutionHandler("DefaultValueHandler", GetDefaultValueRejectedExecutionHandlerSingleton)
-
-}
-
-/**
- * The RejectedExecutionHandler is used by some components,
- * e.g, ExecuteLimitFilter, GracefulShutdownFilter, TpsLimitFilter.
- * When the requests are rejected, the RejectedExecutionHandler allows you to do something.
- * You can alert the developer, or redirect those requests to another providers. It depends on what you need.
- *
- * Let's assume that you need a RejectedExecutionHandler which will return some default result if the request was rejected.
- */
-type DefaultValueRejectedExecutionHandler struct {
-	defaultResult sync.Map
-}
-
-func (mh *DefaultValueRejectedExecutionHandler) RejectedExecution(url *common.URL, invocation protocol.Invocation) protocol.Result {
-	// put your custom business here.
-	logger.Error("Here is my custom rejected handler. I want to do something if the requests are rejected. ")
-	// in most cases, if the request was rejected, you won't want to invoke the origin provider.
-	// But if you really want to do that, you can do it like this:
-	// invocation.Invoker().Invoke(invocation)
-
-	// the ServiceKey + methodName is the key
-	key := url.ServiceKey() + "#" + invocation.MethodName()
-	result, loaded := mh.defaultResult.Load(key)
-	if !loaded {
-		// we didn't configure any default value for this invocation
-		return &protocol.RPCResult{
-			Err: errors.New("The request is rejected and doesn't have any default value. "),
-		}
-	}
-	return result.(*protocol.RPCResult)
-}
-
-func GetCustomRejectedExecutionHandler() filter.RejectedExecutionHandler {
-	return &DefaultValueRejectedExecutionHandler{}
-}
-
-var (
-	customHandlerOnce     sync.Once
-	customHandlerInstance *DefaultValueRejectedExecutionHandler
-)
-
-/**
- * the better way is designing the RejectedExecutionHandler as singleton.
- */
-func GetDefaultValueRejectedExecutionHandlerSingleton() filter.RejectedExecutionHandler {
-	customHandlerOnce.Do(func() {
-		customHandlerInstance = &DefaultValueRejectedExecutionHandler{}
-	})
-
-	initDefaultValue()
-
-	return customHandlerInstance
-}
-
-func initDefaultValue() {
-	// setting your default value
-}
-```
-
-##### 2. Configuration
-
-Enable tpslimit filter in provider's configuration file like below:
-
-```yaml
-# service config
-services:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    tps.limiter: "method-service"
-    tps.limit.strategy: "RandomLimitStrategy"
-    tps.limit.rejected.handler: "DefaultValueHandler"
-    tps.limit.interval: 5000
-    tps.limit.rate: 300
-```
-
-##### 3. Run
-
-Pls. refer to [HOWTO.md](../../HOWTO.md) under the root directory to run this sample.
-
-The provider side will print out:
-
-```bash
-[2021-03-10/17:11:10 github.com/apache/dubbo-go-samples/filter/tpslimit/go-server/pkg.RandomTpsLimitStrategy.IsAllowable: limit_strategy.go: 56] %s
-Random IsAllowable!
-2021-03-10T17:11:10.748+0800 ERROR   filter_impl/tps_limit_filter.go:69      The invocation was rejected due to over the tps limitation, ...
-```
-
-The consumer side will print out:
-
-```bash
-error: The request is rejected and doesn't have any default value. 
-```
\ No newline at end of file
diff --git a/filter/tpslimit/README_zh.md b/filter/tpslimit/README_zh.md
deleted file mode 100644
index b02cd7a..0000000
--- a/filter/tpslimit/README_zh.md
+++ /dev/null
@@ -1,173 +0,0 @@
-# TPSLimit Filter 示例
-
-### 背景
-
-Dubbo-go 内置了限流 filter "tpslimit"。可以通过在服务端的配置来激活,另外,用户还可以自定义限流策略和拒绝访问后的处理逻辑。
-
-### 示例
-
-##### 1. 代码
-
-A) 自定义限流策略:
-
-通过实现 filter.TpsLimitStrategy 来自定义限流策略。在本例中,采取的策略是随机限流:
-
-```go
-func init() {
-	/*
-	 * register your implementation and them using it like:
-	 *
-	 * "UserProvider":
-	 *   registry: "hangzhouzk"
-	 *   protocol : "dubbo"
-	 *   interface : "com.ikurento.user.UserProvider"
-	 *   ... # other configuration
-	 *   tps.limiter: "method-service" # the name of limiter
-	 *   tps.limit.strategy: "RandomLimitStrategy"
-	 */
-	extension.SetTpsLimitStrategy("RandomLimitStrategy", &RandomTpsLimitStrategyCreator{})
-}
-
-/**
- * The RandomTpsLimitStrategy should not be singleton because different TpsLimiter will create many instances.
- * we won't want them affect each other.
- */
-type RandomTpsLimitStrategy struct {
-	rate     int
-	interval int
-}
-
-func (r RandomTpsLimitStrategy) IsAllowable() bool {
-	// this is a simple demo.
-	gxlog.CInfo("Random IsAllowable!")
-	randNum := rand.Int63n(2)
-	return randNum == 0
-}
-
-type RandomTpsLimitStrategyCreator struct{}
-
-func (creator *RandomTpsLimitStrategyCreator) Create(rate int, interval int) filter.TpsLimitStrategy {
-	return &RandomTpsLimitStrategy{
-		rate:     rate,
-		interval: interval,
-	}
-}
-```
-
-B) 自定义拒绝访问处理:
-
-通过实现 filter.RejectedExecutionHandler。在本例中,当限流条件满足的情况下,拒绝访问的自定义处理逻辑将会返回 "The request is rejected and doesn't have any default value. " 的错误给客户端。
-
-```go
-func init() {
-	/*
-	 * register your custom implementation into filter.
-	 * "DefaultValueHandler" is the name used in configure file, like server.yml:
-	 * "UserProvider":
-	 *   registry: "hangzhouzk"
-	 *   protocol : "dubbo"
-	 *   interface : "com.ikurento.user.UserProvider"
-	 *   ... # other configuration
-	 *   tps.limiter: "method-service",
-	 *
-	 *   tps.limit.rejected.handler: "DefaultValueHandler",
-	 * So when the invocation is over the tps limitation, it will return the default value.
-	 * This is a common use case.
-	 */
-	extension.SetRejectedExecutionHandler("DefaultValueHandler", GetDefaultValueRejectedExecutionHandlerSingleton)
-
-}
-
-/**
- * The RejectedExecutionHandler is used by some components,
- * e.g, ExecuteLimitFilter, GracefulShutdownFilter, TpsLimitFilter.
- * When the requests are rejected, the RejectedExecutionHandler allows you to do something.
- * You can alert the developer, or redirect those requests to another providers. It depends on what you need.
- *
- * Let's assume that you need a RejectedExecutionHandler which will return some default result if the request was rejected.
- */
-type DefaultValueRejectedExecutionHandler struct {
-	defaultResult sync.Map
-}
-
-func (mh *DefaultValueRejectedExecutionHandler) RejectedExecution(url *common.URL, invocation protocol.Invocation) protocol.Result {
-	// put your custom business here.
-	logger.Error("Here is my custom rejected handler. I want to do something if the requests are rejected. ")
-	// in most cases, if the request was rejected, you won't want to invoke the origin provider.
-	// But if you really want to do that, you can do it like this:
-	// invocation.Invoker().Invoke(invocation)
-
-	// the ServiceKey + methodName is the key
-	key := url.ServiceKey() + "#" + invocation.MethodName()
-	result, loaded := mh.defaultResult.Load(key)
-	if !loaded {
-		// we didn't configure any default value for this invocation
-		return &protocol.RPCResult{
-			Err: errors.New("The request is rejected and doesn't have any default value. "),
-		}
-	}
-	return result.(*protocol.RPCResult)
-}
-
-func GetCustomRejectedExecutionHandler() filter.RejectedExecutionHandler {
-	return &DefaultValueRejectedExecutionHandler{}
-}
-
-var (
-	customHandlerOnce     sync.Once
-	customHandlerInstance *DefaultValueRejectedExecutionHandler
-)
-
-/**
- * the better way is designing the RejectedExecutionHandler as singleton.
- */
-func GetDefaultValueRejectedExecutionHandlerSingleton() filter.RejectedExecutionHandler {
-	customHandlerOnce.Do(func() {
-		customHandlerInstance = &DefaultValueRejectedExecutionHandler{}
-	})
-
-	initDefaultValue()
-
-	return customHandlerInstance
-}
-
-func initDefaultValue() {
-	// setting your default value
-}
-```
-
-##### 2. 配置
-
-在服务端的配置文件中,按如下所示配置该 filter:
-
-```yaml
-# service config
-services:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    tps.limiter: "method-service"
-    tps.limit.strategy: "RandomLimitStrategy"
-    tps.limit.rejected.handler: "DefaultValueHandler"
-    tps.limit.interval: 5000
-    tps.limit.rate: 300
-```
-
-##### 3. 运行
-
-请参阅根目录中的 [HOWTO.md](../../HOWTO_zh.md) 来运行本例。
-
-观察服务端的输出:
-
-```bash
-[2021-03-10/17:11:10 github.com/apache/dubbo-go-samples/filter/tpslimit/go-server/pkg.RandomTpsLimitStrategy.IsAllowable: limit_strategy.go: 56] %s
-Random IsAllowable!
-2021-03-10T17:11:10.748+0800 ERROR   filter_impl/tps_limit_filter.go:69      The invocation was rejected due to over the tps limitation, ...
-```
-
-观察客户端的输出:
-
-```bash
-error: The request is rejected and doesn't have any default value. 
-```
\ No newline at end of file
diff --git a/filter/tpslimit/go-client/cmd/client.go b/filter/tpslimit/go-client/cmd/client.go
deleted file mode 100644
index 1403c97..0000000
--- a/filter/tpslimit/go-client/cmd/client.go
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"context"
-	"fmt"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/filter/tpslimit/go-client/pkg"
-)
-
-var userProvider = new(pkg.UserProvider)
-
-func init() {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&pkg.User{})
-}
-
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	fmt.Println("\n\n\nstart to test dubbo")
-	for i := 0; i < 50; i++ {
-		user := &pkg.User{}
-		err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-		if err != nil {
-			fmt.Printf("error: %v\n", err)
-		}
-		fmt.Printf("response: %v\n", user)
-	}
-}
diff --git a/filter/tpslimit/go-client/conf/client.yml b/filter/tpslimit/go-client/conf/client.yml
deleted file mode 100644
index e69fc0f..0000000
--- a/filter/tpslimit/go-client/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "UserInfoClient"
-  module : "dubbo-go user-info client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods :
-    - name: "GetUser"
-      retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/filter/tpslimit/go-client/conf/log.yml b/filter/tpslimit/go-client/conf/log.yml
deleted file mode 100644
index d19d907..0000000
--- a/filter/tpslimit/go-client/conf/log.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-level: "warn"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/filter/tpslimit/go-client/pkg/user.go b/filter/tpslimit/go-client/pkg/user.go
deleted file mode 100644
index a89abd7..0000000
--- a/filter/tpslimit/go-client/pkg/user.go
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-	Ch      chan *User
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/tpslimit/go-server/cmd/server.go b/filter/tpslimit/go-server/cmd/server.go
deleted file mode 100644
index e029337..0000000
--- a/filter/tpslimit/go-server/cmd/server.go
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/filter/tpslimit/go-server/pkg"
-)
-
-var (
-	survivalTimeout = int(3e9)
-)
-
-// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to "conf/server.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.User{})
-	config.Load()
-
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-	// It is not possible to block SIGKILL or syscall.SIGSTOP
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			// reload()
-		default:
-			time.AfterFunc(time.Duration(survivalTimeout), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			fmt.Println("provider app exit now...")
-			return
-		}
-	}
-}
diff --git a/filter/tpslimit/go-server/conf/client.yml b/filter/tpslimit/go-server/conf/client.yml
deleted file mode 100644
index 27b17c5..0000000
--- a/filter/tpslimit/go-server/conf/client.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "UserInfoTest"
-  module : "dubbo-go user-info client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    cluster: "failover"
-    methods :
-    - name: "GetUser"
-      retries: 3
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/filter/tpslimit/go-server/conf/log.yml b/filter/tpslimit/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/filter/tpslimit/go-server/conf/log.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-level: "error"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
diff --git a/filter/tpslimit/go-server/conf/server.yml b/filter/tpslimit/go-server/conf/server.yml
deleted file mode 100644
index 13fa20e..0000000
--- a/filter/tpslimit/go-server/conf/server.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "UserInfoServer"
-  module: "dubbo-go user-info server"
-  version: "0.0.1"
-  environment: "dev"
-
-# registry config
-registries:
-  "demoZk":
-    protocol: "zookeeper"
-    timeout: "3s"
-    address: "127.0.0.1:2181"
-
-# service config
-services:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    loadbalance: "random"
-    warmup: "100"
-    tps.limiter: "method-service"
-    tps.limit.strategy: "RandomLimitStrategy"
-    tps.limit.rejected.handler: "DefaultValueHandler"
-    tps.limit.interval: 5000
-    tps.limit.rate: 300
-    cluster: "failover"
-    methods:
-      - name: "GetUser"
-        retries: 1
-        loadbalance: "random"
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-    port: 20000
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/filter/tpslimit/go-server/docker/docker-compose.yml b/filter/tpslimit/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/filter/tpslimit/go-server/docker/docker-compose.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
diff --git a/filter/tpslimit/go-server/docker/docker-health-check.sh b/filter/tpslimit/go-server/docker/docker-health-check.sh
deleted file mode 100644
index 2cc32c2..0000000
--- a/filter/tpslimit/go-server/docker/docker-health-check.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-curl 127.0.0.1:2181
-res=$?
-passCode=52
-while [ "$res" != "$passCode" ];do
-  sleep 5
-  curl 127.0.0.1:2181
-  res=$?
-done
-
-sleep 5
diff --git a/filter/tpslimit/go-server/pkg/limit_strategy.go b/filter/tpslimit/go-server/pkg/limit_strategy.go
deleted file mode 100644
index 268b494..0000000
--- a/filter/tpslimit/go-server/pkg/limit_strategy.go
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"math/rand"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/common/extension"
-	"dubbo.apache.org/dubbo-go/v3/filter"
-
-	"github.com/dubbogo/gost/log"
-)
-
-func init() {
-	/*
-	 * register your implementation and them using it like:
-	 *
-	 * "UserProvider":
-	 *   registry: "hangzhouzk"
-	 *   protocol : "dubbo"
-	 *   interface : "com.ikurento.user.UserProvider"
-	 *   ... # other configuration
-	 *   tps.limiter: "method-service" # the name of limiter
-	 *   tps.limit.strategy: "RandomLimitStrategy"
-	 */
-	extension.SetTpsLimitStrategy("RandomLimitStrategy", &RandomTpsLimitStrategyCreator{})
-}
-
-/**
- * The RandomTpsLimitStrategy should not be singleton because different TpsLimiter will create many instances.
- * we won't want them affect each other.
- */
-type RandomTpsLimitStrategy struct {
-	rate     int
-	interval int
-}
-
-func (r RandomTpsLimitStrategy) IsAllowable() bool {
-	// this is a simple demo.
-	gxlog.CInfo("Random IsAllowable!")
-	randNum := rand.Int63n(2)
-	return randNum == 0
-}
-
-type RandomTpsLimitStrategyCreator struct{}
-
-func (creator *RandomTpsLimitStrategyCreator) Create(rate int, interval int) filter.TpsLimitStrategy {
-	return &RandomTpsLimitStrategy{
-		rate:     rate,
-		interval: interval,
-	}
-}
diff --git a/filter/tpslimit/go-server/pkg/reject_handler.go b/filter/tpslimit/go-server/pkg/reject_handler.go
deleted file mode 100644
index 8a71f5e..0000000
--- a/filter/tpslimit/go-server/pkg/reject_handler.go
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"errors"
-	"sync"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/common"
-	"dubbo.apache.org/dubbo-go/v3/common/extension"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	"dubbo.apache.org/dubbo-go/v3/filter"
-	"dubbo.apache.org/dubbo-go/v3/protocol"
-)
-
-func init() {
-	/*
-	 * register your custom implementation into filter.
-	 * "DefaultValueHandler" is the name used in configure file, like server.yml:
-	 * "UserProvider":
-	 *   registry: "hangzhouzk"
-	 *   protocol : "dubbo"
-	 *   interface : "com.ikurento.user.UserProvider"
-	 *   ... # other configuration
-	 *   tps.limiter: "method-service",
-	 *
-	 *   tps.limit.rejected.handler: "DefaultValueHandler",
-	 * So when the invocation is over the tps limitation, it will return the default value.
-	 * This is a common use case.
-	 */
-	extension.SetRejectedExecutionHandler("DefaultValueHandler", GetDefaultValueRejectedExecutionHandlerSingleton)
-
-}
-
-/**
- * The RejectedExecutionHandler is used by some components,
- * e.g, ExecuteLimitFilter, GracefulShutdownFilter, TpsLimitFilter.
- * When the requests are rejected, the RejectedExecutionHandler allows you to do something.
- * You can alert the developer, or redirect those requests to another providers. It depends on what you need.
- *
- * Let's assume that you need a RejectedExecutionHandler which will return some default result if the request was rejected.
- */
-type DefaultValueRejectedExecutionHandler struct {
-	defaultResult sync.Map
-}
-
-func (mh *DefaultValueRejectedExecutionHandler) RejectedExecution(url *common.URL, invocation protocol.Invocation) protocol.Result {
-	// put your custom business here.
-	logger.Error("Here is my custom rejected handler. I want to do something if the requests are rejected. ")
-	// in most cases, if the request was rejected, you won't want to invoke the origin provider.
-	// But if you really want to do that, you can do it like this:
-	// invocation.Invoker().Invoke(invocation)
-
-	// the ServiceKey + methodName is the key
-	key := url.ServiceKey() + "#" + invocation.MethodName()
-	result, loaded := mh.defaultResult.Load(key)
-	if !loaded {
-		// we didn't configure any default value for this invocation
-		return &protocol.RPCResult{
-			Err: errors.New("The request is rejected and doesn't have any default value. "),
-		}
-	}
-	return result.(*protocol.RPCResult)
-}
-
-func GetCustomRejectedExecutionHandler() filter.RejectedExecutionHandler {
-	return &DefaultValueRejectedExecutionHandler{}
-}
-
-var (
-	customHandlerOnce     sync.Once
-	customHandlerInstance *DefaultValueRejectedExecutionHandler
-)
-
-/**
- * the better way is designing the RejectedExecutionHandler as singleton.
- */
-func GetDefaultValueRejectedExecutionHandlerSingleton() filter.RejectedExecutionHandler {
-	customHandlerOnce.Do(func() {
-		customHandlerInstance = &DefaultValueRejectedExecutionHandler{}
-	})
-
-	initDefaultValue()
-
-	return customHandlerInstance
-}
-
-func initDefaultValue() {
-	// setting your default value
-}
diff --git a/filter/tpslimit/go-server/pkg/user.go b/filter/tpslimit/go-server/pkg/user.go
deleted file mode 100644
index 75d0916..0000000
--- a/filter/tpslimit/go-server/pkg/user.go
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"time"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/config"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	"github.com/dubbogo/gost/log"
-)
-
-func init() {
-	config.SetProviderService(new(UserProvider))
-	// ------for hessian2------
-	hessian.RegisterPOJO(&User{})
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-}
-
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
-	gxlog.CInfo("req:%#v", req)
-	rsp := User{"A001", "Alex Stocks", 18, time.Now()}
-	gxlog.CInfo("rsp:%#v", rsp)
-	return &rsp, nil
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (u User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/tpslimit/go-server/tests/integration/main_test.go b/filter/tpslimit/go-server/tests/integration/main_test.go
deleted file mode 100644
index d028c55..0000000
--- a/filter/tpslimit/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,71 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-var userProvider = new(UserProvider)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&User{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
-
-type User struct {
-	ID   string
-	Name string
-	Age  int32
-	Time time.Time
-}
-
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/filter/tpslimit/go-server/tests/integration/userprovider_test.go b/filter/tpslimit/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 4791ae0..0000000
--- a/filter/tpslimit/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,50 +0,0 @@
-// +build integration
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"strings"
-	"testing"
-)
-
-import (
-	"github.com/stretchr/testify/assert"
-)
-
-func TestGetUser(t *testing.T) {
-	user := &User{}
-	var err error
-
-	// loop 50 times to make sure rejection happens
-	for i := 0; i < 50; i++ {
-		if err = userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user); err != nil {
-			break
-		}
-
-		assert.Equal(t, "A001", user.ID)
-		assert.Equal(t, "Alex Stocks", user.Name)
-		assert.Equal(t, int32(18), user.Age)
-		assert.NotNil(t, user.Time)
-	}
-
-	assert.NotNil(t, err)
-	assert.True(t, strings.Contains(err.Error(), "rejected"))
-}
diff --git a/game/README.md b/game/README.md
deleted file mode 100755
index 18e6389..0000000
--- a/game/README.md
+++ /dev/null
@@ -1,302 +0,0 @@
-# Game Service Example
-
-### Backend
-
-- The example includes two services, **gate** (gateway service) and **game** (logical service)
-- The two services communicate with each other RPC (both registered **provider** and **consumer**)
-- The **gate** additionally starts the http service (port **8000**), which is used to manually trigger the **gate** RPC to call **game**
-
-> Each time **gate** RPC calls (**message**) **game**, **game** will synchronously call RPC (send) **gate** to push the same message. 
-
-### outline
-
-Catalog description
-
-```shell
-├── go-server-game    # game module
-│   ├── cmd           # Main entrance
-│   ├── conf          # configuration file
-│   ├── docker        # docker-compose config file
-│   ├── pkg           # provider and consumer
-│   └── tests
-├── go-server-gate    # gate module
-│   ├── cmd           # Main entrance
-│   ├── conf          # configuration file
-│   ├── docker        # docker-compose config file
-│   ├── pkg           # provider and consumer
-│   └── tests
-└── pkg
-    ├── consumer      # public consumer
-    │   ├── game
-    │   └── gate
-    └── pojo
-```
-
-Process of initiating HTTP service
-
-<img src="http://cdn.cjpa.top/cdnimages/image-20210424095907886.png" alt="image-20210424095907886" style="zoom: 33%;" />
-
-
-
-From the perspective of consumer and provider, the process of initiating a call is as follows.
-
-<img src="http://cdn.cjpa.top/cdnimages/image-20210424100148028.png" alt="image-20210424100148028" style="zoom:33%;" />
-
-Game provides the basketball server and gate provides the HTTP server.
-
-### game module
-
-#### server side
-
-The server provides three services, message, online and offline. The code is as follows. The specific implementation can be in  game/go-server-game/pkg/provider.go see in.
-
-```go
-type BasketballService struct{}
-
-func Login(ctx context.Context, data string) (*pojo.Result, error) {
-    ...
-}
-
-func Score(ctx context.Context, uid, score string) (*pojo.Result, error) {
-    ...
-}
-
-func Rank (ctx context.Context, uid string) (*pojo.Result, error) {
-    ...
-}
-
-func (p *BasketballService) Reference() string {
-    return "gameProvider.basketballService"
-}
-```
-
-##### configuration file
-
-Register the service in the configuration file, where gameProvider.basketballService Same as declared in the reference method.
-
-```yml
-services:
-  "gameProvider.basketballService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.game.BasketballService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "Online"
-        retries: 0
-      - name: "Offline"
-        retries: 0
-      - name: "Message"
-        retries: 
-```
-
-#### consumer side
-
-The consumer of basketball is mainly used to be called by gate, so the main code is put in 'game/pkg/consumer/gate/basketball.go',  The consumer code is as follows.
-
-```go
-type BasketballService struct {
-    Send func(ctx context.Context, uid string, data string) (*pojo.Result, error)
-}
-
-func (p *BasketballService) Reference() string {
-    return "gateConsumer.basketballService"
-}
-```
-
-In basketball, you only need to instantiate a consumer variable.
-
-```go
-var gateBasketball = new(gate.BasketballService)
-```
-
-Then register to Dubbo go in main.
-
-```go
-config.SetConsumerService(gateBasketball)
-```
-
-##### configuration file
-
-```yml
-references:
-  "gateConsumer.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.gate.BasketballService"
-    cluster: "failover"
-    methods:
-      - name: "Send"
-        retries: 0
-```
-
-Because the consumer of game needs to call the provider of gate, the string returned by the reference method is gateConsumer.basketballService , in the configuration file gateConsumer.basketballService And 'game/pkg/consumer/gate/basketball.go'. The value of interface should be consistent with that of the provider of gate.
-
-### gate module
-
-#### server side
-
-```go
-type BasketballService struct{}
-
-func (p *BasketballService) Send(ctx context.Context, uid, data string) (*pojo.Result, error) {
-...
-}
-
-func (p *BasketballService) Reference() string {
-    return "gateProvider.basketballService"
-}
-```
-
-Register with Dubbo
-
-```go
-config.SetProviderService(new(BasketballService))
-```
-
-##### configuration file
-
-gateProvider.basketballService  The interface here must be the same as that in game client.yml  The settings in the file should be consistent, otherwise game cannot send data to gate.
-
-```yml
-# service config
-services:
-  "gateProvider.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.gate.BasketballService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "Send"
-        retries: 0
-```
-
-#### consumer side
-
-The consumer side of the gate is relatively special. Because the consumer of the gate needs to call the service in the game, the consumer directly instantiates the service of a game, and its method directly uses the instantiated object gamebasketball to call, thus realizing the function of a gateway.
-
-```go
-var GameBasketball = new(game.BasketballService)
-
-func Login(ctx context.Context, data string) (*pojo.Result, error) {
-    return GameBasketball.Login(ctx, data)
-}
-
-func Score(ctx context.Context, uid, score string) (*pojo.Result, error) {
-    return GameBasketball.Score(ctx, uid, score)
-}
-
-func Rank (ctx context.Context, uid string) (*pojo.Result, error) {
-    return GameBasketball.Rank(ctx, uid)
-}
-```
-
-In code GameBasketball.Message、GameBasketball.Online、GameBasketball.Offline , all the methods called are game methods.
-Register with dubbo
-
-```go
-config.SetProviderService(new(pkg.BasketballService))
-```
-
-##### configuration file
-
-The inerface in the configuration file should also be consistent with the game provider, otherwise the gate cannot be called after receiving the HTTP request.
-
-```yml
-references:
-  "gameConsumer.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.game.BasketballService"
-    cluster: "failover"
-    methods:
-      - name: "Online"
-        retries: 0
-      - name: "Offline"
-        retries: 0
-      - name: "Message"
-        retries: 0
-```
-
-### HTTP access
-
-access login
-
-```bash
-curl --location --request GET 'http://127.0.0.1:8089/login?name=dubbogo'
-```
-
-received
-
-```json
-{
-    "code": 0,
-    "msg": "dubbogo, your score is 0",
-    "data": {
-        "score": 0,
-        "to": "dubbogo"
-    }
-}
-```
-
-
-
-access score
-
-```bash
-curl --location --request POST 'http://127.0.0.1:8089/score' \
---header 'Content-Type: application/json' \
---data-raw '{
-    "name":"cjp",
-    "score":1
-}'
-```
-
-received
-
-```json
-{
-    "code": 0,
-    "msg": "dubbogo, your score is 0",
-    "data": {
-        "score": 0,
-        "to": "dubbogo"
-    }
-}
-```
-
-access rank
-
-```bash
-curl --location --request POST 'http://127.0.0.1:8089/rank?name=dubbogo'
-```
-
-received
-
-```json
-{
-    "code": 0,
-    "msg": "success",
-    "data": {
-        "rank": 3,
-        "to": "dubbogo"
-    }
-}
-```
-
-It can be found that all HTTP requests are successfully forwarded to game, and the processed data is returned to gate by calling the send method of gate
-
-
-
-### Start the front end
-
-Switch to webside directory and open index.html (Chrome browser is recommended)
-
-![image-20210516173728198](http://cdn.cjpa.top/image-20210516173728198.png)
-
-Pls. refer to [HOWTO.md](../HOWTO.md) under the root directory to run this sample.
-
diff --git a/game/README_zh.md b/game/README_zh.md
deleted file mode 100755
index 1b4592d..0000000
--- a/game/README_zh.md
+++ /dev/null
@@ -1,307 +0,0 @@
-# 游戏服务示例
-
-### 背景介绍
-
-- 示例包含 **gate** (网关服务) 和 **game** (逻辑服务) 两个服务
-- 两个服务会互相 RPC 通讯 (都同时注册 **provider** 和 **consumer**)
-- **gate** 额外启动了 http 服务 (端口 **8000**), 用于手工触发  **gate** RPC 调用 **game**
-
-> 每次 **gate** RPC调用(**Message**) **game** 后, **game** 会同步RPC调用(Send) **gate** 推送相同消息
-
-### 概要
-
-目录说明
-
-```bash
-├── go-server-game    # game模块
-│   ├── cmd           # 主入口
-│   ├── conf          # 配置文件
-│   ├── docker        # docker-compose文件
-│   ├── pkg           # provider和consumer
-│   └── tests
-├── go-server-gate    # gate模块
-│   ├── cmd           # 主入口
-│   ├── conf          # 配置文件
-│   ├── docker        # docker-compose文件
-│   ├── pkg           # provider和consumer
-│   └── tests
-└── pkg
-    ├── consumer      # 公共consumer
-    │   ├── game
-    │   └── gate
-    └── pojo
-```
-
-发起http服务的流程
-
-<img src="http://cdn.cjpa.top/cdnimages/image-20210423212453935.png" alt="image-20210423212453935" style="zoom:50%;" />
-
-
-
-从consumer和provider角度来看,发起一次调用的流程是这样的
-
-<img src="http://cdn.cjpa.top/cdnimages/image-20210424094134541.png" alt="image-20210424094134541" style="zoom: 33%;" />
-
-game提供了basketball服务端,gate提供了http服务端。
-
-### game模块
-
-#### server端
-
-server 端提供三个服务,Login、Score 及 Rank,代码如下,具体的实现可以在 'game/go-server-game/pkg/provider.go' 中看到
-
-```go
-type BasketballService struct{}
-
-func Login(ctx context.Context, data string) (*pojo.Result, error) {
-    ...
-}
-
-func Score(ctx context.Context, uid, score string) (*pojo.Result, error) {
-    ...
-}
-
-func Rank (ctx context.Context, uid string) (*pojo.Result, error) {
-    ...
-}
-
-func (p *BasketballService) Reference() string {
-    return "gameProvider.basketballService"
-}
-```
-
-##### 配置文件
-
- 在配置文件中注册 service,其中 gameProvider.basketballService 和 Reference 方法中声明的一致。
-
-```yml
-services:
-  "gameProvider.basketballService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.game.BasketballService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "Online"
-        retries: 0
-      - name: "Offline"
-        retries: 0
-      - name: "Message"
-        retries: 
-```
-
-#### consumer端
-
-basketball 部分的 consumer 主要用来被 gate 调用,因此主要代码放在了 'game/pkg/consumer/gate/basketball.go' 中,这部分作为公共部分,consumer 代码如下
-
-```go
-type BasketballService struct {
-    Send func(ctx context.Context, uid string, data string) (*pojo.Result, error)
-}
-
-func (p *BasketballService) Reference() string {
-    return "gateConsumer.basketballService"
-}
-```
-
-在basketball中,只需要实例化一个consumer变量即可
-
-```go
-var gateBasketball = new(gate.BasketballService)
-```
-
-然后在main中注册到dubbo-go
-
-```go
-config.SetConsumerService(gateBasketball)
-```
-
-##### 配置文件
-
-```yml
-references:
-  "gateConsumer.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.gate.BasketballService"
-    cluster: "failover"
-    methods:
-      - name: "Send"
-        retries: 0
-```
-
-由于 game 的 consumer 需要调用 gate 的provider,因此 Reference 方法返回的字符串为 gateConsumer.basketballService ,在配置文件中 gateConsumer.basketballService 和 'game/pkg/consumer/gate/basketball.go' 中Reference 方法声明的一致,intreface 的值也要和 gate 的 provider 设置的一致。
-
-### gate模块
-
-#### server端
-
-```go
-type BasketballService struct{}
-
-func (p *BasketballService) Send(ctx context.Context, uid, data string) (*pojo.Result, error) {
-...
-}
-
-func (p *BasketballService) Reference() string {
-    return "gateProvider.basketballService"
-}
-```
-
-注册到dubbo
-
-```go
-config.SetProviderService(new(BasketballService))
-```
-
-##### 配置文件
-
-gateProvider.basketballService 和 Reference 中的一致,这里的 interface 一定要和 game 的 client.yml 文件中设置的保持一致,不然 game 无法向 gate 发送数据
-
-```yml
-# service config
-services:
-  "gateProvider.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.gate.BasketballService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "Send"
-        retries: 0
-```
-
-#### consumer端
-
-gate 中的 consumer 端比较特殊,由于 gate的consumer 需要调用 game 中的 service,所以在gaet中,consumer 直接实例化一个game的service,其方法便直接使用实例化的对象 GameBasketball 调用,这样就实现了一个网关的功能。
-
-```go
-var GameBasketball = new(game.BasketballService)
-
-func Login(ctx context.Context, data string) (*pojo.Result, error) {
-    return GameBasketball.Login(ctx, data)
-}
-
-func Score(ctx context.Context, uid, score string) (*pojo.Result, error) {
-    return GameBasketball.Score(ctx, uid, score)
-}
-
-func Rank (ctx context.Context, uid string) (*pojo.Result, error) {
-    return GameBasketball.Rank(ctx, uid)
-}
-```
-
-代码中的 GameBasketball.Message、GameBasketball.Online、GameBasketball.Offline 调用的方法都是 game 的方法
-
-注册到dubbo
-
-```go
-config.SetProviderService(new(pkg.BasketballService))
-```
-
-##### 配置文件
-
-配置文件中的 inerface 也要和 game 的 provider 保持一致,不然收到 http 请求之后无法调用 gate
-
-```yml
-references:
-  "gameConsumer.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.game.BasketballService"
-    cluster: "failover"
-    methods:
-      - name: "Online"
-        retries: 0
-      - name: "Offline"
-        retries: 0
-      - name: "Message"
-        retries: 0
-```
-
-
-
-### HTTP访问
-
-访问login
-
-```bash
-curl --location --request GET 'http://127.0.0.1:8089/login?name=dubbogo'
-```
-
-收到账户的信息
-
-```json
-{
-    "code": 0,
-    "msg": "dubbogo, your score is 0",
-    "data": {
-        "score": 0,
-        "to": "dubbogo"
-    }
-}
-```
-
-
-
-访问 score
-
-```bash
-curl --location --request POST 'http://127.0.0.1:8089/score' \
---header 'Content-Type: application/json' \
---data-raw '{
-    "name":"cjp",
-    "score":1
-}'
-```
-
-收到
-
-```json
-{
-    "code": 0,
-    "msg": "dubbogo, your score is 0",
-    "data": {
-        "score": 0,
-        "to": "dubbogo"
-    }
-}
-```
-
-访问 rank
-
-```http
-curl --location --request POST 'http://127.0.0.1:8089/rank?name=dubbogo'
-```
-
-收到
-
-```json
-{
-    "code": 0,
-    "msg": "success",
-    "data": {
-        "rank": 3,
-        "to": "dubbogo"
-    }
-}
-```
-
-可以发现,所有的http请求,都成功的转发到了 game,并且又通过调用 gate 的 send 方法把处理过的数据返回给 gate
-
-
-
-### 启动前端
-
-切换到 webside 目录,打开 index.html 即可(推荐使用chrome浏览器)
-
-![image-20210516173728198](http://cdn.cjpa.top/image-20210516173728198.png)
-
-点击小人即可进行游戏
-
-请参阅根目录中的 [HOWTO.md](../HOWTO_zh.md) 来运行本例。
-
diff --git a/game/go-server-game/cmd/server.go b/game/go-server-game/cmd/server.go
deleted file mode 100644
index e8464cc..0000000
--- a/game/go-server-game/cmd/server.go
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/game/go-server-game/pkg"
-	"github.com/apache/dubbo-go-samples/game/pkg/pojo"
-)
-
-func init() {
-	config.SetProviderService(new(pkg.BasketballService))
-
-	config.SetConsumerService(pkg.GateBasketball)
-
-	hessian.RegisterPOJO(&pojo.Result{})
-}
-
-func main() {
-	config.Load()
-
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %#s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			logger.Infof("app need reload")
-		default:
-			time.AfterFunc(time.Duration(time.Second*5), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			logger.Warnf("app exit now...")
-			return
-		}
-	}
-}
diff --git a/game/go-server-game/conf/client.yml b/game/go-server-game/conf/client.yml
deleted file mode 100644
index b6c70d8..0000000
--- a/game/go-server-game/conf/client.yml
+++ /dev/null
@@ -1,67 +0,0 @@
-# dubbo client yaml configure file
-
-check: false
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "GateServiceClient"
-  module : "dubbo-go gate service client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "gateConsumer.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.gate.BasketballService"
-    cluster: "failover"
-    methods:
-      - name: "Send"
-        retries: 0
-#  "gateConsumer.jumpService":
-#    registry: "demoZk"
-#    protocol: "dubbo"
-#    interface: "org.apache.dubbo.gate.JumpService"
-#    cluster: "failover"
-#    methods:
-#      - name: "Send"
-#        retries: 0
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/game/go-server-game/conf/log.yml b/game/go-server-game/conf/log.yml
deleted file mode 100644
index 9b574cf..0000000
--- a/game/go-server-game/conf/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "error"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
\ No newline at end of file
diff --git a/game/go-server-game/conf/server.yml b/game/go-server-game/conf/server.yml
deleted file mode 100644
index 983732a..0000000
--- a/game/go-server-game/conf/server.yml
+++ /dev/null
@@ -1,71 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization : "dubbo.io"
-  name : "GameServiceServer"
-  module : "dubbo-go gate service server"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-
-# service config
-services:
-  "gameProvider.basketballService":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.game.BasketballService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "Online"
-        retries: 0
-      - name: "Offline"
-        retries: 0
-      - name: "Message"
-        retries: 0
-#  "gameProvider.jumpService":
-#    registry: "demoZk"
-#    protocol: "dubbo"
-#    interface: "org.apache.dubbo.game.JumpService"
-#    loadbalance: "random"
-#    warmup: "100"
-#    cluster: "failover"
-#    methods:
-#      - name: "Online"
-#        retries: 0
-#      - name: "Offline"
-#        retries: 0
-#      - name: "Message"
-#        retries: 0
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "server"
diff --git a/game/go-server-game/docker/docker-compose.yml b/game/go-server-game/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/game/go-server-game/docker/docker-compose.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
diff --git a/game/go-server-game/docker/docker-health-check.sh b/game/go-server-game/docker/docker-health-check.sh
deleted file mode 100644
index 2cc32c2..0000000
--- a/game/go-server-game/docker/docker-health-check.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-curl 127.0.0.1:2181
-res=$?
-passCode=52
-while [ "$res" != "$passCode" ];do
-  sleep 5
-  curl 127.0.0.1:2181
-  res=$?
-done
-
-sleep 5
diff --git a/game/go-server-game/pkg/consumer.go b/game/go-server-game/pkg/consumer.go
deleted file mode 100644
index 356b45a..0000000
--- a/game/go-server-game/pkg/consumer.go
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"github.com/apache/dubbo-go-samples/game/go-server-gate/pkg"
-)
-
-var GateBasketball = new(pkg.BasketballService)
diff --git a/game/go-server-game/pkg/provider.go b/game/go-server-game/pkg/provider.go
deleted file mode 100644
index b3cd2b8..0000000
--- a/game/go-server-game/pkg/provider.go
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package pkg
-
-import (
-	"context"
-	"fmt"
-	"strconv"
-)
-
-import (
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/game/pkg/pojo"
-)
-
-type BasketballService struct{}
-
-var userMap = make(map[string]*pojo.Info, 0)
-
-func (p *BasketballService) Login(ctx context.Context, uid string) (*pojo.Result, error) {
-	logger.Infof("message: %#v", uid)
-	var (
-		info *pojo.Info
-		ok   bool
-	)
-
-	// auto reply the same message
-	rsp, err := GateBasketball.Send(context.TODO(), uid, "")
-	if err != nil {
-		logger.Errorf("send fail: %#s", err.Error())
-		return &pojo.Result{Code: 1, Msg: err.Error()}, err
-	}
-
-	fmt.Println("receive data from gate:", rsp)
-
-	if info, ok = userMap[uid]; !ok {
-		info = &pojo.Info{}
-		info.Name = uid
-		userMap[uid] = info
-	}
-	return &pojo.Result{Code: 0, Msg: info.Name + ", your score is " + strconv.Itoa(info.Score), Data: map[string]interface{}{"to": uid, "score": info.Score}}, nil
-}
-
-func (p *BasketballService) Score(ctx context.Context, uid, score string) (*pojo.Result, error) {
-	logger.Infof("message: %#v, %#v", uid, score)
-	var (
-		info = &pojo.Info{}
-		ok   bool
-	)
-
-	// auto reply the same message
-	rsp, err := GateBasketball.Send(context.TODO(), uid, score)
-	if err != nil {
-		logger.Errorf("send fail: %#s", err.Error())
-		return &pojo.Result{Code: 1, Msg: err.Error()}, err
-	}
-
-	fmt.Println("receive data from gate:", rsp)
-
-	if info, ok = userMap[uid]; !ok {
-		info = &pojo.Info{
-			Name: uid,
-		}
-		userMap[uid] = info
-		logger.Error("user data not found")
-		return &pojo.Result{Code: 1, Msg: "user data not found", Data: map[string]interface{}{}}, nil
-	}
-	intSource, err := strconv.Atoi(score)
-	if err != nil {
-		logger.Error(err.Error())
-	}
-	info.Score += intSource
-
-	return &pojo.Result{Code: 0, Msg: "进球成功", Data: map[string]interface{}{"to": uid, "score": info.Score}}, nil
-}
-
-func (p *BasketballService) Rank(ctx context.Context, uid string) (*pojo.Result, error) {
-	var (
-		rank = 1
-		info *pojo.Info
-		ok   bool
-	)
-
-	// auto reply the same message
-	rsp, err := GateBasketball.Send(context.TODO(), uid, "")
-	if err != nil {
-		logger.Errorf("send fail: %#s", err.Error())
-		return &pojo.Result{Code: 1, Msg: err.Error()}, err
-	}
-
-	fmt.Println("receive data from gate:", rsp)
-
-	if info, ok = userMap[uid]; !ok {
-		logger.Error("no user found")
-		return &pojo.Result{Code: 1, Msg: "no user found", Data: map[string]interface{}{"to": uid, "rank": rank}}, nil
-	}
-
-	for _, v := range userMap {
-		if v.Score > info.Score {
-			rank++
-		}
-	}
-
-	return &pojo.Result{Code: 0, Msg: "success", Data: map[string]interface{}{"to": uid, "rank": rank}}, nil
-}
-
-func (p *BasketballService) Reference() string {
-	return "gameProvider.basketballService"
-}
diff --git a/game/go-server-game/tests/integration/gameprovider_test.go b/game/go-server-game/tests/integration/gameprovider_test.go
deleted file mode 100644
index e2fa89d..0000000
--- a/game/go-server-game/tests/integration/gameprovider_test.go
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"context"
-	"testing"
-)
-
-import (
-	"github.com/stretchr/testify/assert"
-)
-
-func TestMessage(t *testing.T) {
-	res, err := gameProvider.Login(context.TODO(), "A001")
-	assert.Nil(t, err)
-	assert.NotNil(t, res)
-	assert.Equal(t, int32(0), res.Code)
-	assert.NotNil(t, res.Data)
-	assert.Equal(t, "A001", res.Data["to"])
-	assert.Equal(t, 0, res.Data["score"])
-}
-
-func TestOnline(t *testing.T) {
-	res, err := gameProvider.Score(context.TODO(), "A001", "1")
-	assert.Nil(t, err)
-	assert.NotNil(t, res)
-	assert.Equal(t, int32(0), res.Code)
-}
-
-func TestOffline(t *testing.T) {
-	res, err := gameProvider.Rank(context.TODO(), "A001")
-	assert.Nil(t, err)
-	assert.NotNil(t, res)
-	assert.Equal(t, int32(0), res.Code)
-}
diff --git a/game/go-server-game/tests/integration/main_test.go b/game/go-server-game/tests/integration/main_test.go
deleted file mode 100644
index 477c46e..0000000
--- a/game/go-server-game/tests/integration/main_test.go
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package integration
-
-import (
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/game/go-server-game/pkg"
-	"github.com/apache/dubbo-go-samples/game/pkg/pojo"
-)
-
-var gameProvider = new(pkg.BasketballService)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(gameProvider)
-
-	hessian.RegisterPOJO(&pojo.Result{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
diff --git a/game/go-server-gate/cmd/server.go b/game/go-server-gate/cmd/server.go
deleted file mode 100644
index abb7b71..0000000
--- a/game/go-server-gate/cmd/server.go
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package main
-
-import (
-	"context"
-	"encoding/json"
-	"io/ioutil"
-	"net/http"
-	"os"
-	"os/signal"
-	"strconv"
-	"syscall"
-	"time"
-)
-
-import (
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/cluster_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/cluster/loadbalance"
-	"dubbo.apache.org/dubbo-go/v3/common/logger"
-	_ "dubbo.apache.org/dubbo-go/v3/common/proxy/proxy_factory"
-	"dubbo.apache.org/dubbo-go/v3/config"
-	_ "dubbo.apache.org/dubbo-go/v3/filter/filter_impl"
-	_ "dubbo.apache.org/dubbo-go/v3/metadata/service/local"
-	_ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
-	_ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
-
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/game/go-server-gate/pkg"
-	"github.com/apache/dubbo-go-samples/game/pkg/pojo"
-)
-
-func init() {
-	config.SetProviderService(new(pkg.BasketballService))
-
-	config.SetConsumerService(pkg.GameBasketball)
-
-	hessian.RegisterPOJO(&pojo.Result{})
-}
-
-func main() {
-	config.Load()
-
-	go startHttp()
-
-	initSignal()
-}
-
-func initSignal() {
-	signals := make(chan os.Signal, 1)
-
-	signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-	for {
-		sig := <-signals
-		logger.Infof("get signal %s", sig.String())
-		switch sig {
-		case syscall.SIGHUP:
-			logger.Infof("app need reload")
-		default:
-			time.AfterFunc(time.Duration(time.Second*5), func() {
-				logger.Warnf("app exit now by force...")
-				os.Exit(1)
-			})
-
-			// The program exits normally or timeout forcibly exits.
-			logger.Warnf("app exit now...")
-			return
-		}
-	}
-}
-
-func startHttp() {
-
-	http.HandleFunc("/login", func(w http.ResponseWriter, r *http.Request) {
-		res, err := pkg.Login(context.TODO(), r.URL.Query().Get("name"))
-		if err != nil {
-			responseWithOrigin(w, r, 200, []byte(err.Error()))
-			return
-		}
-
-		b, err := json.Marshal(res)
-		if err != nil {
-			responseWithOrigin(w, r, 200, []byte(err.Error()))
-			return
-		}
-		responseWithOrigin(w, r, 200, b)
-	})
-
-	http.HandleFunc("/score", func(w http.ResponseWriter, r *http.Request) {
-		reqBody, err := ioutil.ReadAll(r.Body)
-		if err != nil {
-			logger.Error(err.Error())
-		}
-		var info pojo.Info
-		json.Unmarshal(reqBody, &info)
-		res, err := pkg.Score(context.TODO(), info.Name, strconv.Itoa(info.Score))
-		if err != nil {
-			responseWithOrigin(w, r, 200, []byte(err.Error()))
-			return
-		}
-
-		b, err := json.Marshal(res)
-		if err != nil {
-			responseWithOrigin(w, r, 200, []byte(err.Error()))
-			return
-		}
-		responseWithOrigin(w, r, 200, b)
-	})
-
-	http.HandleFunc("/rank", func(w http.ResponseWriter, r *http.Request) {
-		res, err := pkg.Rank(context.TODO(), r.URL.Query().Get("name"))
-		if err != nil {
-			responseWithOrigin(w, r, 200, []byte(err.Error()))
-			return
-		}
-		b, err := json.Marshal(res)
-		if err != nil {
-			responseWithOrigin(w, r, 200, []byte(err.Error()))
-			return
-		}
-		responseWithOrigin(w, r, 200, b)
-	})
-
-	_ = http.ListenAndServe("127.0.0.1:8089", nil)
-}
-
-// avoid cors
-func responseWithOrigin(w http.ResponseWriter, r *http.Request, code int, json []byte) {
-	w.Header().Set("Access-Control-Allow-Origin", "*")
-	w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE")
-	w.Header().Set("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
-	w.Header().Set("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type")
-	w.Header().Set("Access-Control-Allow-Credentials", "true")
-	w.Header().Set("Content-Type", "application/json; charset=utf-8")
-	w.WriteHeader(code)
-	w.Write(json)
-}
diff --git a/game/go-server-gate/conf/client.yml b/game/go-server-gate/conf/client.yml
deleted file mode 100644
index b42e182..0000000
--- a/game/go-server-gate/conf/client.yml
+++ /dev/null
@@ -1,75 +0,0 @@
-# dubbo client yaml configure file
-
-check: false
-# client
-request_timeout : "3s"
-# connect timeout
-connect_timeout : "3s"
-
-# application config
-application:
-  organization : "dubbo.io"
-  name  : "GameServiceClient"
-  module : "dubbo-go game service client"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-    username: ""
-    password: ""
-
-# reference config
-references:
-  "gameConsumer.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.game.BasketballService"
-    cluster: "failover"
-    methods:
-      - name: "Online"
-        retries: 0
-      - name: "Offline"
-        retries: 0
-      - name: "Message"
-        retries: 0
-#  "gameConsumer.jumpService":
-#    registry: "demoZk"
-#    protocol: "dubbo"
-#    interface: "org.apache.dubbo.game.JumpService"
-#    cluster: "failover"
-#    methods:
-#      - name: "Online"
-#        retries: 0
-#      - name: "Offline"
-#        retries: 0
-#      - name: "Message"
-#        retries: 0
-
-# protocol config
-protocol_conf:
-  dubbo:
-    reconnect_interval: 0
-    connection_number: 1
-    heartbeat_period: "5s"
-    session_timeout: "180s"
-    pool_size: 64
-    pool_ttl: 600
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
-      tcp_r_buf_size: 262144
-      tcp_w_buf_size: 65536
-      pkg_rq_size: 1024
-      pkg_wq_size: 512
-      tcp_read_timeout: "1s"
-      tcp_write_timeout: "5s"
-      wait_timeout: "1s"
-      max_msg_len: 1024000
-      session_name: "client"
diff --git a/game/go-server-gate/conf/log.yml b/game/go-server-gate/conf/log.yml
deleted file mode 100644
index 9b574cf..0000000
--- a/game/go-server-gate/conf/log.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-level: "error"
-development: true
-disableCaller: false
-disableStacktrace: false
-sampling:
-encoding: "console"
-
-# encoder
-encoderConfig:
-  messageKey: "message"
-  levelKey: "level"
-  timeKey: "time"
-  nameKey: "logger"
-  callerKey: "caller"
-  stacktraceKey: "stacktrace"
-  lineEnding: ""
-  levelEncoder: "capital"
-  timeEncoder: "iso8601"
-  durationEncoder: "seconds"
-  callerEncoder: "short"
-  nameEncoder: ""
-
-outputPaths:
-  - "stderr"
-errorOutputPaths:
-  - "stderr"
-initialFields:
\ No newline at end of file
diff --git a/game/go-server-gate/conf/server.yml b/game/go-server-gate/conf/server.yml
deleted file mode 100644
index 83e88b9..0000000
--- a/game/go-server-gate/conf/server.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization : "dubbo.io"
-  name : "GateServiceServer"
-  module : "dubbo-go gate service server"
-  version : "0.0.1"
-  environment : "dev"
-
-# registry config
-registries :
-  "demoZk":
-    protocol: "zookeeper"
-    timeout	: "3s"
-    address: "127.0.0.1:2181"
-
-# service config
-services:
-  "gateProvider.basketballService":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.gate.BasketballService"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-      - name: "Send"
-        retries: 0
-#  "gateProvider.jumpService":
-#    registry: "demoZk"
-#    protocol: "dubbo"
-#    #    version: "2.0"
-#    interface: "org.apache.dubbo.gate.JumpService"
-#    loadbalance: "random"
-#    warmup: "100"
-#    cluster: "failover"
-#    methods:
-#      - name: "Send"
-#        retries: 0
-
-# protocol config
-protocols:
-  "dubbo":
-    name: "dubbo"
-
-protocol_conf:
-  dubbo:
-    session_number: 700
-    session_timeout: "180s"
-    getty_session_param:
-      compress_encoding: false
-      tcp_no_delay: true
-      tcp_keep_alive: true
-      keep_alive_period: "120s"
... 20262 lines suppressed ...