You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by xi...@apache.org on 2019/09/11 10:54:40 UTC

[dubbo-go] branch master updated (111e58c -> 69bc3df)

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

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


    from 111e58c  Merge pull request #199 from JamesYaoh/master
     add da11226  Mod: move callService to invoker
     add 1888a20  Merge remote-tracking branch 'upstream/develop' into develop
     add c5ef8f4  Merge remote-tracking branch 'upstream/develop' into develop
     add d530be1  modify  examples time.AfterFunc start way
     add a828482  hystrix filter added
     add b485e8d  config for hystrix filter added
     add dd05253  fmt the code
     add 0781ce5  delete unused constants
     add c089a43  change panic in confit initializaiton to error
     add d2a61dc  fallback config added, see examples/hystrix_example
     add 0ee30d0  Changes in fallback function, now it receives 4 parameters: error, invoker, invocation, circuitbreaker And returns a new result
     add ef3b42c  Change comments
     add 7f579b1  Add nil check for fallback func return
     add 08dd542  wrong spell
     add 75aba16  Make the fallback func an interface
     add 79ab52c  Unit tests: invoke and refresh to be done
     add b7e9c61  Unit tests for hystrix filter done
     add 431eeb9  Merge pull request #1 from apache/master
     add 8e647d4  Merge pull request #2 from apache/master
     add 508d9a0  Update from master
     add ca9793d  Examples change
     add 08b064a  Merge branch 'develop' into hystrix_filter
     add b6a964b  Fix example
     add faa779c  Fix the probelm occurs when filter_conf is nil
     add 3e7042d  Unit test fix
     add f604d42  fix
     add 40689de  Fix import cycle in protocol_filter_wrapper_test For implement of hystrix filter depends on config package to get user config, it causes import cycle in test for protocol filter wrapper. Now the test depends on filter interface instead of filter implement, so that the cycle is solved.
     add c50bd5a  fmt
     add 4b52478  Standardize the import format, add lisences infomation for new file
     add 67bae9a  Overhaul: Fix concurrency problems; Add support for server end; Add error whitelist(omit) TODO: Make downgrade a standalone filter, so it can offer more freedom for users and avoid extensions on extensions TODO: Add a new example
     add 588a5a8  Example Added for client and fallback fix the problem that all methods under one service share the regexp rules
     add b954e6a  Merge branch 'develop' into hystrix_filter
     add 3c4722a  Add some unit tests
     add a939b43  fix unit tests
     add 83aad3f  fix unit tests
     add aedf81b  Add license info for example
     add 515c472  Merge apache/develop into ygrylls/hystrix_filter
     add 4fe6fa3  Change hystrix example directory and modified to follow other new examples
     add 7e88874  Remove old hessian in go.mod
     add 207fb39  Merge and fix the problems found in review
     add ddd0a5a  add map struct to generic filter
     add d91f972  Merge pull request #12 from apache/develop
     add 534a79e  Merge branch 'develop' of https://github.com/pantianying/dubbo-go into develog
     add 23b95a0  Merge pull request #171 from pantianying/develop
     add 67bc50d  Merge remote-tracking branch 'upstream/develop' into hystrix_filter
     add d04c33e  consul init
     add 858f7c9  update
     add 26959d1  solve conflict
     add dc0e93b  update consul
     add a231f0e  add consul example
     add 5e0a4a1  Merge branch 'master' into consul
     add 7564165  go mod
     add 0adb3a9  go fmt
     add dcde19b  fix bug: add wg.done
     add 127f034  Merge branch 'master' into consul
     add 461cfc3  Merge branch 'develop' into consul
     add 8970b13  modify travis
     add 218cc74  new go.sum
     add c37e13a  modify go mod
     add 65ae799  new go.mod and go.sum
     add eeb1177  update gitignore
     add f82563f  merge develop branch
     add 87e9bab  modify based rw
     add 340b98b  fix bug
     add 85582d5  add for
     add cbb0534  improve consul examples
     add 64df877  merge develop
     add 97e0e51  add consul in travis
     add 01485b5  modify travis
     add c8e0403  modify travis
     add f671f55  modify travis
     add bc10a18  modify travis
     add 1ca3536  modfiy travis
     add 4b29e7c  modify travis
     add e4a39c9  add unit test for consul
     add 588dd96  resolve conflict
     add 1bb5457  fix typo
     add 82fb516  recolve conflict
     add a958f13  resolve conflict
     add f616b4a  fix initialize len and cap for make
     add 803c1b2  resolve conflict
     add 24e7d6f  Merge branch 'develop' into consul
     add 1edd0f5  Merge branch 'develop' into consul
     add bd25bbd  fix typo
     add 114b0c9  Merge branch 'develop' into consul
     add 38a4b0c  consul test
     add 2aa483a  consul test
     add 46cc00a  travis
     add 11032c5  import
     add 5c05d1c  fix typo
     add c52c611  Merge branch 'develop' into consul
     add dd8728e  test
     add 85c89b7  revert
     add e77abb3  go mod
     add d11fff0  typo
     add 8125771  modify version
     add f73ee62  examples
     add 21d7b15  add unregister test
     add 5dd2bd0  modify yaml
     add 9a7642b  Merge pull request #121 from dubbo-x/consul
     add 10103db  Merge branch 'develop' into hystrix_filter
     add 14436e9  Merge pull request #133 from YGrylls/hystrix_filter
     add dc4cb05  Fix:url.Values is not safe map, so add the lock to avoid concurrent map read and map write error
     add 06b6cf8  Mod:modify Lock to RWlock
     add ae028f9  Mod:format
     add dfc90b5  Merge pull request #172 from hxmhlt/fix_url_concurrentmap_bug
     add 1f75098  Fix: delete app/app, use apl 2.0
     add 8df5830  Fix: delete Alibaba in license
     add 129289b  Add: license for java codes
     add 189aaa8  Imp: delete Alex Stocks in license
     add bea6d62  Fix: delete AlexStocks author info in license
     add 76d508a  Fix: delete AlexStocks email in comment
     add 593703d  Mod: go fmt
     add d733321  fix typo
     add 014d1bc  Merge pull request #177 from dubbo-x/develop
     add f9aff5a  reslove conficts
     add 3b58af4  modify conflicts
     add b38db96  Merge pull request #179 from lazyfighter/dev
     add 32b5e87  Mrg:merge upstream
     add a1b5db0  Fix:invoker bug
     add 0ec3556  Add: support complete attachments
     add 63393f1  fix deadlock
     add ad15595  delete blank lines
     add a8cb98e  Merge pull request #183 from pantianying/fix_deadlock
     add 557d0a1  Merge remote-tracking branch 'upstream/develop' into develop
     add a672bba  Del:delete wrong files
     add a6c96df  Imp: split protocol/dubbo/pool.go gettyRPCClient.close and gettyRPCClientPool.remove
     add ce6e685  Imp: adjust pool close lock
     add ff4f9b9  Add: gettyRPCClient.safeClose
     add aa5c160  Fix: closeErr == nil
     add 141f1db  Merge pull request #186 from divebomb/develop
     add 283e3db  Mod:rm author info & rename file name
     add 19fe1f4  Merge pull request #188 from hxmhlt/fix_rpcstatusfile
     add b02dad6  tim.AfterFunc
     add 8c2ddb6  Merge pull request #181 from dubbo-x/develop
     add 7a70fa1  Merge remote-tracking branch 'upstream/develop' into develop
     add 64a6cb8  Merge remote-tracking branch 'upstream/master' into develop
     add dde93bb  Fix: import format & update hessian2
     add f9b8a27  Fix: get attachments for comsumer
     add 5128ade  Add: change doc
     add 7636e96  Merge branch 'develop' of https://github.com/apache/dubbo-go into develop
     add dbbc931  Merge remote-tracking branch 'upstream/develop' into develop
     add 5c0e14e  Fix: ut and import
     add 774a3c5  Add: asf 2.0; Rem: delete author email
     add 30f4f0d  Mod: gettyRPCClient.created -> active
     add a588636  Imp: remove client from pool before close it
     add bb1216a  Merge pull request #190 from divebomb/develop
     add 114174d  Merge remote-tracking branch 'upstream/develop' into develop
     add 639aab6  Fix: format
     add 66c2333  Fix: attachments
     add b8461e4  Fix: ut
     add 0893d83  Fix:failoverbug and reties change to string type
     add 6dbad29  Fix:failoverbug and reties change to string type
     add d1ea35d  Mod:retries in config/testdata
     add a9770f7  Mod:format import
     add ead43d6  Add: add error log
     add 359bdab  Merge pull request #195 from hxmhlt/fix_failoverbug_and_reties_0
     add c469962  Merge remote-tracking branch 'upstream/develop' into develop
     add 0f31de3  Merge remote-tracking branch 'upstream/master' into develop
     add ddcf560  Fix: delete unused file
     add e5d1247  Merge pull request #193 from fangyincheng/develop
     new 69bc3df  Mod: merge conflict resolve

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |  10 +-
 CHANGE.md                                          |  26 ++
 LICENSE                                            |   1 -
 cluster/cluster_impl/failback_cluster_invoker.go   |  12 +-
 cluster/cluster_impl/failover_cluster_invoker.go   |  18 +-
 cluster/cluster_impl/failover_cluster_test.go      |   8 +-
 cluster/loadbalance/least_active.go                |   1 -
 cluster/loadbalance/round_robin_test.go            |  17 +
 common/constant/default.go                         |  16 +-
 common/extension/router_factory.go                 |  17 +
 common/proxy/proxy_factory/default.go              |  94 +++++-
 common/url.go                                      |   4 +
 config/base_config_test.go                         |  20 +-
 config/consumer_config.go                          |   1 +
 config/method_config.go                            |   2 +-
 config/provider_config.go                          |   1 +
 config/reference_config.go                         |   6 +-
 config/reference_config_test.go                    |   9 +-
 config/service_config.go                           |   6 +-
 config/service_config_test.go                      |   6 +-
 config/testdata/consumer_config.yml                |   2 +-
 .../testdata/consumer_config_with_configcenter.yml |   2 +-
 config_center/configuration_parser.go              |  18 ++
 config_center/configuration_parser_test.go         |  18 ++
 .../with-configcenter-go-client/app/client.go      |   2 +-
 .../profiles/dev/client.yml                        |   2 +-
 .../profiles/release/client.yml                    |   2 +-
 .../profiles/test/client.yml                       |   2 +-
 .../with-configcenter-go-server/app/server.go      |   2 +-
 .../profiles/dev/server.yml                        |   2 +-
 .../profiles/release/server.yml                    |   2 +-
 .../profiles/test/server.yml                       |   2 +-
 .../with-configcenter-go-client/app/client.go      |   2 +-
 .../with-configcenter-go-server/app/server.go      |   2 +-
 examples/consul/README.md                          |  44 +++
 .../go-client/app => consul/go-client}/client.go   |  23 +-
 .../test => consul/go-client/config}/client.yml    |  35 +--
 .../test => consul/go-client/config}/log.yml       |   0
 .../consul/go-client/service.go                    |  20 +-
 .../test => consul/go-server/config}/log.yml       |   0
 .../release => consul/go-server/config}/server.yml |  28 +-
 .../go-server/app => consul/go-server}/server.go   |  19 +-
 .../consul/go-server/service.go                    |  20 +-
 examples/consul/java-client/.gitignore             |   7 +
 examples/consul/java-client/pom.xml                |  88 ++++++
 .../src/main/java/dubbo/DubboService.java          |  46 ++-
 .../src/main/java/dubbo/client/Main.java           |  43 +++
 .../src/main/resources/log4j.properties            |   4 +
 examples/consul/java-server/.gitignore             |   7 +
 examples/consul/java-server/pom.xml                |  89 ++++++
 .../src/main/java/dubbo/DubboService.java          |   5 +
 .../java/dubbo/server/Impl/DubboServiceImpl.java   |  11 +
 .../src/main/java/dubbo/server/Main.java           |  53 ++++
 .../src/main/resources/log4j.properties            |   4 +
 examples/general/dubbo/go-client/app/client.go     |  30 +-
 .../dubbo/go-client/profiles/dev/client.yml        |   6 +-
 .../dubbo/go-client/profiles/release/client.yml    |   6 +-
 .../dubbo/go-client/profiles/test/client.yml       |   6 +-
 examples/general/dubbo/go-server/app/server.go     |   2 +-
 .../dubbo/go-server/profiles/dev/server.yml        |   6 +-
 .../dubbo/go-server/profiles/release/server.yml    |   6 +-
 .../dubbo/go-server/profiles/test/server.yml       |   6 +-
 .../main/java/com/ikurento/user/UserProvider.java  |   1 +
 .../resources/META-INF/spring/dubbo.consumer.xml   |   2 +
 .../src/main/resources/META-INF/spring/service.xml |   1 +
 examples/general/dubbo/java-server/pom.xml         |   1 -
 .../java/com/ikurento/user/UserProviderImpl.java   |   1 -
 examples/general/jsonrpc/go-client/app/client.go   |   2 +-
 .../jsonrpc/go-client/profiles/dev/client.yml      |   6 +-
 examples/general/jsonrpc/go-server/app/server.go   |   2 +-
 .../jsonrpc/go-server/profiles/dev/server.yml      |   6 +-
 examples/generic/go-client/app/client.go           |   4 -
 examples/generic/go-client/app/user.go             |  17 -
 examples/generic/go-client/assembly/bin/load.sh    |   1 -
 .../go-client/assembly/common/app.properties       |   1 +
 .../generic/go-client/assembly/common/build.sh     |   1 +
 examples/generic/go-client/assembly/linux/dev.sh   |   1 -
 examples/generic/go-client/assembly/mac/dev.sh     |   1 -
 examples/generic/go-client/assembly/mac/test.sh    |   1 +
 examples/generic/java-server/script/debug.sh       |   1 -
 .../resources/META-INF/spring/dubbo.provider.xml   |   1 +
 .../dubbo/go-client/assembly/bin/load.sh           |   1 -
 .../dubbo/go-client/assembly/common/app.properties |   1 +
 .../dubbo/go-client/assembly/common/build.sh       |   1 +
 .../dubbo/go-client/assembly/linux/release.sh      |   1 -
 .../dubbo/go-client/assembly/linux/test.sh         |   1 -
 .../dubbo/go-client/profiles/dev/client.yml        |   2 +-
 examples/helloworld/dubbo/go-server/app/server.go  |   2 +-
 .../dubbo/go-server/assembly/bin/load.sh           |   1 -
 .../dubbo/go-server/profiles/dev/server.yml        |   2 +-
 .../java-server/src/main/assembly/assembly.xml     |   1 +
 .../resources/META-INF/spring/dubbo.provider.xml   |   1 +
 .../dubbo/with-hystrix-go-client/app/client.go}    |  79 +++--
 .../app/example_fallback_filter.go                 |  80 +++++
 .../dubbo/with-hystrix-go-client}/app/user.go      |   2 +-
 .../dubbo/with-hystrix-go-client}/app/version.go   |   0
 .../with-hystrix-go-client}/assembly/bin/load.sh   |   0
 .../assembly/common/app.properties                 |   0
 .../assembly/common/build.sh                       |   0
 .../with-hystrix-go-client}/assembly/linux/dev.sh  |   0
 .../assembly/linux/release.sh                      |   0
 .../with-hystrix-go-client}/assembly/linux/test.sh |   0
 .../with-hystrix-go-client}/assembly/mac/dev.sh    |   0
 .../assembly/mac/release.sh                        |   0
 .../with-hystrix-go-client}/assembly/mac/test.sh   |   0
 .../assembly/windows/dev.sh                        |   0
 .../assembly/windows/release.sh                    |   0
 .../assembly/windows/test.sh                       |   0
 .../profiles/dev}/client.yml                       |  57 ++--
 .../with-hystrix-go-client}/profiles/dev/log.yml   |  56 ++--
 .../profiles/release/client.yml                    |  53 ++--
 .../profiles/release/log.yml                       |  56 ++--
 .../profiles/test}/client.yml                      |  56 ++--
 .../with-hystrix-go-client}/profiles/test/log.yml  |  56 ++--
 filter/impl/active_filter.go                       |   1 -
 filter/impl/echo_filter.go                         |   3 +-
 filter/impl/generic_filter.go                      |  18 +-
 filter/impl/generic_filter_test.go                 |  32 ++
 filter/impl/hystrix_filter.go                      | 269 ++++++++++++++++
 filter/impl/hystrix_filter_test.go                 | 217 +++++++++++++
 go.mod                                             |   9 +-
 go.sum                                             | 346 ++++++++++++++++++++-
 protocol/dubbo/client.go                           |  65 ++--
 protocol/dubbo/client_test.go                      |  40 ++-
 protocol/dubbo/codec.go                            |  12 +-
 protocol/dubbo/codec_test.go                       |   4 +-
 protocol/dubbo/dubbo_invoker.go                    |  10 +-
 protocol/dubbo/dubbo_invoker_test.go               |   7 +-
 protocol/dubbo/dubbo_protocol.go                   |   5 +-
 protocol/dubbo/dubbo_protocol_test.go              |   2 +-
 protocol/dubbo/listener.go                         | 132 ++------
 protocol/dubbo/pool.go                             |  70 +++--
 protocol/dubbo/readwriter.go                       |  18 +-
 protocol/jsonrpc/http_test.go                      |   5 +-
 protocol/jsonrpc/jsonrpc_invoker_test.go           |   5 +-
 protocol/jsonrpc/server.go                         | 105 +------
 .../protocol_filter_wrapper_test.go                |  34 +-
 protocol/{RpcStatus.go => rpc_status.go}           |   1 -
 registry/consul/listener.go                        | 206 ++++++++++++
 .../consul/listener_test.go                        |  15 +-
 registry/consul/registry.go                        | 143 +++++++++
 registry/consul/registry_test.go                   |  57 ++++
 registry/consul/utils.go                           | 114 +++++++
 registry/consul/utils_test.go                      | 226 ++++++++++++++
 registry/directory/directory.go                    |   6 +-
 registry/nacos/listener.go                         |   2 +-
 registry/protocol/protocol.go                      |  14 +-
 registry/zookeeper/listener_test.go                |  22 +-
 remoting/etcdv3/listener.go                        |   2 +-
 remoting/listener.go                               |   2 +-
 remoting/zookeeper/listener.go                     |  34 +-
 151 files changed, 2996 insertions(+), 766 deletions(-)
 create mode 100644 CHANGE.md
 create mode 100644 examples/consul/README.md
 copy examples/{helloworld/dubbo/go-client/app => consul/go-client}/client.go (77%)
 copy examples/{generic/go-client/profiles/test => consul/go-client/config}/client.yml (74%)
 copy examples/{helloworld/dubbo/go-server/profiles/test => consul/go-client/config}/log.yml (100%)
 copy common/proxy/proxy_factory.go => examples/consul/go-client/service.go (73%)
 copy examples/{helloworld/dubbo/go-server/profiles/test => consul/go-server/config}/log.yml (100%)
 copy examples/{helloworld/dubbo/go-server/profiles/release => consul/go-server/config}/server.yml (65%)
 copy examples/{helloworld/dubbo/go-server/app => consul/go-server}/server.go (89%)
 copy common/proxy/proxy_factory.go => examples/consul/go-server/service.go (72%)
 create mode 100644 examples/consul/java-client/.gitignore
 create mode 100644 examples/consul/java-client/pom.xml
 copy common/node.go => examples/consul/java-client/src/main/java/dubbo/DubboService.java (88%)
 create mode 100644 examples/consul/java-client/src/main/java/dubbo/client/Main.java
 create mode 100644 examples/consul/java-client/src/main/resources/log4j.properties
 create mode 100644 examples/consul/java-server/.gitignore
 create mode 100644 examples/consul/java-server/pom.xml
 create mode 100644 examples/consul/java-server/src/main/java/dubbo/DubboService.java
 create mode 100644 examples/consul/java-server/src/main/java/dubbo/server/Impl/DubboServiceImpl.java
 create mode 100644 examples/consul/java-server/src/main/java/dubbo/server/Main.java
 create mode 100644 examples/consul/java-server/src/main/resources/log4j.properties
 copy examples/{general/dubbo/go-server/app/server.go => hystrixfilter/dubbo/with-hystrix-go-client/app/client.go} (51%)
 create mode 100644 examples/hystrixfilter/dubbo/with-hystrix-go-client/app/example_fallback_filter.go
 copy examples/{general/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/app/user.go (98%)
 copy examples/{general/jsonrpc/go-server => hystrixfilter/dubbo/with-hystrix-go-client}/app/version.go (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/bin/load.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/common/app.properties (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/common/build.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/linux/dev.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/linux/release.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/linux/test.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/mac/dev.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/mac/release.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/mac/test.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/windows/dev.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/windows/release.sh (100%)
 copy examples/{helloworld/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/assembly/windows/test.sh (100%)
 copy examples/{general/dubbo/go-client/profiles/release => hystrixfilter/dubbo/with-hystrix-go-client/profiles/dev}/client.yml (56%)
 copy examples/{configcenter/zookeeper/dubbo/with-configcenter-go-client => hystrixfilter/dubbo/with-hystrix-go-client}/profiles/dev/log.yml (94%)
 copy examples/{general/dubbo/go-client => hystrixfilter/dubbo/with-hystrix-go-client}/profiles/release/client.yml (61%)
 copy examples/{configcenter/zookeeper/dubbo/with-configcenter-go-server => hystrixfilter/dubbo/with-hystrix-go-client}/profiles/release/log.yml (94%)
 copy examples/{general/dubbo/go-client/profiles/release => hystrixfilter/dubbo/with-hystrix-go-client/profiles/test}/client.yml (59%)
 copy examples/{configcenter/zookeeper/jsonrpc/with-configcenter-go-client => hystrixfilter/dubbo/with-hystrix-go-client}/profiles/test/log.yml (94%)
 create mode 100644 filter/impl/hystrix_filter.go
 create mode 100644 filter/impl/hystrix_filter_test.go
 rename protocol/{RpcStatus.go => rpc_status.go} (98%)
 create mode 100644 registry/consul/listener.go
 copy common/utils/net_test.go => registry/consul/listener_test.go (73%)
 create mode 100644 registry/consul/registry.go
 create mode 100644 registry/consul/registry_test.go
 create mode 100644 registry/consul/utils.go
 create mode 100644 registry/consul/utils_test.go


[dubbo-go] 01/01: Mod: merge conflict resolve

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 69bc3df31e04a4fefc3a2a169c0f0bc37c79fda3
Merge: 111e58c e5d1247
Author: vito.he <hx...@163.com>
AuthorDate: Wed Sep 11 18:54:18 2019 +0800

    Mod: merge conflict resolve

 .gitignore                                         |  10 +-
 CHANGE.md                                          |  26 ++
 LICENSE                                            |   1 -
 cluster/cluster_impl/failback_cluster_invoker.go   |  12 +-
 cluster/cluster_impl/failover_cluster_invoker.go   |  18 +-
 cluster/cluster_impl/failover_cluster_test.go      |   8 +-
 cluster/loadbalance/least_active.go                |   1 -
 cluster/loadbalance/round_robin_test.go            |  17 +
 common/constant/default.go                         |  16 +-
 common/extension/router_factory.go                 |  17 +
 common/proxy/proxy_factory/default.go              |  94 +++++-
 common/url.go                                      |   4 +
 config/base_config_test.go                         |  20 +-
 config/consumer_config.go                          |   1 +
 config/method_config.go                            |   2 +-
 config/provider_config.go                          |   1 +
 config/reference_config.go                         |   6 +-
 config/reference_config_test.go                    |   9 +-
 config/service_config.go                           |   6 +-
 config/service_config_test.go                      |   6 +-
 config/testdata/consumer_config.yml                |   2 +-
 .../testdata/consumer_config_with_configcenter.yml |   2 +-
 config_center/configuration_parser.go              |  18 ++
 config_center/configuration_parser_test.go         |  18 ++
 .../with-configcenter-go-client/app/client.go      |   2 +-
 .../profiles/dev/client.yml                        |   2 +-
 .../profiles/release/client.yml                    |   2 +-
 .../profiles/test/client.yml                       |   2 +-
 .../with-configcenter-go-server/app/server.go      |   2 +-
 .../profiles/dev/server.yml                        |   2 +-
 .../profiles/release/server.yml                    |   2 +-
 .../profiles/test/server.yml                       |   2 +-
 .../with-configcenter-go-client/app/client.go      |   2 +-
 .../with-configcenter-go-server/app/server.go      |   2 +-
 examples/consul/README.md                          |  44 +++
 .../app/server.go => consul/go-client/client.go}   |  52 +---
 .../dev => consul/go-client/config}/client.yml     |  35 +--
 examples/consul/go-client/config/log.yml           |  28 ++
 .../consul/go-client/service.go                    |  28 +-
 examples/consul/go-server/config/log.yml           |  28 ++
 .../dev => consul/go-server/config}/server.yml     |  35 +--
 .../go-server/app => consul/go-server}/server.go   |  19 +-
 .../consul/go-server/service.go                    |  28 +-
 examples/consul/java-client/.gitignore             |   7 +
 examples/consul/java-client/pom.xml                |  88 ++++++
 .../src/main/java/dubbo/DubboService.java          |  60 ++--
 .../src/main/java/dubbo/client/Main.java           |  43 +++
 .../src/main/resources/log4j.properties            |   4 +
 examples/consul/java-server/.gitignore             |   7 +
 examples/consul/java-server/pom.xml                |  89 ++++++
 .../src/main/java/dubbo/DubboService.java          |   5 +
 .../java/dubbo/server/Impl/DubboServiceImpl.java   |  11 +
 .../src/main/java/dubbo/server/Main.java           |  53 ++++
 .../src/main/resources/log4j.properties            |   4 +
 examples/general/dubbo/go-client/app/client.go     |  30 +-
 .../dubbo/go-client/profiles/dev/client.yml        |   6 +-
 .../dubbo/go-client/profiles/release/client.yml    |   6 +-
 .../dubbo/go-client/profiles/test/client.yml       |   6 +-
 examples/general/dubbo/go-server/app/server.go     |   2 +-
 .../dubbo/go-server/profiles/dev/server.yml        |   6 +-
 .../dubbo/go-server/profiles/release/server.yml    |   6 +-
 .../dubbo/go-server/profiles/test/server.yml       |   6 +-
 .../main/java/com/ikurento/user/UserProvider.java  |   1 +
 .../resources/META-INF/spring/dubbo.consumer.xml   |   2 +
 .../src/main/resources/META-INF/spring/service.xml |   1 +
 examples/general/dubbo/java-server/pom.xml         |   1 -
 .../java/com/ikurento/user/UserProviderImpl.java   |   1 -
 examples/general/jsonrpc/go-client/app/client.go   |   2 +-
 .../jsonrpc/go-client/profiles/dev/client.yml      |   6 +-
 examples/general/jsonrpc/go-server/app/server.go   |   2 +-
 .../jsonrpc/go-server/profiles/dev/server.yml      |   6 +-
 examples/generic/go-client/app/client.go           |   4 -
 examples/generic/go-client/app/user.go             |  17 -
 examples/generic/go-client/assembly/bin/load.sh    |   1 -
 .../go-client/assembly/common/app.properties       |   1 +
 .../generic/go-client/assembly/common/build.sh     |   1 +
 examples/generic/go-client/assembly/linux/dev.sh   |   1 -
 examples/generic/go-client/assembly/mac/dev.sh     |   1 -
 examples/generic/go-client/assembly/mac/test.sh    |   1 +
 examples/generic/java-server/script/debug.sh       |   1 -
 .../resources/META-INF/spring/dubbo.provider.xml   |   1 +
 .../dubbo/go-client/assembly/bin/load.sh           |   1 -
 .../dubbo/go-client/assembly/common/app.properties |   1 +
 .../dubbo/go-client/assembly/common/build.sh       |   1 +
 .../dubbo/go-client/assembly/linux/release.sh      |   1 -
 .../dubbo/go-client/assembly/linux/test.sh         |   1 -
 .../dubbo/go-client/profiles/dev/client.yml        |   2 +-
 examples/helloworld/dubbo/go-server/app/server.go  |   2 +-
 .../dubbo/go-server/assembly/bin/load.sh           |   1 -
 .../dubbo/go-server/profiles/dev/server.yml        |   2 +-
 .../java-server/src/main/assembly/assembly.xml     |   1 +
 .../resources/META-INF/spring/dubbo.provider.xml   |   1 +
 .../dubbo/with-hystrix-go-client/app/client.go}    |  86 ++---
 .../app/example_fallback_filter.go                 |  80 +++++
 .../dubbo/with-hystrix-go-client/app/user.go       | 149 +++++++++
 .../dubbo/with-hystrix-go-client/app/version.go    |  24 +-
 .../with-hystrix-go-client}/assembly/bin/load.sh   |   0
 .../assembly/common/app.properties                 |   0
 .../assembly/common/build.sh                       |   0
 .../with-hystrix-go-client}/assembly/linux/dev.sh  |   0
 .../assembly/linux/release.sh                      |   0
 .../with-hystrix-go-client}/assembly/linux/test.sh |   0
 .../with-hystrix-go-client}/assembly/mac/dev.sh    |   0
 .../assembly/mac}/release.sh                       |   3 +-
 .../with-hystrix-go-client}/assembly/mac/test.sh   |   0
 .../assembly/windows}/dev.sh                       |   2 -
 .../assembly/windows}/release.sh                   |   3 +-
 .../assembly/windows}/test.sh                      |   3 +-
 .../profiles/dev}/client.yml                       |  57 ++--
 .../with-hystrix-go-client/profiles/dev/log.yml    |  28 ++
 .../profiles/release/client.yml                    |  53 ++--
 .../profiles/release/log.yml                       |  28 ++
 .../profiles/test}/client.yml                      |  56 ++--
 .../with-hystrix-go-client/profiles/test/log.yml   |  28 ++
 filter/impl/active_filter.go                       |   1 -
 filter/impl/echo_filter.go                         |   3 +-
 filter/impl/generic_filter.go                      |  18 +-
 filter/impl/generic_filter_test.go                 |  32 ++
 filter/impl/hystrix_filter.go                      | 269 ++++++++++++++++
 filter/impl/hystrix_filter_test.go                 | 217 +++++++++++++
 go.mod                                             |   9 +-
 go.sum                                             | 346 ++++++++++++++++++++-
 protocol/dubbo/client.go                           |  65 ++--
 protocol/dubbo/client_test.go                      |  40 ++-
 protocol/dubbo/codec.go                            |  12 +-
 protocol/dubbo/codec_test.go                       |   4 +-
 protocol/dubbo/dubbo_invoker.go                    |  10 +-
 protocol/dubbo/dubbo_invoker_test.go               |   7 +-
 protocol/dubbo/dubbo_protocol.go                   |   5 +-
 protocol/dubbo/dubbo_protocol_test.go              |   2 +-
 protocol/dubbo/listener.go                         | 132 ++------
 protocol/dubbo/pool.go                             |  70 +++--
 protocol/dubbo/readwriter.go                       |  18 +-
 protocol/jsonrpc/http_test.go                      |   5 +-
 protocol/jsonrpc/jsonrpc_invoker_test.go           |   5 +-
 protocol/jsonrpc/server.go                         | 105 +------
 .../protocol_filter_wrapper_test.go                |  34 +-
 protocol/{RpcStatus.go => rpc_status.go}           |   1 -
 registry/consul/listener.go                        | 206 ++++++++++++
 .../consul/listener_test.go                        |  27 +-
 registry/consul/registry.go                        | 143 +++++++++
 registry/consul/registry_test.go                   |  57 ++++
 registry/consul/utils.go                           | 114 +++++++
 registry/consul/utils_test.go                      | 226 ++++++++++++++
 registry/directory/directory.go                    |   6 +-
 registry/nacos/listener.go                         |   2 +-
 registry/protocol/protocol.go                      |  14 +-
 registry/zookeeper/listener_test.go                |  22 +-
 remoting/etcdv3/listener.go                        |   2 +-
 remoting/listener.go                               |   2 +-
 remoting/zookeeper/listener.go                     |  34 +-
 151 files changed, 3220 insertions(+), 781 deletions(-)

diff --cc protocol/dubbo/readwriter.go
index 137f3d4,eb5cbe7..a57c29f
--- a/protocol/dubbo/readwriter.go
+++ b/protocol/dubbo/readwriter.go
@@@ -138,18 -138,14 +138,18 @@@ func (p *RpcServerPackageHandler) Read(
  				args = req[5].([]interface{})
  			}
  			if req[6] != nil {
- 				attachments = req[6].(map[interface{}]interface{})
+ 				attachments = req[6].(map[string]string)
  			}
- 			if pkg.Service.Path == "" && attachments[constant.PATH_KEY] != nil {
- 				pkg.Service.Path = attachments[constant.PATH_KEY].(string)
 -			pkg.Service.Interface = attachments[constant.INTERFACE_KEY]
 -			if len(pkg.Service.Path) == 0 && len(attachments[constant.PATH_KEY]) != 0 {
++			if pkg.Service.Path == "" && len(attachments[constant.PATH_KEY]) > 0 {
+ 				pkg.Service.Path = attachments[constant.PATH_KEY]
  			}
 -			if len(attachments[constant.GROUP_KEY]) != 0 {
 +			if _, ok := attachments[constant.INTERFACE_KEY]; ok {
- 				pkg.Service.Interface = attachments[constant.INTERFACE_KEY].(string)
++				pkg.Service.Interface = attachments[constant.INTERFACE_KEY]
 +			} else {
 +				pkg.Service.Interface = pkg.Service.Path
 +			}
- 			if attachments[constant.GROUP_KEY] != nil {
- 				pkg.Service.Group = attachments[constant.GROUP_KEY].(string)
++			if len(attachments[constant.GROUP_KEY]) > 0 {
+ 				pkg.Service.Group = attachments[constant.GROUP_KEY]
  			}
  			pkg.Body = map[string]interface{}{
  				"dubboVersion": dubboVersion,