You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by zh...@apache.org on 2021/09/04 15:57:43 UTC

[dubbo-go-samples] 01/18: clear 1.5 old codes

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

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

commit fc4f6db21ccf96b412cf282240d51ef037fb0ca5
Author: AlexStocks <al...@foxmail.com>
AuthorDate: Sun May 16 13:13:59 2021 +0800

    clear 1.5 old codes
---
 HOWTO.md                                           |  151 ---
 HOWTO_zh.md                                        |  141 ---
 LICENSE                                            |  201 ----
 README.md                                          |   31 -
 README_zh.md                                       |   32 -
 async/README.md                                    |   46 -
 async/README_zh.md                                 |   45 -
 async/go-client/cmd/client.go                      |   66 --
 async/go-client/conf/client.yml                    |   61 -
 async/go-client/conf/log.yml                       |   28 -
 async/go-client/pkg/user.go                        |   78 --
 async/go-server/cmd/server.go                      |   78 --
 async/go-server/conf/client.yml                    |   61 -
 async/go-server/conf/log.yml                       |   28 -
 async/go-server/conf/server.yml                    |   55 -
 async/go-server/docker/docker-compose.yml          |    9 -
 async/go-server/pkg/user.go                        |   60 -
 async/go-server/tests/integration/main_test.go     |   87 --
 .../tests/integration/userprovider_test.go         |   52 -
 attachment/README.md                               |   35 -
 attachment/README_zh.md                            |   37 -
 attachment/go-client/cmd/client.go                 |   67 --
 attachment/go-client/conf/client.yml               |   59 -
 attachment/go-client/conf/log.yml                  |   27 -
 attachment/go-client/pkg/user.go                   |   42 -
 attachment/go-server/cmd/server.go                 |   79 --
 attachment/go-server/conf/client.yml               |   59 -
 attachment/go-server/conf/log.yml                  |   27 -
 attachment/go-server/conf/server.yml               |   55 -
 attachment/go-server/docker/docker-compose.yml     |    9 -
 attachment/go-server/pkg/user.go                   |   72 --
 .../go-server/tests/integration/main_test.go       |   73 --
 .../tests/integration/userprovider_test.go         |   47 -
 build/Makefile                                     |  139 ---
 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   |   54 -
 chain/docker/docker-compose.yml                    |    9 -
 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 -
 ci.sh                                              |   29 -
 config-api/README.md                               |   65 --
 config-api/README_zh.md                            |   68 --
 config-api/go-client/cmd/client.go                 |   83 --
 config-api/go-client/conf/client.yml               |   59 -
 config-api/go-client/conf/log.yml                  |   27 -
 config-api/go-client/pkg/user.go                   |   42 -
 config-api/go-server/cmd/server.go                 |  100 --
 config-api/go-server/conf/client.yml               |   59 -
 config-api/go-server/conf/log.yml                  |   27 -
 config-api/go-server/conf/server.yml               |   55 -
 config-api/go-server/docker/docker-compose.yml     |    9 -
 config-api/go-server/pkg/user.go                   |   60 -
 .../go-server/tests/integration/main_test.go       |   72 --
 .../tests/integration/userprovider_test.go         |   38 -
 configcenter/README.md                             |   95 --
 configcenter/README_zh.md                          |   99 --
 configcenter/apollo/go-client/cmd/client.go        |   66 --
 configcenter/apollo/go-client/conf/client.yml      |   66 --
 configcenter/apollo/go-client/conf/log.yml         |   28 -
 configcenter/apollo/go-client/pkg/user.go          |   42 -
 configcenter/apollo/go-server/cmd/server.go        |   81 --
 configcenter/apollo/go-server/conf/client.yml      |   66 --
 configcenter/apollo/go-server/conf/log.yml         |   28 -
 configcenter/apollo/go-server/conf/server.yml      |   62 -
 .../apollo/go-server/docker/docker-compose.yml     |   40 -
 .../apollo/go-server/docker/sql/apolloconfigdb.sql |  433 -------
 .../apollo/go-server/docker/sql/apolloportaldb.sql |  368 ------
 configcenter/apollo/go-server/pkg/user.go          |   60 -
 .../go-server/tests/integration/main_test.go       |   71 --
 .../tests/integration/userprovider_test.go         |   39 -
 configcenter/nacos/go-client/cmd/client.go         |   66 --
 configcenter/nacos/go-client/conf/client.yml       |   64 --
 configcenter/nacos/go-client/conf/log.yml          |   28 -
 configcenter/nacos/go-client/pkg/user.go           |   42 -
 configcenter/nacos/go-server/cmd/server.go         |   79 --
 configcenter/nacos/go-server/conf/client.yml       |   64 --
 configcenter/nacos/go-server/conf/log.yml          |   28 -
 configcenter/nacos/go-server/conf/server.yml       |   60 -
 .../nacos/go-server/docker/docker-compose.yml      |   17 -
 configcenter/nacos/go-server/pkg/user.go           |   60 -
 .../nacos/go-server/tests/integration/main_test.go |   71 --
 .../tests/integration/userprovider_test.go         |   39 -
 configcenter/zookeeper/go-client/cmd/client.go     |   66 --
 configcenter/zookeeper/go-client/conf/client.yml   |   60 -
 configcenter/zookeeper/go-client/conf/log.yml      |   28 -
 configcenter/zookeeper/go-client/pkg/user.go       |   42 -
 configcenter/zookeeper/go-server/cmd/server.go     |   79 --
 configcenter/zookeeper/go-server/conf/client.yml   |   58 -
 configcenter/zookeeper/go-server/conf/log.yml      |   28 -
 configcenter/zookeeper/go-server/conf/server.yml   |   60 -
 .../zookeeper/go-server/docker/docker-compose.yml  |    8 -
 configcenter/zookeeper/go-server/pkg/user.go       |   60 -
 .../go-server/tests/integration/main_test.go       |   70 --
 .../tests/integration/userprovider_test.go         |   39 -
 context/README.md                                  |   58 -
 context/README_zh.md                               |   63 -
 context/go-client/cmd/client.go                    |   71 --
 context/go-client/conf/client.yml                  |   59 -
 context/go-client/conf/log.yml                     |   27 -
 context/go-client/pkg/user.go                      |   45 -
 context/go-server/cmd/server.go                    |   78 --
 context/go-server/conf/client.yml                  |   59 -
 context/go-server/conf/log.yml                     |   27 -
 context/go-server/conf/server.yml                  |   55 -
 context/go-server/docker/docker-compose.yml        |    9 -
 context/go-server/pkg/user.go                      |   76 --
 context/go-server/tests/integration/main_test.go   |   74 --
 .../tests/integration/userprovider_test.go         |   56 -
 direct/README.md                                   |  170 ---
 direct/README_zh.md                                |  171 ---
 direct/go-client/cmd/client.go                     |   67 --
 direct/go-client/conf/client.yml                   |   28 -
 direct/go-client/conf/log.yml                      |   28 -
 direct/go-client/pkg/user.go                       |   42 -
 direct/go-server/cmd/server.go                     |   78 --
 direct/go-server/conf/client.yml                   |   61 -
 direct/go-server/conf/log.yml                      |   28 -
 direct/go-server/conf/server.yml                   |   54 -
 direct/go-server/docker/docker-compose.yml         |    9 -
 direct/go-server/pkg/user.go                       |   60 -
 direct/go-server/tests/integration/main_test.go    |   70 --
 .../tests/integration/userprovider_test.go         |   40 -
 docker/Dockerfile                                  |    5 -
 docker/README.md                                   |   49 -
 docker/README_zh.md                                |   52 -
 docker/docker_run.sh                               |    5 -
 docker/go-client/cmd/client.go                     |   65 --
 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                     |   78 --
 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/pkg/user.go                       |   60 -
 docker/go-server/tests/integration/main_test.go    |   70 --
 .../tests/integration/userprovider_test.go         |   39 -
 filter/custom/README.md                            |   93 --
 filter/custom/README_zh.md                         |   93 --
 filter/custom/go-client/cmd/client.go              |   65 --
 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              |   78 --
 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 -
 filter/custom/go-server/pkg/custom_filter.go       |   92 --
 filter/custom/go-server/pkg/user.go                |   60 -
 .../go-server/tests/integration/main_test.go       |   70 --
 .../tests/integration/userprovider_test.go         |   38 -
 filter/sentinel/README.md                          |   48 -
 filter/sentinel/README_zh.md                       |   48 -
 filter/sentinel/go-client/cmd/client.go            |   92 --
 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            |  104 --
 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 -
 filter/sentinel/go-server/pkg/user.go              |   60 -
 .../go-server/tests/integration/main_test.go       |   70 --
 .../tests/integration/userprovider_test.go         |   42 -
 filter/tpslimit/README.md                          |  173 ---
 filter/tpslimit/README_zh.md                       |  173 ---
 filter/tpslimit/go-client/cmd/client.go            |   64 --
 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            |   78 --
 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 -
 filter/tpslimit/go-server/pkg/limit_strategy.go    |   68 --
 filter/tpslimit/go-server/pkg/reject_handler.go    |  107 --
 filter/tpslimit/go-server/pkg/user.go              |   60 -
 .../go-server/tests/integration/main_test.go       |   70 --
 .../tests/integration/userprovider_test.go         |   50 -
 general/dubbo/go-client/cmd/client.go              |  290 -----
 general/dubbo/go-client/conf/client.yml            |   69 --
 general/dubbo/go-client/conf/log.yml               |   27 -
 general/dubbo/go-client/pkg/user.go                |  134 ---
 general/dubbo/go-server/cmd/server.go              |   89 --
 general/dubbo/go-server/conf/client.yml            |   59 -
 general/dubbo/go-server/conf/log.yml               |   27 -
 general/dubbo/go-server/conf/server.yml            |   55 -
 general/dubbo/go-server/docker/docker-compose.yml  |    9 -
 general/dubbo/go-server/pkg/user.go                |  109 --
 general/dubbo/go-server/pkg/user_provider.go       |  128 ---
 .../dubbo/go-server/tests/integration/main_test.go |  135 ---
 .../tests/integration/userprovider_test.go         |  114 --
 general/dubbo/java-client/2.6/pom.xml              |   79 --
 .../src/main/java/org/apache/dubbo/Consumer.java   |  227 ----
 .../2.6/src/main/java/org/apache/dubbo/Gender.java |   23 -
 .../2.6/src/main/java/org/apache/dubbo/User.java   |   83 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   27 -
 .../resources/META-INF/spring/dubbo.consumer.xml   |   41 -
 .../2.6/src/main/resources/log4j.properties        |   19 -
 general/dubbo/java-client/2.7/pom.xml              |  126 --
 .../src/main/java/org/apache/dubbo/Consumer.java   |  227 ----
 .../2.7/src/main/java/org/apache/dubbo/Gender.java |   23 -
 .../2.7/src/main/java/org/apache/dubbo/User.java   |   83 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   27 -
 .../resources/META-INF/spring/dubbo.consumer.xml   |   41 -
 .../2.7/src/main/resources/log4j.properties        |   19 -
 general/dubbo/java-server/2.6/pom.xml              |   79 --
 .../2.6/src/main/java/org/apache/dubbo/Gender.java |   23 -
 .../src/main/java/org/apache/dubbo/Provider.java   |   34 -
 .../src/main/java/org/apache/dubbo/Response.java   |   92 --
 .../2.6/src/main/java/org/apache/dubbo/User.java   |   95 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   50 -
 .../org/apache/dubbo/UserProviderAnotherImpl.java  |  143 ---
 .../java/org/apache/dubbo/UserProviderImpl.java    |  115 --
 .../resources/META-INF/spring/dubbo.provider.xml   |   36 -
 .../2.6/src/main/resources/log4j.properties        |   20 -
 general/dubbo/java-server/2.7/pom.xml              |  126 --
 .../2.7/src/main/java/org/apache/dubbo/Gender.java |   23 -
 .../src/main/java/org/apache/dubbo/Provider.java   |   34 -
 .../src/main/java/org/apache/dubbo/Response.java   |   92 --
 .../2.7/src/main/java/org/apache/dubbo/User.java   |   95 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   50 -
 .../org/apache/dubbo/UserProviderAnotherImpl.java  |  143 ---
 .../java/org/apache/dubbo/UserProviderImpl.java    |  115 --
 .../resources/META-INF/spring/dubbo.provider.xml   |   36 -
 .../2.7/src/main/resources/log4j.properties        |   20 -
 general/grpc/go-client/cmd/client.go               |   61 -
 general/grpc/go-client/conf/client.yml             |   59 -
 general/grpc/go-client/conf/log.yml                |   27 -
 general/grpc/go-client/pkg/hello.go                |   36 -
 general/grpc/go-server/cmd/server.go               |   73 --
 general/grpc/go-server/conf/client.yml             |   59 -
 general/grpc/go-server/conf/log.yml                |   27 -
 general/grpc/go-server/conf/server.yml             |   55 -
 general/grpc/go-server/docker/docker-compose.yml   |    9 -
 general/grpc/go-server/pkg/greeter.go              |   43 -
 .../go-server/tests/integration/greeter_test.go    |   38 -
 .../grpc/go-server/tests/integration/main_test.go  |   64 --
 general/grpc/protobuf/helloworld.pb.go             |  283 -----
 general/grpc/protobuf/helloworld.proto             |   37 -
 general/grpc/protobuf/protobuf.mk                  |   26 -
 general/grpc/stream/go-client/app/Makefile         |    2 -
 general/grpc/stream/go-client/app/client.go        |  144 ---
 general/grpc/stream/go-client/app/hello.go         |   50 -
 general/grpc/stream/go-client/app/helloworld.pb.go |  472 --------
 general/grpc/stream/go-client/app/helloworld.proto |   39 -
 general/grpc/stream/go-client/app/version.go       |   22 -
 general/grpc/stream/go-client/assembly/bin/load.sh |  203 ----
 .../go-client/assembly/common/app.properties       |   23 -
 .../grpc/stream/go-client/assembly/common/build.sh |   83 --
 .../grpc/stream/go-client/assembly/linux/dev.sh    |   36 -
 .../stream/go-client/assembly/linux/release.sh     |   35 -
 .../grpc/stream/go-client/assembly/linux/test.sh   |   35 -
 general/grpc/stream/go-client/assembly/mac/dev.sh  |   36 -
 .../grpc/stream/go-client/assembly/mac/release.sh  |   34 -
 general/grpc/stream/go-client/assembly/mac/test.sh |   34 -
 .../grpc/stream/go-client/assembly/windows/dev.sh  |   34 -
 .../stream/go-client/assembly/windows/release.sh   |   34 -
 .../grpc/stream/go-client/assembly/windows/test.sh |   34 -
 .../grpc/stream/go-client/profiles/dev/client.yml  |   61 -
 general/grpc/stream/go-client/profiles/dev/log.yml |   28 -
 .../grpc/stream/go-client/profiles/release/log.yml |   28 -
 .../grpc/stream/go-client/profiles/test/client.yml |   63 -
 .../grpc/stream/go-client/profiles/test/log.yml    |   28 -
 general/grpc/stream/go-server/app/greeter.go       |  103 --
 general/grpc/stream/go-server/app/helloworld.pb.go |  472 --------
 general/grpc/stream/go-server/app/helloworld.proto |   39 -
 general/grpc/stream/go-server/app/server.go        |   71 --
 general/grpc/stream/go-server/app/version.go       |   22 -
 general/grpc/stream/go-server/assembly/bin/load.sh |  151 ---
 .../go-server/assembly/common/app.properties       |   23 -
 .../grpc/stream/go-server/assembly/common/build.sh |   80 --
 .../grpc/stream/go-server/assembly/linux/dev.sh    |   36 -
 .../stream/go-server/assembly/linux/release.sh     |   36 -
 .../grpc/stream/go-server/assembly/linux/test.sh   |   36 -
 general/grpc/stream/go-server/assembly/mac/dev.sh  |   36 -
 .../grpc/stream/go-server/assembly/mac/release.sh  |   36 -
 general/grpc/stream/go-server/assembly/mac/test.sh |   36 -
 .../grpc/stream/go-server/assembly/windows/dev.sh  |   36 -
 .../stream/go-server/assembly/windows/release.sh   |   36 -
 .../grpc/stream/go-server/assembly/windows/test.sh |   36 -
 general/grpc/stream/go-server/profiles/dev/log.yml |   28 -
 .../grpc/stream/go-server/profiles/dev/server.yml  |   57 -
 .../grpc/stream/go-server/profiles/release/log.yml |   28 -
 .../stream/go-server/profiles/release/server.yml   |   54 -
 .../grpc/stream/go-server/profiles/test/log.yml    |   28 -
 .../grpc/stream/go-server/profiles/test/server.yml |   55 -
 general/grpc/unary/go-client/app/Makefile          |    2 -
 general/grpc/unary/go-client/app/client.go         |   73 --
 general/grpc/unary/go-client/app/hello.go          |   37 -
 general/grpc/unary/go-client/app/helloworld.pb.go  |  284 -----
 general/grpc/unary/go-client/app/helloworld.proto  |   37 -
 general/grpc/unary/go-client/app/version.go        |   22 -
 general/grpc/unary/go-client/assembly/bin/load.sh  |  203 ----
 .../unary/go-client/assembly/common/app.properties |   23 -
 .../grpc/unary/go-client/assembly/common/build.sh  |   83 --
 general/grpc/unary/go-client/assembly/linux/dev.sh |   36 -
 .../grpc/unary/go-client/assembly/linux/release.sh |   35 -
 .../grpc/unary/go-client/assembly/linux/test.sh    |   35 -
 general/grpc/unary/go-client/assembly/mac/dev.sh   |   36 -
 .../grpc/unary/go-client/assembly/mac/release.sh   |   34 -
 general/grpc/unary/go-client/assembly/mac/test.sh  |   34 -
 .../grpc/unary/go-client/assembly/windows/dev.sh   |   34 -
 .../unary/go-client/assembly/windows/release.sh    |   34 -
 .../grpc/unary/go-client/assembly/windows/test.sh  |   34 -
 .../grpc/unary/go-client/profiles/dev/client.yml   |   61 -
 general/grpc/unary/go-client/profiles/dev/log.yml  |   28 -
 .../unary/go-client/profiles/release/client.yml    |   61 -
 .../grpc/unary/go-client/profiles/release/log.yml  |   28 -
 .../grpc/unary/go-client/profiles/test/client.yml  |   63 -
 general/grpc/unary/go-client/profiles/test/log.yml |   28 -
 general/grpc/unary/go-server/app/greeter.go        |   43 -
 general/grpc/unary/go-server/app/helloworld.pb.go  |  283 -----
 general/grpc/unary/go-server/app/helloworld.proto  |   37 -
 general/grpc/unary/go-server/app/server.go         |   75 --
 general/grpc/unary/go-server/app/version.go        |   22 -
 general/grpc/unary/go-server/assembly/bin/load.sh  |  151 ---
 .../unary/go-server/assembly/common/app.properties |   23 -
 .../grpc/unary/go-server/assembly/common/build.sh  |   80 --
 general/grpc/unary/go-server/assembly/linux/dev.sh |   36 -
 .../grpc/unary/go-server/assembly/linux/release.sh |   36 -
 .../grpc/unary/go-server/assembly/linux/test.sh    |   36 -
 general/grpc/unary/go-server/assembly/mac/dev.sh   |   36 -
 .../grpc/unary/go-server/assembly/mac/release.sh   |   36 -
 general/grpc/unary/go-server/assembly/mac/test.sh  |   36 -
 .../grpc/unary/go-server/assembly/windows/dev.sh   |   36 -
 .../unary/go-server/assembly/windows/release.sh    |   36 -
 .../grpc/unary/go-server/assembly/windows/test.sh  |   36 -
 general/grpc/unary/go-server/profiles/dev/log.yml  |   28 -
 .../grpc/unary/go-server/profiles/dev/server.yml   |   57 -
 .../grpc/unary/go-server/profiles/release/log.yml  |   28 -
 .../unary/go-server/profiles/release/server.yml    |   54 -
 general/grpc/unary/go-server/profiles/test/log.yml |   28 -
 .../grpc/unary/go-server/profiles/test/server.yml  |   57 -
 general/grpc/unary/java-client/build.sh            |   21 -
 general/grpc/unary/java-client/pom.xml             |  247 ----
 .../java-client/src/main/assembly/assembly.xml     |   39 -
 .../src/main/assembly/conf/dubbo.properties        |   13 -
 .../src/main/assembly/conf/log4j.properties        |   19 -
 .../src/main/java/com/ikurento/user/Consumer.java  |  111 --
 .../java-client/src/main/proto/UserService.proto   |   56 -
 .../resources/META-INF/spring/dubbo.consumer.xml   |   43 -
 .../src/main/resources/META-INF/spring/service.xml |   36 -
 general/grpc/unary/java-server/build.sh            |   20 -
 general/grpc/unary/java-server/pom.xml             |  225 ----
 general/grpc/unary/java-server/script/debug.sh     |   22 -
 .../java-server/src/main/assembly/assembly.xml     |   45 -
 .../java-server/src/main/assembly/bin/start.bat    |   44 -
 .../java-server/src/main/assembly/bin/start.sh     |  125 --
 .../src/main/assembly/conf/dubbo.properties        |   14 -
 .../src/main/assembly/conf/log4j.properties        |   20 -
 .../src/main/java/com/ikurento/user/Provider.java  |   34 -
 .../java/com/ikurento/user/UserProviderImpl.java   |   70 --
 .../java-server/src/main/proto/UserService.proto   |   56 -
 .../resources/META-INF/spring/dubbo.provider.xml   |   39 -
 .../src/main/resources/log4j.properties            |   20 -
 general/jsonrpc/go-client/app/client.go            |  258 -----
 general/jsonrpc/go-client/app/user.go              |   97 --
 general/jsonrpc/go-client/app/version.go           |   22 -
 general/jsonrpc/go-client/assembly/bin/load.sh     |  203 ----
 .../go-client/assembly/common/app.properties       |   23 -
 general/jsonrpc/go-client/assembly/common/build.sh |   83 --
 general/jsonrpc/go-client/assembly/linux/dev.sh    |   36 -
 .../jsonrpc/go-client/assembly/linux/release.sh    |   35 -
 general/jsonrpc/go-client/assembly/linux/test.sh   |   35 -
 general/jsonrpc/go-client/assembly/mac/dev.sh      |   36 -
 general/jsonrpc/go-client/assembly/mac/release.sh  |   34 -
 general/jsonrpc/go-client/assembly/mac/test.sh     |   34 -
 general/jsonrpc/go-client/assembly/windows/dev.sh  |   34 -
 .../jsonrpc/go-client/assembly/windows/release.sh  |   34 -
 general/jsonrpc/go-client/assembly/windows/test.sh |   34 -
 general/jsonrpc/go-client/profiles/dev/client.yml  |   60 -
 general/jsonrpc/go-client/profiles/dev/log.yml     |   28 -
 .../jsonrpc/go-client/profiles/release/client.yml  |   60 -
 general/jsonrpc/go-client/profiles/release/log.yml |   28 -
 general/jsonrpc/go-client/profiles/test/client.yml |   60 -
 general/jsonrpc/go-client/profiles/test/log.yml    |   28 -
 general/jsonrpc/go-server/app/server.go            |   77 --
 general/jsonrpc/go-server/app/user.go              |   73 --
 general/jsonrpc/go-server/app/user_provider.go     |  102 --
 general/jsonrpc/go-server/app/user_provider1.go    |   87 --
 general/jsonrpc/go-server/app/user_provider2.go    |   97 --
 general/jsonrpc/go-server/app/version.go           |   22 -
 general/jsonrpc/go-server/assembly/bin/load.sh     |  151 ---
 .../go-server/assembly/common/app.properties       |   23 -
 general/jsonrpc/go-server/assembly/common/build.sh |   80 --
 general/jsonrpc/go-server/assembly/linux/dev.sh    |   36 -
 .../jsonrpc/go-server/assembly/linux/release.sh    |   36 -
 general/jsonrpc/go-server/assembly/linux/test.sh   |   36 -
 general/jsonrpc/go-server/assembly/mac/dev.sh      |   36 -
 general/jsonrpc/go-server/assembly/mac/release.sh  |   36 -
 general/jsonrpc/go-server/assembly/mac/test.sh     |   36 -
 general/jsonrpc/go-server/assembly/windows/dev.sh  |   36 -
 .../jsonrpc/go-server/assembly/windows/release.sh  |   36 -
 general/jsonrpc/go-server/assembly/windows/test.sh |   36 -
 general/jsonrpc/go-server/profiles/dev/log.yml     |   28 -
 general/jsonrpc/go-server/profiles/dev/server.yml  |   75 --
 general/jsonrpc/go-server/profiles/release/log.yml |   28 -
 .../jsonrpc/go-server/profiles/release/server.yml  |   75 --
 general/jsonrpc/go-server/profiles/test/log.yml    |   28 -
 general/jsonrpc/go-server/profiles/test/server.yml |   75 --
 general/jsonrpc/java-client/build.sh               |   21 -
 general/jsonrpc/java-client/pom.xml                |  230 ----
 .../java-client/src/main/assembly/assembly.xml     |   39 -
 .../src/main/assembly/conf/dubbo.properties        |   13 -
 .../src/main/assembly/conf/log4j.properties        |   19 -
 .../src/main/java/com/ikurento/user/Consumer.java  |  211 ----
 .../src/main/java/com/ikurento/user/Gender.java    |   23 -
 .../src/main/java/com/ikurento/user/User.java      |   83 --
 .../main/java/com/ikurento/user/UserProvider.java  |   25 -
 .../resources/META-INF/spring/dubbo.consumer.xml   |   44 -
 .../src/main/resources/META-INF/spring/service.xml |   38 -
 .../src/main/resources/dubbo.properties            |   13 -
 .../src/main/resources/log4j.properties            |   19 -
 general/jsonrpc/java-server/build.sh               |   20 -
 general/jsonrpc/java-server/pom.xml                |  195 ----
 general/jsonrpc/java-server/script/debug.sh        |   22 -
 .../java-server/src/main/assembly/assembly.xml     |   45 -
 .../src/main/assembly/conf/dubbo.properties        |   14 -
 .../src/main/assembly/conf/log4j.properties        |   20 -
 .../src/main/java/com/ikurento/user/Gender.java    |   23 -
 .../src/main/java/com/ikurento/user/Provider.java  |   34 -
 .../src/main/java/com/ikurento/user/Response.java  |   92 --
 .../src/main/java/com/ikurento/user/User.java      |   95 --
 .../main/java/com/ikurento/user/UserProvider.java  |   46 -
 .../com/ikurento/user/UserProviderAnotherImpl.java |  134 ---
 .../java/com/ikurento/user/UserProviderImpl.java   |  111 --
 .../resources/META-INF/spring/dubbo.provider.xml   |   39 -
 .../src/main/resources/log4j.properties            |   20 -
 general/rest/README.md                             |   95 --
 general/rest/README_zh.md                          |   97 --
 general/rest/go-client/cmd/client.go               |  210 ----
 general/rest/go-client/cmd/version.go              |   22 -
 general/rest/go-client/conf/client.yml             |  108 --
 general/rest/go-client/conf/log.yml                |   28 -
 general/rest/go-client/docker/docker-compose.yml   |    9 -
 general/rest/go-client/pkg/user.go                 |   97 --
 general/rest/go-server/cmd/server.go               |   92 --
 general/rest/go-server/cmd/version.go              |   22 -
 general/rest/go-server/conf/log.yml                |   28 -
 general/rest/go-server/conf/server.yml             |  121 --
 general/rest/go-server/docker/docker-compose.yml   |    9 -
 general/rest/go-server/pkg/user.go                 |   73 --
 general/rest/go-server/pkg/user_provider.go        |   89 --
 general/rest/go-server/pkg/user_provider1.go       |   79 --
 general/rest/go-server/pkg/user_provider2.go       |   89 --
 generic/README.md                                  |   44 -
 generic/README_zh.md                               |   41 -
 generic/go-client/cmd/client.go                    |  134 ---
 generic/go-client/conf/client.yml                  |   59 -
 generic/go-client/conf/log.yml                     |   28 -
 generic/go-client/pkg/user.go                      |   33 -
 generic/go-server/cmd/server.go                    |   77 --
 generic/go-server/conf/client.yml                  |   59 -
 generic/go-server/conf/log.yml                     |   28 -
 generic/go-server/conf/server.yml                  |   55 -
 generic/go-server/docker/docker-compose.yml        |    9 -
 generic/go-server/pkg/user.go                      |   76 --
 generic/go-server/tests/integration/main_test.go   |   65 --
 .../tests/integration/userprovider_test.go         |   73 --
 generic/java-client/2.6/pom.xml                    |   79 --
 .../src/main/java/org/apache/dubbo/Consumer.java   |   53 -
 .../2.6/src/main/java/org/apache/dubbo/User.java   |   77 --
 .../2.6/src/main/resources/log4j.properties        |   19 -
 generic/java-client/2.7/pom.xml                    |  126 --
 .../src/main/java/org/apache/dubbo/Consumer.java   |   53 -
 .../2.7/src/main/java/org/apache/dubbo/User.java   |   77 --
 .../2.7/src/main/resources/log4j.properties        |   19 -
 generic/java-server/2.6/pom.xml                    |   79 --
 .../2.6/src/main/java/org/apache/dubbo/Gender.java |   23 -
 .../src/main/java/org/apache/dubbo/Provider.java   |   34 -
 .../src/main/java/org/apache/dubbo/Response.java   |   92 --
 .../2.6/src/main/java/org/apache/dubbo/User.java   |   95 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   50 -
 .../org/apache/dubbo/UserProviderAnotherImpl.java  |  143 ---
 .../java/org/apache/dubbo/UserProviderImpl.java    |  115 --
 .../resources/META-INF/spring/dubbo.provider.xml   |   36 -
 .../2.6/src/main/resources/log4j.properties        |   20 -
 generic/java-server/2.7/pom.xml                    |  126 --
 .../2.7/src/main/java/org/apache/dubbo/Gender.java |   23 -
 .../src/main/java/org/apache/dubbo/Provider.java   |   34 -
 .../src/main/java/org/apache/dubbo/Response.java   |   92 --
 .../2.7/src/main/java/org/apache/dubbo/User.java   |   95 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   50 -
 .../org/apache/dubbo/UserProviderAnotherImpl.java  |  143 ---
 .../java/org/apache/dubbo/UserProviderImpl.java    |  115 --
 .../resources/META-INF/spring/dubbo.provider.xml   |   36 -
 .../2.7/src/main/resources/log4j.properties        |   20 -
 go.mod                                             |   45 -
 go.sum                                             | 1212 --------------------
 group/README.md                                    |   33 -
 group/README_zh.md                                 |   33 -
 group/go-client/cmd/client.go                      |   76 --
 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              |   78 --
 group/go-server-group-a/conf/client.yml            |   59 -
 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 -
 group/go-server-group-a/pkg/user.go                |   60 -
 .../tests/integration/main_test.go                 |   71 --
 .../tests/integration/userprovider_test.go         |   38 -
 group/go-server-group-b/cmd/server.go              |   78 --
 group/go-server-group-b/conf/client.yml            |   59 -
 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 -
 group/go-server-group-b/pkg/user.go                |   60 -
 .../tests/integration/main_test.go                 |   71 --
 .../tests/integration/userprovider_test.go         |   39 -
 helloworld/README.md                               |  135 ---
 helloworld/README_zh.md                            |  135 ---
 helloworld/go-client/cmd/client.go                 |   64 --
 helloworld/go-client/conf/client.yml               |   59 -
 helloworld/go-client/conf/log.yml                  |   27 -
 helloworld/go-client/pkg/user.go                   |   42 -
 helloworld/go-server/cmd/server.go                 |   76 --
 helloworld/go-server/conf/client.yml               |   59 -
 helloworld/go-server/conf/log.yml                  |   27 -
 helloworld/go-server/conf/server.yml               |   55 -
 helloworld/go-server/docker/docker-compose.yml     |    9 -
 helloworld/go-server/pkg/user.go                   |   63 -
 .../go-server/tests/integration/main_test.go       |   71 --
 .../tests/integration/userprovider_test.go         |   39 -
 helloworld/java-client/build.sh                    |   21 -
 helloworld/java-client/pom.xml                     |  230 ----
 .../java-client/src/main/assembly/assembly.xml     |   43 -
 .../src/main/java/org/apache/dubbo/Consumer.java   |   60 -
 .../src/main/java/org/apache/dubbo/User.java       |   76 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   18 -
 .../resources/META-INF/spring/dubbo.consumer.xml   |   38 -
 .../src/main/resources/META-INF/spring/service.xml |   24 -
 .../src/main/resources/dubbo.properties            |   12 -
 .../src/main/resources/log4j.properties            |   16 -
 helloworld/java-server/build.sh                    |   20 -
 helloworld/java-server/pom.xml                     |  196 ----
 helloworld/java-server/script/debug.sh             |   23 -
 .../java-server/src/main/assembly/assembly.xml     |   44 -
 .../src/main/java/org/apache/dubbo/Provider.java   |   33 -
 .../src/main/java/org/apache/dubbo/User.java       |   86 --
 .../main/java/org/apache/dubbo/UserProvider.java   |   24 -
 .../java/org/apache/dubbo/UserProviderImpl.java    |   30 -
 .../resources/META-INF/spring/dubbo.provider.xml   |   34 -
 .../src/main/resources/dubbo.properties            |   13 -
 .../src/main/resources/log4j.properties            |   17 -
 integrate_test.sh                                  |   36 -
 metric/README.md                                   |   39 -
 metric/README_zh.md                                |   39 -
 metric/go-client/cmd/client.go                     |   68 --
 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                     |   88 --
 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/pkg/user.go                       |   68 --
 metric/go-server/tests/integration/main_test.go    |   71 --
 .../tests/integration/userprovider_test.go         |   47 -
 multi-registry/go-client/cmd/client.go             |   65 --
 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             |   76 --
 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 |   13 -
 multi-registry/go-server/pkg/user.go               |   63 -
 .../go-server/tests/integration/main_test.go       |   70 --
 .../tests/integration/userprovider_test.go         |   38 -
 multi-zone/README.md                               |   42 -
 multi-zone/docker/docker-compose.yml               |   13 -
 multi-zone/go-client/cmd/client.go                 |   81 --
 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       |   51 -
 .../tests/integration/userprovider_test.go         |   53 -
 multi-zone/go-server-hz/cmd/server.go              |   76 --
 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                |   64 --
 multi-zone/go-server-sh/cmd/server.go              |   76 --
 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                |   64 --
 registry/etcd/go-client/cmd/client.go              |   65 --
 registry/etcd/go-client/conf/client.yml            |   59 -
 registry/etcd/go-client/conf/log.yml               |   27 -
 registry/etcd/go-client/pkg/user.go                |   42 -
 registry/etcd/go-server/cmd/server.go              |   76 --
 registry/etcd/go-server/conf/client.yml            |   59 -
 registry/etcd/go-server/conf/log.yml               |   27 -
 registry/etcd/go-server/conf/server.yml            |   55 -
 registry/etcd/go-server/docker/docker-compose.yml  |   21 -
 registry/etcd/go-server/pkg/user.go                |   63 -
 .../etcd/go-server/tests/integration/main_test.go  |   70 --
 .../tests/integration/userprovider_test.go         |   38 -
 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 -
 registry/nacos/go-client/cmd/client.go             |   65 --
 registry/nacos/go-client/conf/client.yml           |   57 -
 registry/nacos/go-client/conf/log.yml              |   27 -
 registry/nacos/go-client/pkg/user.go               |   42 -
 registry/nacos/go-server/cmd/server.go             |   79 --
 registry/nacos/go-server/conf/client.yml           |   57 -
 registry/nacos/go-server/conf/log.yml              |   27 -
 registry/nacos/go-server/conf/server.yml           |   55 -
 registry/nacos/go-server/docker/docker-compose.yml |   11 -
 registry/nacos/go-server/pkg/user.go               |   63 -
 .../nacos/go-server/tests/integration/main_test.go |   70 --
 .../tests/integration/userprovider_test.go         |   38 -
 registry/servicediscovery/consul/README.md         |   47 -
 registry/servicediscovery/consul/README_zh.md      |   46 -
 .../consul/go-client/cmd/client.go                 |  106 --
 .../consul/go-client/cmd/version.go                |   22 -
 .../consul/go-client/conf/client.yml               |   77 --
 .../servicediscovery/consul/go-client/conf/log.yml |   28 -
 .../consul/go-client/pkg/pojo/user.go              |   42 -
 .../consul/go-server/cmd/server.go                 |   90 --
 .../consul/go-server/cmd/version.go                |   22 -
 .../consul/go-server/conf/client.yml               |   77 --
 .../servicediscovery/consul/go-server/conf/log.yml |   28 -
 .../consul/go-server/conf/server.yml               |   74 --
 .../consul/go-server/docker/docker-compose.yml     |    9 -
 .../consul/go-server/pkg/pojo/user.go              |   60 -
 .../go-server/tests/integration/main_test.go       |   76 --
 .../tests/integration/userprovider_test.go         |   38 -
 registry/servicediscovery/etcd/go-client/FIXME.md  |   36 -
 .../servicediscovery/etcd/go-client/cmd/client.go  |   71 --
 .../etcd/go-client/conf/client.yml                 |   74 --
 .../servicediscovery/etcd/go-client/conf/log.yml   |   27 -
 .../etcd/go-client/conf/server.yml                 |   33 -
 .../servicediscovery/etcd/go-client/pkg/user.go    |   42 -
 .../servicediscovery/etcd/go-server/cmd/server.go  |   81 --
 .../etcd/go-server/conf/client.yml                 |   74 --
 .../servicediscovery/etcd/go-server/conf/log.yml   |   27 -
 .../etcd/go-server/conf/server.yml                 |   71 --
 .../etcd/go-server/docker/docker-compose.yml       |   21 -
 .../servicediscovery/etcd/go-server/pkg/user.go    |   63 -
 .../etcd/go-server/tests/integration/main_test.go  |   75 --
 .../tests/integration/userprovider_test.go         |   38 -
 registry/servicediscovery/file/go-client/FIXME.md  |   26 -
 .../servicediscovery/file/go-client/cmd/client.go  |   70 --
 .../file/go-client/conf/client.yml                 |   64 --
 .../servicediscovery/file/go-client/conf/log.yml   |   27 -
 .../file/go-client/conf/server.yml                 |   23 -
 .../servicediscovery/file/go-client/pkg/user.go    |   42 -
 .../servicediscovery/file/go-server/cmd/server.go  |   81 --
 .../file/go-server/conf/client.yml                 |   63 -
 .../servicediscovery/file/go-server/conf/log.yml   |   27 -
 .../file/go-server/conf/server.yml                 |   61 -
 .../servicediscovery/file/go-server/pkg/user.go    |   63 -
 .../file/go-server/tests/integration/main_test.go  |   74 --
 .../tests/integration/userprovider_test.go         |   38 -
 registry/servicediscovery/nacos/go-client/FIXME.md |   40 -
 .../servicediscovery/nacos/go-client/cmd/client.go |   72 --
 .../nacos/go-client/conf/client.yml                |   77 --
 .../servicediscovery/nacos/go-client/conf/log.yml  |   27 -
 .../nacos/go-client/conf/server.yml                |   37 -
 .../servicediscovery/nacos/go-client/pkg/user.go   |   42 -
 .../servicediscovery/nacos/go-server/cmd/server.go |   82 --
 .../nacos/go-server/conf/client.yml                |   77 --
 .../servicediscovery/nacos/go-server/conf/log.yml  |   27 -
 .../nacos/go-server/conf/server.yml                |   75 --
 .../nacos/go-server/docker/docker-compose.yml      |   11 -
 .../servicediscovery/nacos/go-server/pkg/user.go   |   63 -
 .../nacos/go-server/tests/integration/main_test.go |   76 --
 .../tests/integration/userprovider_test.go         |   38 -
 .../servicediscovery/zookeeper/go-client/FIXME.md  |   40 -
 .../zookeeper/go-client/cmd/client.go              |   70 --
 .../zookeeper/go-client/conf/client.yml            |   73 --
 .../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              |   81 --
 .../zookeeper/go-server/conf/client.yml            |   73 --
 .../zookeeper/go-server/conf/log.yml               |   27 -
 .../zookeeper/go-server/conf/server.yml            |   71 --
 .../zookeeper/go-server/docker/docker-compose.yml  |    8 -
 .../zookeeper/go-server/pkg/user.go                |   63 -
 .../go-server/tests/integration/main_test.go       |   76 --
 .../tests/integration/userprovider_test.go         |   38 -
 router/README.md                                   |   35 -
 router/condition/go-client/cmd/client.go           |   65 --
 router/condition/go-client/conf/client.yml         |   59 -
 router/condition/go-client/conf/log.yml            |   27 -
 router/condition/go-client/conf/router_config.yml  |   13 -
 router/condition/go-client/pkg/user.go             |   42 -
 router/condition/go-server/app/user.go             |   63 -
 router/condition/go-server/cmd/server.go           |   77 --
 router/condition/go-server/conf/client.yml         |   59 -
 router/condition/go-server/conf/log.yml            |   27 -
 router/condition/go-server/conf/router_config.yml  |   13 -
 router/condition/go-server/conf/server.yml         |   55 -
 .../condition/go-server/docker/docker-compose.yml  |    9 -
 router/condition/go-server/pkg/user.go             |   63 -
 router/condition/go-server/profiles/dev/log.yml    |   28 -
 router/condition/go-server/profiles/dev/server.yml |   92 --
 .../go-server/tests/integration/main_test.go       |   71 --
 .../tests/integration/userprovider_test.go         |   34 -
 router/tag/go-client/app/client.go                 |  128 ---
 router/tag/go-client/assembly/bin/load.sh          |  203 ----
 .../tag/go-client/assembly/common/app.properties   |   24 -
 router/tag/go-client/assembly/common/build.sh      |   89 --
 router/tag/go-client/assembly/linux/dev.sh         |   36 -
 router/tag/go-client/assembly/linux/release.sh     |   35 -
 router/tag/go-client/assembly/linux/test.sh        |   35 -
 router/tag/go-client/assembly/mac/dev.sh           |   36 -
 router/tag/go-client/assembly/mac/release.sh       |   34 -
 router/tag/go-client/assembly/mac/test.sh          |   34 -
 router/tag/go-client/assembly/windows/dev.sh       |   34 -
 router/tag/go-client/assembly/windows/release.sh   |   34 -
 router/tag/go-client/assembly/windows/test.sh      |   34 -
 router/tag/go-client/profiles/dev/client.yml       |   62 -
 router/tag/go-client/profiles/dev/log.yml          |   28 -
 .../tag/go-client/profiles/dev/router_config.yml   |   14 -
 router/tag/go-server/app/server.go                 |   78 --
 router/tag/go-server/app/user.go                   |   63 -
 router/tag/go-server/app/version.go                |   22 -
 router/tag/go-server/assembly/bin/load.sh          |  151 ---
 .../tag/go-server/assembly/common/app.properties   |   23 -
 router/tag/go-server/assembly/common/build.sh      |   80 --
 router/tag/go-server/assembly/linux/dev.sh         |   36 -
 router/tag/go-server/assembly/linux/release.sh     |   36 -
 router/tag/go-server/assembly/linux/test.sh        |   36 -
 router/tag/go-server/assembly/mac/dev.sh           |   36 -
 router/tag/go-server/assembly/mac/release.sh       |   36 -
 router/tag/go-server/assembly/mac/test.sh          |   36 -
 router/tag/go-server/assembly/windows/dev.sh       |   36 -
 router/tag/go-server/assembly/windows/release.sh   |   36 -
 router/tag/go-server/assembly/windows/test.sh      |   36 -
 router/tag/go-server/profiles/dev/log.yml          |   28 -
 router/tag/go-server/profiles/dev/server.yml       |   95 --
 router/tag/java-client/build.sh                    |   21 -
 router/tag/java-client/pom.xml                     |  211 ----
 .../tag/java-client/src/main/assembly/assembly.xml |   43 -
 .../src/main/java/com/ikurento/user/Consumer.java  |   61 -
 .../java/com/ikurento/user/EmbeddedZooKeeper.java  |  250 ----
 .../src/main/java/com/ikurento/user/User.java      |   76 --
 .../main/java/com/ikurento/user/UserProvider.java  |   18 -
 .../src/main/java/com/ikurento/user/ZKTools.java   |   88 --
 .../resources/META-INF/spring/dubbo.consumer.xml   |   37 -
 .../src/main/resources/META-INF/spring/service.xml |   27 -
 .../src/main/resources/log4j.properties            |   19 -
 router/tag/java-server/build.sh                    |   20 -
 router/tag/java-server/pom.xml                     |  210 ----
 router/tag/java-server/script/debug.sh             |   23 -
 .../tag/java-server/src/main/assembly/assembly.xml |   43 -
 .../java/com/ikurento/user/EmbeddedZooKeeper.java  |  250 ----
 .../src/main/java/com/ikurento/user/Provider.java  |   40 -
 .../src/main/java/com/ikurento/user/Provider2.java |   40 -
 .../src/main/java/com/ikurento/user/User.java      |   86 --
 .../main/java/com/ikurento/user/UserProvider.java  |   24 -
 .../src/main/java/com/ikurento/user/ZKTools.java   |   89 --
 .../com/ikurento/user/impl/UserProviderImpl.java   |   32 -
 .../resources/META-INF/spring/dubbo.provider.xml   |   34 -
 .../resources/META-INF/spring/dubbo.provider2.xml  |   34 -
 .../src/main/resources/log4j.properties            |   20 -
 seata/client/README.md                             |   12 -
 seata/client/app/client.go                         |  100 --
 seata/client/app/svc/svc.go                        |  153 ---
 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/filter/seata_filter.go                       |   43 -
 seata/order-svc/README.md                          |   18 -
 seata/order-svc/app/dao/dao.go                     |  150 ---
 seata/order-svc/app/order_svc.go                   |   54 -
 seata/order-svc/app/server.go                      |  113 --
 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                   |   75 --
 seata/product-svc/app/product_svc.go               |   54 -
 seata/product-svc/app/server.go                    |  114 --
 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           |   74 --
 shop/dubbo/go-service-order/app/product.go         |   58 -
 shop/dubbo/go-service-order/app/service.go         |   77 --
 shop/dubbo/go-service-order/app/version.go         |   28 -
 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       |   67 --
 shop/dubbo/go-service-product/app/service.go       |   76 --
 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            |   67 --
 shop/dubbo/go-service-user/app/service.go          |   90 --
 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                            |   68 --
 tracing/dubbo/go-client/app/client.go              |  121 --
 tracing/dubbo/go-client/app/user.go                |   56 -
 tracing/dubbo/go-client/app/version.go             |   22 -
 tracing/dubbo/go-client/assembly/bin/load.sh       |  203 ----
 .../dubbo/go-client/assembly/common/app.properties |   23 -
 tracing/dubbo/go-client/assembly/common/build.sh   |   83 --
 tracing/dubbo/go-client/assembly/linux/dev.sh      |   36 -
 tracing/dubbo/go-client/assembly/linux/release.sh  |   35 -
 tracing/dubbo/go-client/assembly/linux/test.sh     |   35 -
 tracing/dubbo/go-client/assembly/mac/dev.sh        |   36 -
 tracing/dubbo/go-client/assembly/mac/release.sh    |   34 -
 tracing/dubbo/go-client/assembly/mac/test.sh       |   34 -
 tracing/dubbo/go-client/assembly/windows/dev.sh    |   34 -
 .../dubbo/go-client/assembly/windows/release.sh    |   34 -
 tracing/dubbo/go-client/assembly/windows/test.sh   |   34 -
 tracing/dubbo/go-client/profiles/dev/client.yml    |   61 -
 tracing/dubbo/go-client/profiles/dev/log.yml       |   28 -
 .../dubbo/go-client/profiles/release/client.yml    |   60 -
 tracing/dubbo/go-client/profiles/release/log.yml   |   28 -
 tracing/dubbo/go-client/profiles/test/client.yml   |   59 -
 tracing/dubbo/go-client/profiles/test/log.yml      |   28 -
 tracing/dubbo/go-server/app/server.go              |  110 --
 tracing/dubbo/go-server/app/user.go                |   67 --
 tracing/dubbo/go-server/app/version.go             |   22 -
 tracing/dubbo/go-server/assembly/bin/load.sh       |  151 ---
 .../dubbo/go-server/assembly/common/app.properties |   23 -
 tracing/dubbo/go-server/assembly/common/build.sh   |   80 --
 tracing/dubbo/go-server/assembly/linux/dev.sh      |   36 -
 tracing/dubbo/go-server/assembly/linux/release.sh  |   36 -
 tracing/dubbo/go-server/assembly/linux/test.sh     |   36 -
 tracing/dubbo/go-server/assembly/mac/dev.sh        |   36 -
 tracing/dubbo/go-server/assembly/mac/release.sh    |   36 -
 tracing/dubbo/go-server/assembly/mac/test.sh       |   36 -
 tracing/dubbo/go-server/assembly/windows/dev.sh    |   36 -
 .../dubbo/go-server/assembly/windows/release.sh    |   36 -
 tracing/dubbo/go-server/assembly/windows/test.sh   |   36 -
 tracing/dubbo/go-server/profiles/dev/log.yml       |   28 -
 tracing/dubbo/go-server/profiles/dev/server.yml    |   58 -
 tracing/dubbo/go-server/profiles/release/log.yml   |   28 -
 .../dubbo/go-server/profiles/release/server.yml    |   62 -
 tracing/dubbo/go-server/profiles/test/log.yml      |   28 -
 tracing/dubbo/go-server/profiles/test/server.yml   |   62 -
 tracing/dubbo/java-client/build.sh                 |   21 -
 tracing/dubbo/java-client/pom.xml                  |  230 ----
 .../java-client/src/main/assembly/assembly.xml     |   43 -
 .../src/main/java/com/ikurento/user/Consumer.java  |   60 -
 .../src/main/java/com/ikurento/user/User.java      |   76 --
 .../main/java/com/ikurento/user/UserProvider.java  |   18 -
 .../resources/META-INF/spring/dubbo.consumer.xml   |   37 -
 .../src/main/resources/META-INF/spring/service.xml |   27 -
 .../src/main/resources/dubbo.properties            |   13 -
 .../src/main/resources/log4j.properties            |   19 -
 tracing/dubbo/java-server/build.sh                 |   20 -
 tracing/dubbo/java-server/pom.xml                  |  196 ----
 tracing/dubbo/java-server/script/debug.sh          |   23 -
 .../java-server/src/main/assembly/assembly.xml     |   44 -
 .../src/main/java/com/ikurento/user/Provider.java  |   33 -
 .../src/main/java/com/ikurento/user/User.java      |   86 --
 .../main/java/com/ikurento/user/UserProvider.java  |   24 -
 .../java/com/ikurento/user/UserProviderImpl.java   |   30 -
 .../resources/META-INF/spring/dubbo.provider.xml   |   33 -
 .../src/main/resources/dubbo.properties            |   14 -
 .../src/main/resources/log4j.properties            |   20 -
 tracing/grpc/README.md                             |   46 -
 tracing/grpc/go-client/app/Makefile                |    2 -
 tracing/grpc/go-client/app/client.go               |  107 --
 tracing/grpc/go-client/app/hello.go                |   48 -
 tracing/grpc/go-client/app/helloworld.pb.go        |  284 -----
 tracing/grpc/go-client/app/helloworld.proto        |   37 -
 tracing/grpc/go-client/app/version.go              |   22 -
 tracing/grpc/go-client/assembly/bin/load.sh        |  203 ----
 .../grpc/go-client/assembly/common/app.properties  |   23 -
 tracing/grpc/go-client/assembly/common/build.sh    |   83 --
 tracing/grpc/go-client/assembly/linux/dev.sh       |   36 -
 tracing/grpc/go-client/assembly/linux/release.sh   |   35 -
 tracing/grpc/go-client/assembly/linux/test.sh      |   35 -
 tracing/grpc/go-client/assembly/mac/dev.sh         |   36 -
 tracing/grpc/go-client/assembly/mac/release.sh     |   34 -
 tracing/grpc/go-client/assembly/mac/test.sh        |   34 -
 tracing/grpc/go-client/assembly/windows/dev.sh     |   34 -
 tracing/grpc/go-client/assembly/windows/release.sh |   34 -
 tracing/grpc/go-client/assembly/windows/test.sh    |   34 -
 tracing/grpc/go-client/profiles/dev/client.yml     |   61 -
 tracing/grpc/go-client/profiles/dev/log.yml        |   28 -
 tracing/grpc/go-client/profiles/release/client.yml |   61 -
 tracing/grpc/go-client/profiles/release/log.yml    |   28 -
 tracing/grpc/go-client/profiles/test/client.yml    |   63 -
 tracing/grpc/go-client/profiles/test/log.yml       |   28 -
 tracing/grpc/go-server/app/greeter.go              |   50 -
 tracing/grpc/go-server/app/helloworld.pb.go        |  284 -----
 tracing/grpc/go-server/app/helloworld.proto        |   37 -
 tracing/grpc/go-server/app/server.go               |   91 --
 tracing/grpc/go-server/app/version.go              |   22 -
 tracing/grpc/go-server/assembly/bin/load.sh        |  151 ---
 .../grpc/go-server/assembly/common/app.properties  |   23 -
 tracing/grpc/go-server/assembly/common/build.sh    |   80 --
 tracing/grpc/go-server/assembly/linux/dev.sh       |   36 -
 tracing/grpc/go-server/assembly/linux/release.sh   |   36 -
 tracing/grpc/go-server/assembly/linux/test.sh      |   36 -
 tracing/grpc/go-server/assembly/mac/dev.sh         |   36 -
 tracing/grpc/go-server/assembly/mac/release.sh     |   36 -
 tracing/grpc/go-server/assembly/mac/test.sh        |   36 -
 tracing/grpc/go-server/assembly/windows/dev.sh     |   36 -
 tracing/grpc/go-server/assembly/windows/release.sh |   36 -
 tracing/grpc/go-server/assembly/windows/test.sh    |   36 -
 tracing/grpc/go-server/profiles/dev/log.yml        |   28 -
 tracing/grpc/go-server/profiles/dev/server.yml     |   57 -
 tracing/grpc/go-server/profiles/release/log.yml    |   28 -
 tracing/grpc/go-server/profiles/release/server.yml |   54 -
 tracing/grpc/go-server/profiles/test/log.yml       |   28 -
 tracing/grpc/go-server/profiles/test/server.yml    |   57 -
 tracing/jsonrpc/go-client/app/client.go            |  285 -----
 tracing/jsonrpc/go-client/app/user.go              |   97 --
 tracing/jsonrpc/go-client/app/version.go           |   22 -
 tracing/jsonrpc/go-client/assembly/bin/load.sh     |  203 ----
 .../go-client/assembly/common/app.properties       |   23 -
 tracing/jsonrpc/go-client/assembly/common/build.sh |   83 --
 tracing/jsonrpc/go-client/assembly/linux/dev.sh    |   36 -
 .../jsonrpc/go-client/assembly/linux/release.sh    |   35 -
 tracing/jsonrpc/go-client/assembly/linux/test.sh   |   35 -
 tracing/jsonrpc/go-client/assembly/mac/dev.sh      |   36 -
 tracing/jsonrpc/go-client/assembly/mac/release.sh  |   34 -
 tracing/jsonrpc/go-client/assembly/mac/test.sh     |   34 -
 tracing/jsonrpc/go-client/assembly/windows/dev.sh  |   34 -
 .../jsonrpc/go-client/assembly/windows/release.sh  |   34 -
 tracing/jsonrpc/go-client/assembly/windows/test.sh |   34 -
 tracing/jsonrpc/go-client/profiles/dev/client.yml  |   62 -
 tracing/jsonrpc/go-client/profiles/dev/log.yml     |   28 -
 .../jsonrpc/go-client/profiles/release/client.yml  |   60 -
 tracing/jsonrpc/go-client/profiles/release/log.yml |   28 -
 tracing/jsonrpc/go-client/profiles/test/client.yml |   60 -
 tracing/jsonrpc/go-client/profiles/test/log.yml    |   28 -
 tracing/jsonrpc/go-server/app/server.go            |  109 --
 tracing/jsonrpc/go-server/app/user.go              |   73 --
 tracing/jsonrpc/go-server/app/user_provider.go     |  114 --
 tracing/jsonrpc/go-server/app/user_provider1.go    |   87 --
 tracing/jsonrpc/go-server/app/user_provider2.go    |   97 --
 tracing/jsonrpc/go-server/app/version.go           |   22 -
 tracing/jsonrpc/go-server/assembly/bin/load.sh     |  151 ---
 .../go-server/assembly/common/app.properties       |   23 -
 tracing/jsonrpc/go-server/assembly/common/build.sh |   80 --
 tracing/jsonrpc/go-server/assembly/linux/dev.sh    |   36 -
 .../jsonrpc/go-server/assembly/linux/release.sh    |   36 -
 tracing/jsonrpc/go-server/assembly/linux/test.sh   |   36 -
 tracing/jsonrpc/go-server/assembly/mac/dev.sh      |   36 -
 tracing/jsonrpc/go-server/assembly/mac/release.sh  |   36 -
 tracing/jsonrpc/go-server/assembly/mac/test.sh     |   36 -
 tracing/jsonrpc/go-server/assembly/windows/dev.sh  |   36 -
 .../jsonrpc/go-server/assembly/windows/release.sh  |   36 -
 tracing/jsonrpc/go-server/assembly/windows/test.sh |   36 -
 tracing/jsonrpc/go-server/profiles/dev/log.yml     |   28 -
 tracing/jsonrpc/go-server/profiles/dev/server.yml  |   76 --
 tracing/jsonrpc/go-server/profiles/release/log.yml |   28 -
 .../jsonrpc/go-server/profiles/release/server.yml  |   75 --
 tracing/jsonrpc/go-server/profiles/test/log.yml    |   28 -
 tracing/jsonrpc/go-server/profiles/test/server.yml |   75 --
 1045 files changed, 61693 deletions(-)

diff --git a/HOWTO.md b/HOWTO.md
deleted file mode 100644
index 9e7730d..0000000
--- a/HOWTO.md
+++ /dev/null
@@ -1,151 +0,0 @@
-# How To Run
-
-There are three ways to run dubbo-go samples:
-
-1. Quick start with makefile: a common makefile is provided under "build" subdirectory, which can be used to run each sample here quickly. It is also useful to run all samples automatically so that now it is possible to leverage samples as dubbo-go's integration test.
-2. Quick start in IDE (**Recommended**): In ".run" subdirectory a couple of GoLand run configuration files are provided so that user can run each sample with just one click.
-3. Manually config and run in IDE: For completeness purpose, a step-by-step instruction is also provided so that user can understand how to configure and run or debug a sample in IDE. 
-
-### 1. Quick start with makefile
-
-*Prerequisite: docker environment is required*
-
-Here we use "attachment" as an example:
-
-1. **Start register server (e.g. zookeeper)**
-   
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile docker-up 
-   ```
-   
-   Once the following messages outputs, the zookeeper server is ready.
-   
-   ```bash
-   >  Starting dependency services with docker/docker-compose.yml
-   Creating network "docker_default" with the default driver
-   Creating docker_zookeeper_1 ... done
-   ```
-   
-   To shut it down, simple run
-   
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile docker-down
-   ```
-   
-2. **Start server**
-   
-    ```bash
-    cd attachment/server
-    make -f ../../build/Makefile start
-    ```
-   
-   Once the following messages outputs, the server is ready.
-
-   ```bash
-   >  Buiding application binary: dist/darwin_amd64/release/go-server
-   >  Starting application go-server, output is redirected to dist/darwin_amd64/release/go-server.log
-     >  PID: 86428
-   ```
-
-   The output of `go-server` can be found from 'dist/darwin_amd64/release/go-server.log'.
-   
-3. **Run client**
-   
-    ```bash
-   cd attachment/client
-   make -f ../../build/Makefile run 
-   ```
-
-   Once the following messages outputs, the `go-client` calls the `go-server` successfully.
-
-   ```bash
-   >  Buiding application binary: dist/darwin_amd64/release/go-client
-   >  Running application go-client, output is redirected to dist/darwin_amd64/release/go-client.log
-   ...
-   2020-10-27T14:51:37.520+0800    DEBUG   dubbo/dubbo_invoker.go:144      result.Err: <nil>, result.Rest: &{A001 Alex Stocks 18 2020-10-27 14:51:37.52 +0800 CST}
-   2020-10-27T14:51:37.520+0800    DEBUG   proxy/proxy.go:177      [makeDubboCallProxy] result: &{A001 Alex Stocks 18 2020-10-27 14:51:37.52 +0800 CST}, err: <nil>
-   response result: &{A001 Alex Stocks 18 2020-10-27 14:51:37.52 +0800 CST}
-   ```
-   
-3. **Integration test**
-   dubbo-go-samples is designed to serve the purposes of not only the showcases of how to use apache/dubbo-go but also the integration-test for apache/dubbo-go. To run integration test for `go-server`, run the following commands:
-
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile integration
-   ```
-
-   Once the following messages outputs, the integration tests pass.
-
-   ```bash
-   >  Running integration test for application go-server
-   ...
-   --- PASS: TestGetUser (0.00s)
-   PASS
-   ok      github.com/apache/dubbo-go-samples/attachment/go-server/tests/integration   3.603s
-   ```
-   
-4. **Shutdown and cleanup**
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile clean docker-down
-   ```
-
-*The following two ways are all relevant to IDE. Intellij GoLand is discussed here as an example.*
-
-### 2. Quick start in IDE
-
-Once open this project in GoLand, a list of pre-configured configures for both server and client can be found from "Run Configuration" pop up menu, for example: "helloworld-go-server" and "helloworld-go-client". 
-
-![run-configuration.png](.images/run-configurations.png)
-
-Feel free to pick one among them to run instantly. Of course a service register server is required otherwise the samples cannot run successfully. You may consider to either manually boot up the required register server, or use the provided "docker-compose.yml" to boot it in docker environment, from the following [section](#3-manually-run-in-ide) where you can find more details.
-
-### 3. Manually run in IDE
-
-After open dubbo-go-samples in GoLand, follow the steps below to run/debug this
-example:
-
-1. **Start up zookeeper server**
-
-   Open "attachment/go-server/docker/docker-compose.yaml", and click ▶︎▶︎ icon in the gutter on the left side of the
-   editor, then "Services" tab should pop up and shows the similar message below:
-   ```
-   Deploying 'Compose: docker'...
-   /usr/local/bin/docker-compose -f .../dubbo-go-samples/attachment/go-server/docker/docker-compose.yml up -d
-   Creating network "docker_default" with the default driver
-   Creating docker_zookeeper_1 ...
-   'Compose: docker' has been deployed successfully.
-   ```
-
-2. **Start up service provider**
-
-   Open "attachment/go-server/cmd/server.go", and click ▶︎ icon just besides "main" function in the gutter on the left
-   side, and select "Modify Run Configuration..." from the pop-up menu. Then make sure the following configs configured
-   correctly:
-    * Working Directory: the absolute path to "attachment/go-server", for examples: *
-      /home/dubbo-go-samples/attachment/go-server*
-    * Environment: CONF_PROVIDER_FILE_PATH=conf/server.yml, optionally you could also specify logging configuration
-      with "APP_LOG_CONF_FILE=conf/log.yml"
-
-   Then the sample server is ready to run.
-
-3. **Run service consumer**
-
-   Open "attachment/go-client/cmd/client.go", and click ▶︎ icon just besides "main" function in the gutter on the left
-   side, and select "Modify Run Configuration..." from the pop-up menu. Then make sure the following configs configured
-   correctly:
-    * Working Directory: the absolute path to "attachment/go-client", for examples: *
-      /home/dubbo-go-samples/attachment/go-client*
-    * Environment: CONF_CONSUMER_FILE_PATH=conf/client.yml, optionally you could also specify logging configuration
-      with "APP_LOG_CONF_FILE=conf/log.yml"
-
-   Then run it to call the remote service, you will observe the following message output:
-   ```
-   [2021-02-03/16:19:30 main.main: client.go: 66] response result: &{A001 Alex Stocks 18 2020-02-04 16:19:30.422 +0800 CST}
-   ```
-
-If you need to debug either the samples or dubbo-go, you may consider switch to **Debug** instead of **Run** in GoLand. To stop, simply click ◼︎ to shutdown everything.
-
diff --git a/HOWTO_zh.md b/HOWTO_zh.md
deleted file mode 100644
index 1c15bf5..0000000
--- a/HOWTO_zh.md
+++ /dev/null
@@ -1,141 +0,0 @@
-# 如何运行
-
-目前有三种方式来运行 dubbo-go 的示例:
-
-1. 通过 makefile 快速开始: 在工程 "build" 子目录中提供了一个通用的 makefile。这个 makefile 可用于快速运行工程中的每一个示例。同时,由于这个 makefile 的存在,现在有机会可以把所有的示例串起来自动运行,从而使得通过该工程来做自动的 dubbo-go 的集成测试成为了可能。
-2. 在 IDE 中快速开始,这也是**推荐**的方式: 在工程 ".run" 子目录下,提供了所有示例的 GoLand 运行配置文件,因此用户可以简单在 IDE 中单击运行所有的示例。
-3. 在 IDE 中手工配置并运行: 为了完整性的目的,也为了万一您不使用 GoLand 而使用其他的 IDE,这里也提供了如何一步一步的配置的指南,帮助用户理解如何在 IDE 中配置,运行或者调试 dubbo-go 的示例。   
-
-### 1. 通过 makefile 快速开始
-
-*前置条件:需要 docker 环境就绪*
-
-下面我们将使用 "attachment" 作为示例:
-
-1. **启动注册中心(比如 zookeeper)**
-   
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile docker-up 
-   ```
-   
-   当看到类似下面的输出信息时,就表明 zookeeper server 启动就绪了。
-   
-   ```bash
-   >  Starting dependency services with docker/docker-compose.yml
-   Creating network "docker_default" with the default driver
-   Creating docker_zookeeper_1 ... done
-   ```
-   
-   如果要停掉注册中心,可以通过运行以下的命令完成:
-   
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile docker-down
-   ```
-   
-2. **启动服务提供方**
-   
-    ```bash
-    cd attachment/server
-    make -f ../../build/Makefile start
-    ```
-   
-   当看到类似下面的输出信息时,就表明服务提供方启动就绪了。
-
-   ```bash
-   >  Buiding application binary: dist/darwin_amd64/release/go-server
-   >  Starting application go-server, output is redirected to dist/darwin_amd64/release/go-server.log
-     >  PID: 86428
-   ```
-
-   `go-server` 的输出信息可以在 'dist/darwin_amd64/release/go-server.log' 中找到。 
-   
-3. **运行服务调用方**
-   
-    ```bash
-   cd attachment/client
-   make -f ../../build/Makefile run 
-   ```
-
-   当以下的信息输出时,说明 `go-client` 调用 `go-server` 成功。
-
-   ```bash
-   >  Buiding application binary: dist/darwin_amd64/release/go-client
-   >  Running application go-client, output is redirected to dist/darwin_amd64/release/go-client.log
-   ...
-   2020-10-27T14:51:37.520+0800    DEBUG   dubbo/dubbo_invoker.go:144      result.Err: <nil>, result.Rest: &{A001 Alex Stocks 18 2020-10-27 14:51:37.52 +0800 CST}
-   2020-10-27T14:51:37.520+0800    DEBUG   proxy/proxy.go:177      [makeDubboCallProxy] result: &{A001 Alex Stocks 18 2020-10-27 14:51:37.52 +0800 CST}, err: <nil>
-   response result: &{A001 Alex Stocks 18 2020-10-27 14:51:37.52 +0800 CST}
-   ```
-   
-3. **集成测试**
-   本项目 dubbo-go-samples 除了用来展示如何使用 dubbo-go 中的功能和特性之外,还被用于 apache/dubbo-go 的集成测试。可以按照以下的步骤来运行针对 `go-server` 设计的集成测试:
-
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile integration
-   ```
-
-   当以下信息输出时,说明集成测试通过。
-
-   ```bash
-   >  Running integration test for application go-server
-   ...
-   --- PASS: TestGetUser (0.00s)
-   PASS
-   ok      github.com/apache/dubbo-go-samples/attachment/go-server/tests/integration   3.603s
-   ```
-   
-4. **关闭并清理**
-   ```bash
-   cd attachment/server
-   make -f ../../build/Makefile clean docker-down
-   ```
-
-*以下的两种运行方式都与 IDE 有关。这里我们以 Intellij GoLand 为例来讨论。*
-
-### 2. 在 IDE 中快速开始
-
-一旦在 GoLand 中打开本项目,可以发现,在 "Run Configuration" 弹出菜单中已经存在了一系列事先配置好了的用来运行相关服务提供方和调用方的选项,例如:"helloworld-go-server" 和 "helloworld-go-client"。
-
-![run-configuration.png](.images/run-configurations.png)
-
-可以选择其中的任意一个快速启动相关示例。当然在运行之前,假设需要的注册中心已经事先启动了,不然用例将会失败。您可以选择手动自行启动的方式,也可以利用工程中提供的 "docker-compose.yml" 在启动注册中心的 docker 实例。选择后者的话,可以参考[第三种方式](#3-manually-run-in-ide)中的细节。
-
-### 3. 在 IDE 中手工运行
-
-这里以 *Intellij GoLand* 为例。在 GoLand 中打开 dubbo-go-samples 工程之后,按照以下的步骤来运行/调试本示例:
-
-1. **启动 zookeeper 服务器**
-
-   打开 "attachment/go-server/docker/docker-compose.yaml" 这个文件,然后点击位于编辑器左边 gutter 栏位中的 ▶︎▶︎ 图标运行,"Service" Tab 应当会弹出并输出类似下面的文本信息:
-   ```
-   Deploying 'Compose: docker'...
-   /usr/local/bin/docker-compose -f .../dubbo-go-samples/attachment/go-server/docker/docker-compose.yml up -d
-   Creating network "docker_default" with the default driver
-   Creating docker_zookeeper_1 ...
-   'Compose: docker' has been deployed successfully.
-   ```
-
-2. **启动服务提供方**
-
-   打开 "attachment/go-server/cmd/server.go" 文件,然后点击左边 gutter 栏位中紧挨着 "main" 函数的 ▶︎ 图标,并从弹出的菜单中选择 "Modify Run Configuration...",并确保以下配置的准确:
-   * Working Directory: "attachment/go-server" 目录的绝对路径,比如: */home/dubbo-go-samples/attachment/go-server*
-   * Environment: CONF_PROVIDER_FILE_PATH=conf/server.yml, 另外也可以指定这个环境变量 "APP_LOG_CONF_FILE=conf/log.yml"
-
-   这样示例中的服务端就准备就绪,随时可以运行了。
-
-3. **运行服务消费方**
-
-   打开 "attachment/go-client/cmd/client.go" 这个文件,然后从左边 gutter 栏位中点击紧挨着 "main" 函数的 ▶︎ 图标,然后从弹出的菜单中选择 "Modify Run Configuration...",并确保以下配置的准确:
-   * Working Directory: "attachment/go-client" 目录的绝对路径,比如: */home/dubbo-go-samples/attachment/go-client*
-   * Environment: CONF_CONSUMER_FILE_PATH=conf/client.yml, 另外也可以指定这个环境变量 "APP_LOG_CONF_FILE=conf/log.yml"
-
-   然后就可以运行并调用远端的服务了,如果调用成功,将会有以下的输出:
-   ```
-   [2021-02-03/16:19:30 main.main: client.go: 66] response result: &{A001 Alex Stocks 18 2020-02-04 16:19:30.422 +0800 CST}
-   ```
-
-如果需要调试该示例或者 dubbo-go 框架,可以在 IDE 中从 "Run" 切换到 "Debug"。如果要结束的话,直接点击 ◼︎ 就好了。
-
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 261eeb9..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
diff --git a/README.md b/README.md
deleted file mode 100644
index 195e558..0000000
--- a/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Dubbo Golang Examples
-
-![CI](https://github.com/apache/dubbo-go-samples/workflows/CI/badge.svg)
-
-## What It Contains
-
-* async: An async example.
-* attachment: An attachment example, to show how to use attachment to pass user data from the client to the server.  
-* configcenter: uses of different config centers, including zookeeper, apollo and nacos at present.
-* direct: A direct invocation example.
-* filter: Some examples of different filter, including custom_filter and tpslimit
-* general: A general example
-* generic: A generic invocation example
-* helloworld: A 101 example
-* multi_registry: A multi-registry example
-* registry: uses of different registres, including kubernetes, nacos, etcd and service-discovery
-* router: router examples, including condition and tag
-* seata: A seata example
-* shop: Shop sample
-* tracing: tracing example
-
-## How To Run
-
-Pls. refer [How To Run](HOWTO.md) for the instructions.
-
-## How to contribute
-
-If you want to add more samples, pls. read on:
-1. Create new sub directory and give it an appropriate name for your new sample. Pls. follow the layout of the existing sample if you are not sure how to organize your code.
-2. Make sure your sample work as expected before submit PR, and make sure GitHub CI passes after PR is submitted. Pls. refer to the existing sample on how to test the sample.   
-3. Pls. provide README.md to explain your samples.
diff --git a/README_zh.md b/README_zh.md
deleted file mode 100644
index 50830bb..0000000
--- a/README_zh.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# Dubbo Golang 示例
-
-![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
-* general: 通用例子,展示 zookeeper 注册中心的使用以及不同的配置项
-* generic: 泛化调用
-* helloworld: 入门例子
-* multi_registry: 多注册
-* registry: 展示与不同注册中心的对接,包含了 nacos、etcd、kubernetes 和 servicediscovery
-* router: 展示了不同的路由,包含了 condition 和 tag
-* seata: 展示了与 seata 的对接
-* shop: 一个在线商店的小例子
-* tracing: 链路追踪
-
-## 如何运行
-
-请参阅 [HOWTO](HOWTO_zh.md)
-
-## 如何贡献
-
-如果您希望增加新的用例,请继续阅读:
-
-1. 为您的示例起合适的名字并创建子目录。如果您不太确定如何做,请参考现有示例摆放目录结构
-2. 提交 PR 之前请确保在本地运行通过,提交 PR 之后请确保 GitHub 上的集成测试通过。请参考现有示例增加对应的测试
-3. 请提供示例相关的 README.md 的中英文版本
diff --git a/async/README.md b/async/README.md
deleted file mode 100644
index 146da3a..0000000
--- a/async/README.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# Async Sample
-
-### Background
-
-Dubbo-go provides not only synchronous invocation, but also asynchronous invocation on the consumer side. In order to
-use it, the client needs to implement the following interface to asynchronously receive the response from the service
-provider:
-
-```golang
-type AsyncCallbackService interface {
-    CallBack(response CallbackResponse) // callback
-}
-```
-
-### Example
-
-**Code**
-
-```golang
-type UserProvider struct {
-    GetUser func (ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) CallBack(res common.CallbackResponse) {
-    fmt.Println("CallBack res:", res)
-}
-```
-
-**Configuration**
-
-Besides, client also needs to config **"async:true"** in consumer's yaml config file as following:
-
-```yaml
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-    # this is necessary to enable async call
-    async: true
-```
-
-Pls. refer to [HOWTO.md](../HOWTO.md) under the root directory to run this sample.
-
-
diff --git a/async/README_zh.md b/async/README_zh.md
deleted file mode 100644
index adcc836..0000000
--- a/async/README_zh.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# Async 示例
-
-### 背景
-
-Dubbo-go 提供同步调用的同时,还提供了客户端异步调用的能力。客户端可以通过实现以下的接口来异步获得服务端返回的响应:
-
-
-```golang
-type AsyncCallbackService interface {
-	CallBack(response CallbackResponse) // callback
-}
-```
-
-### 示例
-
-**代码**
-
-```golang
-type UserProvider struct {
-	GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-}
-
-func (u *UserProvider) CallBack(res common.CallbackResponse) {
-	fmt.Println("CallBack res:",res)
-}
-```
-
-**配置**
-
-提供回调方法的同时,还需要在客户端的配置中增加 **"async:true"** 的配置,如下所示:
-
-```yaml
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    # this is necessary to enable async call
-    async: true
-```
-
-请参阅根目录中的 [HOWTO.md](../HOWTO_zh.md) 来运行本例。
-
-
diff --git a/async/go-client/cmd/client.go b/async/go-client/cmd/client.go
deleted file mode 100644
index 62a80b2..0000000
--- a/async/go-client/cmd/client.go
+++ /dev/null
@@ -1,66 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/async/go-client/pkg"
-)
-
-var userProvider = pkg.NewUserProvider()
-
-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", userProvider.GetResponse())
-}
diff --git a/async/go-client/conf/client.yml b/async/go-client/conf/client.yml
deleted file mode 100644
index 0f09e70..0000000
--- a/async/go-client/conf/client.yml
+++ /dev/null
@@ -1,61 +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
-    # this is necessary to enable async call
-    async: true
-
-# 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/async/go-client/conf/log.yml b/async/go-client/conf/log.yml
deleted file mode 100644
index 6fb7501..0000000
--- a/async/go-client/conf/log.yml
+++ /dev/null
@@ -1,28 +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/async/go-client/pkg/user.go b/async/go-client/pkg/user.go
deleted file mode 100644
index 376b2fc..0000000
--- a/async/go-client/pkg/user.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 (
-	"context"
-	"time"
-)
-
-import (
-	"github.com/apache/dubbo-go/common"
-	"github.com/apache/dubbo-go/protocol"
-	"github.com/apache/dubbo-go/remoting"
-	gxlog "github.com/dubbogo/gost/log"
-)
-
-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 NewUserProvider() *UserProvider {
-	return &UserProvider{
-		ch: make(chan *User),
-	}
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-// to enable async call:
-// 1. need to implement AsyncCallbackService
-// 2. need to specify references -> UserProvider -> async in conf/client.yml
-func (u *UserProvider) CallBack(res common.CallbackResponse) {
-	gxlog.CInfo("CallBack res: %v", res)
-	if r, ok := res.(remoting.AsyncCallbackResponse); ok {
-		if reply, ok := r.Reply.(*remoting.Response); ok {
-			if result, ok := reply.Result.(*protocol.RPCResult); ok {
-				if user, ok := result.Rest.(*User); ok {
-					u.ch <- user
-				}
-			}
-		}
-	}
-	u.ch <- nil
-}
-
-func (u *UserProvider) GetResponse() *User {
-	user := <-u.ch
-	return user
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/async/go-server/cmd/server.go b/async/go-server/cmd/server.go
deleted file mode 100644
index 315618d..0000000
--- a/async/go-server/cmd/server.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 main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/async/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/async/go-server/conf/client.yml b/async/go-server/conf/client.yml
deleted file mode 100644
index 4193953..0000000
--- a/async/go-server/conf/client.yml
+++ /dev/null
@@ -1,61 +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
-    # this is necessary to enable async call
-    async : true
-
-# 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/async/go-server/conf/log.yml b/async/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/async/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/async/go-server/conf/server.yml b/async/go-server/conf/server.yml
deleted file mode 100644
index 6e8970c..0000000
--- a/async/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: "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"
-
-# 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/async/go-server/docker/docker-compose.yml b/async/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/async/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/async/go-server/pkg/user.go b/async/go-server/pkg/user.go
deleted file mode 100644
index 2759d19..0000000
--- a/async/go-server/pkg/user.go
+++ /dev/null
@@ -1,60 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go/config"
-	"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/async/go-server/tests/integration/main_test.go b/async/go-server/tests/integration/main_test.go
deleted file mode 100644
index 5fc8ede..0000000
--- a/async/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,87 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go/common"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	"github.com/apache/dubbo-go/protocol"
-	"github.com/apache/dubbo-go/remoting"
-	gxlog "github.com/dubbogo/gost/log"
-)
-
-var userProvider = &UserProvider{
-	ch: make(chan *User),
-}
-
-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
-	ch      chan *User
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-// to enable async call:
-// 1. need to implement AsyncCallbackService
-// 2. need to specify references -> UserProvider -> async in conf/client.yml
-func (u *UserProvider) CallBack(res common.CallbackResponse) {
-	gxlog.CInfo("CallBack res: %v", res)
-	if r, ok := res.(remoting.AsyncCallbackResponse); ok {
-		if reply, ok := r.Reply.(*remoting.Response); ok {
-			if result, ok := reply.Result.(*protocol.RPCResult); ok {
-				if user, ok := result.Rest.(*User); ok {
-					u.ch <- user
-				}
-			}
-		}
-	}
-	u.ch <- nil
-}
-
-func (User) JavaClassName() string {
-	return "org.apache.dubbo.User"
-}
diff --git a/async/go-server/tests/integration/userprovider_test.go b/async/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 9fb3f65..0000000
--- a/async/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,52 +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/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-	"github.com/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, "", user.Id)
-	assert.Equal(t, "", user.Name)
-	assert.Equal(t, int32(0), user.Age)
-
-	user = <-userProvider.ch
-
-	assert.NotNil(t, user)
-	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/attachment/README.md b/attachment/README.md
deleted file mode 100644
index ad54751..0000000
--- a/attachment/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Attachment Example
-
-### Background
-
-A Dubbo client can pass user data to the remote Dubbo server via attachment. Dubbo-go leverages `context.Context` as the attachment between consumer and provider. In order to use attachment, a `context.Context` is required to introduce as the first parameter of the service method, for example:
-
-```go
-GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-```
-
-To pass the user data from the client side, a `map[string]interface{}` should be put into the `context.Context` with the key "attachment". The following code snippet shows how a user data "timestamp" is put into the attachment:
-
-```go
-ctx := context.WithValue(context.Background(), constant.AttachmentKey, 
-	map[string]interface{}{"timestamp": time.Now()})
-err := userProvider.GetUser(ctx, []interface{}{"A001"}, user)
-```
-
-On the provider side, a `context.Context` is passed as the first parameter along with the user data. Here below the code from the current samples shows how the service method is implemented, and how the user data is fetched from the attachment:
-
-```go
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
-	t := time.Now()
-	attachment := ctx.Value(constant.AttachmentKey).(map[string]interface{})
-	if v, ok := attachment["timestamp"]; ok {
-		t = v.(time.Time).Add(-1 * 365 * 24 * time.Hour)
-	}
-
-	rsp := User{"A001", "Alex Stocks", 18, t}
-	return &rsp, nil
-}
-```
-
-Pls. refer to [HOWTO.md](../HOWTO.md) under the root directory to run this sample.
-
diff --git a/attachment/README_zh.md b/attachment/README_zh.md
deleted file mode 100644
index 305bb1f..0000000
--- a/attachment/README_zh.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# Attachment 示例
-
-### 背景
-
-可以通过 attachment 把用户的数据从 Dubbo 的客户端传递给服务端。在 Dubbo-go 中,attachment 在二者之间的传递是通过 `context.Context` 的机制来完成的。如果要使用 attachment,那么应当把 `context.Context` 作为要调用的服务方法的第一个参数,例如:
-
-```go
-GetUser func(ctx context.Context, req []interface{}, rsp *User) error
-```
-
-为了在客户端传递用户数据到服务端,首先需要在方法的第一个参数 `context.Context` 中放入一个 `map[string]interface{}` 的数据类型,该数据的 Key 值约定为 "attachment"。以下的代码片段展示了如何把用户自定义的的一个时间戳通过该 map 中的 "timestamp" 放入 attachment 中:
-
-```go
-ctx := context.WithValue(context.Background(), constant.AttachmentKey, 
-	map[string]interface{}{"timestamp": time.Now()})
-err := userProvider.GetUser(ctx, []interface{}{"A001"}, user)
-```
-
-在服务提供方,方法的第一个参数 `context.Context` 传入时携带了用户在客户端放入的自定义数据。下面的代码就是本例子中的服务端实现,主要展示了如何从 attachment 中提取用户自定义的数据:
-
-
-```go
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, error) {
-	t := time.Now()
-	attachment := ctx.Value(constant.AttachmentKey).(map[string]interface{})
-	if v, ok := attachment["timestamp"]; ok {
-		t = v.(time.Time).Add(-1 * 365 * 24 * time.Hour)
-	}
-
-	rsp := User{"A001", "Alex Stocks", 18, t}
-	return &rsp, nil
-}
-```
-
-请参阅根目录中的 [HOWTO.md](../HOWTO_zh.md) 来运行本例。
-
-
diff --git a/attachment/go-client/cmd/client.go b/attachment/go-client/cmd/client.go
deleted file mode 100644
index 0654e5a..0000000
--- a/attachment/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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go-samples/attachment/go-client/pkg"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/constant"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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{}
-	ctx := context.WithValue(context.Background(), constant.AttachmentKey, map[string]interface{}{"timestamp": time.Now()})
-	err := userProvider.GetUser(ctx, []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/attachment/go-client/conf/client.yml b/attachment/go-client/conf/client.yml
deleted file mode 100644
index 958a65b..0000000
--- a/attachment/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 attachment 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/attachment/go-client/conf/log.yml b/attachment/go-client/conf/log.yml
deleted file mode 100644
index 2b6e93a..0000000
--- a/attachment/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/attachment/go-client/pkg/user.go b/attachment/go-client/pkg/user.go
deleted file mode 100644
index 75c964f..0000000
--- a/attachment/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/attachment/go-server/cmd/server.go b/attachment/go-server/cmd/server.go
deleted file mode 100644
index fa04640..0000000
--- a/attachment/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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go-samples/attachment/go-server/pkg"
-)
-
-import (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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()
-	logger.Info("dubbo-go server started.")
-
-	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/attachment/go-server/conf/client.yml b/attachment/go-server/conf/client.yml
deleted file mode 100644
index e9e8cbf..0000000
--- a/attachment/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 attachment consumer"
-  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/attachment/go-server/conf/log.yml b/attachment/go-server/conf/log.yml
deleted file mode 100644
index 970d988..0000000
--- a/attachment/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/attachment/go-server/conf/server.yml b/attachment/go-server/conf/server.yml
deleted file mode 100644
index 0af09bb..0000000
--- a/attachment/go-server/conf/server.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-# dubbo server yaml configure file
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "AttachmentProvider"
-  module: "dubbo-go attachment provider"
-  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"
-
-# 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/attachment/go-server/docker/docker-compose.yml b/attachment/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/attachment/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/attachment/go-server/pkg/user.go b/attachment/go-server/pkg/user.go
deleted file mode 100644
index fde9b0e..0000000
--- a/attachment/go-server/pkg/user.go
+++ /dev/null
@@ -1,72 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go/common/constant"
-	"github.com/apache/dubbo-go/config"
-)
-
-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)
-
-	t := time.Now()
-	attachment := ctx.Value(constant.AttachmentKey).(map[string]interface{})
-	if v, ok := attachment["timestamp"]; ok {
-		gxlog.CInfo("attachment: %v", v)
-		t = v.(time.Time).Add(-1 * 365 * 24 * time.Hour)
-	}
-
-	rsp := User{"A001", "Alex Stocks", 18, t}
-	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/attachment/go-server/tests/integration/main_test.go b/attachment/go-server/tests/integration/main_test.go
deleted file mode 100644
index beebca1..0000000
--- a/attachment/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,73 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-)
-
-import (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"context"
-	"os"
-	"testing"
-	"time"
-)
-
-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/attachment/go-server/tests/integration/userprovider_test.go b/attachment/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index ce07f2d..0000000
--- a/attachment/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,47 +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"
-	"time"
-)
-import (
-	"github.com/apache/dubbo-go/common/constant"
-	"github.com/stretchr/testify/assert"
-)
-
-func TestGetUser(t *testing.T) {
-	user := &User{}
-	timestamp := time.Now()
-	ctx := context.WithValue(context.Background(), constant.AttachmentKey, map[string]interface{}{"timestamp": timestamp})
-	err := userProvider.GetUser(ctx, []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)
-	assert.True(t, user.Time.Before(timestamp))
-
-	t.Logf("consumer timestamp: %v", timestamp)
-	t.Logf("provider timestamp: %v", user.Time)
-}
diff --git a/build/Makefile b/build/Makefile
deleted file mode 100644
index efec57c..0000000
--- a/build/Makefile
+++ /dev/null
@@ -1,139 +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.
-
-PROJECT_NAME = $(shell basename "$(PWD)")
-PID = /tmp/.$(PROJECT_NAME).pid
-PROJECT_DIR=$(shell pwd)
-BASE_DIR := $(PROJECT_DIR)/dist
-
-
-SOURCES = $(wildcard $(PROJECT_DIR)/cmd/*.go)
-
-export GO111MODULE ?= on
-export GOPROXY ?= https://goproxy.io,direct
-export GOSUMDB ?= sum.golang.org
-export GOARCH ?= amd64
-
-export DOCKER_HOST_IP = $(shell ifconfig en0 | grep inet | grep -v inet6 | awk '{print $$2}')
-
-OS := $(shell uname)
-ifeq ($(OS), Linux)
-	export GOOS ?= linux
-else ifeq ($(OS), Darwin)
-	export GOOS ?= darwin
-else
-	export GOOS ?= windows
-endif
-
-ifeq ($(GOOS), windows)
-	export EXT_NAME ?= .exe
-else
-	export EXT_NAME ?=
-endif
-
-CGO ?= 0
-ifeq ($(DEBUG), true)
-	BUILD_TYPE := debug
-	GCFLAGS := -gcflags="all=-N -l"
-	LCFLAGS :=
-else
-	BUILD_TYPE := release
-	LDFLAGS := "-s -w"
-endif
-
-OUT_DIR := $(BASE_DIR)/$(GOOS)_$(GOARCH)/$(BUILD_TYPE)
-LOG_FILE := $(OUT_DIR)/$(PROJECT_NAME).log
-
-export APP_LOG_CONF_FILE ?= $(OUT_DIR)/conf/log.yml
-
-.PHONY: all
-all: help
-help: $(realpath $(firstword $(MAKEFILE_LIST)))
-	@echo
-	@echo " Choose a command run in "$(PROJECT_NAME)":"
-	@echo
-	@sed -n 's/^##//p' $< | column -t -s ':' |  sed -e 's/^/ /'
-	@echo
-
-## build: Build application's binaries
-.PHONY: build
-build: $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME) config
-
-.PHONY: $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME)
-$(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME):
-	$(info   >  Buiding application binary: $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME))
-	@CGO_ENABLED=$(CGO) GOOS=$(GOOS) GOARCH=$(GOARCH) go build $(GCFLAGS) -ldflags=$(LDFLAGS) -i -o $(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME) $(SOURCES)
-
-
-## config: Setup config files
-.PHONY: config
-config:
-	$(info   >  Setting up config files)
-	@mkdir -p $(OUT_DIR)/conf
-	@-test -f $(PROJECT_DIR)/conf/log.yml && cat $(PROJECT_DIR)/conf/log.yml | sed "s#\$$HOST_IP#$(DOCKER_HOST_IP)#g" > $(OUT_DIR)/conf/log.yml && echo "  > $(OUT_DIR)/conf/log.yml"
-	@-test -f $(PROJECT_DIR)/conf/server.yml && cat $(PROJECT_DIR)/conf/server.yml | sed "s#\$$HOST_IP#$(DOCKER_HOST_IP)#g" > $(OUT_DIR)/conf/server.yml && echo "  > $(OUT_DIR)/conf/server.yml"
-	@-test -f $(PROJECT_DIR)/conf/client.yml && cat $(PROJECT_DIR)/conf/client.yml | sed "s#\$$HOST_IP#$(DOCKER_HOST_IP)#g" > $(OUT_DIR)/conf/client.yml && echo "  > $(OUT_DIR)/conf/client.yml"
-	@-test -f $(PROJECT_DIR)/conf/router_config.yml && cat $(PROJECT_DIR)/conf/router_config.yml | sed "s#\$$HOST_IP#$(DOCKER_HOST_IP)#g" > $(OUT_DIR)/conf/router_config.yml && echo "  > $(OUT_DIR)/conf/router_config.yml"
-
-## docker-up: Shutdown dependency services on docker
-.PHONY: docker-up
-docker-up:
-	$(info   >  Starting dependency services with $(PROJECT_DIR)/docker/docker-compose.yml)
-	@docker-compose -f $(PROJECT_DIR)/docker/docker-compose.yml up -d
-
-## docker-down: Shutdown dependency services on docker
-.PHONY: docker-down
-docker-down:
-	$(info   >  Stopping dependency services with $(PROJECT_DIR)/docker/docker-compose.yml)
-	@docker-compose -f $(PROJECT_DIR)/docker/docker-compose.yml down
-
-## clean: Clean up the output and the binary of the application
-.PHONY: clean
-clean: stop
-	$(info   >  Cleanning up $(OUT_DIR))
-	@-rm -rf $(OUT_DIR)
-	@-rm $(PID)
-
-## start: Start the application (for server)
-.PHONY: start
-start: export CONF_PROVIDER_FILE_PATH ?= $(OUT_DIR)/conf/server.yml
-start: build
-	$(info   >  Starting application $(PROJECT_NAME), output is redirected to $(LOG_FILE))
-	@-$(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME) > $(LOG_FILE) 2>&1 & echo $$! > $(PID)
-	@cat $(PID) | sed "/^/s/^/  \>  PID: /"
-
-## run: Run the application (for client)
-.PHONY: run
-run: export CONF_CONSUMER_FILE_PATH ?= $(OUT_DIR)/conf/client.yml
-run: export CONF_ROUTER_FILE_PATH ?= $(OUT_DIR)/conf/router_config.yml
-run: build
-	$(info   >  Running application $(PROJECT_NAME), output is redirected to $(LOG_FILE))
-	@-$(OUT_DIR)/$(PROJECT_NAME)$(EXT_NAME) 2>&1 | tee $(LOG_FILE)
-
-## stop: Stop running the application (for server)
-.PHONY: stop
-stop:
-	$(info   >  Stopping the application $(PROJECT_NAME))
-	@cat $(PID) | sed "/^/s/^/  \>  Killing PID: /"
-	@-kill `cat $(PID)` 2>/dev/null || true
-
-## integration: Run integration test for this application
-.PHONY: integration
-integration: export CONF_CONSUMER_FILE_PATH ?= $(OUT_DIR)/conf/client.yml
-integration: export CONF_ROUTER_FILE_PATH ?= $(OUT_DIR)/conf/router_config.yml
-integration:
-	$(info   >  Running integration test for application $(PROJECT_NAME))
-	@go clean -testcache
-	@go test -tags integration -v $(PROJECT_DIR)/tests/...
\ No newline at end of file
diff --git a/chain/README.md b/chain/README.md
deleted file mode 100644
index 509c764..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.
\ No newline at end of file
diff --git a/chain/README_zh.md b/chain/README_zh.md
deleted file mode 100644
index fe2c8e9..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 aa9d7df..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 (
-	_ "github.com/apache/dubbo-go-samples/chain/backend/pkg"
-)
-
-import (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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 d43dffe..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 (
-	"github.com/apache/dubbo-go/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 247a534..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 (
-	"github.com/apache/dubbo-go/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 dbe25ff..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 (
-	"github.com/apache/dubbo-go/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 9eb5673..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 (
-	"github.com/apache/dubbo-go/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 55c2706..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 (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"os"
-	"testing"
-	"time"
-)
-
-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 888ba24..0000000
--- a/chain/backend/tests/integration/services_test.go
+++ /dev/null
@@ -1,54 +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/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/frontend/cmd/client.go b/chain/frontend/cmd/client.go
deleted file mode 100644
index e13ab55..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 (
-	"github.com/apache/dubbo-go-samples/chain/frontend/pkg"
-)
-
-import (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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 007c5a4..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 (
-	_ "github.com/apache/dubbo-go-samples/chain/middle/pkg"
-)
-
-import (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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 2b367bb..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 (
-	"github.com/apache/dubbo-go/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 4f19fca..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 (
-	"github.com/apache/dubbo-go/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 a45bb1a..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 (
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"os"
-	"testing"
-	"time"
-)
-
-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 d1c9f97..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 (
-	"github.com/stretchr/testify/assert"
-)
-
-import (
-	"testing"
-)
-
-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/ci.sh b/ci.sh
deleted file mode 100644
index f1a214a..0000000
--- a/ci.sh
+++ /dev/null
@@ -1,29 +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.
-
-allSamples=`find .|grep /assembly/linux/dev.sh | awk '{gsub("/assembly/linux/dev.sh","");print}'`
-currentFolder=`pwd`
-
-for singleSample in $allSamples
-do
-
-cd $singleSample
-
-sh ./assembly/linux/dev.sh
-
-cd $currentFolder
-
-done
\ No newline at end of file
diff --git a/config-api/README.md b/config-api/README.md
deleted file mode 100644
index a1b4605..0000000
--- a/config-api/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-# config by api
-
-### 1. Usage
-provider side\
-go-server/cmd/server.go
-```go
-// run these codes in init function
-// and you need not add config env_vairable before run
-    providerConfig := config.NewProviderConfig(
-            config.WithProviderAppConfig(config.NewDefaultApplicationConfig()),
-            config.WithProviderProtocol("dubbo", "dubbo", "20000"),// protocol and port
-            config.WithProviderRegistry("demoZk", config.NewDefaultRegistryConfig("zookeeper")), // registry config
-            config.WithProviderServices("UserProvider", config.NewServiceConfigByAPI(
-                config.WithServiceRegistry("demoZk"), // registry key, equal to upper line
-                config.WithServiceProtocol("dubbo"), // export protocol 
-                config.WithServiceInterface("org.apache.dubbo.UserProvider"), // interface id
-                config.WithServiceLoadBalance("random"), // lb 
-                config.WithServiceWarmUpTime("100"),
-                config.WithServiceCluster("failover"),
-                config.WithServiceMethod("GetUser", "1", "random"),
-            )),
-        )
-	config.SetProviderConfig(*providerConfig) // set to providerConfig ptr
-```
-
-consumer side\
-go-client/cmd/client.go
-```go
-consumerConfig := config.NewConsumerConfig(
-		config.WithConsumerAppConfig(config.NewDefaultApplicationConfig()), // default app config
-		config.WithConsumerConnTimeout(time.Second*3), // timeout
-		config.WithConsumerRequestTimeout(time.Second*3), // timeout
-		config.WithConsumerRegistryConfig("demoZk", config.NewDefaultRegistryConfig("zookeeper")), // registry config
-		config.WithConsumerReferenceConfig("UserProvider", config.NewReferenceConfigByAPI( // set refer config
-			config.WithReferenceRegistry("demoZk"), // registry key
-			config.WithReferenceProtocol("dubbo"), // protocol 
-			config.WithReferenceInterface("org.apache.dubbo.UserProvider"),// interface name
-			config.WithReferenceMethod("GetUser", "3", "random"), // method and lb
-			config.WithReferenceCluster("failover"),
-		)),
-	)
-	config.SetConsumerConfig(*consumerConfig) // set to global consumerConfig ptr before main function run
-```
-### 2. Attention
-- default registry support\
-Now we support the api way to create provider/consumer global configure.
-
-default registry code as showed above:\
-we support default ip and port for them
-```go
-config.NewDefaultRegistryConfig("nacos")
-config.NewDefaultRegistryConfig("consul")
-config.NewDefaultRegistryConfig("zookeeper")
-```
-
-- default app config support\
-set app-relevant config by default
-```
-config.NewDefaultApplicationConfig()
-```
-- need improve\
-Now, api config is only support to create config by api, it also needs to set specific config field after read from yaml file by api.\
-There maybe future-change in config/consumer_config.go  config/provider_config.go to export more api.
-
-Pls. refer to [HOWTO.md](../HOWTO.md) under the root directory to run this sample.
\ No newline at end of file
diff --git a/config-api/README_zh.md b/config-api/README_zh.md
deleted file mode 100644
index f33f572..0000000
--- a/config-api/README_zh.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Dubbogo 使用api进行配置初始化
-
-### 1. 使用方法
-- 服务端:
-  go-server/cmd/server.go
-
-```go
-// 在init函数中定义这些代码
-// 你不需要在环境变量中定义服务端配置文件的位置了
-    providerConfig := config.NewProviderConfig(
-            config.WithProviderAppConfig(config.NewDefaultApplicationConfig()), // 默认app配置
-            config.WithProviderProtocol("dubbo", "dubbo", "20000"),// 协议key、协议名和端口号
-            config.WithProviderRegistry("demoZk", config.NewDefaultRegistryConfig("zookeeper")), // 注册中心配置
-            config.WithProviderServices("UserProvider", config.NewServiceConfigByAPI(
-                config.WithServiceRegistry("demoZk"), // 注册中心 key, 和上面注册中心key保持一致
-                config.WithServiceProtocol("dubbo"), // 暴露协议,和上面协议key对应
-                config.WithServiceInterface("org.apache.dubbo.UserProvider"), // interface id
-                config.WithServiceLoadBalance("random"), // 负载均衡
-                config.WithServiceWarmUpTime("100"),
-                config.WithServiceCluster("failover"),
-                config.WithServiceMethod("GetUser", "1", "random"),
-            )),
-        )
-	config.SetProviderConfig(*providerConfig) // 写入providerConfig指针
-```
-
-- 客户端
-  go-client/cmd/client.go
-
-```go
-consumerConfig := config.NewConsumerConfig(
-		config.WithConsumerAppConfig(config.NewDefaultApplicationConfig()), // 默认app配置
-		config.WithConsumerConnTimeout(time.Second*3), // timeout
-		config.WithConsumerRequestTimeout(time.Second*3), // timeout
-		config.WithConsumerRegistryConfig("demoZk", config.NewDefaultRegistryConfig("zookeeper")), // 注册中心配置
-		config.WithConsumerReferenceConfig("UserProvider", config.NewReferenceConfigByAPI( // set refer config
-			config.WithReferenceRegistry("demoZk"), // registry key
-			config.WithReferenceProtocol("dubbo"), // protocol 
-			config.WithReferenceInterface("org.apache.dubbo.UserProvider"),// interface name
-			config.WithReferenceMethod("GetUser", "3", "random"), // method and lb
-			config.WithReferenceCluster("failover"),
-		)),
-	)
-	config.SetConsumerConfig(*consumerConfig) // 写入 consumerConfig 指针
-```
-### 2. 注意
-- 默认注册中心支持
-
-  现在提供根据api来快速初始化注册中心到默认ip和端口
-
-默认注册中心初始化代码:
-
-```go
-config.NewDefaultRegistryConfig("nacos")
-config.NewDefaultRegistryConfig("consul")
-config.NewDefaultRegistryConfig("zookeeper")
-```
-
-- 默认app配置
-设置默认的app配置:
-```
-config.NewDefaultApplicationConfig()
-```
-- 需要改进的地方:
-
-  现在,通过api只能进行配置初始化过程,而通过api进行配置特定字段的修改也很重要。在以后可能会在config/consumer_config.go  config/provider_config.go 文件中进行进一步支持。
-
-请参阅根目录中的 [HOWTO.md](../HOWTO_zh.md) 来运行本例。
\ No newline at end of file
diff --git a/config-api/go-client/cmd/client.go b/config-api/go-client/cmd/client.go
deleted file mode 100644
index 1427407..0000000
--- a/config-api/go-client/cmd/client.go
+++ /dev/null
@@ -1,83 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/config-api/go-client/pkg"
-)
-
-var userProvider = new(pkg.UserProvider)
-
-func setConfigByAPI() {
-	consumerConfig := config.NewConsumerConfig(
-		config.WithConsumerAppConfig(config.NewDefaultApplicationConfig()),
-		config.WithConsumerConnTimeout(time.Second*3),
-		config.WithConsumerRequestTimeout(time.Second*3),
-		config.WithConsumerRegistryConfig("demoZk", config.NewDefaultRegistryConfig("zookeeper")),
-		config.WithConsumerReferenceConfig("UserProvider", config.NewReferenceConfigByAPI(
-			config.WithReferenceRegistry("demoZk"),
-			config.WithReferenceProtocol("dubbo"),
-			config.WithReferenceInterface("org.apache.dubbo.UserProvider"),
-			config.WithReferenceMethod("GetUser", "3", "random"),
-			config.WithReferenceCluster("failover"),
-		)),
-	)
-	config.SetConsumerConfig(*consumerConfig)
-}
-
-func init() {
-	setConfigByAPI()
-	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/config-api/go-client/conf/client.yml b/config-api/go-client/conf/client.yml
deleted file mode 100644
index 308d530..0000000
--- a/config-api/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/config-api/go-client/conf/log.yml b/config-api/go-client/conf/log.yml
deleted file mode 100644
index 2b6e93a..0000000
--- a/config-api/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/config-api/go-client/pkg/user.go b/config-api/go-client/pkg/user.go
deleted file mode 100644
index 75c964f..0000000
--- a/config-api/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/config-api/go-server/cmd/server.go b/config-api/go-server/cmd/server.go
deleted file mode 100644
index da98db0..0000000
--- a/config-api/go-server/cmd/server.go
+++ /dev/null
@@ -1,100 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/config-api/go-server/pkg"
-)
-
-var (
-	survivalTimeout = int(3e9)
-)
-
-func setConfigByAPI() {
-	providerConfig := config.NewProviderConfig(
-		config.WithProviderAppConfig(config.NewDefaultApplicationConfig()),
-		config.WithProviderProtocol("dubbo", "dubbo", "20000"),
-		config.WithProviderRegistry("demoZk", config.NewDefaultRegistryConfig("zookeeper")),
-		config.WithProviderServices("UserProvider", config.NewServiceConfigByAPI(
-			config.WithServiceRegistry("demoZk"),
-			config.WithServiceProtocol("dubbo"),
-			config.WithServiceInterface("org.apache.dubbo.UserProvider"),
-			config.WithServiceLoadBalance("random"),
-			config.WithServiceWarmUpTime("100"),
-			config.WithServiceCluster("failover"),
-			config.WithServiceMethod("GetUser", "1", "random"),
-		)),
-	)
-	config.SetProviderConfig(*providerConfig)
-}
-
-func init() {
-	setConfigByAPI()
-}
-
-// needn't to setup environment variable  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/config-api/go-server/conf/client.yml b/config-api/go-server/conf/client.yml
deleted file mode 100644
index 11ae382..0000000
--- a/config-api/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/config-api/go-server/conf/log.yml b/config-api/go-server/conf/log.yml
deleted file mode 100644
index 970d988..0000000
--- a/config-api/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/config-api/go-server/conf/server.yml b/config-api/go-server/conf/server.yml
deleted file mode 100644
index af90434..0000000
--- a/config-api/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: "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"
-
-# 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/config-api/go-server/docker/docker-compose.yml b/config-api/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/config-api/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/config-api/go-server/pkg/user.go b/config-api/go-server/pkg/user.go
deleted file mode 100644
index 2759d19..0000000
--- a/config-api/go-server/pkg/user.go
+++ /dev/null
@@ -1,60 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go/config"
-	"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/config-api/go-server/tests/integration/main_test.go b/config-api/go-server/tests/integration/main_test.go
deleted file mode 100644
index ed8d290..0000000
--- a/config-api/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,72 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-
-
-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/config-api/go-server/tests/integration/userprovider_test.go b/config-api/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 09b09c3..0000000
--- a/config-api/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,38 +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/configcenter/README.md b/configcenter/README.md
deleted file mode 100644
index 7f065ad..0000000
--- a/configcenter/README.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# Config Center Sample
-
-### Background
-
-In Dubbo, config center takes the following two responsibilities:
-1. For externalized configuration. Central management for bootstrap configurations, that is, keep "dubbo.properties" save externally on the config center.
-2. For service governance. Keep service rule on the config center, and notify the subscribers when the rule changes.
-
-The purpose of externalized configuration is centrally managing application's configurations in one single place. There are many mature configuration management systems in the industry. Dubbo go supports some of them, including Zookeeper, Nacos and Apollo, etc.
-
-There's no difference between externalized configuration and local configuration with regarding the content and the format. Config center is more suitable to keep the common configurations such as registry center configuration, metadata center configuration, etc., so that they are centrally managed.
-
-At the same time, externalized configuration has two scope: global scope, and application scope. Global scope configurations are shared among all applications, and application scope configuration is only visible to the application it belongs to. By default, externalized configuration has higher priority than the local configuration.
-
-This sample demonstrates how to config and use externalized configuration on Zookeeper. You can refer [Dubbo Documentation](https://dubbo.apache.org/zh/docs/v2.7/user/configuration/config-center/) for more details on config center.
-
-### Example
-
-If use Zookeeper as config center, global externalized configuration and application scope configurations will be layout like below:
-
-```
-dubbo
-└── config
-    ├── dubbo
-    │   └── dubbo.properties <- global
-    ├── user-info-client     
-    │   └── dubbo.properties <- service consumer
-    └── user-info-server     
-        └── dubbo.properties <- service provider
-```
-
-##### 1. Prepare externalized configurations
-
-**Prepare global scope externalized configuration** - The default path for the global scope configuration on Zookeeper is: "/dubbo/config/dubbo/dubbo.properties". You can use the following commands to config it:
-
-```bash
-zkCli create /dubbo/config; \
-zkCli create /dubbo/config/dubbo; \
-zkCli create /dubbo/config/dubbo/dubbo.properties; \
-zkCli set /dubbo/config/dubbo/dubbo.properties \
-"dubbo.protocol.name=dubbo
-dubbo.protocol.port=20880"
-```
-
-**Prepare configuration for service provider** - Assume service provider's application name is "user-info-server", then the default path for the provider's config is "/dubbo/config/user-info-server/dubbo.properties". You can use the following commands to config it:
-
-```bash
-zkCli create /dubbo/config; \
-zkCli create /dubbo/config/user-info-server; \
-zkCli create /dubbo/config/user-info-server/dubbo.properties; \
-zkCli set /dubbo/config/user-info-server/dubbo.properties \
-"dubbo.service.org.apache.dubbo.UserProvider.cluster=failfast
-dubbo.service.org.apache.dubbo.UserProvider.protocol=myDubbo
-dubbo.protocols.myDubbo.port=22222
-dubbo.protocols.myDubbo.name=dubbo"
-```
-
-**Prepare configuration for service consumer** - Assume service consumer's application name is "user-info-client", then the default path for the consumer's config is "/dubbo/config/user-info-client/dubbo.properties". You can use the following commands to config it:
-
-```bash
-zkCli create /dubbo/config; \
-zkCli create /dubbo/config/user-info-client; \
-zkCli create /dubbo/config/user-info-client/dubbo.properties; \
-zkCli set /dubbo/config/user-info-client/dubbo.properties \
-"dubbo.service.org.apache.dubbo.UserProvider.cluster=failfast"
-```
-
-##### 2. Config config center in application
-
-The config center's configuration on the consumer side and on the provider side is similar, shown as following:
-
-```yaml
-# config center config
-config_center:
-  protocol: "zookeeper"
-  address: "127.0.0.1:2181"
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-server" # application's name, which will decide where the externalized configuration is placed.
-```
-
-##### 3. Import config center's package
-
-```go
-import (
-    _ "github.com/apache/dubbo-go/config_center/zookeeper"
-)
-```
-
-##### 4. Run this sample
-
-Pls. refer to [HOWTO.md](../HOWTO.md) under the root directory to run this sample.
-
-
diff --git a/configcenter/README_zh.md b/configcenter/README_zh.md
deleted file mode 100644
index 1cb6f8a..0000000
--- a/configcenter/README_zh.md
+++ /dev/null
@@ -1,99 +0,0 @@
-# 配置中心示例
-
-### 背景
-
-配置中心在 Dubbo 中承担两个职责:
-
-1. 外部化配置。启动配置的集中式存储 (简单理解为 dubbo.properties 的外部化存储)
-2. 服务治理。服务治理规则的存储与通知
-
-外部化配置目的之一是实现配置的集中式管理,这部分业界已经有很多成熟的专业配置系统。Dubbo go 中对 Zookeeper、Nacos、Apollo 等做了支持。
-
-外部化配置和其他本地配置在内容和格式上并无区别,配置中心更适合将一些公共配置如注册中心、元数据中心配置等抽取以便做集中管理。
-
-同时,外部化配置有全局和应用两个级别,全局配置是所有应用共享的,应用级配置是由每个应用自己维护且只对自身可见的。并且,外部化配置的优先级默认高于本地配置。
-
-本例以如何在 Zookeeper
-上配置和使用外部化配置为例。更多的关于配置中心的描述请参阅 [Dubbo 文档](https://dubbo.apache.org/zh/docs/v2.7/user/configuration/config-center/) 。
-
-### 样例
-
-以 Zookeeper 为例,应用级别和全局的外化配置将会以以下的布局存储在 Zookeeper 上。
-
-```
-dubbo
-└── config
-    ├── dubbo
-    │   └── dubbo.properties <- 全局
-    ├── user-info-client     
-    │   └── dubbo.properties <- 服务消费者
-    └── user-info-server     
-        └── dubbo.properties <- 服务提供者
-```
-
-##### 1. 准备应用外化配置
-
-**全局配置准备** - 全局配置的默认路径为 "/dubbo/config/dubbo/dubbo.properties"。使用以下的命令来配置样例 dubbo.properties:
-
-```bash
-zkCli create /dubbo/config; \
-zkCli create /dubbo/config/dubbo; \
-zkCli create /dubbo/config/dubbo/dubbo.properties; \
-zkCli set /dubbo/config/dubbo/dubbo.properties \
-"dubbo.protocol.name=dubbo
-dubbo.protocol.port=20880"
-```
-
-**服务提供方配置** - 假设服务提供方的应用名是 "user-info-server",服务提供方应用级的配置的默认路径为 "/dubbo/config/user-info-server/dubbo.properties"
-。使用以下的命令来配置样例 dubbo.properties:
-
-```bash
-zkCli create /dubbo/config; \
-zkCli create /dubbo/config/user-info-server; \
-zkCli create /dubbo/config/user-info-server/dubbo.properties; \
-zkCli set /dubbo/config/user-info-server/dubbo.properties \
-"dubbo.service.org.apache.dubbo.UserProvider.cluster=failfast
-dubbo.service.org.apache.dubbo.UserProvider.protocol=myDubbo
-dubbo.protocols.myDubbo.port=22222
-dubbo.protocols.myDubbo.name=dubbo"
-```
-
-**服务消费方配置** - 假设服务消费方的应用名是 "user-info-client",服务提供方应用级的配置的默认路径为 "/dubbo/config/user-info-client/dubbo.properties"
-。使用以下的命令来配置样例 dubbo.properties:
-
-```bash
-zkCli create /dubbo/config; \
-zkCli create /dubbo/config/user-info-client; \
-zkCli create /dubbo/config/user-info-client/dubbo.properties; \
-zkCli set /dubbo/config/user-info-client/dubbo.properties \
-"dubbo.service.org.apache.dubbo.UserProvider.cluster=failfast"
-```
-
-##### 2. 在应用中配置配置中心
-
-服务提供方与服务消费方配置配置中心的方式是一致的,如下所示:
-
-```yaml
-# config center config
-config_center:
-  protocol: "zookeeper"
-  address: "127.0.0.1:2181"
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-server" # 应用文件名,决定应用级外化配置
-```
-
-##### 3. 在代码中引入配置中心的包
-
-```go
-import (
-    _ "github.com/apache/dubbo-go/config_center/zookeeper"
-)
-```
-
-##### 4. 运行示例
-
-请参阅根目录中的 [HOWTO.md](../HOWTO_zh.md) 来运行本例。
-
-
diff --git a/configcenter/apollo/go-client/cmd/client.go b/configcenter/apollo/go-client/cmd/client.go
deleted file mode 100644
index 77c760a..0000000
--- a/configcenter/apollo/go-client/cmd/client.go
+++ /dev/null
@@ -1,66 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/apollo"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/configcenter/apollo/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/configcenter/apollo/go-client/conf/client.yml b/configcenter/apollo/go-client/conf/client.yml
deleted file mode 100644
index 5b8c6c0..0000000
--- a/configcenter/apollo/go-client/conf/client.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: apollo
-  address: 127.0.0.1:8080
-  app_id: UserInfoClient
-  cluster: dev
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-client"
-  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/configcenter/apollo/go-client/conf/log.yml b/configcenter/apollo/go-client/conf/log.yml
deleted file mode 100644
index d0400fe..0000000
--- a/configcenter/apollo/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/configcenter/apollo/go-client/pkg/user.go b/configcenter/apollo/go-client/pkg/user.go
deleted file mode 100644
index 75c964f..0000000
--- a/configcenter/apollo/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/configcenter/apollo/go-server/cmd/server.go b/configcenter/apollo/go-server/cmd/server.go
deleted file mode 100644
index 065abfa..0000000
--- a/configcenter/apollo/go-server/cmd/server.go
+++ /dev/null
@@ -1,81 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/apollo"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/configcenter/apollo/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/configcenter/apollo/go-server/conf/client.yml b/configcenter/apollo/go-server/conf/client.yml
deleted file mode 100644
index 8a1bf33..0000000
--- a/configcenter/apollo/go-server/conf/client.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: apollo
-  address: 127.0.0.1:8080
-  app_id: UserInfoTest
-  cluster: dev
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-client"
-  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/configcenter/apollo/go-server/conf/log.yml b/configcenter/apollo/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/configcenter/apollo/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/configcenter/apollo/go-server/conf/server.yml b/configcenter/apollo/go-server/conf/server.yml
deleted file mode 100644
index 5053ec5..0000000
--- a/configcenter/apollo/go-server/conf/server.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-# dubbo server yaml configure file
-
-# config center config
-config_center:
-  protocol: apollo
-  address: 127.0.0.1:8080
-  app_id: UserInfoServer
-  cluster: dev
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-server"
-  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"
-
-# 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/configcenter/apollo/go-server/docker/docker-compose.yml b/configcenter/apollo/go-server/docker/docker-compose.yml
deleted file mode 100644
index c8ecb42..0000000
--- a/configcenter/apollo/go-server/docker/docker-compose.yml
+++ /dev/null
@@ -1,40 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
-  apollo-quick-start:
-    image: nobodyiam/apollo-quick-start
-    container_name: apollo-quick-start
-    depends_on:
-      - apollo-db
-    ports:
-      - "8080:8080"
-      - "8070:8070"
-    links:
-      - apollo-db
-
-  apollo-db:
-    image: mysql:5.7
-    container_name: apollo-db
-    environment:
-      TZ: Asia/Shanghai
-      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
-    depends_on:
-      - apollo-dbdata
-    ports:
-      - "13306:3306"
-    volumes:
-      - ./sql:/docker-entrypoint-initdb.d
-    volumes_from:
-      - apollo-dbdata
-
-  apollo-dbdata:
-    image: alpine:latest
-    container_name: apollo-dbdata
-    volumes:
-      - /var/lib/mysql
\ No newline at end of file
diff --git a/configcenter/apollo/go-server/docker/sql/apolloconfigdb.sql b/configcenter/apollo/go-server/docker/sql/apolloconfigdb.sql
deleted file mode 100644
index 890519f..0000000
--- a/configcenter/apollo/go-server/docker/sql/apolloconfigdb.sql
+++ /dev/null
@@ -1,433 +0,0 @@
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
-# Create Database
-# ------------------------------------------------------------
-CREATE DATABASE IF NOT EXISTS ApolloConfigDB DEFAULT CHARACTER SET = utf8mb4;
-
-Use ApolloConfigDB;
-
-# Dump of table app
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `App`;
-
-CREATE TABLE `App` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-  `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名',
-  `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id',
-  `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字',
-  `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',
-  `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `AppId` (`AppId`(191)),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`),
-  KEY `IX_Name` (`Name`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表';
-
-
-
-# Dump of table appnamespace
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `AppNamespace`;
-
-CREATE TABLE `AppNamespace` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
-  `Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一',
-  `AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'app id',
-  `Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format类型',
-  `IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否为公共',
-  `Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注释',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `IX_AppId` (`AppId`),
-  KEY `Name_AppId` (`Name`,`AppId`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义';
-
-
-
-# Dump of table audit
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Audit`;
-
-CREATE TABLE `Audit` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-  `EntityName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '表名',
-  `EntityId` int(10) unsigned DEFAULT NULL COMMENT '记录ID',
-  `OpName` varchar(50) NOT NULL DEFAULT 'default' COMMENT '操作类型',
-  `Comment` varchar(500) DEFAULT NULL COMMENT '备注',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='日志审计表';
-
-
-
-# Dump of table cluster
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Cluster`;
-
-CREATE TABLE `Cluster` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
-  `Name` varchar(32) NOT NULL DEFAULT '' COMMENT '集群名字',
-  `AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'App id',
-  `ParentClusterId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父cluster',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `IX_AppId_Name` (`AppId`,`Name`),
-  KEY `IX_ParentClusterId` (`ParentClusterId`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='集群';
-
-
-
-# Dump of table commit
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Commit`;
-
-CREATE TABLE `Commit` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-  `ChangeSets` longtext NOT NULL COMMENT '修改变更集',
-  `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
-  `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',
-  `Comment` varchar(500) DEFAULT NULL COMMENT '备注',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`),
-  KEY `AppId` (`AppId`(191)),
-  KEY `ClusterName` (`ClusterName`(191)),
-  KEY `NamespaceName` (`NamespaceName`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='commit 历史表';
-
-# Dump of table grayreleaserule
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `GrayReleaseRule`;
-
-CREATE TABLE `GrayReleaseRule` (
-  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-  `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name',
-  `NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name',
-  `BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'branch name',
-  `Rules` varchar(16000) DEFAULT '[]' COMMENT '灰度规则',
-  `ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '灰度对应的release',
-  `BranchStatus` tinyint(2) DEFAULT '1' COMMENT '灰度分支状态: 0:删除分支,1:正在使用的规则 2:全量发布',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`),
-  KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='灰度规则表';
-
-
-# Dump of table instance
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Instance`;
-
-CREATE TABLE `Instance` (
-  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-  `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
-  `DataCenter` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'Data Center Name',
-  `Ip` varchar(32) NOT NULL DEFAULT '' COMMENT 'instance ip',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  UNIQUE KEY `IX_UNIQUE_KEY` (`AppId`,`ClusterName`,`Ip`,`DataCenter`),
-  KEY `IX_IP` (`Ip`),
-  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='使用配置的应用实例';
-
-
-
-# Dump of table instanceconfig
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `InstanceConfig`;
-
-CREATE TABLE `InstanceConfig` (
-  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-  `InstanceId` int(11) unsigned DEFAULT NULL COMMENT 'Instance Id',
-  `ConfigAppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'Config App Id',
-  `ConfigClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Cluster Name',
-  `ConfigNamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'Config Namespace Name',
-  `ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '发布的Key',
-  `ReleaseDeliveryTime` timestamp NULL DEFAULT NULL COMMENT '配置获取时间',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  UNIQUE KEY `IX_UNIQUE_KEY` (`InstanceId`,`ConfigAppId`,`ConfigNamespaceName`),
-  KEY `IX_ReleaseKey` (`ReleaseKey`),
-  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
-  KEY `IX_Valid_Namespace` (`ConfigAppId`,`ConfigClusterName`,`ConfigNamespaceName`,`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用实例的配置信息';
-
-
-
-# Dump of table item
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Item`;
-
-CREATE TABLE `Item` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-  `NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId',
-  `Key` varchar(128) NOT NULL DEFAULT 'default' COMMENT '配置项Key',
-  `Value` longtext NOT NULL COMMENT '配置项值',
-  `Comment` varchar(1024) DEFAULT '' COMMENT '注释',
-  `LineNum` int(10) unsigned DEFAULT '0' COMMENT '行号',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `IX_GroupId` (`NamespaceId`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置项目';
-
-
-
-# Dump of table namespace
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Namespace`;
-
-CREATE TABLE `Namespace` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
-  `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'Cluster Name',
-  `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'Namespace Name',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `AppId_ClusterName_NamespaceName` (`AppId`(191),`ClusterName`(191),`NamespaceName`(191)),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`),
-  KEY `IX_NamespaceName` (`NamespaceName`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='命名空间';
-
-
-
-# Dump of table namespacelock
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `NamespaceLock`;
-
-CREATE TABLE `NamespaceLock` (
-  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
-  `NamespaceId` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '集群NamespaceId',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT 'default' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  `IsDeleted` bit(1) DEFAULT b'0' COMMENT '软删除',
-  PRIMARY KEY (`Id`),
-  UNIQUE KEY `IX_NamespaceId` (`NamespaceId`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='namespace的编辑锁';
-
-
-
-# Dump of table release
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Release`;
-
-CREATE TABLE `Release` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
-  `ReleaseKey` varchar(64) NOT NULL DEFAULT '' COMMENT '发布的Key',
-  `Name` varchar(64) NOT NULL DEFAULT 'default' COMMENT '发布名字',
-  `Comment` varchar(256) DEFAULT NULL COMMENT '发布说明',
-  `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `ClusterName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
-  `NamespaceName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',
-  `Configurations` longtext NOT NULL COMMENT '发布配置',
-  `IsAbandoned` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否废弃',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `AppId_ClusterName_GroupName` (`AppId`(191),`ClusterName`(191),`NamespaceName`(191)),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`),
-  KEY `IX_ReleaseKey` (`ReleaseKey`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布';
-
-
-# Dump of table releasehistory
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `ReleaseHistory`;
-
-CREATE TABLE `ReleaseHistory` (
-  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-  `AppId` varchar(64) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `ClusterName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'ClusterName',
-  `NamespaceName` varchar(32) NOT NULL DEFAULT 'default' COMMENT 'namespaceName',
-  `BranchName` varchar(32) NOT NULL DEFAULT 'default' COMMENT '发布分支名',
-  `ReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '关联的Release Id',
-  `PreviousReleaseId` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '前一次发布的ReleaseId',
-  `Operation` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '发布类型,0: 普通发布,1: 回滚,2: 灰度发布,3: 灰度规则更新,4: 灰度合并回主分支发布,5: 主分支发布灰度自动发布,6: 主分支回滚灰度自动发布,7: 放弃灰度',
-  `OperationContext` longtext NOT NULL COMMENT '发布上下文信息',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `IX_Namespace` (`AppId`,`ClusterName`,`NamespaceName`,`BranchName`),
-  KEY `IX_ReleaseId` (`ReleaseId`),
-  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布历史';
-
-
-# Dump of table releasemessage
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `ReleaseMessage`;
-
-CREATE TABLE `ReleaseMessage` (
-  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
-  `Message` varchar(1024) NOT NULL DEFAULT '' COMMENT '发布的消息内容',
-  `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`),
-  KEY `IX_Message` (`Message`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发布消息';
-
-
-
-# Dump of table serverconfig
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `ServerConfig`;
-
-CREATE TABLE `ServerConfig` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-  `Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置项Key',
-  `Cluster` varchar(32) NOT NULL DEFAULT 'default' COMMENT '配置对应的集群,default为不针对特定的集群',
-  `Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置项值',
-  `Comment` varchar(1024) DEFAULT '' COMMENT '注释',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `IX_Key` (`Key`),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置';
-
-# Dump of table accesskey
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `AccessKey`;
-
-CREATE TABLE `AccessKey` (
-  `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
-  `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-  `Secret` varchar(128) NOT NULL DEFAULT '' COMMENT 'Secret',
-  `IsEnabled` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: enabled, 0: disabled',
-  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-  `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `DataChange_LastModifiedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '最后修改人邮箱前缀',
-  `DataChange_LastTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-  PRIMARY KEY (`Id`),
-  KEY `AppId` (`AppId`(191)),
-  KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='访问密钥';
-
-# Config
-# ------------------------------------------------------------
-INSERT INTO `ServerConfig` (`Key`, `Cluster`, `Value`, `Comment`)
-VALUES
-    ('eureka.service.url', 'default', 'http://localhost:8080/eureka/', 'Eureka服务Url,多个service以英文逗号分隔'),
-    ('namespace.lock.switch', 'default', 'false', '一次发布只能有一个人修改开关'),
-    ('item.value.length.limit', 'default', '20000', 'item value最大长度限制'),
-    ('config-service.cache.enabled', 'default', 'false', 'ConfigService是否开启缓存,开启后能提高性能,但是会增大内存消耗!'),
-    ('item.key.length.limit', 'default', '128', 'item key 最大长度限制');
-
-# Sample Data
-# ------------------------------------------------------------
-INSERT INTO `App` (`AppId`, `Name`, `OrgId`, `OrgName`, `OwnerName`, `OwnerEmail`)
-VALUES
-	('SampleApp', 'Sample App', 'TEST1', '样例部门1', 'apollo', 'apollo@acme.com');
-
-INSERT INTO `AppNamespace` (`Name`, `AppId`, `Format`, `IsPublic`, `Comment`)
-VALUES
-	('application', 'SampleApp', 'properties', 0, 'default app namespace');
-
-INSERT INTO `Cluster` (`Name`, `AppId`)
-VALUES
-	('default', 'SampleApp');
-
-INSERT INTO `Namespace` (`Id`, `AppId`, `ClusterName`, `NamespaceName`)
-VALUES
-	(1, 'SampleApp', 'default', 'application');
-
-
-INSERT INTO `Item` (`NamespaceId`, `Key`, `Value`, `Comment`, `LineNum`)
-VALUES
-	(1, 'timeout', '100', 'sample timeout配置', 1);
-
-INSERT INTO `Release` (`ReleaseKey`, `Name`, `Comment`, `AppId`, `ClusterName`, `NamespaceName`, `Configurations`)
-VALUES
-	('20161009155425-d3a0749c6e20bc15', '20161009155424-release', 'Sample发布', 'SampleApp', 'default', 'application', '{\"timeout\":\"100\"}');
-
-INSERT INTO `ReleaseHistory` (`AppId`, `ClusterName`, `NamespaceName`, `BranchName`, `ReleaseId`, `PreviousReleaseId`, `Operation`, `OperationContext`, `DataChange_CreatedBy`, `DataChange_LastModifiedBy`)
-VALUES
-  ('SampleApp', 'default', 'application', 'default', 1, 0, 0, '{}', 'apollo', 'apollo');
-
-INSERT INTO `ReleaseMessage` (`Message`)
-VALUES
-	('SampleApp+default+application');
-
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
\ No newline at end of file
diff --git a/configcenter/apollo/go-server/docker/sql/apolloportaldb.sql b/configcenter/apollo/go-server/docker/sql/apolloportaldb.sql
deleted file mode 100644
index adbe664..0000000
--- a/configcenter/apollo/go-server/docker/sql/apolloportaldb.sql
+++ /dev/null
@@ -1,368 +0,0 @@
-/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
-/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
-/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
-/*!40101 SET NAMES utf8 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-
-# Create Database
-# ------------------------------------------------------------
-CREATE DATABASE IF NOT EXISTS ApolloPortalDB DEFAULT CHARACTER SET = utf8mb4;
-
-Use ApolloPortalDB;
-
-# Dump of table app
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `App`;
-
-CREATE TABLE `App` (
-                       `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-                       `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-                       `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名',
-                       `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id',
-                       `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字',
-                       `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',
-                       `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',
-                       `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                       `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-                       `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                       `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                       `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                       PRIMARY KEY (`Id`),
-                       KEY `AppId` (`AppId`(191)),
-                       KEY `DataChange_LastTime` (`DataChange_LastTime`),
-                       KEY `IX_Name` (`Name`(191))
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表';
-
-
-
-# Dump of table appnamespace
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `AppNamespace`;
-
-CREATE TABLE `AppNamespace` (
-                                `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
-                                `Name` varchar(32) NOT NULL DEFAULT '' COMMENT 'namespace名字,注意,需要全局唯一',
-                                `AppId` varchar(64) NOT NULL DEFAULT '' COMMENT 'app id',
-                                `Format` varchar(32) NOT NULL DEFAULT 'properties' COMMENT 'namespace的format类型',
-                                `IsPublic` bit(1) NOT NULL DEFAULT b'0' COMMENT 'namespace是否为公共',
-                                `Comment` varchar(64) NOT NULL DEFAULT '' COMMENT '注释',
-                                `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                                `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
-                                `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                                `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                                `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                                PRIMARY KEY (`Id`),
-                                KEY `IX_AppId` (`AppId`),
-                                KEY `Name_AppId` (`Name`,`AppId`),
-                                KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用namespace定义';
-
-
-
-# Dump of table consumer
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Consumer`;
-
-CREATE TABLE `Consumer` (
-                            `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                            `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-                            `Name` varchar(500) NOT NULL DEFAULT 'default' COMMENT '应用名',
-                            `OrgId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '部门Id',
-                            `OrgName` varchar(64) NOT NULL DEFAULT 'default' COMMENT '部门名字',
-                            `OwnerName` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerName',
-                            `OwnerEmail` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'ownerEmail',
-                            `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                            `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-                            `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                            `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                            `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                            PRIMARY KEY (`Id`),
-                            KEY `AppId` (`AppId`(191)),
-                            KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='开放API消费者';
-
-
-
-# Dump of table consumeraudit
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `ConsumerAudit`;
-
-CREATE TABLE `ConsumerAudit` (
-                                 `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                                 `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id',
-                                 `Uri` varchar(1024) NOT NULL DEFAULT '' COMMENT '访问的Uri',
-                                 `Method` varchar(16) NOT NULL DEFAULT '' COMMENT '访问的Method',
-                                 `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                                 `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                                 PRIMARY KEY (`Id`),
-                                 KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
-                                 KEY `IX_ConsumerId` (`ConsumerId`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer审计表';
-
-
-
-# Dump of table consumerrole
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `ConsumerRole`;
-
-CREATE TABLE `ConsumerRole` (
-                                `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                                `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'Consumer Id',
-                                `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',
-                                `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                                `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
-                                `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                                `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                                `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                                PRIMARY KEY (`Id`),
-                                KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
-                                KEY `IX_RoleId` (`RoleId`),
-                                KEY `IX_ConsumerId_RoleId` (`ConsumerId`,`RoleId`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer和role的绑定表';
-
-
-
-# Dump of table consumertoken
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `ConsumerToken`;
-
-CREATE TABLE `ConsumerToken` (
-                                 `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                                 `ConsumerId` int(11) unsigned DEFAULT NULL COMMENT 'ConsumerId',
-                                 `Token` varchar(128) NOT NULL DEFAULT '' COMMENT 'token',
-                                 `Expires` datetime NOT NULL DEFAULT '2099-01-01 00:00:00' COMMENT 'token失效时间',
-                                 `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                                 `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-                                 `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                                 `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                                 `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                                 PRIMARY KEY (`Id`),
-                                 UNIQUE KEY `IX_Token` (`Token`),
-                                 KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='consumer token表';
-
-# Dump of table favorite
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Favorite`;
-
-CREATE TABLE `Favorite` (
-                            `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-                            `UserId` varchar(32) NOT NULL DEFAULT 'default' COMMENT '收藏的用户',
-                            `AppId` varchar(500) NOT NULL DEFAULT 'default' COMMENT 'AppID',
-                            `Position` int(32) NOT NULL DEFAULT '10000' COMMENT '收藏顺序',
-                            `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                            `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-                            `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                            `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                            `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                            PRIMARY KEY (`Id`),
-                            KEY `AppId` (`AppId`(191)),
-                            KEY `IX_UserId` (`UserId`),
-                            KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COMMENT='应用收藏表';
-
-# Dump of table permission
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Permission`;
-
-CREATE TABLE `Permission` (
-                              `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                              `PermissionType` varchar(32) NOT NULL DEFAULT '' COMMENT '权限类型',
-                              `TargetId` varchar(256) NOT NULL DEFAULT '' COMMENT '权限对象类型',
-                              `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                              `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT '' COMMENT '创建人邮箱前缀',
-                              `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                              `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                              `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                              PRIMARY KEY (`Id`),
-                              KEY `IX_TargetId_PermissionType` (`TargetId`(191),`PermissionType`),
-                              KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='permission表';
-
-
-
-# Dump of table role
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Role`;
-
-CREATE TABLE `Role` (
-                        `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                        `RoleName` varchar(256) NOT NULL DEFAULT '' COMMENT 'Role name',
-                        `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                        `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-                        `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                        `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                        `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                        PRIMARY KEY (`Id`),
-                        KEY `IX_RoleName` (`RoleName`(191)),
-                        KEY `IX_DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
-
-
-
-# Dump of table rolepermission
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `RolePermission`;
-
-CREATE TABLE `RolePermission` (
-                                  `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                                  `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',
-                                  `PermissionId` int(10) unsigned DEFAULT NULL COMMENT 'Permission Id',
-                                  `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                                  `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
-                                  `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                                  `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                                  `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                                  PRIMARY KEY (`Id`),
-                                  KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
-                                  KEY `IX_RoleId` (`RoleId`),
-                                  KEY `IX_PermissionId` (`PermissionId`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和权限的绑定表';
-
-
-
-# Dump of table serverconfig
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `ServerConfig`;
-
-CREATE TABLE `ServerConfig` (
-                                `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                                `Key` varchar(64) NOT NULL DEFAULT 'default' COMMENT '配置项Key',
-                                `Value` varchar(2048) NOT NULL DEFAULT 'default' COMMENT '配置项值',
-                                `Comment` varchar(1024) DEFAULT '' COMMENT '注释',
-                                `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                                `DataChange_CreatedBy` varchar(32) NOT NULL DEFAULT 'default' COMMENT '创建人邮箱前缀',
-                                `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                                `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                                `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                                PRIMARY KEY (`Id`),
-                                KEY `IX_Key` (`Key`),
-                                KEY `DataChange_LastTime` (`DataChange_LastTime`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='配置服务自身配置';
-
-
-
-# Dump of table userrole
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `UserRole`;
-
-CREATE TABLE `UserRole` (
-                            `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                            `UserId` varchar(128) DEFAULT '' COMMENT '用户身份标识',
-                            `RoleId` int(10) unsigned DEFAULT NULL COMMENT 'Role Id',
-                            `IsDeleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '1: deleted, 0: normal',
-                            `DataChange_CreatedBy` varchar(32) DEFAULT '' COMMENT '创建人邮箱前缀',
-                            `DataChange_CreatedTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-                            `DataChange_LastModifiedBy` varchar(32) DEFAULT '' COMMENT '最后修改人邮箱前缀',
-                            `DataChange_LastTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',
-                            PRIMARY KEY (`Id`),
-                            KEY `IX_DataChange_LastTime` (`DataChange_LastTime`),
-                            KEY `IX_RoleId` (`RoleId`),
-                            KEY `IX_UserId_RoleId` (`UserId`,`RoleId`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和role的绑定表';
-
-# Dump of table Users
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Users`;
-
-CREATE TABLE `Users` (
-                         `Id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                         `Username` varchar(64) NOT NULL DEFAULT 'default' COMMENT '用户名',
-                         `Password` varchar(64) NOT NULL DEFAULT 'default' COMMENT '密码',
-                         `Email` varchar(64) NOT NULL DEFAULT 'default' COMMENT '邮箱地址',
-                         `Enabled` tinyint(4) DEFAULT NULL COMMENT '是否有效',
-                         PRIMARY KEY (`Id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
-
-
-# Dump of table Authorities
-# ------------------------------------------------------------
-
-DROP TABLE IF EXISTS `Authorities`;
-
-CREATE TABLE `Authorities` (
-                               `Id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增Id',
-                               `Username` varchar(64) NOT NULL,
-                               `Authority` varchar(50) NOT NULL,
-                               PRIMARY KEY (`Id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-
-
-# Config
-# ------------------------------------------------------------
-INSERT INTO `ServerConfig` (`Key`, `Value`, `Comment`)
-VALUES
-('apollo.portal.envs', 'dev', '可支持的环境列表'),
-('organizations', '[{\"orgId\":\"TEST1\",\"orgName\":\"样例部门1\"},{\"orgId\":\"TEST2\",\"orgName\":\"样例部门2\"}]', '部门列表'),
-('superAdmin', 'apollo', 'Portal超级管理员'),
-('api.readTimeout', '10000', 'http接口read timeout'),
-('consumer.token.salt', 'someSalt', 'consumer token salt'),
-('admin.createPrivateNamespace.switch', 'true', '是否允许项目管理员创建私有namespace'),
-('configView.memberOnly.envs', 'dev', '只对项目成员显示配置信息的环境列表,多个env以英文逗号分隔'),
-('apollo.portal.meta.servers', '{}', '各环境Meta Service列表');
-
-INSERT INTO `Users` (`Username`, `Password`, `Email`, `Enabled`)
-VALUES
-('apollo', '$2a$10$7r20uS.BQ9uBpf3Baj3uQOZvMVvB1RN3PYoKE94gtz2.WAOuiiwXS', 'apollo@acme.com', 1);
-
-INSERT INTO `Authorities` (`Username`, `Authority`) VALUES ('apollo', 'ROLE_user');
-
-# Sample Data
-# ------------------------------------------------------------
-INSERT INTO `App` (`AppId`, `Name`, `OrgId`, `OrgName`, `OwnerName`, `OwnerEmail`)
-VALUES
-('SampleApp', 'Sample App', 'TEST1', '样例部门1', 'apollo', 'apollo@acme.com');
-
-INSERT INTO `AppNamespace` (`Name`, `AppId`, `Format`, `IsPublic`, `Comment`)
-VALUES
-('application', 'SampleApp', 'properties', 0, 'default app namespace');
-
-INSERT INTO `Permission` (`Id`, `PermissionType`, `TargetId`)
-VALUES
-(1, 'CreateCluster', 'SampleApp'),
-(2, 'CreateNamespace', 'SampleApp'),
-(3, 'AssignRole', 'SampleApp'),
-(4, 'ModifyNamespace', 'SampleApp+application'),
-(5, 'ReleaseNamespace', 'SampleApp+application');
-
-INSERT INTO `Role` (`Id`, `RoleName`)
-VALUES
-(1, 'Master+SampleApp'),
-(2, 'ModifyNamespace+SampleApp+application'),
-(3, 'ReleaseNamespace+SampleApp+application');
-
-INSERT INTO `RolePermission` (`RoleId`, `PermissionId`)
-VALUES
-(1, 1),
-(1, 2),
-(1, 3),
-(2, 4),
-(3, 5);
-
-INSERT INTO `UserRole` (`UserId`, `RoleId`)
-VALUES
-('apollo', 1),
-('apollo', 2),
-('apollo', 3);
-
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
-/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
-/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
\ No newline at end of file
diff --git a/configcenter/apollo/go-server/pkg/user.go b/configcenter/apollo/go-server/pkg/user.go
deleted file mode 100644
index 2759d19..0000000
--- a/configcenter/apollo/go-server/pkg/user.go
+++ /dev/null
@@ -1,60 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go/config"
-	"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/configcenter/apollo/go-server/tests/integration/main_test.go b/configcenter/apollo/go-server/tests/integration/main_test.go
deleted file mode 100644
index ed006cd..0000000
--- a/configcenter/apollo/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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/apollo"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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/configcenter/apollo/go-server/tests/integration/userprovider_test.go b/configcenter/apollo/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 625a907..0000000
--- a/configcenter/apollo/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/configcenter/nacos/go-client/cmd/client.go b/configcenter/nacos/go-client/cmd/client.go
deleted file mode 100644
index bc2c501..0000000
--- a/configcenter/nacos/go-client/cmd/client.go
+++ /dev/null
@@ -1,66 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/nacos"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/configcenter/nacos/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/configcenter/nacos/go-client/conf/client.yml b/configcenter/nacos/go-client/conf/client.yml
deleted file mode 100644
index 623d92d..0000000
--- a/configcenter/nacos/go-client/conf/client.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: "nacos"
-  address: "127.0.0.1:8848"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-client"
-  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/configcenter/nacos/go-client/conf/log.yml b/configcenter/nacos/go-client/conf/log.yml
deleted file mode 100644
index d0400fe..0000000
--- a/configcenter/nacos/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/configcenter/nacos/go-client/pkg/user.go b/configcenter/nacos/go-client/pkg/user.go
deleted file mode 100644
index 75c964f..0000000
--- a/configcenter/nacos/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/configcenter/nacos/go-server/cmd/server.go b/configcenter/nacos/go-server/cmd/server.go
deleted file mode 100644
index e522d04..0000000
--- a/configcenter/nacos/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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/nacos"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/configcenter/nacos/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/configcenter/nacos/go-server/conf/client.yml b/configcenter/nacos/go-server/conf/client.yml
deleted file mode 100644
index 623d92d..0000000
--- a/configcenter/nacos/go-server/conf/client.yml
+++ /dev/null
@@ -1,64 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: "nacos"
-  address: "127.0.0.1:8848"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-client"
-  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/configcenter/nacos/go-server/conf/log.yml b/configcenter/nacos/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/configcenter/nacos/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/configcenter/nacos/go-server/conf/server.yml b/configcenter/nacos/go-server/conf/server.yml
deleted file mode 100644
index dbea78e..0000000
--- a/configcenter/nacos/go-server/conf/server.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-# dubbo server yaml configure file
-
-# config center config
-config_center:
-  protocol: "nacos"
-  address: "127.0.0.1:8848"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-server"
-  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"
-
-# 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/configcenter/nacos/go-server/docker/docker-compose.yml b/configcenter/nacos/go-server/docker/docker-compose.yml
deleted file mode 100644
index 83e1311..0000000
--- a/configcenter/nacos/go-server/docker/docker-compose.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
-
-  nacos:
-    image: nacos/nacos-server:latest
-    container_name: nacos-standalone
-    environment:
-      - PREFER_HOST_MODE=hostname
-      - MODE=standalone
-    ports:
-      - "8848:8848"
\ No newline at end of file
diff --git a/configcenter/nacos/go-server/pkg/user.go b/configcenter/nacos/go-server/pkg/user.go
deleted file mode 100644
index 2759d19..0000000
--- a/configcenter/nacos/go-server/pkg/user.go
+++ /dev/null
@@ -1,60 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go/config"
-	"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/configcenter/nacos/go-server/tests/integration/main_test.go b/configcenter/nacos/go-server/tests/integration/main_test.go
deleted file mode 100644
index 0de5a14..0000000
--- a/configcenter/nacos/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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/nacos"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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/configcenter/nacos/go-server/tests/integration/userprovider_test.go b/configcenter/nacos/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 625a907..0000000
--- a/configcenter/nacos/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/configcenter/zookeeper/go-client/cmd/client.go b/configcenter/zookeeper/go-client/cmd/client.go
deleted file mode 100644
index 45b619d..0000000
--- a/configcenter/zookeeper/go-client/cmd/client.go
+++ /dev/null
@@ -1,66 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/zookeeper"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/configcenter/zookeeper/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/configcenter/zookeeper/go-client/conf/client.yml b/configcenter/zookeeper/go-client/conf/client.yml
deleted file mode 100644
index b9716cd..0000000
--- a/configcenter/zookeeper/go-client/conf/client.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: "zookeeper"
-  address: "127.0.0.1:2181"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-client"
-  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"
-
-# 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/configcenter/zookeeper/go-client/conf/log.yml b/configcenter/zookeeper/go-client/conf/log.yml
deleted file mode 100644
index d0400fe..0000000
--- a/configcenter/zookeeper/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/configcenter/zookeeper/go-client/pkg/user.go b/configcenter/zookeeper/go-client/pkg/user.go
deleted file mode 100644
index 75c964f..0000000
--- a/configcenter/zookeeper/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/configcenter/zookeeper/go-server/cmd/server.go b/configcenter/zookeeper/go-server/cmd/server.go
deleted file mode 100644
index 9e0422e..0000000
--- a/configcenter/zookeeper/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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/zookeeper"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/configcenter/zookeeper/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/configcenter/zookeeper/go-server/conf/client.yml b/configcenter/zookeeper/go-server/conf/client.yml
deleted file mode 100644
index 407189e..0000000
--- a/configcenter/zookeeper/go-server/conf/client.yml
+++ /dev/null
@@ -1,58 +0,0 @@
-# dubbo client yaml configure file
-
-check: true
-# client
-request_timeout: "3s"
-# connect timeout
-connect_timeout: "3s"
-
-# config center config
-config_center:
-  protocol: "zookeeper"
-  address: "127.0.0.1:2181"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-client"
-  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"
-
-# reference config
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
-
-# 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/configcenter/zookeeper/go-server/conf/log.yml b/configcenter/zookeeper/go-server/conf/log.yml
deleted file mode 100644
index a75bccb..0000000
--- a/configcenter/zookeeper/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/configcenter/zookeeper/go-server/conf/server.yml b/configcenter/zookeeper/go-server/conf/server.yml
deleted file mode 100644
index 2a81a1c..0000000
--- a/configcenter/zookeeper/go-server/conf/server.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-# dubbo server yaml configure file
-
-# config center config
-config_center:
-  protocol: "zookeeper"
-  address: "127.0.0.1:2181"
-
-# application config
-application:
-  organization: "dubbo.io"
-  name: "user-info-server"
-  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"
-
-# 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/configcenter/zookeeper/go-server/docker/docker-compose.yml b/configcenter/zookeeper/go-server/docker/docker-compose.yml
deleted file mode 100644
index 386a42e..0000000
--- a/configcenter/zookeeper/go-server/docker/docker-compose.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-version: '3'
-
-services:
-  zookeeper:
-    image: zookeeper
-    ports:
-      - 2181:2181
-    restart: on-failure
\ No newline at end of file
diff --git a/configcenter/zookeeper/go-server/pkg/user.go b/configcenter/zookeeper/go-server/pkg/user.go
deleted file mode 100644
index 2759d19..0000000
--- a/configcenter/zookeeper/go-server/pkg/user.go
+++ /dev/null
@@ -1,60 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go/config"
-	"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/configcenter/zookeeper/go-server/tests/integration/main_test.go b/configcenter/zookeeper/go-server/tests/integration/main_test.go
deleted file mode 100644
index 83577b6..0000000
--- a/configcenter/zookeeper/go-server/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 (
-	"context"
-	"os"
-	"testing"
-	"time"
-)
-
-import (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/config_center/zookeeper"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-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/configcenter/zookeeper/go-server/tests/integration/userprovider_test.go b/configcenter/zookeeper/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 625a907..0000000
--- a/configcenter/zookeeper/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/context/README.md b/context/README.md
deleted file mode 100644
index c13da25..0000000
--- a/context/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-# Dubbo-go context Usage 
-### 1. Introduction
-
-Context in server end can be used to read specific field that dubbo-go framework provided by default.\
-It can also used to transfer base-type of golang, even 
-
-### 2. How to get dubbo-go default field
-You can get dubbo attachment in this way:
-```go
-ctxAtta := ctx.Value(constant.DubboCtxKey("attachment")).(map[string]interface{})
-	rsp := ContextContent{
-		Path:          ctxAtta["path"].(string),
-		InterfaceName: ctxAtta["interface"].(string),
-		DubboVersion:  ctxAtta["dubbo"].(string),
-		LocalAddr:     ctxAtta["local-addr"].(string),
-		RemoteAddr:    ctxAtta["remote-addr"].(string),
-	}
-```
-
-### 3. Transfer value you want from client to server
-Client end\
-As demo in go-client/cliemt.go shows
-```go
-    // create requset context
-    rspContent := &pkg.ContextContent{}
-
-    // create attachment, which must be map[string]interface{}
-	atta := make(map[string]interface{})
-    // add fields you like
-	atta["string-value"] = "string-demo"
-	atta["int-value"] = 1231242
-    // make sure the UserDefined Pkg is registered to hessian2
-	atta["user-defined-value"] = pkg.ContextContent{InterfaceName: "test.interface.name"}
-
-    // invoke with your context
-	reqContext := context.WithValue(context.Background(), constant.DubboCtxKey("attachment"), atta)
-	err := userProvider.GetContext(reqContext, []interface{}{"A001"}, rspContent)
-	if err != nil {
-		gxlog.CError("error: %v\n", err)
-		os.Exit(1)
-		return
-	}
-	gxlog.CInfo("response result: %+v\n", rspContent)
-```
-Server end:\
-As demo in go-server/server.go shows
-```go
-    // get attachment from ctx
-    ctxAtta := ctx.Value(constant.DubboCtxKey("attachment")).(map[string]interface{})
-    
-    // get user defined struct from attachment
-	userDefinedval := ctxAtta["user-defined-value"].(*ContextContent)
-    
-    // get value you sent
-	intValue := ctxAtta["int-value"].(int64),
-```
-
-Pls. refer to [HOWTO.md](../HOWTO.md) under the root directory to run this sample.
\ No newline at end of file
diff --git a/context/README_zh.md b/context/README_zh.md
deleted file mode 100644
index fa0cb05..0000000
--- a/context/README_zh.md
+++ /dev/null
@@ -1,63 +0,0 @@
-# Dubbo-go context 使用demo 
-### 1. 介绍
-
-可以在服务端使用context读取dubbo-go框架默认提供的字段。
-
-也可以使用ctx从客户端传递用户希望传递的字段到服务端。
-
-### 2. 如何获取dubbogo提供的默认字段
-你可以获取dubbo attachement 字段:
-```go
-ctxAtta := ctx.Value(constant.DubboCtxKey("attachment")).(map[string]interface{})
-	rsp := ContextContent{
-		Path:          ctxAtta["path"].(string),
-		InterfaceName: ctxAtta["interface"].(string),
-		DubboVersion:  ctxAtta["dubbo"].(string),
-		LocalAddr:     ctxAtta["local-addr"].(string),
-		RemoteAddr:    ctxAtta["remote-addr"].(string),
-	}
-```
-
-### 3. 从客户端通过context传递你想要的字段
-- 客户端
-  如样例 go-client/cliemt.go 所展示:
-
-```go
-    // 创建request
-    rspContent := &pkg.ContextContent{}
-
-    // 创建 attachment, 类型必须为 map[string]interface{}
-	atta := make(map[string]interface{})
-    // 添加你想传递的字段
-	atta["string-value"] = "string-demo"
-	atta["int-value"] = 1231242
-    // 需要保证你想传递的结构体提前被注册在了hessian2上
-	atta["user-defined-value"] = pkg.ContextContent{InterfaceName: "test.interface.name"}
-
-    // 使用构建好字段的context作为request context
-	reqContext := context.WithValue(context.Background(), constant.DubboCtxKey("attachment"), atta)
-	err := userProvider.GetContext(reqContext, []interface{}{"A001"}, rspContent)
-	if err != nil {
-		gxlog.CError("error: %v\n", err)
-		os.Exit(1)
-		return
-	}
-	gxlog.CInfo("response result: %+v\n", rspContent)
-```
-- 服务端:
-  如样例在 go-server/server.go 所展示
-
-```go
-    // 从ctx 获取 attachment
-    ctxAtta := ctx.Value(constant.DubboCtxKey("attachment")).(map[string]interface{})
-    
-    // 从ctx获取用户自定义结构体
-	userDefinedval := ctxAtta["user-defined-value"].(*ContextContent)
-    
-    // 获取特定字段值
-	intValue := ctxAtta["int-value"].(int64),
-```
-
-请参阅根目录中的 [HOWTO.md](../HOWTO_zh.md) 来运行本例。
-
-
diff --git a/context/go-client/cmd/client.go b/context/go-client/cmd/client.go
deleted file mode 100644
index 484c1da..0000000
--- a/context/go-client/cmd/client.go
+++ /dev/null
@@ -1,71 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/constant"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-	"github.com/dubbogo/gost/log"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/context/go-client/pkg"
-)
-
-var userProvider = new(pkg.UserProvider)
-
-func init() {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&pkg.ContextContent{})
-}
-
-// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to "conf/client.yml" before run
-func main() {
-	hessian.RegisterPOJO(&pkg.ContextContent{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	gxlog.CInfo("\n\n\nstart to test dubbo")
-	rspContent := &pkg.ContextContent{}
-	atta := make(map[string]interface{})
-	atta["string-value"] = "string-demo"
-	atta["int-value"] = 1231242
-	atta["user-defined-value"] = pkg.ContextContent{InterfaceName: "test.interface.name"}
-	reqContext := context.WithValue(context.Background(), constant.DubboCtxKey("attachment"), atta)
-	err := userProvider.GetContext(reqContext, []interface{}{"A001"}, rspContent)
-	if err != nil {
-		gxlog.CError("error: %v\n", err)
-		os.Exit(1)
-		return
-	}
-	gxlog.CInfo("response result: %+v\n", rspContent)
-}
diff --git a/context/go-client/conf/client.yml b/context/go-client/conf/client.yml
deleted file mode 100644
index 6af64f6..0000000
--- a/context/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: "GetContext"
-        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/context/go-client/conf/log.yml b/context/go-client/conf/log.yml
deleted file mode 100644
index 2b6e93a..0000000
--- a/context/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/context/go-client/pkg/user.go b/context/go-client/pkg/user.go
deleted file mode 100644
index 32d6eac..0000000
--- a/context/go-client/pkg/user.go
+++ /dev/null
@@ -1,45 +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"
-)
-
-type ContextContent struct {
-	Path              string
-	InterfaceName     string
-	DubboVersion      string
-	LocalAddr         string
-	RemoteAddr        string
-	UserDefinedStrVal string
-	CtxStrVal         string
-	CtxIntVal         int64
-}
-
-type UserProvider struct {
-	GetContext func(ctx context.Context, req []interface{}, rsp *ContextContent) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (ContextContent) JavaClassName() string {
-	return "org.apache.dubbo.ContextContent"
-}
diff --git a/context/go-server/cmd/server.go b/context/go-server/cmd/server.go
deleted file mode 100644
index 086f46c..0000000
--- a/context/go-server/cmd/server.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 main
-
-import (
-	"fmt"
-	"os"
-	"os/signal"
-	"syscall"
-	"time"
-)
-
-import (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	"github.com/apache/dubbo-go/common/logger"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-import (
-	"github.com/apache/dubbo-go-samples/context/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.ContextContent{})
-	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/context/go-server/conf/client.yml b/context/go-server/conf/client.yml
deleted file mode 100644
index 3e547b4..0000000
--- a/context/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: "GetContext"
-        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/context/go-server/conf/log.yml b/context/go-server/conf/log.yml
deleted file mode 100644
index 970d988..0000000
--- a/context/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/context/go-server/conf/server.yml b/context/go-server/conf/server.yml
deleted file mode 100644
index 55354ee..0000000
--- a/context/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: "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: "GetContext"
-        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/context/go-server/docker/docker-compose.yml b/context/go-server/docker/docker-compose.yml
deleted file mode 100644
index 8724179..0000000
--- a/context/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/context/go-server/pkg/user.go b/context/go-server/pkg/user.go
deleted file mode 100644
index b943959..0000000
--- a/context/go-server/pkg/user.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 pkg
-
-import (
-	"context"
-)
-
-import (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	"github.com/apache/dubbo-go/common/constant"
-	"github.com/apache/dubbo-go/config"
-	"github.com/dubbogo/gost/log"
-)
-
-func init() {
-	config.SetProviderService(new(UserProvider))
-	// ------for hessian2------
-	hessian.RegisterPOJO(&ContextContent{})
-}
-
-type ContextContent struct {
-	Path              string
-	InterfaceName     string
-	DubboVersion      string
-	LocalAddr         string
-	RemoteAddr        string
-	UserDefinedStrVal string
-	CtxStrVal         string
-	CtxIntVal         int64
-}
-
-type UserProvider struct {
-}
-
-func (u *UserProvider) GetContext(ctx context.Context, req []interface{}) (*ContextContent, error) {
-	gxlog.CInfo("req:%#v", req)
-	ctxAtta := ctx.Value(constant.DubboCtxKey("attachment")).(map[string]interface{})
-	userDefinedval := ctxAtta["user-defined-value"].(*ContextContent)
-	gxlog.CInfo("get user defined struct:%#v", userDefinedval)
-	rsp := ContextContent{
-		Path:              ctxAtta["path"].(string),
-		InterfaceName:     ctxAtta["interface"].(string),
-		DubboVersion:      ctxAtta["dubbo"].(string),
-		LocalAddr:         ctxAtta["local-addr"].(string),
-		RemoteAddr:        ctxAtta["remote-addr"].(string),
-		UserDefinedStrVal: userDefinedval.InterfaceName,
-		CtxIntVal:         ctxAtta["int-value"].(int64),
-		CtxStrVal:         ctxAtta["string-value"].(string),
-	}
-	gxlog.CInfo("rsp:%#v", rsp)
-	return &rsp, nil
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (u ContextContent) JavaClassName() string {
-	return "org.apache.dubbo.ContextContent"
-}
diff --git a/context/go-server/tests/integration/main_test.go b/context/go-server/tests/integration/main_test.go
deleted file mode 100644
index 26a0918..0000000
--- a/context/go-server/tests/integration/main_test.go
+++ /dev/null
@@ -1,74 +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 (
-	hessian "github.com/apache/dubbo-go-hessian2"
-	_ "github.com/apache/dubbo-go/cluster/cluster_impl"
-	_ "github.com/apache/dubbo-go/cluster/loadbalance"
-	_ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
-	"github.com/apache/dubbo-go/config"
-	_ "github.com/apache/dubbo-go/filter/filter_impl"
-	_ "github.com/apache/dubbo-go/metadata/service/inmemory"
-	_ "github.com/apache/dubbo-go/protocol/dubbo"
-	_ "github.com/apache/dubbo-go/registry/protocol"
-	_ "github.com/apache/dubbo-go/registry/zookeeper"
-)
-
-var userProvider = new(UserProvider)
-
-func TestMain(m *testing.M) {
-	config.SetConsumerService(userProvider)
-	hessian.RegisterPOJO(&ContextContent{})
-	config.Load()
-	time.Sleep(3 * time.Second)
-
-	os.Exit(m.Run())
-}
-
-type ContextContent struct {
-	Path              string
-	InterfaceName     string
-	DubboVersion      string
-	LocalAddr         string
-	RemoteAddr        string
-	UserDefinedStrVal string
-	CtxStrVal         string
-	CtxIntVal         int64
-}
-
-type UserProvider struct {
-	GetContext func(ctx context.Context, req []interface{}, rsp *ContextContent) error
-}
-
-func (u *UserProvider) Reference() string {
-	return "UserProvider"
-}
-
-func (ContextContent) JavaClassName() string {
-	return "org.apache.dubbo.ContextContent"
-}
diff --git a/context/go-server/tests/integration/userprovider_test.go b/context/go-server/tests/integration/userprovider_test.go
deleted file mode 100644
index 2618866..0000000
--- a/context/go-server/tests/integration/userprovider_test.go
+++ /dev/null
@@ -1,56 +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/apache/dubbo-go/common/constant"
-	"github.com/stretchr/testify/assert"
-)
-
-func TestGetUser(t *testing.T) {
-	rspContext := &ContextContent{}
-
-	// add field that client wants to send
-	atta := make(map[string]interface{})
-	atta["string-value"] = "string-demo"
-	atta["int-value"] = 1231242
-	atta["user-defined-value"] = ContextContent{InterfaceName: "test.interface.name"}
-	reqContext := context.WithValue(context.Background(), constant.DubboCtxKey("attachment"), atta)
-
-	// invoke with reqContext
-	err := userProvider.GetContext(reqContext, []interface{}{"A001"}, rspContext)
-
-	// assert dubbo-go fields
-	assert.Nil(t, err)
-	assert.Equal(t, "org.apache.dubbo.UserProvider", rspContext.InterfaceName)
-	assert.Equal(t, "org.apache.dubbo.UserProvider", rspContext.Path)
-	assert.NotNil(t, rspContext.LocalAddr)
-	assert.NotNil(t, rspContext.RemoteAddr)
-	assert.NotNil(t, rspContext.DubboVersion)
-
-	// assert user defined fields
-	assert.Equal(t, "test.interface.name", rspContext.UserDefinedStrVal)
-	assert.Equal(t, "string-demo", rspContext.CtxStrVal)
-	assert.Equal(t, int64(1231242), rspContext.CtxIntVal)
-}
diff --git a/direct/README.md b/direct/README.md
deleted file mode 100644
index e9d49dc..0000000
--- a/direct/README.md
+++ /dev/null
@@ -1,170 +0,0 @@
-# Direct Example
-
-### Backend
-
-In the development and testing environment, it is often necessary to bypass the registry and test the designated service provider, which may require point-to-point direct connection. The point-to-point direct connection method will be based on the service interface and ignore the list of providers in the registry. Interface A is configured point-to-point and does not affect interface B to get the list from the registry.
-
-This example provides the `Consumer` point-to-point direct connection `Provider` based on Dubbo-Go to complete service calls to help better understand the connectivity of Dubbo-Go.
-
-### Introduction
-
-```
-├── go-client     
-│   ├── cmd       
-│   ├── conf      
-│   └── pkg         
-└── go-server     
-    ├── cmd       
-    ├── conf      
-    ├── docker     
-    ├── pkg
-    └── tests
-        └── integration
-```
-
-- go-server: The Service Provider
-- go-client: The Service Consumer
-
-#### Provider
-Direct example code description:
-
-1. Configure the Dubbo protocol, registry, service information, See [server.yml](go-server/conf/server.yml)
-
-```yaml
-services:
-  "UserProvider":
-    registry: "demoZk"
-    protocol : "dubbo"
-    interface : "org.apache.dubbo.UserProvider"
-    loadbalance: "random"
-    warmup: "100"
-    cluster: "failover"
-    methods:
-    - name: "GetUser"
-      retries: 1
-      loadbalance: "random"
-```
-
-2. Startup: Register the service
-
-```go
-hessian.RegisterPOJO(&pkg.User{})
-config.Load()
-initSignal()
-```
-
-- Based on the `hessian` serialization protocol, using [apache/dubbo-go-hessian2](https://github.com/apache/dubbo-go-hessian2) RegisterPOJO register a POJO
-- Dubbo Init: Registration service, See [apache/dubbo-go/../config_loader.go](https://github.com/apache/dubbo-go/blob/master/config/config_loader.go)
-    - init router
-    - init the global event dispatcher
-    - start the metadata report if config set
-    - reference config
-    - service config
-    - init the shutdown callback
-- Init Signal :
-  
-    ```go
-    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
-            }
-        }
-    }
-    ```
-
-#### Consumer
-
-1. Set up the `dubbo service` you need to subscribe to at the beginning of the program startup.
-   Make sure that the configuration file [client.yml](go-client/conf/client.yml) has been configured with the relevant information of the subscription service, and the service properties can be customized to override the configuration of the Provider's properties.
-   Retain minimum configuration `application` and `references` verification point-to-point direct connection effect, no need to configure the registry.
-
-```go
-var userProvider = new(pkg.UserProvider)
-
-func init() {
-    config.SetConsumerService(userProvider)
-    hessian.RegisterPOJO(&pkg.User{})
-}
-```
-
-```yaml
-application:
-  organization: "dubbo.io"
-  name: "UserInfoClient"
-  module: "dubbo-go user-info client"
-  version: "0.0.1"
-  environment: "dev"
-references:
-  "UserProvider":
-    registry: "demoZk"
-    protocol: "dubbo"
-    interface: "org.apache.dubbo.UserProvider"
... 59122 lines suppressed ...