You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by gi...@apache.org on 2022/07/08 03:02:37 UTC
[dubbo-website] branch asf-site updated: deploy: ba485512f5b7a4c651e9c249d99fd466a1e31be0
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 6628d6eaa8 deploy: ba485512f5b7a4c651e9c249d99fd466a1e31be0
6628d6eaa8 is described below
commit 6628d6eaa883ae2e53c581da53b5dcef8d4b1e45
Author: AlbumenJ <Al...@users.noreply.github.com>
AuthorDate: Fri Jul 8 03:02:23 2022 +0000
deploy: ba485512f5b7a4c651e9c249d99fd466a1e31be0
---
.../index.html | 4 +-
.../the-gsocgoogle-summer-of-code-2018/index.html | 4 +-
.../index.html | 4 +-
.../index.html | 2 +-
.../index.html | 2 +-
.../2018/07/01/your-first-dubbo-filter/index.html | 8 +-
.../2018/07/12/tracking-with-pinpoint/index.html | 8 +-
.../index.html | 8 +-
.../index.html | 2 +-
en/blog/2018/08/07/dubbo-101/index.html | 8 +-
.../2018/08/07/use-annotations-in-dubbo/index.html | 8 +-
.../2018/08/07/using-zookeeper-in-dubbo/index.html | 8 +-
en/blog/2018/08/10/dubbos-load-balance/index.html | 8 +-
.../index.html | 8 +-
.../index.html | 8 +-
.../asynchronous-invoke/index.html | 8 +-
.../2018/08/14/generic-invoke-of-dubbo/index.html | 8 +-
.../index.html | 8 +-
.../index.html | 8 +-
.../08/14/native-image-using-graalvm/index.html | 8 +-
.../index.html | 8 +-
.../index.html | 2 +-
.../index.html | 8 +-
.../02/how-to-prepare-an-apache-release/index.html | 4 +-
.../30/integrate-dubbo-with-kubernetes/index.html | 8 +-
.../introduction-to-the-dubbo-protocol/index.html | 6 +-
.../index.html | 6 +-
.../index.html | 2 +-
.../index.html | 8 +-
.../index.html | 8 +-
.../index.html | 8 +-
.../index.html | 8 +-
.../index.html | 8 +-
.../index.html | 8 +-
en/blog/2019/08/26/service-test/index.html | 8 +-
en/blog/2020/05/18/past-releases/index.html | 4 +-
en/blog/2021/07/02/3.0.1-release-note/index.html | 4 +-
en/blog/2021/08/18/3.0.2-release-note/index.html | 4 +-
en/blog/2021/08/23/3.0.2.1-release-note/index.html | 4 +-
en/blog/2021/09/20/2.7.14-release-note/index.html | 4 +-
.../index.html | 6 +-
.../index.html | 6 +-
.../committer/apache-dubbo-page_dev/index.html | 4 +-
.../committer/label-an-issue-guide_dev/index.html | 4 +-
.../committer/new-committer-guide_dev/index.html | 4 +-
.../committer/release-guide_dev/index.html | 4 +-
.../committer/website-guide_dev/index.html | 2 +-
.../contributor/become-a-committer_dev/index.html | 4 +-
.../contributor/cla-signing-guide_dev/index.html | 4 +-
.../dubbo-extension-guide_dev/index.html | 4 +-
.../mailing-list-subscription-guide_dev/index.html | 4 +-
.../new-contributor-guide_dev/index.html | 4 +-
.../reporting-security-issues_dev/index.html | 4 +-
.../software-donation-guide_dev/index.html | 4 +-
.../contributor/test-coverage-guide_dev/index.html | 2 +-
en/docs/notices/security/index.html | 2 +-
.../v2.7/admin/install/admin-console/index.html | 4 +-
.../v2.7/admin/install/consumer-demo/index.html | 4 +-
.../v2.7/admin/install/monitor-center/index.html | 2 +-
.../v2.7/admin/install/provider-demo/index.html | 4 +-
en/docs/v2.7/admin/install/redis/index.html | 4 +-
en/docs/v2.7/admin/install/zookeeper/index.html | 4 +-
en/docs/v2.7/admin/ops/apidocs/index.html | 4 +-
en/docs/v2.7/admin/ops/functions/index.html | 4 +-
en/docs/v2.7/admin/ops/governance/index.html | 4 +-
en/docs/v2.7/admin/ops/introduction/index.html | 4 +-
en/docs/v2.7/admin/ops/pinpoint/index.html | 2 +-
en/docs/v2.7/admin/ops/search/index.html | 4 +-
en/docs/v2.7/admin/ops/skywalking/index.html | 4 +-
en/docs/v2.7/admin/ops/test/index.html | 2 +-
en/docs/v2.7/dev/build/index.html | 2 +-
en/docs/v2.7/dev/checklist/index.html | 2 +-
en/docs/v2.7/dev/code-smell/index.html | 2 +-
en/docs/v2.7/dev/coding/index.html | 2 +-
en/docs/v2.7/dev/contract/index.html | 2 +-
en/docs/v2.7/dev/design/index.html | 2 +-
en/docs/v2.7/dev/implementation/index.html | 2 +-
en/docs/v2.7/dev/impls/cache/index.html | 4 +-
en/docs/v2.7/dev/impls/cluster/index.html | 4 +-
en/docs/v2.7/dev/impls/compiler/index.html | 4 +-
en/docs/v2.7/dev/impls/config-center/index.html | 4 +-
en/docs/v2.7/dev/impls/container/index.html | 4 +-
en/docs/v2.7/dev/impls/dispatcher/index.html | 4 +-
en/docs/v2.7/dev/impls/exchanger/index.html | 4 +-
.../v2.7/dev/impls/exporter-listener/index.html | 4 +-
.../v2.7/dev/impls/extension-factory/index.html | 4 +-
en/docs/v2.7/dev/impls/filter/index.html | 4 +-
en/docs/v2.7/dev/impls/invoker-listener/index.html | 4 +-
en/docs/v2.7/dev/impls/load-balance/index.html | 4 +-
en/docs/v2.7/dev/impls/logger-adapter/index.html | 4 +-
en/docs/v2.7/dev/impls/merger/index.html | 4 +-
en/docs/v2.7/dev/impls/monitor/index.html | 4 +-
en/docs/v2.7/dev/impls/networker/index.html | 4 +-
en/docs/v2.7/dev/impls/page/index.html | 4 +-
en/docs/v2.7/dev/impls/protocol/index.html | 4 +-
en/docs/v2.7/dev/impls/proxy-factory/index.html | 4 +-
en/docs/v2.7/dev/impls/registry/index.html | 4 +-
en/docs/v2.7/dev/impls/remoting/index.html | 4 +-
en/docs/v2.7/dev/impls/router/index.html | 4 +-
en/docs/v2.7/dev/impls/serialize/index.html | 4 +-
en/docs/v2.7/dev/impls/status-checker/index.html | 4 +-
en/docs/v2.7/dev/impls/telnet-handler/index.html | 4 +-
en/docs/v2.7/dev/impls/threadpool/index.html | 4 +-
en/docs/v2.7/dev/impls/validation/index.html | 4 +-
en/docs/v2.7/dev/principals/code-detail/index.html | 4 +-
.../v2.7/dev/principals/configuration/index.html | 4 +-
en/docs/v2.7/dev/principals/dummy/index.html | 4 +-
.../v2.7/dev/principals/expansibility/index.html | 4 +-
en/docs/v2.7/dev/principals/extension/index.html | 4 +-
.../dev/principals/general-knowledge/index.html | 4 +-
en/docs/v2.7/dev/principals/robustness/index.html | 4 +-
en/docs/v2.7/dev/release/index.html | 2 +-
en/docs/v2.7/dev/spi/index.html | 2 +-
en/docs/v2.7/dev/tck/index.html | 2 +-
en/docs/v2.7/user/benchmark-tool/index.html | 2 +-
en/docs/v2.7/user/best-practice/index.html | 2 +-
en/docs/v2.7/user/capacity-plan/index.html | 2 +-
.../v2.7/user/configuration/annotation/index.html | 2 +-
en/docs/v2.7/user/configuration/api/index.html | 2 +-
.../configuration-load-process/index.html | 2 +-
.../v2.7/user/configuration/properties/index.html | 2 +-
en/docs/v2.7/user/configuration/xml/index.html | 2 +-
en/docs/v2.7/user/coveragence/index.html | 2 +-
en/docs/v2.7/user/dependencies/index.html | 2 +-
en/docs/v2.7/user/examples/accesslog/index.html | 2 +-
en/docs/v2.7/user/examples/async-call/index.html | 2 +-
.../examples/async-execute-on-provider/index.html | 2 +-
en/docs/v2.7/user/examples/attachment/index.html | 2 +-
.../examples/broadcast-resp-collect/index.html | 2 +-
.../user/examples/callback-parameter/index.html | 2 +-
.../user/examples/concurrency-control/index.html | 2 +-
.../user/examples/config-connections/index.html | 2 +-
en/docs/v2.7/user/examples/config-rule/index.html | 2 +-
en/docs/v2.7/user/examples/context/index.html | 2 +-
.../v2.7/user/examples/delay-publish/index.html | 2 +-
.../examples/distributed-transaction/index.html | 2 +-
en/docs/v2.7/user/examples/dump/index.html | 2 +-
en/docs/v2.7/user/examples/echo-service/index.html | 2 +-
.../v2.7/user/examples/events-notify/index.html | 2 +-
.../v2.7/user/examples/explicit-target/index.html | 2 +-
.../examples/fault-tolerent-strategy/index.html | 2 +-
.../examples/generic-invoke-with-json/index.html | 2 +-
.../user/examples/generic-reference/index.html | 2 +-
.../v2.7/user/examples/generic-service/index.html | 2 +-
.../user/examples/graceful-shutdown/index.html | 2 +-
en/docs/v2.7/user/examples/group-merger/index.html | 2 +-
.../v2.7/user/examples/hostname-binding/index.html | 2 +-
.../examples/invoke-with-specified-ip/index.html | 2 +-
en/docs/v2.7/user/examples/lazy-connect/index.html | 2 +-
en/docs/v2.7/user/examples/loadbalance/index.html | 2 +-
en/docs/v2.7/user/examples/local-call/index.html | 2 +-
en/docs/v2.7/user/examples/local-mock/index.html | 2 +-
en/docs/v2.7/user/examples/local-stub/index.html | 2 +-
.../v2.7/user/examples/logger-strategy/index.html | 2 +-
.../user/examples/msgpack-serialization/index.html | 2 +-
.../v2.7/user/examples/multi-protocols/index.html | 2 +-
.../v2.7/user/examples/multi-registry/index.html | 2 +-
.../v2.7/user/examples/multi-versions/index.html | 2 +-
en/docs/v2.7/user/examples/netty4/index.html | 2 +-
.../user/examples/parameter-validation/index.html | 2 +-
.../v2.7/user/examples/preflight-check/index.html | 2 +-
.../examples/provider-timeout-release/index.html | 2 +-
.../examples/reference-config-cache/index.html | 2 +-
.../v2.7/user/examples/registry-only/index.html | 2 +-
en/docs/v2.7/user/examples/result-cache/index.html | 2 +-
en/docs/v2.7/user/examples/routing-rule/index.html | 2 +-
.../v2.7/user/examples/serialization/index.html | 2 +-
.../user/examples/service-container/index.html | 2 +-
.../user/examples/service-downgrade/index.html | 2 +-
.../v2.7/user/examples/service-group/index.html | 2 +-
.../v2.7/user/examples/static-service/index.html | 2 +-
en/docs/v2.7/user/examples/stickiness/index.html | 2 +-
.../v2.7/user/examples/subscribe-only/index.html | 2 +-
en/docs/v2.7/user/examples/thread-model/index.html | 2 +-
.../user/examples/token-authorization/index.html | 2 +-
.../user/languages/erlang/quick-start/index.html | 2 +-
.../user/languages/erlang/reference/index.html | 2 +-
.../user/languages/erlang/serialization/index.html | 2 +-
.../v2.7/user/languages/erlang/service/index.html | 2 +-
en/docs/v2.7/user/maturity/index.html | 2 +-
en/docs/v2.7/user/perf-test/index.html | 2 +-
en/docs/v2.7/user/preface/architecture/index.html | 2 +-
en/docs/v2.7/user/preface/background/index.html | 2 +-
en/docs/v2.7/user/preface/requirements/index.html | 2 +-
en/docs/v2.7/user/preface/usage/index.html | 2 +-
en/docs/v2.7/user/quick-start/index.html | 2 +-
en/docs/v2.7/user/recommend/index.html | 2 +-
en/docs/v2.7/user/references/api/index.html | 2 +-
en/docs/v2.7/user/references/maven/index.html | 2 +-
en/docs/v2.7/user/references/metadata/index.html | 2 +-
.../v2.7/user/references/protocol/dubbo/index.html | 2 +-
.../user/references/protocol/hessian/index.html | 2 +-
.../v2.7/user/references/protocol/http/index.html | 2 +-
.../user/references/protocol/memcached/index.html | 2 +-
.../v2.7/user/references/protocol/redis/index.html | 2 +-
.../v2.7/user/references/protocol/rest/index.html | 2 +-
.../v2.7/user/references/protocol/rmi/index.html | 2 +-
.../user/references/protocol/thrift/index.html | 2 +-
.../user/references/protocol/webservice/index.html | 2 +-
en/docs/v2.7/user/references/qos/index.html | 2 +-
.../user/references/registry/multicast/index.html | 2 +-
.../v2.7/user/references/registry/nacos/index.html | 2 +-
.../v2.7/user/references/registry/redis/index.html | 2 +-
.../user/references/registry/simple/index.html | 2 +-
.../user/references/registry/zookeeper/index.html | 2 +-
en/docs/v2.7/user/references/telnet/index.html | 2 +-
.../references/xml/dubbo-application/index.html | 2 +-
.../user/references/xml/dubbo-argument/index.html | 2 +-
.../references/xml/dubbo-config-center/index.html | 2 +-
.../user/references/xml/dubbo-consumer/index.html | 2 +-
.../user/references/xml/dubbo-method/index.html | 2 +-
.../user/references/xml/dubbo-module/index.html | 2 +-
.../user/references/xml/dubbo-monitor/index.html | 2 +-
.../user/references/xml/dubbo-parameter/index.html | 2 +-
.../user/references/xml/dubbo-protocol/index.html | 2 +-
.../user/references/xml/dubbo-provider/index.html | 2 +-
.../user/references/xml/dubbo-reference/index.html | 2 +-
.../user/references/xml/dubbo-registry/index.html | 2 +-
.../user/references/xml/dubbo-service/index.html | 2 +-
en/docs/v2.7/user/rest/index.html | 2 +-
en/docs/v2.7/user/simple-monitor/index.html | 2 +-
.../v3.0/languages/erlang/quick-start/index.html | 2 +-
en/docs/v3.0/languages/erlang/reference/index.html | 2 +-
.../v3.0/languages/erlang/serialization/index.html | 2 +-
en/docs/v3.0/languages/erlang/service/index.html | 2 +-
.../v3.0/languages/golang/go-specific/index.html | 2 +-
.../v3.0/languages/golang/quick-start/index.html | 4 +-
.../references/graalvm/support-graalvm/index.html | 4 +-
en/docs/v3.0/references/lifecycle/brief/index.html | 2 +-
.../v3.0/references/lifecycle/liveness/index.html | 4 +-
.../v3.0/references/lifecycle/readiness/index.html | 4 +-
.../v3.0/references/lifecycle/startup/index.html | 4 +-
.../committer/apache-dubbo-page_dev/index.html | 4 +-
.../committer/label-an-issue-guide_dev/index.html | 4 +-
.../committer/new-committer-guide_dev/index.html | 4 +-
.../committer/release-guide_dev/index.html | 4 +-
.../committer/website-guide_dev/index.html | 2 +-
.../contributor/become-a-committer_dev/index.html | 4 +-
.../contributor/cla-signing-guide_dev/index.html | 4 +-
.../dubbo-extension-guide_dev/index.html | 4 +-
.../mailing-list-subscription-guide_dev/index.html | 4 +-
.../new-contributor-guide_dev/index.html | 4 +-
.../reporting-security-issues_dev/index.html | 4 +-
.../software-donation-guide_dev/index.html | 4 +-
.../contributor/test-coverage-guide_dev/index.html | 2 +-
en/latest/facade-docs/how/quick-start/index.html | 4 +-
.../facade-docs/what/core-concepts/index.html | 2 +-
en/latest/facade-docs/what/ecosystem/index.html | 2 +-
en/latest/facade-docs/what/overview/index.html | 2 +-
en/latest/facade-docs/why/advantage/index.html | 2 +-
.../concepts-and-architecture/users/index.html | 2 +-
.../java-sdk/v2.x/introduction/users/index.html | 2 +-
.../v2.x/quick-start/quick-start/index.html | 2 +-
.../concepts-and-architecture/users/index.html | 2 +-
.../java-sdk/v3.x/introduction/users/index.html | 2 +-
en/latest/notices/security/index.html | 2 +-
en/sitemap.xml | 2 +-
imgs/v3/mesh/dubbo-mesh-arc.png | Bin 0 -> 25742 bytes
sitemap.xml | 2 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 4 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 4 +-
.../index.html" | 8 +-
.../index.html" | 10 +-
.../index.html" | 8 +-
.../index.html" | 10 +-
.../index.html" | 8 +-
.../index.html" | 10 +-
.../index.html" | 4 +-
zh/blog/2018/08/07/dubbo-101/index.html | 8 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 10 +-
.../index.html" | 10 +-
.../index.html" | 8 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 10 +-
.../index.html" | 10 +-
.../index.html" | 10 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 4 +-
.../index.html" | 8 +-
.../index.html" | 10 +-
.../index.html" | 4 +-
.../index.html" | 8 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 4 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../01/07/\346\265\205\350\260\210-rpc/index.html" | 8 +-
.../index.html" | 10 +-
.../26/\351\201\207\350\247\201dubbo/index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 10 +-
.../index.html" | 8 +-
zh/blog/2019/08/26/service-test/index.html | 8 +-
.../index.html" | 6 +-
.../index.html" | 10 +-
.../index.html" | 6 +-
.../2-grpc-\345\222\214-protobuf/index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 4 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 4 +-
.../index.html" | 4 +-
.../index.html" | 4 +-
.../index.html" | 4 +-
.../index.html" | 4 +-
.../index.html" | 6 +-
.../index.html" | 4 +-
.../index.html" | 4 +-
.../index.html" | 4 +-
.../index.html" | 6 +-
.../index.html" | 4 +-
zh/blog/2021/01/12/dubbo-go-1.4.0/index.html | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
zh/blog/2021/01/14/dubbo-go-1.5.0/index.html | 6 +-
zh/blog/2021/01/14/dubbo-go-1.5.1/index.html | 6 +-
.../2021/01/14/dubbo-go-hessian2-v1.6.0/index.html | 6 +-
.../2021/01/14/dubbo-go-hessian2-v1.7.0/index.html | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 10 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 8 +-
.../index.html" | 8 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 6 +-
.../index.html" | 10 +-
.../index.html" | 8 +-
.../index.html" | 102 +
zh/blog/golang/index.html | 25 +
zh/{ => blog/golang}/index.xml | 3825 +---
zh/blog/golang/page/1/index.html | 1 +
zh/blog/golang/page/2/index.html | 30 +
zh/blog/golang/page/3/index.html | 18 +
zh/blog/index.html | 15 +-
zh/blog/index.xml | 709 +-
zh/blog/integration/index.html | 26 +
zh/blog/integration/index.xml | 3214 ++++
zh/blog/integration/page/1/index.html | 1 +
zh/blog/integration/page/2/index.html | 15 +
zh/blog/java/codeanalysis/index.html | 15 +
zh/blog/java/codeanalysis/index.xml | 526 +
zh/blog/java/codeanalysis/page/1/index.html | 1 +
zh/blog/java/demos/index.html | 23 +
zh/blog/{news => java/demos}/index.xml | 18291 +++++++++----------
zh/blog/java/demos/page/1/index.html | 1 +
zh/blog/java/demos/page/2/index.html | 23 +
zh/blog/java/demos/page/3/index.html | 26 +
zh/blog/java/demos/page/4/index.html | 27 +
zh/blog/java/demos/page/5/index.html | 19 +
zh/blog/java/index.html | 10 +
zh/blog/java/index.xml | 1 +
zh/blog/java/page/1/index.html | 1 +
zh/blog/news/index.html | 41 +-
zh/blog/news/index.xml | 10819 +----------
zh/blog/news/page/2/index.html | 25 +-
zh/blog/others/index.html | 11 +
zh/blog/others/index.xml | 201 +
zh/blog/others/page/1/index.html | 1 +
zh/blog/page/10/index.html | 24 +-
zh/blog/page/11/index.html | 19 +-
zh/blog/page/12/index.html | 6 +-
zh/blog/page/2/index.html | 20 +-
zh/blog/page/3/index.html | 19 +-
zh/blog/page/4/index.html | 23 +-
zh/blog/page/5/index.html | 12 +-
zh/blog/page/6/index.html | 19 +-
zh/blog/page/7/index.html | 21 +-
zh/blog/page/8/index.html | 23 +-
zh/blog/page/9/index.html | 25 +-
zh/blog/releases/index.html | 2 +-
zh/blog/releases/page/2/index.html | 2 +-
.../committer/apache-dubbo-page_dev/index.html | 4 +-
.../committer/label-an-issue-guide_dev/index.html | 4 +-
.../committer/new-committer-guide_dev/index.html | 4 +-
.../committer/release-guide_dev/index.html | 4 +-
.../committer/website-guide_dev/index.html | 2 +-
.../contributor/become-a-committer_dev/index.html | 4 +-
.../contributor/cla-signing-guide_dev/index.html | 4 +-
.../dubbo-extension-guide_dev/index.html | 4 +-
.../mailing-list-subscription-guide_dev/index.html | 4 +-
.../new-contributor-guide_dev/index.html | 4 +-
.../reporting-security-issues_dev/index.html | 4 +-
.../software-donation-guide_dev/index.html | 4 +-
.../contributor/test-coverage-guide_dev/index.html | 2 +-
zh/docs/advanced/accesslog/index.html | 2 +-
zh/docs/advanced/async-call/index.html | 2 +-
.../advanced/async-execute-on-provider/index.html | 2 +-
zh/docs/advanced/attachment/index.html | 2 +-
zh/docs/advanced/auth/index.html | 4 +-
zh/docs/advanced/callback-parameter/index.html | 2 +-
zh/docs/advanced/concurrency-control/index.html | 2 +-
zh/docs/advanced/config-connections/index.html | 2 +-
zh/docs/advanced/config-rule-deprecated/index.html | 2 +-
zh/docs/advanced/config-rule/index.html | 2 +-
zh/docs/advanced/consumer-threadpool/index.html | 2 +-
zh/docs/advanced/context/index.html | 2 +-
zh/docs/advanced/delay-publish/index.html | 2 +-
.../advanced/distributed-transaction/index.html | 2 +-
zh/docs/advanced/dump/index.html | 2 +-
zh/docs/advanced/echo-service/index.html | 2 +-
zh/docs/advanced/events-notify/index.html | 2 +-
zh/docs/advanced/explicit-target/index.html | 2 +-
.../advanced/fault-tolerent-strategy/index.html | 2 +-
zh/docs/advanced/generic-reference/index.html | 2 +-
zh/docs/advanced/generic-service/index.html | 2 +-
zh/docs/advanced/graceful-shutdown/index.html | 2 +-
zh/docs/advanced/group-merger/index.html | 2 +-
zh/docs/advanced/hostname-binding/index.html | 2 +-
zh/docs/advanced/lazy-connect/index.html | 2 +-
zh/docs/advanced/loadbalance/index.html | 2 +-
zh/docs/advanced/local-call/index.html | 2 +-
zh/docs/advanced/local-mock/index.html | 2 +-
zh/docs/advanced/local-stub/index.html | 2 +-
zh/docs/advanced/logger-strategy/index.html | 2 +-
zh/docs/advanced/migration-invoker/index.html | 2 +-
zh/docs/advanced/multi-protocols/index.html | 2 +-
zh/docs/advanced/multi-registry/index.html | 2 +-
zh/docs/advanced/multi-versions/index.html | 2 +-
zh/docs/advanced/netty4/index.html | 2 +-
zh/docs/advanced/parameter-validation/index.html | 2 +-
zh/docs/advanced/pb-generic-reference/index.html | 2 +-
zh/docs/advanced/preflight-check/index.html | 2 +-
zh/docs/advanced/protobuf-idl/index.html | 2 +-
zh/docs/advanced/protobufinterface/index.html | 2 +-
zh/docs/advanced/reference-config-cache/index.html | 2 +-
zh/docs/advanced/registry-only/index.html | 2 +-
zh/docs/advanced/result-cache/index.html | 2 +-
.../advanced/routing-rule-deprecated/index.html | 2 +-
zh/docs/advanced/routing-rule/index.html | 2 +-
zh/docs/advanced/serialization-security/index.html | 2 +-
zh/docs/advanced/serialization/index.html | 2 +-
zh/docs/advanced/service-container/index.html | 2 +-
zh/docs/advanced/service-downgrade/index.html | 2 +-
zh/docs/advanced/service-group/index.html | 2 +-
zh/docs/advanced/set-host/index.html | 2 +-
zh/docs/advanced/simplify-registry-data/index.html | 2 +-
zh/docs/advanced/static-service/index.html | 2 +-
zh/docs/advanced/stickiness/index.html | 2 +-
zh/docs/advanced/subscribe-only/index.html | 2 +-
zh/docs/advanced/thread-model/index.html | 2 +-
zh/docs/advanced/tls/index.html | 2 +-
zh/docs/advanced/token-authorization/index.html | 2 +-
zh/docs/concepts/configuration/index.html | 2 +-
zh/docs/concepts/extensibility/index.html | 2 +-
.../registry-configcenter-metadata/index.html | 2 +-
zh/docs/concepts/rpc-protocol/index.html | 2 +-
zh/docs/concepts/service-discovery/index.html | 2 +-
zh/docs/concepts/traffic-management/index.html | 2 +-
zh/docs/examples/configuration-override/index.html | 2 +-
.../routing/ab-testing-deployment/index.html | 2 +-
.../routing/blue-green-deployment/index.html | 2 +-
.../examples/routing/canary-deployment/index.html | 2 +-
.../routing/demo-rule-deployment/index.html | 2 +-
.../routing/dynamic-rule-deployment/index.html | 2 +-
.../routing/weight-rule-deployment/index.html | 2 +-
zh/docs/examples/service-discovery/index.html | 2 +-
zh/docs/introduction/index.html | 2 +-
zh/docs/languages/erlang/quick-start/index.html | 2 +-
zh/docs/languages/erlang/reference/index.html | 2 +-
zh/docs/languages/erlang/serialization/index.html | 2 +-
zh/docs/languages/erlang/service/index.html | 2 +-
.../dubbo-go-1.5/configuration/client/index.html | 2 +-
.../dubbo-go-1.5/configuration/provider/index.html | 2 +-
.../golang/dubbo-go-1.5/quick-start/index.html | 2 +-
.../concept/app_and_interface/index.html | 2 +-
.../dubbo-go-3.0/concept/configuration/index.html | 2 +-
.../dubbo-go-3.0/concept/protocol/index.html | 2 +-
.../dubbo-go-3.0/concept/registry/index.html | 2 +-
.../dubbo-go-3.0/developer/design/index.html | 2 +-
.../dubbo-go-3.0/preface/3.0_feature/index.html | 2 +-
.../dubbo-go-3.0/preface/architecture/index.html | 2 +-
.../quickstart/quickstart_dubbo/index.html | 2 +-
.../quickstart/quickstart_triple/index.html | 2 +-
.../samples/config-center-dynamic/index.html | 2 +-
.../dubbo-go-3.0/samples/custom-filter/index.html | 2 +-
.../dubbo-go-3.0/samples/custom-logger/index.html | 2 +-
.../samples/exception_response/index.html | 2 +-
.../golang/dubbo-go-3.0/samples/generic/index.html | 2 +-
.../samples/go_java_interactive/index.html | 2 +-
.../dubbo-go-3.0/samples/mesh_router/index.html | 2 +-
.../golang/dubbo-go-3.0/samples/metrics/index.html | 2 +-
.../dubbo-go-3.0/samples/registry/index.html | 2 +-
.../dubbo-go-3.0/samples/samples_repo/index.html | 2 +-
.../samples/service-discovery/index.html | 2 +-
.../dubbo-go-3.0/samples/start-check/index.html | 2 +-
zh/docs/languages/golang/go-specific/index.html | 2 +-
zh/docs/languages/golang/quick-start/index.html | 4 +-
zh/docs/languages/java/java-specific/index.html | 4 +-
zh/docs/languages/java/quick-start/index.html | 4 +-
.../migration-and-compatibility-guide/index.html | 2 +-
zh/docs/migration/migration-routingrule/index.html | 2 +-
.../migration-service-discovery/index.html | 2 +-
zh/docs/migration/migration-triple/index.html | 2 +-
zh/docs/new-in-dubbo3/index.html | 2 +-
zh/docs/performance/benchmarking/index.html | 4 +-
zh/docs/quick-start/index.html | 4 +-
zh/docs/references/api/index.html | 2 +-
zh/docs/references/config-center/index.html | 2 +-
.../references/configuration/annotation/index.html | 2 +-
zh/docs/references/configuration/api/index.html | 2 +-
.../configuration/environment-variables/index.html | 2 +-
.../configuration/external-config/index.html | 2 +-
.../references/configuration/overview/index.html | 2 +-
.../references/configuration/properties/index.html | 2 +-
zh/docs/references/configuration/xml/index.html | 2 +-
.../references/graalvm/support-graalvm/index.html | 4 +-
zh/docs/references/lifecycle/brief/index.html | 4 +-
zh/docs/references/lifecycle/liveness/index.html | 4 +-
zh/docs/references/lifecycle/readiness/index.html | 4 +-
zh/docs/references/lifecycle/rest/index.html | 2 +-
zh/docs/references/lifecycle/startup/index.html | 4 +-
zh/docs/references/maven/index.html | 2 +-
zh/docs/references/metadata/index.html | 2 +-
zh/docs/references/protobuf/idl/index.html | 2 +-
zh/docs/references/protocols/dubbo/index.html | 2 +-
zh/docs/references/protocols/grpc/index.html | 2 +-
zh/docs/references/protocols/hessian/index.html | 2 +-
zh/docs/references/protocols/http/index.html | 2 +-
zh/docs/references/protocols/memcached/index.html | 2 +-
zh/docs/references/protocols/redis/index.html | 2 +-
zh/docs/references/protocols/rest/index.html | 2 +-
zh/docs/references/protocols/rmi/index.html | 2 +-
zh/docs/references/protocols/thrift/index.html | 2 +-
zh/docs/references/protocols/tri/index.html | 2 +-
zh/docs/references/protocols/webservice/index.html | 2 +-
zh/docs/references/qos/index.html | 2 +-
zh/docs/references/registry/multicast/index.html | 2 +-
zh/docs/references/registry/nacos/index.html | 2 +-
zh/docs/references/registry/redis/index.html | 2 +-
zh/docs/references/registry/simple/index.html | 2 +-
zh/docs/references/registry/zookeeper/index.html | 2 +-
.../references/routers/destination-rule/index.html | 2 +-
.../references/routers/virtualservice/index.html | 2 +-
zh/docs/references/spis/cache/index.html | 4 +-
zh/docs/references/spis/cluster/index.html | 4 +-
zh/docs/references/spis/compiler/index.html | 4 +-
zh/docs/references/spis/config-center/index.html | 4 +-
zh/docs/references/spis/container/index.html | 4 +-
zh/docs/references/spis/dispatcher/index.html | 4 +-
zh/docs/references/spis/dubbo-spi/index.html | 2 +-
zh/docs/references/spis/exchanger/index.html | 4 +-
.../references/spis/exporter-listener/index.html | 4 +-
.../references/spis/extension-factory/index.html | 4 +-
zh/docs/references/spis/filter/index.html | 4 +-
.../references/spis/invoker-listener/index.html | 4 +-
zh/docs/references/spis/load-balance/index.html | 4 +-
zh/docs/references/spis/logger-adapter/index.html | 4 +-
zh/docs/references/spis/merger/index.html | 4 +-
zh/docs/references/spis/monitor/index.html | 4 +-
zh/docs/references/spis/networker/index.html | 4 +-
zh/docs/references/spis/page/index.html | 4 +-
zh/docs/references/spis/protocol/index.html | 4 +-
zh/docs/references/spis/proxy-factory/index.html | 4 +-
zh/docs/references/spis/registry/index.html | 4 +-
zh/docs/references/spis/remoting/index.html | 4 +-
zh/docs/references/spis/router/index.html | 4 +-
zh/docs/references/spis/serialize/index.html | 4 +-
zh/docs/references/spis/status-checker/index.html | 4 +-
zh/docs/references/spis/telnet-handler/index.html | 4 +-
zh/docs/references/spis/threadpool/index.html | 4 +-
zh/docs/references/spis/validation/index.html | 4 +-
zh/docs/references/telnet/index.html | 2 +-
.../references/xml/dubbo-application/index.html | 2 +-
zh/docs/references/xml/dubbo-argument/index.html | 2 +-
.../references/xml/dubbo-config-center/index.html | 2 +-
zh/docs/references/xml/dubbo-consumer/index.html | 2 +-
zh/docs/references/xml/dubbo-method/index.html | 2 +-
zh/docs/references/xml/dubbo-module/index.html | 2 +-
zh/docs/references/xml/dubbo-monitor/index.html | 2 +-
zh/docs/references/xml/dubbo-parameter/index.html | 2 +-
zh/docs/references/xml/dubbo-protocol/index.html | 2 +-
zh/docs/references/xml/dubbo-provider/index.html | 2 +-
zh/docs/references/xml/dubbo-reference/index.html | 2 +-
zh/docs/references/xml/dubbo-registry/index.html | 2 +-
zh/docs/references/xml/dubbo-service/index.html | 2 +-
zh/docs3-building/docs/contact/index.html | 2 +-
zh/docs3-building/docs/index.html | 2 +-
zh/docs3-building/docs/mannual/index.html | 2 +-
zh/docs3-building/docs/quickstart/index.html | 2 +-
.../docs/tasks/deploy-on-k8s/index.html | 4 +-
zh/docs3-building/docs/tasks/dubbo-mesh/index.html | 4 +-
zh/docs3-building/docs/tasks/idl/index.html | 6 +-
zh/docs3-building/docs/tasks/index.html | 2 +-
.../docs/tasks/traffic-management/index.html | 4 +-
.../docs/what/architecture/index.html | 8 +-
zh/docs3-building/docs/what/ecosystem/index.html | 10 +-
.../docs/what/extensibility/index.html | 6 +-
zh/docs3-building/docs/what/index.html | 2 +-
zh/docs3-building/docs/what/index.xml | 49 +-
zh/docs3-building/docs/what/overview/index.html | 12 +-
.../docs/whatsnew/background/index.html | 6 +-
zh/docs3-building/docs/whatsnew/index.html | 2 +-
zh/docs3-building/docs/whatsnew/index.xml | 59 +-
zh/docs3-building/docs/whatsnew/mesh/index.html | 32 +-
.../docs/whatsnew/service-discovery/index.html | 12 +-
zh/docs3-building/docs/whatsnew/triple/index.html | 6 +-
.../concept/config/basic_concept/index.html | 6 +-
.../golang-sdk/concept/config/index.html | 2 +-
zh/docs3-building/golang-sdk/concept/index.html | 2 +-
.../golang-sdk/concept/mesh/index.html | 2 +-
.../concept/mesh/proxyless_service_mesh/index.html | 6 +-
.../golang-sdk/concept/more/3.0_feature/index.html | 6 +-
.../concept/more/app_and_interface/index.html | 4 +-
.../concept/more/architecture/index.html | 6 +-
.../golang-sdk/concept/more/index.html | 2 +-
.../golang-sdk/concept/rpc/generic/index.html | 6 +-
.../golang-sdk/concept/rpc/index.html | 2 +-
.../concept/rpc/multi_language/index.html | 6 +-
.../golang-sdk/concept/rpc/protocol/index.html | 6 +-
.../service_management/adaptive_lb/index.html | 4 +-
.../aop_and_extension/index.html | 4 +-
.../graceful_shutdown/index.html | 4 +-
.../concept/service_management/index.html | 2 +-
.../concept/service_management/registry/index.html | 4 +-
.../service_management/visualization/index.html | 4 +-
zh/docs3-building/golang-sdk/index.html | 2 +-
zh/docs3-building/golang-sdk/quickstart/index.html | 2 +-
.../golang-sdk/quickstart/install/index.html | 6 +-
.../quickstart/quickstart_triple/index.html | 6 +-
.../golang-sdk/refer/compatible_version/index.html | 6 +-
.../golang-sdk/refer/config/index.html | 6 +-
.../golang-sdk/refer/ecology/index.html | 6 +-
zh/docs3-building/golang-sdk/refer/index.html | 2 +-
.../golang-sdk/refer/use_dubbogo_cli/index.html | 6 +-
.../golang-sdk/samples/adaptive-service/index.html | 2 +-
.../samples/config-center-dynamic/index.html | 6 +-
.../golang-sdk/samples/custom-filter/index.html | 6 +-
.../golang-sdk/samples/custom-logger/index.html | 6 +-
.../samples/exception_response/index.html | 6 +-
.../golang-sdk/samples/generic/index.html | 6 +-
.../samples/go_java_interactive/index.html | 6 +-
.../golang-sdk/samples/grpc_cli/index.html | 6 +-
zh/docs3-building/golang-sdk/samples/index.html | 2 +-
.../golang-sdk/samples/mesh_router/index.html | 6 +-
.../golang-sdk/samples/metrics/index.html | 6 +-
.../samples/pixiu-nacos-triple/index.html | 6 +-
.../golang-sdk/samples/registry/index.html | 6 +-
.../golang-sdk/samples/samples_repo/index.html | 2 +-
.../samples/service-discovery/index.html | 6 +-
.../golang-sdk/samples/start-check/index.html | 2 +-
zh/docs3-building/golang-sdk/sourcecode/index.html | 2 +-
.../golang-sdk/sourcecode/protocol/index.html | 6 +-
.../golang-sdk/sourcecode/registry/index.html | 6 +-
.../golang-sdk/tasks/cli/app_template/index.html | 6 +-
zh/docs3-building/golang-sdk/tasks/cli/index.html | 2 +-
.../golang-sdk/tasks/config/config_api/index.html | 6 +-
.../golang-sdk/tasks/config/index.html | 2 +-
.../tasks/config/remote_config/index.html | 6 +-
.../golang-sdk/tasks/debug/dubbogo_cli/index.html | 6 +-
.../golang-sdk/tasks/debug/grpc_cli/index.html | 6 +-
.../golang-sdk/tasks/debug/index.html | 2 +-
zh/docs3-building/golang-sdk/tasks/index.html | 2 +-
.../golang-sdk/tasks/mesh/app/index.html | 6 +-
.../golang-sdk/tasks/mesh/build/index.html | 6 +-
zh/docs3-building/golang-sdk/tasks/mesh/index.html | 2 +-
.../golang-sdk/tasks/mesh/ingress/index.html | 4 +-
.../tasks/mesh/traffic_management/index.html | 6 +-
.../golang-sdk/tasks/pixiu/http_triple/index.html | 6 +-
.../golang-sdk/tasks/pixiu/index.html | 2 +-
.../golang-sdk/tasks/registry/index.html | 2 +-
.../tasks/registry/multi_registry/index.html | 6 +-
.../golang-sdk/tasks/registry/nacos/index.html | 6 +-
.../golang-sdk/tasks/rpc/call_grpc/index.html | 4 +-
.../golang-sdk/tasks/rpc/call_java/index.html | 6 +-
.../tasks/rpc/choose_protocol/index.html | 2 +-
.../golang-sdk/tasks/rpc/context/index.html | 4 +-
.../golang-sdk/tasks/rpc/error/index.html | 6 +-
.../golang-sdk/tasks/rpc/generic/index.html | 6 +-
zh/docs3-building/golang-sdk/tasks/rpc/index.html | 2 +-
.../golang-sdk/tasks/rpc/rpc_metrics/index.html | 6 +-
.../golang-sdk/tasks/rpc/timeout/index.html | 6 +-
.../golang-sdk/tasks/rpc/tps_limiter/index.html | 6 +-
.../tasks/service_management/aop/index.html | 6 +-
.../graceful_shutdown/index.html | 4 +-
.../golang-sdk/tasks/service_management/index.html | 2 +-
.../golang-sdk/tasks/visualization/index.html | 2 +-
.../tasks/visualization/logger/index.html | 4 +-
.../tasks/visualization/metrics/index.html | 4 +-
.../tasks/visualization/opentelementry/index.html | 4 +-
.../tasks/visualization/tracing/index.html | 4 +-
.../advanced-features-and-usage/index.html | 2 +-
.../observability/index.html | 2 +-
.../others/dubbo-kubernetes-probe/index.html | 4 +-
.../others/graceful-shutdown/index.html | 4 +-
.../advanced-features-and-usage/others/index.html | 2 +-
.../others/logger-management/index.html | 4 +-
.../others/service-container/index.html | 4 +-
.../others/set-host/index.html | 4 +-
.../performance/index.html | 2 +-
.../performance/reference-config-cache/index.html | 4 +-
.../performance/simplify-registry-data/index.html | 4 +-
.../threading-model/consumer/index.html | 4 +-
.../performance/threading-model/index.html | 2 +-
.../threading-model/provider/index.html | 4 +-
.../rpc/accesslog/index.html | 4 +-
.../rpc/async-call/index.html | 4 +-
.../rpc/attachment/index.html | 4 +-
.../rpc/callback-parameter/index.html | 4 +-
.../rpc/context/index.html | 4 +-
.../rpc/echo-service/index.html | 4 +-
.../rpc/events-notify/index.html | 4 +-
.../rpc/generic-service/index.html | 4 +-
.../rpc/group-merger/index.html | 4 +-
.../advanced-features-and-usage/rpc/index.html | 2 +-
.../rpc/local-mock/index.html | 4 +-
.../rpc/local-stub/index.html | 4 +-
.../rpc/parameter-validation/index.html | 4 +-
.../rpc/result-cache/index.html | 4 +-
.../security/index.html | 2 +-
.../security/tls/index.html | 4 +-
.../security/token-authorization/index.html | 4 +-
.../advanced-features-and-usage/service/index.html | 2 +-
.../service/multi-versions/index.html | 4 +-
.../service/service-downgrade/index.html | 4 +-
.../service/service-group/index.html | 4 +-
.../java-sdk/concepts-and-architecture/index.html | 2 +-
.../overall-architecture/index.html | 4 +-
.../service-discovery/index.html | 6 +-
.../service-invocation/index.html | 6 +-
.../java-sdk/contributing/guide/index.html | 4 +-
zh/docs3-building/java-sdk/contributing/index.html | 2 +-
.../java-sdk/contributing/overview/index.html | 4 +-
zh/docs3-building/java-sdk/index.html | 2 +-
zh/docs3-building/java-sdk/index.xml | 58 +-
zh/docs3-building/java-sdk/quick-start/index.html | 49 +-
.../config-center/apollo/guide/index.html | 4 +-
.../config-center/apollo/index.html | 2 +-
.../config-center/apollo/overview/index.html | 4 +-
.../reference-manual/config-center/index.html | 2 +-
.../config-center/nacos/guide/index.html | 4 +-
.../config-center/nacos/index.html | 2 +-
.../config-center/nacos/overview/index.html | 4 +-
.../config-center/overview/index.html | 2 +-
.../config-center/zookeeper/guide/index.html | 4 +-
.../config-center/zookeeper/index.html | 2 +-
.../config-center/zookeeper/overview/index.html | 4 +-
.../reference-manual/config/annotation/index.html | 119 +-
.../reference-manual/config/annotation/index.xml | 61 +-
.../reference-manual/config/api/index.html | 249 +-
.../java-sdk/reference-manual/config/api/index.xml | 278 +-
.../java-sdk/reference-manual/config/index.html | 4 +-
.../java-sdk/reference-manual/config/index.xml | 3665 +++-
.../reference-manual/config/overview/index.html | 44 +-
.../validation => config/principle}/index.html | 206 +-
.../reference-manual/config/principle/index.xml | 1 +
.../reference-manual/config/properties/index.html | 22 +-
.../reference-manual/config/properties/index.xml | 286 +-
.../reference-manual/config/xml/index.html | 68 +-
.../java-sdk/reference-manual/config/xml/index.xml | 2480 +--
.../java-sdk/reference-manual/graalvm/index.html | 2 +-
.../java-sdk/reference-manual/index.html | 2 +-
.../java-sdk/reference-manual/index.xml | 2 +-
.../reference-manual/metadata-center/index.html | 2 +-
.../metadata-center/nacos/guide/index.html | 4 +-
.../metadata-center/nacos/index.html | 2 +-
.../metadata-center/nacos/overview/index.html | 4 +-
.../metadata-center/overview/index.html | 2 +-
.../metadata-center/redis/guide/index.html | 4 +-
.../metadata-center/redis/index.html | 2 +-
.../metadata-center/redis/overview/index.html | 4 +-
.../metadata-center/zookeeper/guide/index.html | 4 +-
.../metadata-center/zookeeper/index.html | 2 +-
.../metadata-center/zookeeper/overview/index.html | 4 +-
.../performance/benchmarking/index.html | 6 +-
.../reference-manual/performance/index.html | 2 +-
.../protocol/dubbo/guide/index.html | 4 +-
.../reference-manual/protocol/dubbo/index.html | 2 +-
.../protocol/dubbo/overview/index.html | 6 +-
.../protocol/grpc/guide/index.html | 4 +-
.../reference-manual/protocol/grpc/index.html | 2 +-
.../protocol/grpc/overview/index.html | 6 +-
.../protocol/hessian/guide/index.html | 6 +-
.../reference-manual/protocol/hessian/index.html | 2 +-
.../protocol/hessian/overview/index.html | 4 +-
.../protocol/http/guide/index.html | 6 +-
.../reference-manual/protocol/http/index.html | 2 +-
.../protocol/http/overview/index.html | 4 +-
.../java-sdk/reference-manual/protocol/index.html | 2 +-
.../protocol/memcached/guide/index.html | 6 +-
.../reference-manual/protocol/memcached/index.html | 2 +-
.../protocol/memcached/overview/index.html | 4 +-
.../reference-manual/protocol/overview/index.html | 2 +-
.../protocol/redis/guide/index.html | 6 +-
.../reference-manual/protocol/redis/index.html | 2 +-
.../protocol/redis/overview/index.html | 4 +-
.../protocol/rest/guide/index.html | 4 +-
.../reference-manual/protocol/rest/index.html | 2 +-
.../protocol/rest/overview/index.html | 6 +-
.../reference-manual/protocol/rmi/guide/index.html | 6 +-
.../reference-manual/protocol/rmi/index.html | 2 +-
.../protocol/rmi/overview/index.html | 4 +-
.../protocol/thrift/guide/index.html | 6 +-
.../reference-manual/protocol/thrift/index.html | 2 +-
.../protocol/thrift/overview/index.html | 4 +-
.../protocol/triple/guide/index.html | 6 +-
.../protocol/triple/idl/index.html | 6 +-
.../reference-manual/protocol/triple/index.html | 2 +-
.../protocol/triple/overview/index.html | 4 +-
.../protocol/triple/pojo/index.html | 6 +-
.../protocol/webservice/guide/index.html | 6 +-
.../protocol/webservice/index.html | 2 +-
.../protocol/webservice/overview/index.html | 4 +-
.../reference-manual/qos/command/index.html | 4 +-
.../java-sdk/reference-manual/qos/index.html | 2 +-
.../qos/logger-management/index.html | 4 +-
.../reference-manual/qos/overview/index.html | 4 +-
.../java-sdk/reference-manual/registry/index.html | 2 +-
.../registry/multicast/guide/index.html | 6 +-
.../reference-manual/registry/multicast/index.html | 2 +-
.../registry/multicast/overview/index.html | 4 +-
.../registry/multiple-registry/guide/index.html | 4 +-
.../registry/multiple-registry/index.html | 2 +-
.../registry/multiple-registry/overview/index.html | 4 +-
.../registry/nacos/guide/index.html | 6 +-
.../reference-manual/registry/nacos/index.html | 2 +-
.../registry/nacos/overview/index.html | 4 +-
.../reference-manual/registry/overview/index.html | 2 +-
.../registry/redis/guide/index.html | 6 +-
.../reference-manual/registry/redis/index.html | 2 +-
.../registry/redis/overview/index.html | 4 +-
.../registry/zookeeper/guide/index.html | 6 +-
.../reference-manual/registry/zookeeper/index.html | 2 +-
.../registry/zookeeper/overview/index.html | 4 +-
.../spi/description/cache/index.html | 6 +-
.../spi/description/cluster/index.html | 6 +-
.../spi/description/compiler/index.html | 6 +-
.../spi/description/config-center/index.html | 6 +-
.../spi/description/container/index.html | 6 +-
.../spi/description/dispatcher/index.html | 6 +-
.../spi/description/dubbo-spi/index.html | 4 +-
.../spi/description/exchanger/index.html | 6 +-
.../spi/description/exporter-listener/index.html | 6 +-
.../spi/description/extension-factory/index.html | 6 +-
.../spi/description/filter/index.html | 6 +-
.../reference-manual/spi/description/index.html | 2 +-
.../spi/description/invoker-listener/index.html | 6 +-
.../spi/description/load-balance/index.html | 6 +-
.../spi/description/logger-adapter/index.html | 6 +-
.../spi/description/merger/index.html | 6 +-
.../spi/description/monitor/index.html | 6 +-
.../spi/description/networker/index.html | 6 +-
.../spi/description/page/index.html | 4 +-
.../spi/description/protocol/index.html | 6 +-
.../spi/description/proxy-factory/index.html | 6 +-
.../spi/description/registry/index.html | 6 +-
.../spi/description/remoting/index.html | 6 +-
.../spi/description/router/index.html | 6 +-
.../spi/description/serialize/index.html | 6 +-
.../spi/description/status-checker/index.html | 6 +-
.../spi/description/telnet-handler/index.html | 6 +-
.../spi/description/threadpool/index.html | 6 +-
.../spi/description/validation/index.html | 6 +-
.../java-sdk/reference-manual/spi/index.html | 2 +-
.../reference-manual/spi/overview/index.html | 2 +-
.../2.x-to-3.x-compatibility-guide/index.html | 4 +-
.../3.0-to-3.1-compatibility-guide/index.html | 4 +-
.../java-sdk/upgrades-and-compatibility/index.html | 2 +-
.../migration-triple/index.html | 4 +-
.../service-discovery/index.html | 2 +-
.../migration-service-discovery/index.html | 4 +-
.../service-discovery-rule/index.html | 4 +-
.../service-discovery-samples/index.html | 4 +-
zh/docsv2.7/admin/install/admin-console/index.html | 4 +-
zh/docsv2.7/admin/install/consumer-demo/index.html | 4 +-
.../admin/install/monitor-center/index.html | 2 +-
zh/docsv2.7/admin/install/provider-demo/index.html | 4 +-
zh/docsv2.7/admin/install/redis/index.html | 4 +-
zh/docsv2.7/admin/install/zookeeper/index.html | 4 +-
zh/docsv2.7/admin/ops/apidocs/index.html | 4 +-
zh/docsv2.7/admin/ops/functions/index.html | 4 +-
zh/docsv2.7/admin/ops/governance/index.html | 4 +-
zh/docsv2.7/admin/ops/introduction/index.html | 4 +-
zh/docsv2.7/admin/ops/pinpoint/index.html | 4 +-
zh/docsv2.7/admin/ops/search/index.html | 4 +-
zh/docsv2.7/admin/ops/skywalking/index.html | 4 +-
zh/docsv2.7/admin/ops/test/index.html | 2 +-
zh/docsv2.7/dev/build/index.html | 2 +-
zh/docsv2.7/dev/checklist/index.html | 2 +-
zh/docsv2.7/dev/code-smell/index.html | 2 +-
zh/docsv2.7/dev/coding/index.html | 2 +-
zh/docsv2.7/dev/contract/index.html | 2 +-
zh/docsv2.7/dev/design/index.html | 2 +-
zh/docsv2.7/dev/implementation/index.html | 2 +-
zh/docsv2.7/dev/impls/cache/index.html | 4 +-
zh/docsv2.7/dev/impls/cluster/index.html | 4 +-
zh/docsv2.7/dev/impls/compiler/index.html | 4 +-
zh/docsv2.7/dev/impls/config-center/index.html | 4 +-
zh/docsv2.7/dev/impls/container/index.html | 4 +-
zh/docsv2.7/dev/impls/dispatcher/index.html | 4 +-
zh/docsv2.7/dev/impls/exchanger/index.html | 4 +-
zh/docsv2.7/dev/impls/exporter-listener/index.html | 4 +-
zh/docsv2.7/dev/impls/extension-factory/index.html | 4 +-
zh/docsv2.7/dev/impls/filter/index.html | 4 +-
zh/docsv2.7/dev/impls/invoker-listener/index.html | 4 +-
zh/docsv2.7/dev/impls/load-balance/index.html | 4 +-
zh/docsv2.7/dev/impls/logger-adapter/index.html | 4 +-
zh/docsv2.7/dev/impls/merger/index.html | 4 +-
zh/docsv2.7/dev/impls/monitor/index.html | 4 +-
zh/docsv2.7/dev/impls/networker/index.html | 4 +-
zh/docsv2.7/dev/impls/page/index.html | 4 +-
zh/docsv2.7/dev/impls/protocol/index.html | 4 +-
zh/docsv2.7/dev/impls/proxy-factory/index.html | 4 +-
zh/docsv2.7/dev/impls/registry/index.html | 4 +-
zh/docsv2.7/dev/impls/remoting/index.html | 4 +-
zh/docsv2.7/dev/impls/router/index.html | 4 +-
zh/docsv2.7/dev/impls/serialize/index.html | 4 +-
zh/docsv2.7/dev/impls/status-checker/index.html | 4 +-
zh/docsv2.7/dev/impls/telnet-handler/index.html | 4 +-
zh/docsv2.7/dev/impls/threadpool/index.html | 4 +-
zh/docsv2.7/dev/impls/validation/index.html | 4 +-
zh/docsv2.7/dev/principals/code-detail/index.html | 4 +-
.../dev/principals/configuration/index.html | 4 +-
zh/docsv2.7/dev/principals/dummy/index.html | 4 +-
.../dev/principals/expansibility/index.html | 4 +-
zh/docsv2.7/dev/principals/extension/index.html | 4 +-
.../dev/principals/general-knowledge/index.html | 4 +-
zh/docsv2.7/dev/principals/introduction/index.html | 2 +-
zh/docsv2.7/dev/principals/robustness/index.html | 4 +-
zh/docsv2.7/dev/release/index.html | 2 +-
.../dev/source/adaptive-extension/index.html | 2 +-
zh/docsv2.7/dev/source/cluster/index.html | 2 +-
zh/docsv2.7/dev/source/directory/index.html | 2 +-
zh/docsv2.7/dev/source/dubbo-spi/index.html | 2 +-
zh/docsv2.7/dev/source/export-service/index.html | 2 +-
zh/docsv2.7/dev/source/loadbalance/index.html | 2 +-
zh/docsv2.7/dev/source/refer-service/index.html | 2 +-
zh/docsv2.7/dev/source/router/index.html | 2 +-
.../dev/source/service-invoking-process/index.html | 2 +-
zh/docsv2.7/dev/spi/index.html | 2 +-
zh/docsv2.7/dev/tck/index.html | 2 +-
zh/docsv2.7/user/benchmark-tool/index.html | 2 +-
zh/docsv2.7/user/best-practice/index.html | 2 +-
zh/docsv2.7/user/capacity-plan/index.html | 2 +-
.../user/configuration/annotation/index.html | 2 +-
zh/docsv2.7/user/configuration/api/index.html | 2 +-
.../user/configuration/config-center/index.html | 2 +-
.../configuration-load-process/index.html | 2 +-
.../configuration/environment-variables/index.html | 2 +-
.../user/configuration/properties/index.html | 2 +-
zh/docsv2.7/user/configuration/xml/index.html | 2 +-
zh/docsv2.7/user/coveragence/index.html | 2 +-
zh/docsv2.7/user/dependencies/index.html | 2 +-
zh/docsv2.7/user/examples/accesslog/index.html | 2 +-
zh/docsv2.7/user/examples/async-call/index.html | 2 +-
.../examples/async-execute-on-provider/index.html | 2 +-
zh/docsv2.7/user/examples/attachment/index.html | 2 +-
zh/docsv2.7/user/examples/auth/index.html | 4 +-
.../examples/broadcast-resp-collect/index.html | 2 +-
.../user/examples/callback-parameter/index.html | 2 +-
.../user/examples/concurrency-control/index.html | 2 +-
.../user/examples/config-connections/index.html | 2 +-
.../examples/config-rule-deprecated/index.html | 2 +-
zh/docsv2.7/user/examples/config-rule/index.html | 2 +-
.../user/examples/consumer-threadpool/index.html | 2 +-
zh/docsv2.7/user/examples/context/index.html | 2 +-
zh/docsv2.7/user/examples/delay-publish/index.html | 2 +-
.../examples/distributed-transaction/index.html | 2 +-
zh/docsv2.7/user/examples/dump/index.html | 2 +-
zh/docsv2.7/user/examples/echo-service/index.html | 2 +-
zh/docsv2.7/user/examples/events-notify/index.html | 2 +-
.../user/examples/explicit-target/index.html | 2 +-
.../examples/fault-tolerent-strategy/index.html | 2 +-
.../examples/generic-invoke-with-json/index.html | 2 +-
.../user/examples/generic-reference/index.html | 2 +-
.../user/examples/generic-service/index.html | 2 +-
.../user/examples/graceful-shutdown/index.html | 2 +-
zh/docsv2.7/user/examples/group-merger/index.html | 2 +-
.../user/examples/hostname-binding/index.html | 2 +-
.../examples/invoke-with-specified-ip/index.html | 2 +-
zh/docsv2.7/user/examples/lazy-connect/index.html | 2 +-
zh/docsv2.7/user/examples/loadbalance/index.html | 2 +-
zh/docsv2.7/user/examples/local-call/index.html | 2 +-
zh/docsv2.7/user/examples/local-mock/index.html | 2 +-
zh/docsv2.7/user/examples/local-stub/index.html | 2 +-
.../user/examples/logger-strategy/index.html | 2 +-
.../user/examples/msgpack-serialization/index.html | 2 +-
.../user/examples/multi-protocols/index.html | 2 +-
.../user/examples/multi-registry/index.html | 2 +-
.../user/examples/multi-versions/index.html | 2 +-
zh/docsv2.7/user/examples/netty4/index.html | 2 +-
.../user/examples/parameter-validation/index.html | 2 +-
.../user/examples/pb-generic-reference/index.html | 2 +-
.../user/examples/preflight-check/index.html | 2 +-
zh/docsv2.7/user/examples/protobuf-idl/index.html | 2 +-
.../examples/provider-timeout-release/index.html | 2 +-
.../examples/reference-config-cache/index.html | 2 +-
zh/docsv2.7/user/examples/registry-only/index.html | 2 +-
zh/docsv2.7/user/examples/result-cache/index.html | 2 +-
.../examples/routing-rule-deprecated/index.html | 2 +-
zh/docsv2.7/user/examples/routing-rule/index.html | 2 +-
zh/docsv2.7/user/examples/serialization/index.html | 2 +-
.../user/examples/service-container/index.html | 2 +-
.../user/examples/service-downgrade/index.html | 2 +-
zh/docsv2.7/user/examples/service-group/index.html | 2 +-
zh/docsv2.7/user/examples/set-host/index.html | 2 +-
.../examples/simplify-registry-data/index.html | 2 +-
.../user/examples/static-service/index.html | 2 +-
zh/docsv2.7/user/examples/stickiness/index.html | 2 +-
.../user/examples/subscribe-only/index.html | 2 +-
zh/docsv2.7/user/examples/thread-model/index.html | 2 +-
zh/docsv2.7/user/examples/tls/index.html | 2 +-
.../user/examples/token-authorization/index.html | 2 +-
.../user/languages/erlang/quick-start/index.html | 2 +-
.../user/languages/erlang/reference/index.html | 2 +-
.../user/languages/erlang/serialization/index.html | 2 +-
.../user/languages/erlang/service/index.html | 2 +-
zh/docsv2.7/user/maturity/index.html | 2 +-
.../user/new-features-in-a-glance/index.html | 4 +-
zh/docsv2.7/user/perf-test/index.html | 2 +-
zh/docsv2.7/user/preface/architecture/index.html | 2 +-
zh/docsv2.7/user/preface/background/index.html | 2 +-
zh/docsv2.7/user/preface/requirements/index.html | 2 +-
zh/docsv2.7/user/preface/usage/index.html | 2 +-
zh/docsv2.7/user/quick-start/index.html | 2 +-
zh/docsv2.7/user/recommend/index.html | 2 +-
zh/docsv2.7/user/references/api/index.html | 2 +-
zh/docsv2.7/user/references/maven/index.html | 2 +-
zh/docsv2.7/user/references/metadata/index.html | 2 +-
.../user/references/protocol/dubbo/index.html | 2 +-
.../user/references/protocol/grpc/index.html | 2 +-
.../user/references/protocol/hessian/index.html | 2 +-
.../user/references/protocol/http/index.html | 2 +-
.../user/references/protocol/memcached/index.html | 2 +-
.../user/references/protocol/redis/index.html | 2 +-
.../user/references/protocol/rest/index.html | 2 +-
.../user/references/protocol/rmi/index.html | 2 +-
.../user/references/protocol/thrift/index.html | 2 +-
.../user/references/protocol/webservice/index.html | 2 +-
zh/docsv2.7/user/references/qos/index.html | 2 +-
.../user/references/registry/multicast/index.html | 2 +-
.../user/references/registry/nacos/index.html | 2 +-
.../user/references/registry/redis/index.html | 2 +-
.../user/references/registry/simple/index.html | 2 +-
.../user/references/registry/zookeeper/index.html | 2 +-
zh/docsv2.7/user/references/telnet/index.html | 2 +-
.../references/xml/dubbo-application/index.html | 2 +-
.../user/references/xml/dubbo-argument/index.html | 2 +-
.../references/xml/dubbo-config-center/index.html | 2 +-
.../user/references/xml/dubbo-consumer/index.html | 2 +-
.../user/references/xml/dubbo-method/index.html | 2 +-
.../user/references/xml/dubbo-module/index.html | 2 +-
.../user/references/xml/dubbo-monitor/index.html | 2 +-
.../user/references/xml/dubbo-parameter/index.html | 2 +-
.../user/references/xml/dubbo-protocol/index.html | 2 +-
.../user/references/xml/dubbo-provider/index.html | 2 +-
.../user/references/xml/dubbo-reference/index.html | 2 +-
.../user/references/xml/dubbo-registry/index.html | 2 +-
.../user/references/xml/dubbo-service/index.html | 2 +-
zh/docsv2.7/user/rest/index.html | 2 +-
zh/docsv2.7/user/serialization/index.html | 2 +-
zh/docsv2.7/user/simple-monitor/index.html | 2 +-
zh/docsv2.7/user/versions/version-270/index.html | 2 +-
zh/index.xml | 709 +-
zh/notices/security/index.html | 2 +-
zh/sitemap.xml | 2 +-
zh/users/alibaba/index.html | 4 +-
zh/users/eleme/index.html | 4 +-
zh/users/fenghuodi/index.html | 2 +-
zh/users/icbc/index.html | 4 +-
zh/users/pingan/index.html | 2 +-
zh/users/xiaomi/index.html | 4 +-
1106 files changed, 20781 insertions(+), 29666 deletions(-)
diff --git a/en/blog/2018/04/22/dubbo-roadmap-is-announced-in-qcon-beijing-2018/index.html b/en/blog/2018/04/22/dubbo-roadmap-is-announced-in-qcon-beijing-2018/index.html
index df2cbe840c..69e4fa0d01 100644
--- a/en/blog/2018/04/22/dubbo-roadmap-is-announced-in-qcon-beijing-2018/index.html
+++ b/en/blog/2018/04/22/dubbo-roadmap-is-announced-in-qcon-beijing-2018/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/04/22/dubbo-roadmap-is-announced-in-qcon-beijing-2018/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo roadmap is announced in QCon Beij [...]
-"><meta itemprop=datePublished content="2018-04-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="24"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo roadmap is announced in QCon Beijing 2018"><meta name=twitter:description content="This article will introduce you that Dubbo roadmap is announced in QCon Beijing 2018.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/04/22/dubbo-roadmap-is-announced-in-qcon-beijing-2018/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo roadmap is announced in QCon Beij [...]
+"><meta itemprop=datePublished content="2018-04-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="24"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo roadmap is announced in QCon Beijing 2018"><meta name=twitter:description content="This article will introduce you that Dubbo roadmap is announced in QCon Beijing 2018.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2018/04/25/the-gsocgoogle-summer-of-code-2018/index.html b/en/blog/2018/04/25/the-gsocgoogle-summer-of-code-2018/index.html
index 71377d1eae..7c3b3a71d0 100644
--- a/en/blog/2018/04/25/the-gsocgoogle-summer-of-code-2018/index.html
+++ b/en/blog/2018/04/25/the-gsocgoogle-summer-of-code-2018/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/04/25/the-gsocgoogle-summer-of-code-2018/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="The GSoC(Google Summer of Code) 2018"><meta itemprop [...]
-"><meta itemprop=datePublished content="2018-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="24"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="The GSoC(Google Summer of Code) 2018"><meta name=twitter:description content="The GSoC(Google Summer of Code) 2018 projects has been announced
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/04/25/the-gsocgoogle-summer-of-code-2018/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="The GSoC(Google Summer of Code) 2018"><meta itemprop [...]
+"><meta itemprop=datePublished content="2018-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="24"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="The GSoC(Google Summer of Code) 2018"><meta name=twitter:description content="The GSoC(Google Summer of Code) 2018 projects has been announced
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2018/05/02/the-apachecon-na-schedule-has-been-announced/index.html b/en/blog/2018/05/02/the-apachecon-na-schedule-has-been-announced/index.html
index 36711fcc76..d399244095 100644
--- a/en/blog/2018/05/02/the-apachecon-na-schedule-has-been-announced/index.html
+++ b/en/blog/2018/05/02/the-apachecon-na-schedule-has-been-announced/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/05/02/the-apachecon-na-schedule-has-been-announced/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="The ApacheCon NA schedule has been announc [...]
-"><meta itemprop=datePublished content="2018-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="34"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="The ApacheCon NA schedule has been announced"><meta name=twitter:description content="This article will introduce you that the ApacheCon NA schedule has been announced attention.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/05/02/the-apachecon-na-schedule-has-been-announced/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="The ApacheCon NA schedule has been announc [...]
+"><meta itemprop=datePublished content="2018-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="34"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="The ApacheCon NA schedule has been announced"><meta name=twitter:description content="This article will introduce you that the ApacheCon NA schedule has been announced attention.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2018/05/12/the-first-dubbo-meetup-has-been-held-in-beijing/index.html b/en/blog/2018/05/12/the-first-dubbo-meetup-has-been-held-in-beijing/index.html
index 409ac41e43..d0be1d80de 100644
--- a/en/blog/2018/05/12/the-first-dubbo-meetup-has-been-held-in-beijing/index.html
+++ b/en/blog/2018/05/12/the-first-dubbo-meetup-has-been-held-in-beijing/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/blog/2018/06/23/the-second-dubbo-shanghai-meetup-has-been-held-successfully/index.html b/en/blog/2018/06/23/the-second-dubbo-shanghai-meetup-has-been-held-successfully/index.html
index c0e67e6b99..f0130ff570 100644
--- a/en/blog/2018/06/23/the-second-dubbo-shanghai-meetup-has-been-held-successfully/index.html
+++ b/en/blog/2018/06/23/the-second-dubbo-shanghai-meetup-has-been-held-successfully/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/blog/2018/07/01/your-first-dubbo-filter/index.html b/en/blog/2018/07/01/your-first-dubbo-filter/index.html
index 416b3c426c..2a043ccea6 100644
--- a/en/blog/2018/07/01/your-first-dubbo-filter/index.html
+++ b/en/blog/2018/07/01/your-first-dubbo-filter/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/07/01/your-first-dubbo-filter/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Your First Dubbo Filter"><meta itemprop=description content="Th [...]
-"><meta itemprop=datePublished content="2018-07-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="824"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Your First Dubbo Filter"><meta name=twitter:description content="This article will introduce you that how to implement a dubbo filter
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/07/01/your-first-dubbo-filter/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Your First Dubbo Filter"><meta itemprop=description content="Th [...]
+"><meta itemprop=datePublished content="2018-07-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="824"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Your First Dubbo Filter"><meta name=twitter:description content="This article will introduce you that how to implement a dubbo filter
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/07/01/%E7%AC%AC%E4%B8%80%E4%B8%AA-dubbo-filter/>中文</a></div></li></ul></div><div cla [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
extension point, and the Filter interception will be executed during each call.</p><h4 id=extension-mechanism-of-dubbo-filter>Extension Mechanism of Dubbo Filter</h4><p>There are already about 20 Filters implemented in Dubbo. Their entry is ProtocolFilterWrapper, ProtocolFilterWrapper
makes a Wrapper on Protocol and will be loaded when the extension is loaded. Then, let’s see how
the Filter chain is constructed.</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#586e75>//ProtocolFilterWrapper.java
diff --git a/en/blog/2018/07/12/tracking-with-pinpoint/index.html b/en/blog/2018/07/12/tracking-with-pinpoint/index.html
index 04751fd820..f3a8be7b60 100644
--- a/en/blog/2018/07/12/tracking-with-pinpoint/index.html
+++ b/en/blog/2018/07/12/tracking-with-pinpoint/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/07/12/tracking-with-pinpoint/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Tracking with Pinpoint"><meta itemprop=description content="This [...]
-"><meta itemprop=datePublished content="2018-07-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="888"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Tracking with Pinpoint"><meta name=twitter:description content="This article introduces how to use Pinpoint to track Dubbo applications and monitor applications' performance.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/07/12/tracking-with-pinpoint/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Tracking with Pinpoint"><meta itemprop=description content="This [...]
+"><meta itemprop=datePublished content="2018-07-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="888"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Tracking with Pinpoint"><meta name=twitter:description content="This article introduces how to use Pinpoint to track Dubbo applications and monitor applications' performance.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/07/12/%E4%BD%BF%E7%94%A8pinpoint%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8% [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
monitor your application in Real-Time
gain code-level visibility to every transaction
install APM Agents without changing a single line of code
diff --git a/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/index.html b/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/index.html
index 0f45f82d28..60a3594109 100644
--- a/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/index.html
+++ b/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-27T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Sentinel: The flow sentinel of Dubbo servi [...]
-"><meta itemprop=datePublished content="2018-07-27T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1305"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Sentinel: The flow sentinel of Dubbo services"><meta name=twitter:description content="This article introduces the Sentinel and how to integrate it with Dubbo.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-27T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Sentinel: The flow sentinel of Dubbo servi [...]
+"><meta itemprop=datePublished content="2018-07-27T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1305"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Sentinel: The flow sentinel of Dubbo services"><meta name=twitter:description content="This article introduces the Sentinel and how to integrate it with Dubbo.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/07/27/sentinel-%E4%B8%BA-dubbo-%E6%9C%8D%E5%8A%A1%E4%BF%9D%E9%A9%BE%E6%8A%A4%E8%88%A [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2><groupId></span>com.alibaba.csp<span style=color:#268bd2></groupId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><artifactId></span>sentinel-dubbo-adapter<span style=color:#268bd2></artifactId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><version></span>x.y.z<span style=color:#268bd2></version></span>
diff --git a/en/blog/2018/07/30/the-third-dubbo-meetup-has-been-held-in-shenzhen/index.html b/en/blog/2018/07/30/the-third-dubbo-meetup-has-been-held-in-shenzhen/index.html
index 5c3c8def96..7631567049 100644
--- a/en/blog/2018/07/30/the-third-dubbo-meetup-has-been-held-in-shenzhen/index.html
+++ b/en/blog/2018/07/30/the-third-dubbo-meetup-has-been-held-in-shenzhen/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/blog/2018/08/07/dubbo-101/index.html b/en/blog/2018/08/07/dubbo-101/index.html
index de519e0702..9fd720ba9f 100644
--- a/en/blog/2018/08/07/dubbo-101/index.html
+++ b/en/blog/2018/08/07/dubbo-101/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/07/dubbo-101/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Your First Dubbo Demo"><meta itemprop=description content="Modern distributed [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="2182"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Your First Dubbo Demo"><meta name=twitter:description content="Modern distributed frameworks is similiar to RMI in terms of concepts. They both use Java interface as a service contract, archive service registry an [...]
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/07/dubbo-101/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Your First Dubbo Demo"><meta itemprop=description content="Modern distributed [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="2182"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Your First Dubbo Demo"><meta name=twitter:description content="Modern distributed frameworks is similiar to RMI in terms of concepts. They both use Java interface as a service contract, archive service registry an [...]
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/07/dubbo-101/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-bloc [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>Hello stub <span style=color:#719e07>=</span> <span style=color:#719e07>(</span>Hello<span style=color:#719e07>)</span> UnicastRemoteObject<span style=color:#719e07>.</span>exportObject<span style=color:#719e07>(</span>obj<span style=color:#719e07>,</span> 0<span style=color:#719e07>);</span> <span style=color:#586e75>// #2
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>Registry registry <span style=color:#719e07>=</span> LocateRegistry<span style=color:#719e07>.</span>createRegistry<span style=color:#719e07>(</span>1099<span style=color:#719e07>);</span> <span style=color:#586e75>// #3
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>registry<span style=color:#719e07>.</span>rebind<span style=color:#719e07>(</span><span style=color:#2aa198>"Hello"</span><span style=color:#719e07>,</span> stub<span style=color:#719e07>);</span> <span style=color:#586e75>// #4
diff --git a/en/blog/2018/08/07/use-annotations-in-dubbo/index.html b/en/blog/2018/08/07/use-annotations-in-dubbo/index.html
index 7a5726338e..22ba4975d4 100644
--- a/en/blog/2018/08/07/use-annotations-in-dubbo/index.html
+++ b/en/blog/2018/08/07/use-annotations-in-dubbo/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/07/use-annotations-in-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Use Annotations In Dubbo"><meta itemprop=description content=" [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1733"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Use Annotations In Dubbo"><meta name=twitter:description content="This article will introduce you how to use annotations instead of XML to develop Dubbo applications, such as `@EnableDubbo`, `@Service` and `@Reference`.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/07/use-annotations-in-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Use Annotations In Dubbo"><meta itemprop=description content=" [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1733"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Use Annotations In Dubbo"><meta name=twitter:description content="This article will introduce you how to use annotations instead of XML to develop Dubbo applications, such as `@EnableDubbo`, `@Service` and `@Reference`.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B3%A8%E8%A7%A3/>中文</a></div></l [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#268bd2>@EnableDubboConfig</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>@DubboComponentScan</span>
diff --git a/en/blog/2018/08/07/using-zookeeper-in-dubbo/index.html b/en/blog/2018/08/07/using-zookeeper-in-dubbo/index.html
index b322b92122..2aaf51bfcf 100644
--- a/en/blog/2018/08/07/using-zookeeper-in-dubbo/index.html
+++ b/en/blog/2018/08/07/using-zookeeper-in-dubbo/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/07/using-zookeeper-in-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Using Zookeeper in Dubbo"><meta itemprop=description content=" [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1581"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Using Zookeeper in Dubbo"><meta name=twitter:description content="This article introduces basic concepts of Zookeeper, and how to use Zookeeper as a registry center.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/07/using-zookeeper-in-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Using Zookeeper in Dubbo"><meta itemprop=description content=" [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1581"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Using Zookeeper in Dubbo"><meta name=twitter:description content="This article introduces basic concepts of Zookeeper, and how to use Zookeeper as a registry center.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E5%BA%94%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8-zookeeper/>中文</a [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<em>Image Credit : ebook -Zookeeper-Distributed Process Coordination from O’Reilly</em></p><p>The method to store the data in Zookeeper is similar as the standard UNIX file system, as a data model styled after the familiar directory tree structure of file systems. When we talking about ZooKeeper data nodes, we call it Znodes to clarify it.</p><p><img src=/imgs/blog/zk-tree.png alt=zk-tree>
<em>Image Credit : ebook -Zookeeper-Distributed Process Coordination from O’Reilly</em></p><h3 id=basic-implementation>Basic Implementation</h3><p>You could donwload and install Zookeeper directly<sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup>.
Or you could use Homebrew <sup id=fnref:2><a href=#fn:2 class=footnote-ref role=doc-noteref>2</a></sup> <code>brew install zookeeper</code> to install Zookeeper in Mac OS.
diff --git a/en/blog/2018/08/10/dubbos-load-balance/index.html b/en/blog/2018/08/10/dubbos-load-balance/index.html
index f1442e6a0d..665583e1f0 100644
--- a/en/blog/2018/08/10/dubbos-load-balance/index.html
+++ b/en/blog/2018/08/10/dubbos-load-balance/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/10/dubbos-load-balance/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-10T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo's Load Balance"><meta itemprop=description content="This arti [...]
-"><meta itemprop=datePublished content="2018-08-10T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="2074"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo's Load Balance"><meta name=twitter:description content="This article introduces you what is load balance and how load balance strategy is implemented in Dubbo.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/10/dubbos-load-balance/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-10T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo's Load Balance"><meta itemprop=description content="This arti [...]
+"><meta itemprop=datePublished content="2018-08-10T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="2074"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo's Load Balance"><meta name=twitter:description content="This article introduces you what is load balance and how load balance strategy is implemented in Dubbo.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/10/dubbo%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/>中文</a></div></li></ul></di [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>| | | | |
</span></span><span style=display:flex><span>+-----------------------------------------------------------------------------------+
</span></span><span style=display:flex><span>1 10 30 50 80
diff --git a/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/index.html b/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/index.html
index fb17e3ed91..7f0ce06591 100644
--- a/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/index.html
+++ b/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Basic Usage -- Dubbo Provider Con [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1397"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Basic Usage -- Dubbo Provider Configuration"><meta name=twitter:description content="This article will introduce you how to config Dubbo, by XML, property files, annotations or Java code.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Basic Usage -- Dubbo Provider Con [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1397"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Basic Usage -- Dubbo Provider Configuration"><meta name=twitter:description content="This article will introduce you how to config Dubbo, by XML, property files, annotations or Java code.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/14/dubbo-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95-provider-%E9%85%8D%E7%BD%AE/>中文</a> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><beans xmlns="http://www.springframework.org/schema/beans"
</span></span><span style=display:flex><span> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
</span></span><span style=display:flex><span> xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
diff --git a/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/index.html b/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/index.html
index 66ae8255c4..0812729f45 100644
--- a/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/index.html
+++ b/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" Dubbo Basic Usage - Dubbo Consumer Conf [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="748"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content=" Dubbo Basic Usage - Dubbo Consumer Configuration"><meta name=twitter:description content="This article will introduce you the basics of consumer configurations.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" Dubbo Basic Usage - Dubbo Consumer Conf [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="748"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content=" Dubbo Basic Usage - Dubbo Consumer Configuration"><meta name=twitter:description content="This article will introduce you the basics of consumer configurations.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/14/dubbo-%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95-dubbo-consumer-%E9%85%8D%E7%BD%AE/> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><?xml version="1.0" encoding="UTF-8"?>
</span></span><span style=display:flex><span><beans xmlns="http://www.springframework.org/schema/beans"
</span></span><span style=display:flex><span> Xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
diff --git a/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/index.html b/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/index.html
index ef1815528f..d41f6659c7 100644
--- a/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/index.html
+++ b/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo: Several ways about sync [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1112"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo: Several ways about synchronous/asynchronous invoke"><meta name=twitter:description content="This article introduces you how to use Dubbo synchronously or asynchronously.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo: Several ways about sync [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1112"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo: Several ways about synchronous/asynchronous invoke"><meta name=twitter:description content="This article introduces you how to use Dubbo synchronously or asynchronously.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/14/dubbo-%E5%85%B3%E4%BA%8E%E5%90%8C%E6%AD%A5/%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> String <span style=color:#268bd2>goodbye</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
</span></span></code></pre></div><h5 id=consumer-configuration>Consumer configuration</h5><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> id=<span style=color:#2aa198>"asyncService"</span> interface=<span style=color:#2aa198>"com.alibaba.dubbo.samples.async.api.AsyncService"</s [...]
diff --git a/en/blog/2018/08/14/generic-invoke-of-dubbo/index.html b/en/blog/2018/08/14/generic-invoke-of-dubbo/index.html
index 5ca770c863..1f44b2b2cf 100644
--- a/en/blog/2018/08/14/generic-invoke-of-dubbo/index.html
+++ b/en/blog/2018/08/14/generic-invoke-of-dubbo/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/generic-invoke-of-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Generic invoke of Dubbo"><meta itemprop=description content="Th [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="777"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Generic invoke of Dubbo"><meta name=twitter:description content="This article introduces you when and how to use generic invoke of Dubbo.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/generic-invoke-of-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Generic invoke of Dubbo"><meta itemprop=description content="Th [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="777"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Generic invoke of Dubbo"><meta name=twitter:description content="This article introduces you when and how to use generic invoke of Dubbo.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/14/dubbo%E7%9A%84%E6%B3%9B%E5%8C%96%E8%B0%83%E7%94%A8/>中文</a></div></li></ul></di [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
instead of depending the interface jar package, the service call is initiated directly through the GenericService interface, and all POJOs in the parameters and return values are represented by a <code>Map</code>.
Generic invoke does not require attention on the server and can be exposed as normal services.</p><p>Next, let’s take a look at how the consumer uses generic invoke for service call.</p><h2 id=generic-invoke-through-spring-xml-configuration>Generic invoke through Spring XML configuration</h2><p>Declare <code>generic="true"</code> in Spring configuration, such as</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-si [...]
</span></span></code></pre></div><p>Where you need to use it, you can call it by forcing a type cast to GenericService.</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>GenericService userService <span style=color:#719e07>=</span> <span style=color:#719e07>(</span>GenericService<span style=color:#719e07>)</span> context<span style=color:#719 [...]
diff --git a/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/index.html b/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/index.html
index 866a173f11..da5bc09253 100644
--- a/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/index.html
+++ b/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Implementation of cross-language ca [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1814"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Implementation of cross-language calls by Dubbo2.js"><meta name=twitter:description content="This article introduces how to use Dubbo.js to implement cross-language calls.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Implementation of cross-language ca [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1814"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Implementation of cross-language calls by Dubbo2.js"><meta name=twitter:description content="This article introduces how to use Dubbo.js to implement cross-language calls.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/14/%E4%BB%8E%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E5%88%B0dubbo2.js/>中文</ [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:protocol</span> name=<span style=color:#2aa198>"jsonrpc"</span> port=<span style=color:#2aa198>"8080"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><h3 id=customized-protocols-for-cross-language-support>Customized Protocols for Cross-language Support</h3><p>The so-called protocol of the microservice framework can be simply interpreted as: message format and serialization scheme. Generally, the service governance framework would provide numbers of protocol configuration items for users to choose from. In addition to the above two common protocols,there exists some other customized protocols like the d [...]
</span></span><span style=display:flex><span> String <span style=color:#268bd2>sayHello</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
diff --git a/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/index.html b/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/index.html
index 73b997b05f..4a52816453 100644
--- a/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/index.html
+++ b/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Manipulating Services Dynamically via QoS"><m [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="947"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Manipulating Services Dynamically via QoS"><meta name=twitter:description content="This article introduces how to use Dubbo's QoS to achieve dynamic configuration.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Manipulating Services Dynamically via QoS"><m [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="947"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Manipulating Services Dynamically via QoS"><meta name=twitter:description content="This article introduces how to use Dubbo's QoS to achieve dynamic configuration.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/14/%E9%80%9A%E8%BF%87qos%E5%AF%B9%E6%9C%8D%E5%8A%A1%E8%BF%9B%E8%A1%8C%E5%8A%A8%E6 [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>Trying 127.0.0.1...
</span></span><span style=display:flex><span>Connected to localhost.
</span></span><span style=display:flex><span>Escape character is <span style=color:#2aa198>'^]'</span>.
diff --git a/en/blog/2018/08/14/native-image-using-graalvm/index.html b/en/blog/2018/08/14/native-image-using-graalvm/index.html
index ed4bdcbf62..c35cef7f81 100644
--- a/en/blog/2018/08/14/native-image-using-graalvm/index.html
+++ b/en/blog/2018/08/14/native-image-using-graalvm/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/native-image-using-graalvm/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Native Image using GraalVM"><meta itemprop=description conte [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1364"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Native Image using GraalVM"><meta name=twitter:description content="This article introduces you how to make Dubbo native image using GraalVM.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/native-image-using-graalvm/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Native Image using GraalVM"><meta itemprop=description conte [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1364"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Native Image using GraalVM"><meta name=twitter:description content="This article introduces you how to make Dubbo native image using GraalVM.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2021/01/14/%E4%BD%BF%E7%94%A8-graalvm-%E6%9E%84%E5%BB%BA-native-image/>中文</a></div></li>< [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
GraalVM we use here is based on jdk version 1.8.</p><h2 id=get-started>Get Started</h2><p>For user’s convenience, we provide the following demo in the <a href=https://github.com/apache/dubbo/tree/2.7-native_image>apache:2.7-native_image</a> branch. In module dubbo-demo-native, dubbo’s provider and consumer demos are given:</p><p><img src=/imgs/blog/dubbo-graalvm-support/demo_path.png alt></p><p>We used native-image’s maven plug-in and customized several native-image sta [...]
</span></span></code></pre></div><p>You can see the following output after compilation:</p><p><img src=/imgs/blog/dubbo-graalvm-support/consumer_compiler.png alt><img src=/imgs/blog/dubbo-graalvm-support/provider_compiler.png alt></p><p>Binary executable file generated can be found in the target catalog:</p><p><img src=/imgs/blog/dubbo-graalvm-support/compile_result.png alt></p><p>Size of the binary executable file is around 40M:</p><div class=highlight><pre tabindex=0 style=color:#93a1a [...]
</span></span><span style=display:flex><span>40 demo-native-provider
diff --git a/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/index.html b/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/index.html
index a223f2e407..d168f3e5d0 100644
--- a/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/index.html
+++ b/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Source code analysis of sp [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1337"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Source code analysis of spring-boot+Dubbo App start and stop"><meta name=twitter:description content="This article introduces the implementation details of app start and stop in `dubbo-spring-boot-project`.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Source code analysis of sp [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1337"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Source code analysis of spring-boot+Dubbo App start and stop"><meta name=twitter:description content="This article introduces the implementation details of app start and stop in `dubbo-spring-boot-project`.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/08/14/spring-boot-dubbo%E5%BA%94%E7%94%A8%E5%90%AF%E5%81%9C%E6%BA%90%E7%A0%81%E5%88% [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>DubboConsumerDemo</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> <span style=color:#268bd2>static</span> <span style=color:#dc322f>void</span> <span style=color:#268bd2>main</span><span style=color:#719e07>(</span>String<span style=color:#719e07>[]</span> args<span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
diff --git a/en/blog/2018/08/26/the-fourth-dubbo-meetup-has-been-held-in-chengdu/index.html b/en/blog/2018/08/26/the-fourth-dubbo-meetup-has-been-held-in-chengdu/index.html
index 42aac364ed..84fc219b8f 100644
--- a/en/blog/2018/08/26/the-fourth-dubbo-meetup-has-been-held-in-chengdu/index.html
+++ b/en/blog/2018/08/26/the-fourth-dubbo-meetup-has-been-held-in-chengdu/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/index.html b/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/index.html
index 6ecba6a561..ceaf0b64bc 100644
--- a/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/index.html
+++ b/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="How to implement a ful [...]
-"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1728"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to implement a fully asynchronous calls chain based on Dubbo"><meta name=twitter:description content="This article recalls how asynchronous call is implemented in Dubbo 2.6.x, and introduces the new way based [...]
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="How to implement a ful [...]
+"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1728"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to implement a fully asynchronous calls chain based on Dubbo"><meta name=twitter:description content="This article recalls how asynchronous call is implemented in Dubbo 2.6.x, and introduces the new way based [...]
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%9F%BA%E4%BA%8Edubbo%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%BC%82% [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> String <span style=color:#268bd2>findFoo</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
</span></span></code></pre></div><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> id=<span style=color:#2aa198>"fooService"</span> interface=<span style=color:#2aa198>"com.alibaba.foo.FooService"</span><span style=color:#268bd2>></span>
diff --git a/en/blog/2018/09/02/how-to-prepare-an-apache-release/index.html b/en/blog/2018/09/02/how-to-prepare-an-apache-release/index.html
index f619ba9090..0d7aece978 100644
--- a/en/blog/2018/09/02/how-to-prepare-an-apache-release/index.html
+++ b/en/blog/2018/09/02/how-to-prepare-an-apache-release/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/09/02/how-to-prepare-an-apache-release/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="How to prepare an Apache Release"><meta itemprop=descr [...]
-"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="2473"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to prepare an Apache Release"><meta name=twitter:description content="This article introduces how to the Apache publish content and process
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/09/02/how-to-prepare-an-apache-release/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="How to prepare an Apache Release"><meta itemprop=descr [...]
+"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="2473"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to prepare an Apache Release"><meta name=twitter:description content="This article introduces how to the Apache publish content and process
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/index.html b/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/index.html
index 71af842f37..430a14c89e 100644
--- a/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/index.html
+++ b/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-30T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Integrate Dubbo with Kubernetes"><meta itemprop=descrip [...]
-"><meta itemprop=datePublished content="2018-09-30T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1639"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Integrate Dubbo with Kubernetes"><meta name=twitter:description content="This article will try to register Dubbo service to Kubernetes and integrate with Kubernetes's multi-tenancy security system.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-30T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Integrate Dubbo with Kubernetes"><meta itemprop=descrip [...]
+"><meta itemprop=datePublished content="2018-09-30T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1639"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Integrate Dubbo with Kubernetes"><meta name=twitter:description content="This article will try to register Dubbo service to Kubernetes and integrate with Kubernetes's multi-tenancy security system.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/09/30/dubbo%E4%B8%8Ekubernetes%E9%9B%86%E6%88%90/>中文</a></div></li></ul></div><div c [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
Dubbo’s consumer directly discovers the corresponding service endpoints of Kubernetes during service discovery procedure, thereby reusing Dubbo’s existing microservice channel capabilities.The benefit is that there is no need to rely on any third-party soft-loaded registry and it can be seamlessly integrated into the multi-tenant security system of Kubernetes. Reference demo : <a href=https://github.com/dubbo/dubbo-Kubernetes>https://github.com/dubbo/dubbo-ubernetes</a></p><h [...]
<img src=https://img.alicdn.com/tfs/TB1m.tEtrorBKNjSZFjXXc_SpXa-1892-870.png alt=img></p></li><li><p>Click Manage enter the repository details page. Click Build in images service panel, construct the demo into image and publish it to the specified repository. As shown below.
<img src=https://img.alicdn.com/tfs/TB1oYqvtcIrBKNjSZK9XXagoVXa-1872-888.png alt=img></p></li><li><p>Switch to Enterprise Distributed Application Services (EDAS) products panel, visit Resource Management -> Clusters. Create Kubernetes cluster and bind ECS. As shown below.
diff --git a/en/blog/2018/10/05/introduction-to-the-dubbo-protocol/index.html b/en/blog/2018/10/05/introduction-to-the-dubbo-protocol/index.html
index 184ab43df3..c284b36c73 100644
--- a/en/blog/2018/10/05/introduction-to-the-dubbo-protocol/index.html
+++ b/en/blog/2018/10/05/introduction-to-the-dubbo-protocol/index.html
@@ -1,9 +1,9 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/10/05/dubbo-%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3/>中文</a></div></li></ul></div><div c [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>Codec2</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>@Adaptive</span><span style=color:#719e07>({</span>Constants<span style=color:#719e07>.</span>CODEC_KEY<span style=color:#719e07>})</span>
diff --git a/en/blog/2018/11/07/dubbo-integrates-with-nacos-to-become-a-registry/index.html b/en/blog/2018/11/07/dubbo-integrates-with-nacos-to-become-a-registry/index.html
index 4af2b20922..07ea76acca 100644
--- a/en/blog/2018/11/07/dubbo-integrates-with-nacos-to-become-a-registry/index.html
+++ b/en/blog/2018/11/07/dubbo-integrates-with-nacos-to-become-a-registry/index.html
@@ -1,9 +1,9 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2018/11/07/dubbo-%E8%9E%8D%E5%90%88-nacos-%E6%88%90%E4%B8%BA%E6%B3%A8%E5%86%8C%E4%B8%AD%E [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> ...
</span></span><span style=display:flex><span>
diff --git a/en/blog/2018/12/10/the-fifth-dubbo-meetup-has-been-held-in-hangzhou/index.html b/en/blog/2018/12/10/the-fifth-dubbo-meetup-has-been-held-in-hangzhou/index.html
index d3a11fe552..143313f28f 100644
--- a/en/blog/2018/12/10/the-fifth-dubbo-meetup-has-been-held-in-hangzhou/index.html
+++ b/en/blog/2018/12/10/the-fifth-dubbo-meetup-has-been-held-in-hangzhou/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/index.html b/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/index.html
index dd23be8e03..6a5c9edab1 100644
--- a/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/index.html
+++ b/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="How to use Seata to [...]
-"><meta itemprop=datePublished content="2019-01-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="584"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to use Seata to ensure consistency between Dubbo Microservices"><meta name=twitter:description content="This article will introduce you how to use Seata to ensure consistency between Dubbo Microservices.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="How to use Seata to [...]
+"><meta itemprop=datePublished content="2019-01-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="584"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to use Seata to ensure consistency between Dubbo Microservices"><meta name=twitter:description content="This article will introduce you how to use Seata to ensure consistency between Dubbo Microservices.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2019/01/17/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8seata%E4%BF%9D%E8%AF%81dubbo%E5%BE%AE%E6%9 [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#586e75>/**
</span></span></span><span style=display:flex><span><span style=color:#586e75> * deduct storage count
diff --git a/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/index.html b/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/index.html
index c1eabf68cb..5232422279 100644
--- a/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/index.html
+++ b/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Implement [...]
-"><meta itemprop=datePublished content="2019-02-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1043"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Implementation background and practice of Dubbo client asynchronous interface"><meta name=twitter:description content="Implementation background and practice of Dubbo client asynchronous interface
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Implement [...]
+"><meta itemprop=datePublished content="2019-02-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1043"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Implementation background and practice of Dubbo client asynchronous interface"><meta name=twitter:description content="Implementation background and practice of Dubbo client asynchronous interface
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2019/11/01/dubbo%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84% [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> id=<span style=color:#2aa198>"demoService"</span> check=<span style=color:#2aa198>"false"</span> interface=<span style=color:#2aa198>"com.alibaba.dubbo.samples.notify.api.DemoService"</span> version=<span style=color:#2aa198>"1.0.0"</span> group=<span style=color:#2aa198>"cn"</span><span style=color:#268bd2>></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo:method</span> name=<span style=color:#2aa198>"sayHello"</span> onreturn=<span style=color:#2aa198>"demoCallback.onreturn"</span> onthrow=<span style=color:#2aa198>"demoCallback.onthrow"</span><span style=color:#268bd2>/></span>
diff --git a/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/index.html b/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/index.html
index c6f38df722..1a7adb0d35 100644
--- a/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/index.html
+++ b/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Implement [...]
-"><meta itemprop=datePublished content="2019-02-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="909"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Implementation background and practice of Dubbo server asynchronous interface"><meta name=twitter:description content="Implementation background and practice of Dubbo server asynchronous interface
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Implement [...]
+"><meta itemprop=datePublished content="2019-02-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="909"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Implementation background and practice of Dubbo server asynchronous interface"><meta name=twitter:description content="Implementation background and practice of Dubbo server asynchronous interface
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2019/11/02/dubbo%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84% [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>@Override</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> String <span style=color:#268bd2>sayHello</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
diff --git a/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/index.html b/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/index.html
index fb0f1e7d17..4bdb220063 100644
--- a/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/index.html
+++ b/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo extensible mechanism sourc [...]
-"><meta itemprop=datePublished content="2019-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="2284"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo extensible mechanism source code analysis - part 1"><meta name=twitter:description content="description: This article introduces Dubbo's SPI mechanism.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo extensible mechanism sourc [...]
+"><meta itemprop=datePublished content="2019-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="2284"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo extensible mechanism source code analysis - part 1"><meta name=twitter:description content="description: This article introduces Dubbo's SPI mechanism.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/>中文</a></ [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
When talking about software design, people always mention scalability. A framework with good scalability requires the following:
1.The framework should follow opening/closed principle: software entities should be open for extension, but closed for modification; This means a framework should allow the maintainer to add new functions with as few modifications as possible.
2.The framework should allow the user to add new functions by adding code on his project without modifying the framework’s original source code base.
diff --git a/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/index.html b/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/index.html
index 80355ac0e9..d6b08abc0c 100644
--- a/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/index.html
+++ b/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo extensible mechanism sourc [...]
-"><meta itemprop=datePublished content="2019-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="2629"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo extensible mechanism source code analysis - part 2"><meta name=twitter:description content="This article introduces the principles and details of Dubbo's SPI.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo extensible mechanism sourc [...]
+"><meta itemprop=datePublished content="2019-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="2629"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo extensible mechanism source code analysis - part 2"><meta name=twitter:description content="This article introduces the principles and details of Dubbo's SPI.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2019/05/02/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E6%BA%90%E7%A0%81%E8%A7%A3% [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
This is a static factory method that enters an extensible interface and returns an ExtensionLoader entity class for this interface. With this entity class, you can get not only a specific extension based on name, but also an adaptive extension.</li></ol><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> <sp [...]
</span></span><span style=display:flex><span> <span style=color:#586e75>// An extension point must be an interface
</span></span></span><span style=display:flex><span><span style=color:#586e75></span> <span style=color:#719e07>if</span> <span style=color:#719e07>(!</span>type<span style=color:#719e07>.</span>isInterface<span style=color:#719e07>())</span> <span style=color:#719e07>{</span>
diff --git a/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/index.html b/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/index.html
index 7045ca520f..375c6288b4 100644
--- a/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/index.html
+++ b/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Tracing Dubbo service with Apache Skywalki [...]
-"><meta itemprop=datePublished content="2019-08-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="469"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Tracing Dubbo service with Apache Skywalking"><meta name=twitter:description content="This article introduces how to use Apache Skywalking to track Dubbo applications.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Tracing Dubbo service with Apache Skywalki [...]
+"><meta itemprop=datePublished content="2019-08-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="469"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Tracing Dubbo service with Apache Skywalking"><meta name=twitter:description content="This article introduces how to use Apache Skywalking to track Dubbo applications.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2019/08/11/%E4%BD%BF%E7%94%A8apache-skywalking-incubator-%E5%81%9A%E5%88%86%E5%B8%83%E5%B [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
package org.apache.skywalking.demo.interfaces;</p><p>public interface HelloService {
String sayHello(String name);
}</p><h4 id=service-provider-project>Service provider project</h4><p>package org.apache.skywalking.demo.provider;</p><p>@Service(version = “${demo.service.version}”,
diff --git a/en/blog/2019/08/26/service-test/index.html b/en/blog/2019/08/26/service-test/index.html
index ea628c5487..d8ffee553f 100644
--- a/en/blog/2019/08/26/service-test/index.html
+++ b/en/blog/2019/08/26/service-test/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/08/26/service-test/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Admin service test"><meta itemprop=description content="This article [...]
-"><meta itemprop=datePublished content="2019-08-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="825"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin service test"><meta name=twitter:description content="This article introduces how to make service test with Dubbo.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2019/08/26/service-test/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Admin service test"><meta itemprop=description content="This article [...]
+"><meta itemprop=datePublished content="2019-08-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="825"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin service test"><meta name=twitter:description content="This article introduces how to make service test with Dubbo.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2019/08/26/service-test/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-b [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<img src=/imgs/blog/admin/testSearch.jpg alt=testSearch><br>the information here is similar to the metadata, including the method name, parameter type and return value. Click the label on the right to enter the <code>service test</code> page.</p></li><li><p>Service test:
<img src=/imgs/blog/admin/testSuccess.jpg alt=testSuccess><br><code>service test</code> page contains two json editor, the parameter’s informations are all stored in a json format, where you need to fill in the corresponding parameter values (in this case, the number type is String ), after filling, click <code>execute</code> to initiate the call to the server, and the result of the call is displayed in the editor on the right. If the call fails, the detailed cause of the failure i [...]
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>Result <span style=color:#268bd2>getUser</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>,</span> UserInfoDO userInfoDO<span style=color:#719e07>);</span>
diff --git a/en/blog/2020/05/18/past-releases/index.html b/en/blog/2020/05/18/past-releases/index.html
index 76aac6780e..a7cccca969 100644
--- a/en/blog/2020/05/18/past-releases/index.html
+++ b/en/blog/2020/05/18/past-releases/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2020/05/18/past-releases/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Past Releases"><meta itemprop=description content="This article will intr [...]
-"><meta itemprop=datePublished content="2020-05-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="390"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Past Releases"><meta name=twitter:description content="This article will introduce you how to understand the details of each version and upgrade matters needing attention.
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2020/05/18/past-releases/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Past Releases"><meta itemprop=description content="This article will intr [...]
+"><meta itemprop=datePublished content="2020-05-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="390"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Past Releases"><meta name=twitter:description content="This article will introduce you how to understand the details of each version and upgrade matters needing attention.
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2021/07/02/3.0.1-release-note/index.html b/en/blog/2021/07/02/3.0.1-release-note/index.html
index 5a6bc49d24..996b498f42 100644
--- a/en/blog/2021/07/02/3.0.1-release-note/index.html
+++ b/en/blog/2021/07/02/3.0.1-release-note/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/07/02/3.0.1-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-07-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.1 Release Note"><meta itemprop=description content="The release [...]
-"><meta itemprop=datePublished content="2021-07-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="101"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.1 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 3.0.1
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/07/02/3.0.1-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-07-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.1 Release Note"><meta itemprop=description content="The release [...]
+"><meta itemprop=datePublished content="2021-07-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="101"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.1 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 3.0.1
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2021/08/18/3.0.2-release-note/index.html b/en/blog/2021/08/18/3.0.2-release-note/index.html
index 9245f9fe86..5ed9464034 100644
--- a/en/blog/2021/08/18/3.0.2-release-note/index.html
+++ b/en/blog/2021/08/18/3.0.2-release-note/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/08/18/3.0.2-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2 Release Note"><meta itemprop=description content="The release [...]
-"><meta itemprop=datePublished content="2021-08-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="510"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 3.0.2
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/08/18/3.0.2-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2 Release Note"><meta itemprop=description content="The release [...]
+"><meta itemprop=datePublished content="2021-08-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="510"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 3.0.2
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2021/08/23/3.0.2.1-release-note/index.html b/en/blog/2021/08/23/3.0.2.1-release-note/index.html
index ac8fe4414e..a361daa5a6 100644
--- a/en/blog/2021/08/23/3.0.2.1-release-note/index.html
+++ b/en/blog/2021/08/23/3.0.2.1-release-note/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/08/23/3.0.2.1-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2.1 Release Note"><meta itemprop=description content="The rele [...]
-"><meta itemprop=datePublished content="2021-08-23T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="43"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2.1 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 3.0.2.1
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/08/23/3.0.2.1-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2.1 Release Note"><meta itemprop=description content="The rele [...]
+"><meta itemprop=datePublished content="2021-08-23T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="43"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2.1 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 3.0.2.1
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2021/09/20/2.7.14-release-note/index.html b/en/blog/2021/09/20/2.7.14-release-note/index.html
index c86b30a314..ae26c1c203 100644
--- a/en/blog/2021/09/20/2.7.14-release-note/index.html
+++ b/en/blog/2021/09/20/2.7.14-release-note/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/09/20/2.7.14-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-09-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="2.7.14 Release Note"><meta itemprop=description content="The releas [...]
-"><meta itemprop=datePublished content="2021-09-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="157"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="2.7.14 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 2.7.14
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/blog/2021/09/20/2.7.14-release-note/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-09-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="2.7.14 Release Note"><meta itemprop=description content="The releas [...]
+"><meta itemprop=datePublished content="2021-09-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="157"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="2.7.14 Release Note"><meta name=twitter:description content="The release note of Apache Dubbo 2.7.14
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
diff --git a/en/blog/2022/01/18/makes-it-more-convenient-for-you-to-proxy-dubbo-services-in-apache-apisix/index.html b/en/blog/2022/01/18/makes-it-more-convenient-for-you-to-proxy-dubbo-services-in-apache-apisix/index.html
index 5acb402862..bd928cc798 100644
--- a/en/blog/2022/01/18/makes-it-more-convenient-for-you-to-proxy-dubbo-services-in-apache-apisix/index.html
+++ b/en/blog/2022/01/18/makes-it-more-convenient-for-you-to-proxy-dubbo-services-in-apache-apisix/index.html
@@ -1,9 +1,9 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#586e75>/**
</span></span></span><span style=display:flex><span><span style=color:#586e75> * standard samples dubbo infterace demo
diff --git a/en/blog/2022/05/04/how-to-proxy-dubbo-service-in-apache-shenyu-gateway/index.html b/en/blog/2022/05/04/how-to-proxy-dubbo-service-in-apache-shenyu-gateway/index.html
index ee397b4f6a..cdb873b87c 100644
--- a/en/blog/2022/05/04/how-to-proxy-dubbo-service-in-apache-shenyu-gateway/index.html
+++ b/en/blog/2022/05/04/how-to-proxy-dubbo-service-in-apache-shenyu-gateway/index.html
@@ -1,9 +1,9 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3 [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>English</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/zh/>中文</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#719e07><</span>dependency<span style=color:#719e07>></span>
</span></span><span style=display:flex><span> <span style=color:#719e07><</span>groupId<span style=color:#719e07>></span>org<span style=color:#719e07>.</span>apache<span style=color:#719e07>.</span>shenyu<span style=color:#719e07></</span>groupId<span style=color:#719e07>></span>
</span></span><span style=display:flex><span> <span style=color:#719e07><</span>artifactId<span style=color:#719e07>></span>shenyu<span style=color:#719e07>-</span>spring<span style=color:#719e07>-</span>boot<span style=color:#719e07>-</span>starter<span style=color:#719e07>-</span>plugin<span style=color:#719e07>-</span>apache<span style=color:#719e07>-</span>dubbo<span style=color:#719e07></</span>artifactId<span style=color:#719e07>></span>
diff --git a/en/docs/contribution-guidelines/committer/apache-dubbo-page_dev/index.html b/en/docs/contribution-guidelines/committer/apache-dubbo-page_dev/index.html
index e3cae8aefb..0b22008f12 100644
--- a/en/docs/contribution-guidelines/committer/apache-dubbo-page_dev/index.html
+++ b/en/docs/contribution-guidelines/committer/apache-dubbo-page_dev/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-When the project has undergone major changes, such as the addition of a new committer, the election of a new PMC, or a new version of Release, etc, these updates need to be maintained on this page. The project address for this official website is https://svn."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/apache-dubbo-page_dev/"><meta property="article:section" content="docs"><meta property=" [...]
-When the project has undergone major changes, such as the addition of a new committer, the election of a new PMC, or a new version of Release, etc, these updates need to be maintained on this page. The project address for this official website is https://svn."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="198"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Apache Official Dubb [...]
+When the project has undergone major changes, such as the addition of a new committer, the election of a new PMC, or a new version of Release, etc, these updates need to be maintained on this page. The project address for this official website is https://svn."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/apache-dubbo-page_dev/"><meta property="article:section" content="docs"><meta property=" [...]
+When the project has undergone major changes, such as the addition of a new committer, the election of a new PMC, or a new version of Release, etc, these updates need to be maintained on this page. The project address for this official website is https://svn."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="198"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Apache Official Dubb [...]
When the project has undergone major changes, such as the addition of a new committer, the election of a new PMC, or a new version of Release, etc, these updates need to be maintained on this page. The project address for this official website is https://svn."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async sr [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/contribution-guidelines/committer/label-an-issue-guide_dev/index.html b/en/docs/contribution-guidelines/committer/label-an-issue-guide_dev/index.html
index 5d7ca44adf..29c3f4e0bc 100644
--- a/en/docs/contribution-guidelines/committer/label-an-issue-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/committer/label-an-issue-guide_dev/index.html
@@ -2,11 +2,11 @@
For issues or pull requests that need coding and further version release to fix, you should always mark it with a milestone.
Some frequently used labels:
Help Wanted
-help wanted good first issue Prority"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/label-an-issue-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Label an Issue"><meta itemprop=description content="If you are handling an issu [...]
+help wanted good first issue Prority"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/label-an-issue-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Label an Issue"><meta itemprop=description content="If you are handling an issu [...]
For issues or pull requests that need coding and further version release to fix, you should always mark it with a milestone.
Some frequently used labels:
Help Wanted
-help wanted good first issue Prority"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="85"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Label an Issue"><meta name=twitter:description content="If you are handling an issue, remember to mark the issue cearly with one or more labels whenever you think it’s meaningful. With labels on, other developers can easily recognize prob [...]
+help wanted good first issue Prority"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="85"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Label an Issue"><meta name=twitter:description content="If you are handling an issue, remember to mark the issue cearly with one or more labels whenever you think it’s meaningful. With labels on, other developers can easily recognize prob [...]
For issues or pull requests that need coding and further version release to fix, you should always mark it with a milestone.
Some frequently used labels:
Help Wanted
diff --git a/en/docs/contribution-guidelines/committer/new-committer-guide_dev/index.html b/en/docs/contribution-guidelines/committer/new-committer-guide_dev/index.html
index 1a746393f8..09d08d352d 100644
--- a/en/docs/contribution-guidelines/committer/new-committer-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/committer/new-committer-guide_dev/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-The active contributor is elected as a committer At the late development stage, an active contributor can be elected as a committer."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/new-committer-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itempro [...]
-The active contributor is elected as a committer At the late development stage, an active contributor can be elected as a committer."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="887"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Apache Committer Guide"><meta name=twitter:description content="First: How to become a committer Initial committers at the project incubator stage [...]
+The active contributor is elected as a committer At the late development stage, an active contributor can be elected as a committer."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/new-committer-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itempro [...]
+The active contributor is elected as a committer At the late development stage, an active contributor can be elected as a committer."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="887"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Apache Committer Guide"><meta name=twitter:description content="First: How to become a committer Initial committers at the project incubator stage [...]
The active contributor is elected as a committer At the late development stage, an active contributor can be elected as a committer."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/contribution-guidelines/committer/release-guide_dev/index.html b/en/docs/contribution-guidelines/committer/release-guide_dev/index.html
index 976b37ece3..2ea26620f9 100644
--- a/en/docs/contribution-guidelines/committer/release-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/committer/release-guide_dev/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Please refer to the following links for more information on ASF’s release guide:
-Apache Release Guide Apache Release Policy Maven Release Info Preparation of Local Building Environment Mainly including the related preparation of signature utilities and Maven repository certification"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/release-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><m [...]
+Apache Release Guide Apache Release Policy Maven Release Info Preparation of Local Building Environment Mainly including the related preparation of signature utilities and Maven repository certification"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/committer/release-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><m [...]
Please refer to the following links for more information on ASF’s release guide:
-Apache Release Guide Apache Release Policy Maven Release Info Preparation of Local Building Environment Mainly including the related preparation of signature utilities and Maven repository certification"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="2520"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Release Guide"><meta name=twitter:description content="Understanding the Apa [...]
+Apache Release Guide Apache Release Policy Maven Release Info Preparation of Local Building Environment Mainly including the related preparation of signature utilities and Maven repository certification"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="2520"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Release Guide"><meta name=twitter:description content="Understanding the Apa [...]
Please refer to the following links for more information on ASF’s release guide:
Apache Release Guide Apache Release Policy Maven Release Info Preparation of Local Building Environment Mainly including the related preparation of signature utilities and Maven repository certification"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/contribution-guidelines/committer/website-guide_dev/index.html b/en/docs/contribution-guidelines/committer/website-guide_dev/index.html
index c9084df65b..35612d504a 100644
--- a/en/docs/contribution-guidelines/committer/website-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/committer/website-guide_dev/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/contribution-guidelines/contributor/become-a-committer_dev/index.html b/en/docs/contribution-guidelines/contributor/become-a-committer_dev/index.html
index 8ba8ee36b6..5430f58d59 100644
--- a/en/docs/contribution-guidelines/contributor/become-a-committer_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/become-a-committer_dev/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-If you become a valuable contributor to the project you may well be invited to become a committer. Committer is a term used at the ASF to signify someone who is committed to a particular project."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/become-a-committer_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><m [...]
-If you become a valuable contributor to the project you may well be invited to become a committer. Committer is a term used at the ASF to signify someone who is committed to a particular project."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="214"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to become a Dubbo committer"><meta name=twitter:description content="Anyone can [...]
+If you become a valuable contributor to the project you may well be invited to become a committer. Committer is a term used at the ASF to signify someone who is committed to a particular project."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/become-a-committer_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><m [...]
+If you become a valuable contributor to the project you may well be invited to become a committer. Committer is a term used at the ASF to signify someone who is committed to a particular project."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="214"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="How to become a Dubbo committer"><meta name=twitter:description content="Anyone can [...]
If you become a valuable contributor to the project you may well be invited to become a committer. Committer is a term used at the ASF to signify someone who is committed to a particular project."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/contribution-guidelines/contributor/cla-signing-guide_dev/index.html b/en/docs/contribution-guidelines/contributor/cla-signing-guide_dev/index.html
index 8e4542f959..a92832cc25 100644
--- a/en/docs/contribution-guidelines/contributor/cla-signing-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/cla-signing-guide_dev/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-You have made lots of contribution to Dubbo before Dubbo get donated to Apache, and you haven’t sign the Alibaba-CLA before. You have made lots of contribution to Dubbo, and you are invited to become committer of Dubbo, and you have not signed Alibaba-CLA or Apache ICLA before. Steps Download this pdf Fill in the necessary blanks Print it out Sign the printed file Scan it Send an email to secretary@apache."><meta property="og:type" content="article"><meta property="og:url" content= [...]
-You have made lots of contribution to Dubbo before Dubbo get donated to Apache, and you haven’t sign the Alibaba-CLA before. You have made lots of contribution to Dubbo, and you are invited to become committer of Dubbo, and you have not signed Alibaba-CLA or Apache ICLA before. Steps Download this pdf Fill in the necessary blanks Print it out Sign the printed file Scan it Send an email to secretary@apache."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemp [...]
+You have made lots of contribution to Dubbo before Dubbo get donated to Apache, and you haven’t sign the Alibaba-CLA before. You have made lots of contribution to Dubbo, and you are invited to become committer of Dubbo, and you have not signed Alibaba-CLA or Apache ICLA before. Steps Download this pdf Fill in the necessary blanks Print it out Sign the printed file Scan it Send an email to secretary@apache."><meta property="og:type" content="article"><meta property="og:url" content= [...]
+You have made lots of contribution to Dubbo before Dubbo get donated to Apache, and you haven’t sign the Alibaba-CLA before. You have made lots of contribution to Dubbo, and you are invited to become committer of Dubbo, and you have not signed Alibaba-CLA or Apache ICLA before. Steps Download this pdf Fill in the necessary blanks Print it out Sign the printed file Scan it Send an email to secretary@apache."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemp [...]
You have made lots of contribution to Dubbo before Dubbo get donated to Apache, and you haven’t sign the Alibaba-CLA before. You have made lots of contribution to Dubbo, and you are invited to become committer of Dubbo, and you have not signed Alibaba-CLA or Apache ICLA before. Steps Download this pdf Fill in the necessary blanks Print it out Sign the printed file Scan it Send an email to secretary@apache."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.g [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html b/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html
index 0704264aac..eb9f7886ab 100644
--- a/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Dubbo Ecosystem We recommend you to put extension to Dubbo ecosystem. Using this pattern will keep the core repository cleaner and decrease the maintains work. With less code also speed up core repository build process."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="20 [...]
-Dubbo Ecosystem We recommend you to put extension to Dubbo ecosystem. Using this pattern will keep the core repository cleaner and decrease the maintains work. With less code also speed up core repository build process."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="297"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Extension Guide"><meta name=twitter:description content="Dub [...]
+Dubbo Ecosystem We recommend you to put extension to Dubbo ecosystem. Using this pattern will keep the core repository cleaner and decrease the maintains work. With less code also speed up core repository build process."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/dubbo-extension-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="20 [...]
+Dubbo Ecosystem We recommend you to put extension to Dubbo ecosystem. Using this pattern will keep the core repository cleaner and decrease the maintains work. With less code also speed up core repository build process."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="297"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Extension Guide"><meta name=twitter:description content="Dub [...]
Dubbo Ecosystem We recommend you to put extension to Dubbo ecosystem. Using this pattern will keep the core repository cleaner and decrease the maintains work. With less code also speed up core repository build process."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analy [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html b/en/docs/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html
index 87f808fb5d..10f5e9e106 100644
--- a/en/docs/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
You can also view the archive of the mailing list
Here is a brief guide specific to Dubbo:
-Send an email to dev-subscribe@dubbo.apache.org, you can have empty subject and empty content. You will receive an email with the following content: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributo [...]
+Send an email to dev-subscribe@dubbo.apache.org, you can have empty subject and empty content. You will receive an email with the following content: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributo [...]
You can also view the archive of the mailing list
Here is a brief guide specific to Dubbo:
-Send an email to dev-subscribe@dubbo.apache.org, you can have empty subject and empty content. You will receive an email with the following content: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="333"><meta itemprop=keywords content><meta na [...]
+Send an email to dev-subscribe@dubbo.apache.org, you can have empty subject and empty content. You will receive an email with the following content: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="333"><meta itemprop=keywords content><meta na [...]
You can also view the archive of the mailing list
Here is a brief guide specific to Dubbo:
Send an email to dev-subscribe@dubbo.apache.org, you can have empty subject and empty content. You will receive an email with the following content: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new D [...]
diff --git a/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev/index.html b/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev/index.html
index 88bdb26bb5..bee7e4dbea 100644
--- a/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Subscribe to the mailing list The mailing list is the recommended way for discussing almost anything that related to Dubbo. Please refer to this issue for detailed documentation on how to subscribe.
To subscribe to the following mailing list, please refer to Mailing list subscription guide
-dev@dubbo.apache.org: the develop mailing list, you can ask question here if you have encountered any problem when using or developing Dubbo."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"> [...]
+dev@dubbo.apache.org: the develop mailing list, you can ask question here if you have encountered any problem when using or developing Dubbo."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/new-contributor-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"> [...]
Subscribe to the mailing list The mailing list is the recommended way for discussing almost anything that related to Dubbo. Please refer to this issue for detailed documentation on how to subscribe.
To subscribe to the following mailing list, please refer to Mailing list subscription guide
-dev@dubbo.apache.org: the develop mailing list, you can ask question here if you have encountered any problem when using or developing Dubbo."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="419"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="New Contributor Guide"><meta name=twitter:description content="This is a guide for new comers who wants to contribute to Dubbo.
+dev@dubbo.apache.org: the develop mailing list, you can ask question here if you have encountered any problem when using or developing Dubbo."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="419"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="New Contributor Guide"><meta name=twitter:description content="This is a guide for new comers who wants to contribute to Dubbo.
Subscribe to the mailing list The mailing list is the recommended way for discussing almost anything that related to Dubbo. Please refer to this issue for detailed documentation on how to subscribe.
To subscribe to the following mailing list, please refer to Mailing list subscription guide
dev@dubbo.apache.org: the develop mailing list, you can ask question here if you have encountered any problem when using or developing Dubbo."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
diff --git a/en/docs/contribution-guidelines/contributor/reporting-security-issues_dev/index.html b/en/docs/contribution-guidelines/contributor/reporting-security-issues_dev/index.html
index 0c10344229..a307d01743 100644
--- a/en/docs/contribution-guidelines/contributor/reporting-security-issues_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/reporting-security-issues_dev/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-REPORTING VULNERABILITY If you have apprehensions regarding Dubbo’s security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Apache Dubbo Security Team by dropping a mail at security@dubbo.apache.org. In the mail, specify the description of the issue or potential threat."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/reporting-security-issues [...]
-REPORTING VULNERABILITY If you have apprehensions regarding Dubbo’s security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Apache Dubbo Security Team by dropping a mail at security@dubbo.apache.org. In the mail, specify the description of the issue or potential threat."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="186"><meta itemprop=keywords content><meta name=twitter:card content="su [...]
+REPORTING VULNERABILITY If you have apprehensions regarding Dubbo’s security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Apache Dubbo Security Team by dropping a mail at security@dubbo.apache.org. In the mail, specify the description of the issue or potential threat."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/reporting-security-issues [...]
+REPORTING VULNERABILITY If you have apprehensions regarding Dubbo’s security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Apache Dubbo Security Team by dropping a mail at security@dubbo.apache.org. In the mail, specify the description of the issue or potential threat."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="186"><meta itemprop=keywords content><meta name=twitter:card content="su [...]
REPORTING VULNERABILITY If you have apprehensions regarding Dubbo’s security or you discover vulnerability or potential threat, don’t hesitate to get in touch with the Apache Dubbo Security Team by dropping a mail at security@dubbo.apache.org. In the mail, specify the description of the issue or potential threat."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-1124895 [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/contribution-guidelines/contributor/software-donation-guide_dev/index.html b/en/docs/contribution-guidelines/contributor/software-donation-guide_dev/index.html
index 17e627331f..957e900432 100644
--- a/en/docs/contribution-guidelines/contributor/software-donation-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/software-donation-guide_dev/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
If you are donating significant amount of code or documentation to Apache Dubbo , you will be required to sign a Software Grant before your code/doc could be merged.
-Steps Download this pdf Print it out Fill in the blanks (see below as an example) Request your boss to sign it Scan it Send an email to secretary@apache."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/software-donation-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content=" [...]
+Steps Download this pdf Print it out Fill in the blanks (see below as an example) Request your boss to sign it Scan it Send an email to secretary@apache."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/contribution-guidelines/contributor/software-donation-guide_dev/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content=" [...]
If you are donating significant amount of code or documentation to Apache Dubbo , you will be required to sign a Software Grant before your code/doc could be merged.
-Steps Download this pdf Print it out Fill in the blanks (see below as an example) Request your boss to sign it Scan it Send an email to secretary@apache."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="602"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Software Donation Guide"><meta name=twitter:description content="Before you go through this guide, make sure you have confirme [...]
+Steps Download this pdf Print it out Fill in the blanks (see below as an example) Request your boss to sign it Scan it Send an email to secretary@apache."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="602"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Software Donation Guide"><meta name=twitter:description content="Before you go through this guide, make sure you have confirme [...]
If you are donating significant amount of code or documentation to Apache Dubbo , you will be required to sign a Software Grant before your code/doc could be merged.
Steps Download this pdf Print it out Fill in the blanks (see below as an example) Request your boss to sign it Scan it Send an email to secretary@apache."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev/index.html b/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev/index.html
index 05e956f23f..518891b138 100644
--- a/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev/index.html
+++ b/en/docs/contribution-guidelines/contributor/test-coverage-guide_dev/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/notices/security/index.html b/en/docs/notices/security/index.html
index 29e51d4810..37aeefaf3c 100644
--- a/en/docs/notices/security/index.html
+++ b/en/docs/notices/security/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/admin/install/admin-console/index.html b/en/docs/v2.7/admin/install/admin-console/index.html
index f20aa8af19..18c0afd39e 100644
--- a/en/docs/v2.7/admin/install/admin-console/index.html
+++ b/en/docs/v2.7/admin/install/admin-console/index.html
@@ -4,13 +4,13 @@ git clone https://github.com/apache/dubbo-admin.git /var/tmp/dubbo-admin cd /var
configuration file: dubbo-admin-server/src/main/resources/application.properties configurations: admin.registry.address=zookeeper://127.0.0.1:2181 admin.config-center=zookeeper://127.0.0.1:2181 admin.metadata-report.address=zookeeper://127.0.0.1:2181 Start:
mvn --projects dubbo-admin-backend spring-boot:run For more information, please visit:
https://github.com/apache/dubbo-admin Visit [^2]:
-http://127.0.0.1:8080 There’s no login for current version, will be added later ↩︎"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/admin-console/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Install Admin Console"><meta itempr [...]
+http://127.0.0.1:8080 There’s no login for current version, will be added later ↩︎"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/admin-console/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Install Admin Console"><meta itempr [...]
Install:
git clone https://github.com/apache/dubbo-admin.git /var/tmp/dubbo-admin cd /var/tmp/dubbo-admin mvn clean package Configuration 1:
configuration file: dubbo-admin-server/src/main/resources/application.properties configurations: admin.registry.address=zookeeper://127.0.0.1:2181 admin.config-center=zookeeper://127.0.0.1:2181 admin.metadata-report.address=zookeeper://127.0.0.1:2181 Start:
mvn --projects dubbo-admin-backend spring-boot:run For more information, please visit:
https://github.com/apache/dubbo-admin Visit [^2]:
-http://127.0.0.1:8080 There’s no login for current version, will be added later ↩︎"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="64"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Admin Console"><meta name=twitter:description content="The current version of dubbo admin is under development, including: route rule, dynamic configuration, access c [...]
+http://127.0.0.1:8080 There’s no login for current version, will be added later ↩︎"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="64"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Admin Console"><meta name=twitter:description content="The current version of dubbo admin is under development, including: route rule, dynamic configuration, access c [...]
Install:
git clone https://github.com/apache/dubbo-admin.git /var/tmp/dubbo-admin cd /var/tmp/dubbo-admin mvn clean package Configuration 1:
configuration file: dubbo-admin-server/src/main/resources/application.properties configurations: admin.registry.address=zookeeper://127.0.0.1:2181 admin.config-center=zookeeper://127.0.0.1:2181 admin.metadata-report.address=zookeeper://127.0.0.1:2181 Start:
diff --git a/en/docs/v2.7/admin/install/consumer-demo/index.html b/en/docs/v2.7/admin/install/consumer-demo/index.html
index cf8380f8ea..03f717dfd1 100644
--- a/en/docs/v2.7/admin/install/consumer-demo/index.html
+++ b/en/docs/v2.7/admin/install/consumer-demo/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
$ git clone https://github.com/apache/dubbo.git $ cd dubbo/dubbo-demo/dubbo-demo-xml # run org.apache.dubbo.demo.consumer.Application under dubbo-demo-xml-consumer module # please start Provider first # add -Djava.net.preferIPv4Stack=true if your IDE is Intellij Idea Configuration:
-# resources/spring/dubbo-consumer.xml # change dubbo:registry to the real registry center address, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/consumer-demo/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache [...]
+# resources/spring/dubbo-consumer.xml # change dubbo:registry to the real registry center address, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/consumer-demo/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache [...]
$ git clone https://github.com/apache/dubbo.git $ cd dubbo/dubbo-demo/dubbo-demo-xml # run org.apache.dubbo.demo.consumer.Application under dubbo-demo-xml-consumer module # please start Provider first # add -Djava.net.preferIPv4Stack=true if your IDE is Intellij Idea Configuration:
-# resources/spring/dubbo-consumer.xml # change dubbo:registry to the real registry center address, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="45"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Demo Consumer"><meta name=twitter:description content="Install:
+# resources/spring/dubbo-consumer.xml # change dubbo:registry to the real registry center address, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="45"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Demo Consumer"><meta name=twitter:description content="Install:
$ git clone https://github.com/apache/dubbo.git $ cd dubbo/dubbo-demo/dubbo-demo-xml # run org.apache.dubbo.demo.consumer.Application under dubbo-demo-xml-consumer module # please start Provider first # add -Djava.net.preferIPv4Stack=true if your IDE is Intellij Idea Configuration:
# resources/spring/dubbo-consumer.xml # change dubbo:registry to the real registry center address, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/admin/install/monitor-center/index.html b/en/docs/v2.7/admin/install/monitor-center/index.html
index e8c565ebc5..a9fb6e9248 100644
--- a/en/docs/v2.7/admin/install/monitor-center/index.html
+++ b/en/docs/v2.7/admin/install/monitor-center/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/admin/install/provider-demo/index.html b/en/docs/v2.7/admin/install/provider-demo/index.html
index b9f0268102..3ebbb5effe 100644
--- a/en/docs/v2.7/admin/install/provider-demo/index.html
+++ b/en/docs/v2.7/admin/install/provider-demo/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
$ git clone https://github.com/apache/dubbo.git $ cd dubbo/dubbo-demo/dubbo-demo-xml # run org.apache.dubbo.demo.provider.Application under dubbo-demo-xml-provider module # add -Djava.net.preferIPv4Stack=true if your IDE is Intellij Idea configuration:
-# resources/spring/dubbo-provider.xml # change dubbo:registry to a real registry server address, zookeeper is recommended, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/provider-demo/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:sit [...]
+# resources/spring/dubbo-provider.xml # change dubbo:registry to a real registry server address, zookeeper is recommended, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/provider-demo/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:sit [...]
$ git clone https://github.com/apache/dubbo.git $ cd dubbo/dubbo-demo/dubbo-demo-xml # run org.apache.dubbo.demo.provider.Application under dubbo-demo-xml-provider module # add -Djava.net.preferIPv4Stack=true if your IDE is Intellij Idea configuration:
-# resources/spring/dubbo-provider.xml # change dubbo:registry to a real registry server address, zookeeper is recommended, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="43"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Demo Provider"><meta name=twitter:description content="install:
+# resources/spring/dubbo-provider.xml # change dubbo:registry to a real registry server address, zookeeper is recommended, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="43"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Demo Provider"><meta name=twitter:description content="install:
$ git clone https://github.com/apache/dubbo.git $ cd dubbo/dubbo-demo/dubbo-demo-xml # run org.apache.dubbo.demo.provider.Application under dubbo-demo-xml-provider module # add -Djava.net.preferIPv4Stack=true if your IDE is Intellij Idea configuration:
# resources/spring/dubbo-provider.xml # change dubbo:registry to a real registry server address, zookeeper is recommended, for example: # <dubbo:registry address="zookeeper://127.0.0.1:2181"/> "><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/admin/install/redis/index.html b/en/docs/v2.7/admin/install/redis/index.html
index 0dcb354a3d..e7fe4e8b9e 100644
--- a/en/docs/v2.7/admin/install/redis/index.html
+++ b/en/docs/v2.7/admin/install/redis/index.html
@@ -5,14 +5,14 @@ Install:
wget http://redis.googlecode.com/files/redis-2.4.8.tar.gz tar xzf redis-2.4.8.tar.gz cd redis-2.4.8 make Configuration:
vi redis.conf Start:
nohup ./src/redis-server redis.conf & Stop:
-killall redis-server Command line 3: ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/redis/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Install Redis Register Center"><meta itemprop=description content="Redis 1 introductions, please refer to: Redi [...]
+killall redis-server Command line 3: ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/redis/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Install Redis Register Center"><meta itemprop=description content="Redis 1 introductions, please refer to: Redi [...]
you need an origin Redis server only, and change the value from dubbo.registry.address to redis://127.0.0.1:6379 in conf/dubbo.properties of quick start
Redis configuration center cluster 2 write multiple server in client side and read from a single server.
Install:
wget http://redis.googlecode.com/files/redis-2.4.8.tar.gz tar xzf redis-2.4.8.tar.gz cd redis-2.4.8 make Configuration:
vi redis.conf Start:
nohup ./src/redis-server redis.conf & Stop:
-killall redis-server Command line 3: ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="101"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Redis Register Center"><meta name=twitter:description content="Redis 1 introductions, please refer to: Redis application center manual.
+killall redis-server Command line 3: ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="101"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Install Redis Register Center"><meta name=twitter:description content="Redis 1 introductions, please refer to: Redis application center manual.
you need an origin Redis server only, and change the value from dubbo.registry.address to redis://127.0.0.1:6379 in conf/dubbo.properties of quick start
Redis configuration center cluster 2 write multiple server in client side and read from a single server.
Install:
diff --git a/en/docs/v2.7/admin/install/zookeeper/index.html b/en/docs/v2.7/admin/install/zookeeper/index.html
index 74ca258d14..ad8f8ebb02 100644
--- a/en/docs/v2.7/admin/install/zookeeper/index.html
+++ b/en/docs/v2.7/admin/install/zookeeper/index.html
@@ -3,12 +3,12 @@ Dubbo changes nothing of Zookeeper’s server side, an original Zookeeper se
install:
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz tar zxvf zookeeper-3.3.3.tar.gz cd zookeeper-3.3.3 cp conf/zoo_sample.cfg conf/zoo.cfg configuration:
vi conf/zoo.cfg If cluster is not needed, the content of zoo.cfg is as below 2:
-tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/dubbo/zookeeper-3.3.3/data clientPort=2181 If cluster is needed, the content of zoo.cfg is as below 3:"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/zookeeper/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
+tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/dubbo/zookeeper-3.3.3/data clientPort=2181 If cluster is needed, the content of zoo.cfg is as below 3:"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/install/zookeeper/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
Dubbo changes nothing of Zookeeper’s server side, an original Zookeeper server is fine. All change happens while calling Zookeeper’s client side
install:
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz tar zxvf zookeeper-3.3.3.tar.gz cd zookeeper-3.3.3 cp conf/zoo_sample.cfg conf/zoo.cfg configuration:
vi conf/zoo.cfg If cluster is not needed, the content of zoo.cfg is as below 2:
-tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/dubbo/zookeeper-3.3.3/data clientPort=2181 If cluster is needed, the content of zoo.cfg is as below 3:"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="184"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="install Zookeeper Configuration Center"><meta name=twitter:description content="zookeeper register center client version: du [...]
+tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/dubbo/zookeeper-3.3.3/data clientPort=2181 If cluster is needed, the content of zoo.cfg is as below 3:"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="184"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="install Zookeeper Configuration Center"><meta name=twitter:description content="zookeeper register center client version: du [...]
Dubbo changes nothing of Zookeeper’s server side, an original Zookeeper server is fine. All change happens while calling Zookeeper’s client side
install:
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz tar zxvf zookeeper-3.3.3.tar.gz cd zookeeper-3.3.3 cp conf/zoo_sample.cfg conf/zoo.cfg configuration:
diff --git a/en/docs/v2.7/admin/ops/apidocs/index.html b/en/docs/v2.7/admin/ops/apidocs/index.html
index 44423f75fe..d36c3a3e09 100644
--- a/en/docs/v2.7/admin/ops/apidocs/index.html
+++ b/en/docs/v2.7/admin/ops/apidocs/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Adding some annotations can generate a swagger like document without turning a non web Dubbo project into a web project
-How to use? Dubbo api docs annotation added to method parameters of Dubbo project Dubbo provider project introduces dubbo-api-docs-core If Dubbo’s interface and parameters are a separate jar package project, introduce dubbo-api-docs-annotations Add the annotation @EnableDubboApiDocs to the project startup class (marked with @SpringBootApplication) or configuration class (marked with @Configuration) of the provider project to enable the Dubbo API Docs In order to avoid increasing th [...]
+How to use? Dubbo api docs annotation added to method parameters of Dubbo project Dubbo provider project introduces dubbo-api-docs-core If Dubbo’s interface and parameters are a separate jar package project, introduce dubbo-api-docs-annotations Add the annotation @EnableDubboApiDocs to the project startup class (marked with @SpringBootApplication) or configuration class (marked with @Configuration) of the provider project to enable the Dubbo API Docs In order to avoid increasing th [...]
Adding some annotations can generate a swagger like document without turning a non web Dubbo project into a web project
-How to use? Dubbo api docs annotation added to method parameters of Dubbo project Dubbo provider project introduces dubbo-api-docs-core If Dubbo’s interface and parameters are a separate jar package project, introduce dubbo-api-docs-annotations Add the annotation @EnableDubboApiDocs to the project startup class (marked with @SpringBootApplication) or configuration class (marked with @Configuration) of the provider project to enable the Dubbo API Docs In order to avoid increasing th [...]
+How to use? Dubbo api docs annotation added to method parameters of Dubbo project Dubbo provider project introduces dubbo-api-docs-core If Dubbo’s interface and parameters are a separate jar package project, introduce dubbo-api-docs-annotations Add the annotation @EnableDubboApiDocs to the project startup class (marked with @SpringBootApplication) or configuration class (marked with @Configuration) of the provider project to enable the Dubbo API Docs In order to avoid increasing th [...]
Adding some annotations can generate a swagger like document without turning a non web Dubbo project into a web project
How to use? Dubbo api docs annotation added to method parameters of Dubbo project Dubbo provider project introduces dubbo-api-docs-core If Dubbo’s interface and parameters are a separate jar package project, introduce dubbo-api-docs-annotations Add the annotation @EnableDubboApiDocs to the project startup class (marked with @SpringBootApplication) or configuration class (marked with @Configuration) of the provider project to enable the Dubbo API Docs In order to avoid increasing th [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/admin/ops/functions/index.html b/en/docs/v2.7/admin/ops/functions/index.html
index 7c299ac37d..2a1fd0fcb0 100644
--- a/en/docs/v2.7/admin/ops/functions/index.html
+++ b/en/docs/v2.7/admin/ops/functions/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Service provider page Service consumer page Add route rule page Add dynamic configuration page "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/functions/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Admin Functions"><meta itemprop=description cont [...]
-Service provider page Service consumer page Add route rule page Add dynamic configuration page "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="35"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin Functions"><meta name=twitter:description content="Page search If you need to manage a Dubbo service, you need to search it first and open it’s management page
+Service provider page Service consumer page Add route rule page Add dynamic configuration page "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/functions/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Admin Functions"><meta itemprop=description cont [...]
+Service provider page Service consumer page Add route rule page Add dynamic configuration page "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="35"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin Functions"><meta name=twitter:description content="Page search If you need to manage a Dubbo service, you need to search it first and open it’s management page
Service provider page Service consumer page Add route rule page Add dynamic configuration page "><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/admin/ops/governance/index.html b/en/docs/v2.7/admin/ops/governance/index.html
index 99efb8b58b..3da275450c 100644
--- a/en/docs/v2.7/admin/ops/governance/index.html
+++ b/en/docs/v2.7/admin/ops/governance/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-application level service governance In Dubbo 2.6 or earlier version, all service governance rule are in service scope, if you need to make application scope rule, you need to set the same rule for all services under an application, modify and delete need the same operation, this is very unfriendly."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/governance/"><meta property="article:section" content="docs"><meta [...]
-application level service governance In Dubbo 2.6 or earlier version, all service governance rule are in service scope, if you need to make application scope rule, you need to set the same rule for all services under an application, modify and delete need the same operation, this is very unfriendly."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="493"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=tw [...]
+application level service governance In Dubbo 2.6 or earlier version, all service governance rule are in service scope, if you need to make application scope rule, you need to set the same rule for all services under an application, modify and delete need the same operation, this is very unfriendly."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/governance/"><meta property="article:section" content="docs"><meta [...]
+application level service governance In Dubbo 2.6 or earlier version, all service governance rule are in service scope, if you need to make application scope rule, you need to set the same rule for all services under an application, modify and delete need the same operation, this is very unfriendly."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="493"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=tw [...]
application level service governance In Dubbo 2.6 or earlier version, all service governance rule are in service scope, if you need to make application scope rule, you need to set the same rule for all services under an application, modify and delete need the same operation, this is very unfriendly."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("se [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/admin/ops/introduction/index.html b/en/docs/v2.7/admin/ops/introduction/index.html
index 3a9bfa1f52..caa776bd7f 100644
--- a/en/docs/v2.7/admin/ops/introduction/index.html
+++ b/en/docs/v2.7/admin/ops/introduction/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Deploy the whole project through maven install git clone https://github.com/apache/dubbo-admin.git cd dubbo-admin mvn clean package cd dubbo-admin-distribution/target java -jar dubbo-admin-0.1.jar visit
-http://localhost:8080 Deploy frontend and backend separately frontend deploy cd dubbo-admin-ui npm install npm run dev backend deploy cd dubbo-admin-server mvn clean package cd target java -jar dubbo-admin-server-0."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/introduction/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta propert [...]
+http://localhost:8080 Deploy frontend and backend separately frontend deploy cd dubbo-admin-ui npm install npm run dev backend deploy cd dubbo-admin-server mvn clean package cd target java -jar dubbo-admin-server-0."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/introduction/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta propert [...]
Deploy the whole project through maven install git clone https://github.com/apache/dubbo-admin.git cd dubbo-admin mvn clean package cd dubbo-admin-distribution/target java -jar dubbo-admin-0.1.jar visit
-http://localhost:8080 Deploy frontend and backend separately frontend deploy cd dubbo-admin-ui npm install npm run dev backend deploy cd dubbo-admin-server mvn clean package cd target java -jar dubbo-admin-server-0."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="185"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin Introductions"><meta name=twitter:description conten [...]
+http://localhost:8080 Deploy frontend and backend separately frontend deploy cd dubbo-admin-ui npm install npm run dev backend deploy cd dubbo-admin-server mvn clean package cd target java -jar dubbo-admin-server-0."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="185"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin Introductions"><meta name=twitter:description conten [...]
Deploy the whole project through maven install git clone https://github.com/apache/dubbo-admin.git cd dubbo-admin mvn clean package cd dubbo-admin-distribution/target java -jar dubbo-admin-0.1.jar visit
http://localhost:8080 Deploy frontend and backend separately frontend deploy cd dubbo-admin-ui npm install npm run dev backend deploy cd dubbo-admin-server mvn clean package cd target java -jar dubbo-admin-server-0."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/admin/ops/pinpoint/index.html b/en/docs/v2.7/admin/ops/pinpoint/index.html
index a62710c81d..1d9da6fa29 100644
--- a/en/docs/v2.7/admin/ops/pinpoint/index.html
+++ b/en/docs/v2.7/admin/ops/pinpoint/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/admin/ops/search/index.html b/en/docs/v2.7/admin/ops/search/index.html
index 1ad7746115..ab4ffdd109 100644
--- a/en/docs/v2.7/admin/ops/search/index.html
+++ b/en/docs/v2.7/admin/ops/search/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-the service detail page display providers, consumers, medata information is supported in Dubbo 2.7 or higher version:"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/search/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Service Search And Service Detail"> [...]
-the service detail page display providers, consumers, medata information is supported in Dubbo 2.7 or higher version:"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="47"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Service Search And Service Detail"><meta name=twitter:description content="Service search is the basic function of Dubbo OPS, you can search by service name, appli [...]
+the service detail page display providers, consumers, medata information is supported in Dubbo 2.7 or higher version:"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/search/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Service Search And Service Detail"> [...]
+the service detail page display providers, consumers, medata information is supported in Dubbo 2.7 or higher version:"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="47"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Service Search And Service Detail"><meta name=twitter:description content="Service search is the basic function of Dubbo OPS, you can search by service name, appli [...]
the service detail page display providers, consumers, medata information is supported in Dubbo 2.7 or higher version:"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/admin/ops/skywalking/index.html b/en/docs/v2.7/admin/ops/skywalking/index.html
index 05d3447121..9d7d6fc4f3 100644
--- a/en/docs/v2.7/admin/ops/skywalking/index.html
+++ b/en/docs/v2.7/admin/ops/skywalking/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/skywalking/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Tracing Dubbo service with Apache Skywalk [...]
-Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="470"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Tracing Dubbo service with Apache Skywalking"><meta name=twitter:description content="Introduction to Apache Skywalking Apache Skywalking(Incubator) is the APM system that [...]
+Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/admin/ops/skywalking/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Tracing Dubbo service with Apache Skywalk [...]
+Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="470"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Tracing Dubbo service with Apache Skywalking"><meta name=twitter:description content="Introduction to Apache Skywalking Apache Skywalking(Incubator) is the APM system that [...]
Currently, Skywalking has supported analysis the operation of distributed systems from 6 visual dimensions."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/admin/ops/test/index.html b/en/docs/v2.7/admin/ops/test/index.html
index 60fe6d95b0..b1fd7589a1 100644
--- a/en/docs/v2.7/admin/ops/test/index.html
+++ b/en/docs/v2.7/admin/ops/test/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/build/index.html b/en/docs/v2.7/dev/build/index.html
index d239557592..a0b78b49c3 100644
--- a/en/docs/v2.7/dev/build/index.html
+++ b/en/docs/v2.7/dev/build/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/checklist/index.html b/en/docs/v2.7/dev/checklist/index.html
index 904760c32e..220b401e6e 100644
--- a/en/docs/v2.7/dev/checklist/index.html
+++ b/en/docs/v2.7/dev/checklist/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/code-smell/index.html b/en/docs/v2.7/dev/code-smell/index.html
index 0a6c8c9809..0017688104 100644
--- a/en/docs/v2.7/dev/code-smell/index.html
+++ b/en/docs/v2.7/dev/code-smell/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/coding/index.html b/en/docs/v2.7/dev/coding/index.html
index 373fe36dad..6308c0a90a 100644
--- a/en/docs/v2.7/dev/coding/index.html
+++ b/en/docs/v2.7/dev/coding/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/contract/index.html b/en/docs/v2.7/dev/contract/index.html
index 3adfbfe1e8..440c39e853 100644
--- a/en/docs/v2.7/dev/contract/index.html
+++ b/en/docs/v2.7/dev/contract/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/design/index.html b/en/docs/v2.7/dev/design/index.html
index 89304922dc..0fc3df10f0 100644
--- a/en/docs/v2.7/dev/design/index.html
+++ b/en/docs/v2.7/dev/design/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/implementation/index.html b/en/docs/v2.7/dev/implementation/index.html
index 495ebb0b14..60bf4ac901 100644
--- a/en/docs/v2.7/dev/implementation/index.html
+++ b/en/docs/v2.7/dev/implementation/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/impls/cache/index.html b/en/docs/v2.7/dev/impls/cache/index.html
index 721ea99a89..960c8153f5 100644
--- a/en/docs/v2.7/dev/impls/cache/index.html
+++ b/en/docs/v2.7/dev/impls/cache/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.cache.CacheFactory
Extension Configuration <dubbo:service cache="lru" /> <!-- method level cache --> <dubbo:service><dubbo:method cache="lru" /></dubbo:service> <!-- 缺省值设置,当<dubbo:service>没有配置cache属性时,使用此配置 --> <!-- default configuration, will take affect if cache attribute isn't configured in <dubbo:service> --> <dubbo:provider cache="xxx,yyy" /> Existing Extensions org.apache.dubbo.cache.support.lru.LruCacheFactory org.apache.dubbo.cache.support.threadlocal.ThreadLocalCacheFactory [...]
-src |-main |-java |-com |-xxx |-XxxCacheFactory.java (CacheFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.cache.CacheFactory (plain text file with contents: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/cache/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apac [...]
+src |-main |-java |-com |-xxx |-XxxCacheFactory.java (CacheFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.cache.CacheFactory (plain text file with contents: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/cache/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apac [...]
Extension Interface org.apache.dubbo.cache.CacheFactory
Extension Configuration <dubbo:service cache="lru" /> <!-- method level cache --> <dubbo:service><dubbo:method cache="lru" /></dubbo:service> <!-- 缺省值设置,当<dubbo:service>没有配置cache属性时,使用此配置 --> <!-- default configuration, will take affect if cache attribute isn't configured in <dubbo:service> --> <dubbo:provider cache="xxx,yyy" /> Existing Extensions org.apache.dubbo.cache.support.lru.LruCacheFactory org.apache.dubbo.cache.support.threadlocal.ThreadLocalCacheFactory [...]
-src |-main |-java |-com |-xxx |-XxxCacheFactory.java (CacheFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.cache.CacheFactory (plain text file with contents: xxx=com."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="139"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Cache Extension"><meta name=twitter:description content="Summary Cache the return value [...]
+src |-main |-java |-com |-xxx |-XxxCacheFactory.java (CacheFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.cache.CacheFactory (plain text file with contents: xxx=com."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="139"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Cache Extension"><meta name=twitter:description content="Summary Cache the return value [...]
Extension Interface org.apache.dubbo.cache.CacheFactory
Extension Configuration <dubbo:service cache="lru" /> <!-- method level cache --> <dubbo:service><dubbo:method cache="lru" /></dubbo:service> <!-- 缺省值设置,当<dubbo:service>没有配置cache属性时,使用此配置 --> <!-- default configuration, will take affect if cache attribute isn't configured in <dubbo:service> --> <dubbo:provider cache="xxx,yyy" /> Existing Extensions org.apache.dubbo.cache.support.lru.LruCacheFactory org.apache.dubbo.cache.support.threadlocal.ThreadLocalCacheFactory [...]
src |-main |-java |-com |-xxx |-XxxCacheFactory.java (CacheFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.cache.CacheFactory (plain text file with contents: xxx=com."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
diff --git a/en/docs/v2.7/dev/impls/cluster/index.html b/en/docs/v2.7/dev/impls/cluster/index.html
index c26e6269c5..6679ff5fd3 100644
--- a/en/docs/v2.7/dev/impls/cluster/index.html
+++ b/en/docs/v2.7/dev/impls/cluster/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.rpc.cluster.Cluster
Extension Configuration <dubbo:protocol cluster="xxx" /> <!-- default configuration, will take affect if cluster attribute is not configured in <dubbo:protocol> --> <dubbo:provider cluster="xxx" /> Existing Extensions org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterWrapper org.apache.dubbo.rpc.cluster.support.FailoverCluster org.apache.dubbo.rpc.cluster.support.FailfastCluster org.apache.dubbo.rpc.cluster.support.FailsafeCluster org.apache.dubbo.rpc.cluster.suppor [...]
-src |-main |-java |-com |-xxx |-XxxCluster.java (Cluster implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Cluster (plain text file with the content: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/cluster/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache D [...]
+src |-main |-java |-com |-xxx |-XxxCluster.java (Cluster implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Cluster (plain text file with the content: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/cluster/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache D [...]
Extension Interface org.apache.dubbo.rpc.cluster.Cluster
Extension Configuration <dubbo:protocol cluster="xxx" /> <!-- default configuration, will take affect if cluster attribute is not configured in <dubbo:protocol> --> <dubbo:provider cluster="xxx" /> Existing Extensions org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterWrapper org.apache.dubbo.rpc.cluster.support.FailoverCluster org.apache.dubbo.rpc.cluster.support.FailfastCluster org.apache.dubbo.rpc.cluster.support.FailsafeCluster org.apache.dubbo.rpc.cluster.suppor [...]
-src |-main |-java |-com |-xxx |-XxxCluster.java (Cluster implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Cluster (plain text file with the content: xxx=com."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="131"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Cluster Extension"><meta name=twitter:description content="Summary Group service providers in [...]
+src |-main |-java |-com |-xxx |-XxxCluster.java (Cluster implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Cluster (plain text file with the content: xxx=com."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="131"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Cluster Extension"><meta name=twitter:description content="Summary Group service providers in [...]
Extension Interface org.apache.dubbo.rpc.cluster.Cluster
Extension Configuration <dubbo:protocol cluster="xxx" /> <!-- default configuration, will take affect if cluster attribute is not configured in <dubbo:protocol> --> <dubbo:provider cluster="xxx" /> Existing Extensions org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterWrapper org.apache.dubbo.rpc.cluster.support.FailoverCluster org.apache.dubbo.rpc.cluster.support.FailfastCluster org.apache.dubbo.rpc.cluster.support.FailsafeCluster org.apache.dubbo.rpc.cluster.suppor [...]
src |-main |-java |-com |-xxx |-XxxCluster.java (Cluster implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Cluster (plain text file with the content: xxx=com."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
diff --git a/en/docs/v2.7/dev/impls/compiler/index.html b/en/docs/v2.7/dev/impls/compiler/index.html
index 6bf14a4885..d544af73bc 100644
--- a/en/docs/v2.7/dev/impls/compiler/index.html
+++ b/en/docs/v2.7/dev/impls/compiler/index.html
@@ -3,12 +3,12 @@ Extension Interface org.apache.dubbo.common.compiler.Compiler
Extension Configuration No configuration required, the extension will be automatically discovered and loaded.
Existing Extensions org.apache.dubbo.common.compiler.support.JdkCompiler org.apache.dubbo.common.compiler.support.JavassistCompiler Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxCompiler.java (Compiler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.common.compiler.Compiler (plain text file with the content: xxx=com.xxx.XxxCompiler) XxxCompiler.java:
-package com.xxx; import org.apache.dubbo.common.compiler.Compiler; public class XxxCompiler implements Compiler { public Object getExtension(Class<?> type, String name) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/compiler/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><met [...]
+package com.xxx; import org.apache.dubbo.common.compiler.Compiler; public class XxxCompiler implements Compiler { public Object getExtension(Class<?> type, String name) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/compiler/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><met [...]
Extension Interface org.apache.dubbo.common.compiler.Compiler
Extension Configuration No configuration required, the extension will be automatically discovered and loaded.
Existing Extensions org.apache.dubbo.common.compiler.support.JdkCompiler org.apache.dubbo.common.compiler.support.JavassistCompiler Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxCompiler.java (Compiler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.common.compiler.Compiler (plain text file with the content: xxx=com.xxx.XxxCompiler) XxxCompiler.java:
-package com.xxx; import org.apache.dubbo.common.compiler.Compiler; public class XxxCompiler implements Compiler { public Object getExtension(Class<?> type, String name) { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="79"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Compiler Extension"><meta name=twitter:description content="Summary Java compiler, used for byte code dyn [...]
+package com.xxx; import org.apache.dubbo.common.compiler.Compiler; public class XxxCompiler implements Compiler { public Object getExtension(Class<?> type, String name) { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="79"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Compiler Extension"><meta name=twitter:description content="Summary Java compiler, used for byte code dyn [...]
Extension Interface org.apache.dubbo.common.compiler.Compiler
Extension Configuration No configuration required, the extension will be automatically discovered and loaded.
Existing Extensions org.apache.dubbo.common.compiler.support.JdkCompiler org.apache.dubbo.common.compiler.support.JavassistCompiler Extension Guide Directory layout:
diff --git a/en/docs/v2.7/dev/impls/config-center/index.html b/en/docs/v2.7/dev/impls/config-center/index.html
index 3e50998fe6..6449ceddd0 100644
--- a/en/docs/v2.7/dev/impls/config-center/index.html
+++ b/en/docs/v2.7/dev/impls/config-center/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Divided by application scenarios, CC mainly undertake the following responsibilities in Dubbo Framework:
-As a external configuration center, CC store configuration files like dubbo.properties, where the key is usually file name like dubbo.properties, and value is content of the file. Store single configuration items, like all kinds of switchs, contants, etc."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/config-center/"><meta property="article:section" content="docs"><meta property="article:modified_time" content= [...]
+As a external configuration center, CC store configuration files like dubbo.properties, where the key is usually file name like dubbo.properties, and value is content of the file. Store single configuration items, like all kinds of switchs, contants, etc."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/config-center/"><meta property="article:section" content="docs"><meta property="article:modified_time" content= [...]
Divided by application scenarios, CC mainly undertake the following responsibilities in Dubbo Framework:
-As a external configuration center, CC store configuration files like dubbo.properties, where the key is usually file name like dubbo.properties, and value is content of the file. Store single configuration items, like all kinds of switchs, contants, etc."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="463"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Configuration Cent [...]
+As a external configuration center, CC store configuration files like dubbo.properties, where the key is usually file name like dubbo.properties, and value is content of the file. Store single configuration items, like all kinds of switchs, contants, etc."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="463"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Configuration Cent [...]
Divided by application scenarios, CC mainly undertake the following responsibilities in Dubbo Framework:
As a external configuration center, CC store configuration files like dubbo.properties, where the key is usually file name like dubbo.properties, and value is content of the file. Store single configuration items, like all kinds of switchs, contants, etc."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=ht [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/dev/impls/container/index.html b/en/docs/v2.7/dev/impls/container/index.html
index f47939f18b..c5bff9d627 100644
--- a/en/docs/v2.7/dev/impls/container/index.html
+++ b/en/docs/v2.7/dev/impls/container/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.container.Container
Extension Configuration java org.apache.dubbo.container.Main spring jetty log4j Existing Extensions org.apache.dubbo.container.spring.SpringContainer org.apache.dubbo.container.spring.JettyContainer org.apache.dubbo.container.spring.Log4jContainer Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxContainer.java (Container implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.container.Container (plain text file with the content: xxx=com.xxx.XxxContainer) XxxContainer.java:
-package com.xxx; org.apache.dubbo.container.Container; public class XxxContainer implements Container { public Status start() { // ... } public Status stop() { // ... } } META-INF/dubbo/org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/container/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Ap [...]
+package com.xxx; org.apache.dubbo.container.Container; public class XxxContainer implements Container { public Status start() { // ... } public Status stop() { // ... } } META-INF/dubbo/org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/container/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Ap [...]
Extension Interface org.apache.dubbo.container.Container
Extension Configuration java org.apache.dubbo.container.Main spring jetty log4j Existing Extensions org.apache.dubbo.container.spring.SpringContainer org.apache.dubbo.container.spring.JettyContainer org.apache.dubbo.container.spring.Log4jContainer Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxContainer.java (Container implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.container.Container (plain text file with the content: xxx=com.xxx.XxxContainer) XxxContainer.java:
-package com.xxx; org.apache.dubbo.container.Container; public class XxxContainer implements Container { public Status start() { // ... } public Status stop() { // ... } } META-INF/dubbo/org."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="74"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Container Extension"><meta name=twitter:description content="Summary Service container ext [...]
+package com.xxx; org.apache.dubbo.container.Container; public class XxxContainer implements Container { public Status start() { // ... } public Status stop() { // ... } } META-INF/dubbo/org."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="74"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Container Extension"><meta name=twitter:description content="Summary Service container ext [...]
Extension Interface org.apache.dubbo.container.Container
Extension Configuration java org.apache.dubbo.container.Main spring jetty log4j Existing Extensions org.apache.dubbo.container.spring.SpringContainer org.apache.dubbo.container.spring.JettyContainer org.apache.dubbo.container.spring.Log4jContainer Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxContainer.java (Container implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.container.Container (plain text file with the content: xxx=com.xxx.XxxContainer) XxxContainer.java:
diff --git a/en/docs/v2.7/dev/impls/dispatcher/index.html b/en/docs/v2.7/dev/impls/dispatcher/index.html
index 26c7277d45..ebbadc297e 100644
--- a/en/docs/v2.7/dev/impls/dispatcher/index.html
+++ b/en/docs/v2.7/dev/impls/dispatcher/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.remoting.Dispatcher
Extension Configuration <dubbo:protocol dispatcher="xxx" /> <!-- default configuration, will take effect if dispatcher attribute is not set in <dubbo:protocol> --> <dubbo:provider dispatcher="xxx" /> Existing Extensions org.apache.dubbo.remoting.transport.dispatcher.all.AllDispatcher org.apache.dubbo.remoting.transport.dispatcher.direct.DirectDispatcher org.apache.dubbo.remoting.transport.dispatcher.message.MessageOnlyDispatcher org.apache.dubbo.remoting.transport.dispatc [...]
src |-main |-java |-com |-xxx |-XxxDispatcher.java (Dispatcher implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.Dispatcher (plain text file with the content: xxx=com.xxx.XxxDispatcher) XxxDispatcher.java:
-package com.xxx; import org.apache.dubbo.remoting.Dispatcher; public class XxxDispatcher implements Dispatcher { public Group lookup(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/dispatcher/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
+package com.xxx; import org.apache.dubbo.remoting.Dispatcher; public class XxxDispatcher implements Dispatcher { public Group lookup(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/dispatcher/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
Extension Interface org.apache.dubbo.remoting.Dispatcher
Extension Configuration <dubbo:protocol dispatcher="xxx" /> <!-- default configuration, will take effect if dispatcher attribute is not set in <dubbo:protocol> --> <dubbo:provider dispatcher="xxx" /> Existing Extensions org.apache.dubbo.remoting.transport.dispatcher.all.AllDispatcher org.apache.dubbo.remoting.transport.dispatcher.direct.DirectDispatcher org.apache.dubbo.remoting.transport.dispatcher.message.MessageOnlyDispatcher org.apache.dubbo.remoting.transport.dispatc [...]
src |-main |-java |-com |-xxx |-XxxDispatcher.java (Dispatcher implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.Dispatcher (plain text file with the content: xxx=com.xxx.XxxDispatcher) XxxDispatcher.java:
-package com.xxx; import org.apache.dubbo.remoting.Dispatcher; public class XxxDispatcher implements Dispatcher { public Group lookup(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="83"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dispatcher Extension"><meta name=twitter:description content="Summary Thread pool dispatch strategy.
+package com.xxx; import org.apache.dubbo.remoting.Dispatcher; public class XxxDispatcher implements Dispatcher { public Group lookup(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="83"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dispatcher Extension"><meta name=twitter:description content="Summary Thread pool dispatch strategy.
Extension Interface org.apache.dubbo.remoting.Dispatcher
Extension Configuration <dubbo:protocol dispatcher="xxx" /> <!-- default configuration, will take effect if dispatcher attribute is not set in <dubbo:protocol> --> <dubbo:provider dispatcher="xxx" /> Existing Extensions org.apache.dubbo.remoting.transport.dispatcher.all.AllDispatcher org.apache.dubbo.remoting.transport.dispatcher.direct.DirectDispatcher org.apache.dubbo.remoting.transport.dispatcher.message.MessageOnlyDispatcher org.apache.dubbo.remoting.transport.dispatc [...]
src |-main |-java |-com |-xxx |-XxxDispatcher.java (Dispatcher implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.Dispatcher (plain text file with the content: xxx=com.xxx.XxxDispatcher) XxxDispatcher.java:
diff --git a/en/docs/v2.7/dev/impls/exchanger/index.html b/en/docs/v2.7/dev/impls/exchanger/index.html
index 8cf08eed41..11fbbb5cec 100644
--- a/en/docs/v2.7/dev/impls/exchanger/index.html
+++ b/en/docs/v2.7/dev/impls/exchanger/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.remoting.exchange.Exchanger org.apache.dubbo.remoting.exchange.ExchangeServer org.apache.dubbo.remoting.exchange.ExchangeClient Extension Configuration <dubbo:protocol exchanger="xxx" /> <!-- default configuration, will take effect if exchanger attribute is not set in <dubbo:protocol> --> <dubbo:provider exchanger="xxx" /> Existing Extension org.apache.dubbo.remoting.exchange.exchanger.HeaderExchanger
Extension Guide Directory layout:
-src |-main |-java |-com |-xxx |-XxxExchanger.java (Exchanger implementation) |-XxxExchangeServer.java (ExchangeServer implementation) |-XxxExchangeClient.java (ExchangeClient implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.exchange.Exchanger (plain text file with the content: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/exchanger/"><meta property="article:section" content=" [...]
+src |-main |-java |-com |-xxx |-XxxExchanger.java (Exchanger implementation) |-XxxExchangeServer.java (ExchangeServer implementation) |-XxxExchangeClient.java (ExchangeClient implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.exchange.Exchanger (plain text file with the content: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/exchanger/"><meta property="article:section" content=" [...]
Extension Interface org.apache.dubbo.remoting.exchange.Exchanger org.apache.dubbo.remoting.exchange.ExchangeServer org.apache.dubbo.remoting.exchange.ExchangeClient Extension Configuration <dubbo:protocol exchanger="xxx" /> <!-- default configuration, will take effect if exchanger attribute is not set in <dubbo:protocol> --> <dubbo:provider exchanger="xxx" /> Existing Extension org.apache.dubbo.remoting.exchange.exchanger.HeaderExchanger
Extension Guide Directory layout:
-src |-main |-java |-com |-xxx |-XxxExchanger.java (Exchanger implementation) |-XxxExchangeServer.java (ExchangeServer implementation) |-XxxExchangeClient.java (ExchangeClient implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.exchange.Exchanger (plain text file with the content: xxx=com."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="141"><meta itemprop=keywords content><meta name=twitter:card content="summary">< [...]
+src |-main |-java |-com |-xxx |-XxxExchanger.java (Exchanger implementation) |-XxxExchangeServer.java (ExchangeServer implementation) |-XxxExchangeClient.java (ExchangeClient implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.exchange.Exchanger (plain text file with the content: xxx=com."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="141"><meta itemprop=keywords content><meta name=twitter:card content="summary">< [...]
Extension Interface org.apache.dubbo.remoting.exchange.Exchanger org.apache.dubbo.remoting.exchange.ExchangeServer org.apache.dubbo.remoting.exchange.ExchangeClient Extension Configuration <dubbo:protocol exchanger="xxx" /> <!-- default configuration, will take effect if exchanger attribute is not set in <dubbo:protocol> --> <dubbo:provider exchanger="xxx" /> Existing Extension org.apache.dubbo.remoting.exchange.exchanger.HeaderExchanger
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxExchanger.java (Exchanger implementation) |-XxxExchangeServer.java (ExchangeServer implementation) |-XxxExchangeClient.java (ExchangeClient implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.exchange.Exchanger (plain text file with the content: xxx=com."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","a [...]
diff --git a/en/docs/v2.7/dev/impls/exporter-listener/index.html b/en/docs/v2.7/dev/impls/exporter-listener/index.html
index 744d7e635a..c92b9468bc 100644
--- a/en/docs/v2.7/dev/impls/exporter-listener/index.html
+++ b/en/docs/v2.7/dev/impls/exporter-listener/index.html
@@ -3,12 +3,12 @@ Extension Interface org.apache.dubbo.rpc.ExporterListener
Extension Configuration <!-- service exporter listener --> <dubbo:service listener="xxx,yyy" /> <!-- default exporter listener for service provider --> <dubbo:provider listener="xxx,yyy" /> Existing Extension org.apache.dubbo.registry.directory.RegistryExporterListener
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxExporterListener.java (ExporterListener implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.ExporterListener (plain text file with the content: xxx=com.xxx.XxxExporterListener) XxxExporterListener.java:
-package com.xxx; import org.apache.dubbo.rpc.ExporterListener; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.RpcException; public class XxxExporterListener implements ExporterListener { public void exported(Exporter<?"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/exporter-listener/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10 [...]
+package com.xxx; import org.apache.dubbo.rpc.ExporterListener; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.RpcException; public class XxxExporterListener implements ExporterListener { public void exported(Exporter<?"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/exporter-listener/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11 [...]
Extension Interface org.apache.dubbo.rpc.ExporterListener
Extension Configuration <!-- service exporter listener --> <dubbo:service listener="xxx,yyy" /> <!-- default exporter listener for service provider --> <dubbo:provider listener="xxx,yyy" /> Existing Extension org.apache.dubbo.registry.directory.RegistryExporterListener
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxExporterListener.java (ExporterListener implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.ExporterListener (plain text file with the content: xxx=com.xxx.XxxExporterListener) XxxExporterListener.java:
-package com.xxx; import org.apache.dubbo.rpc.ExporterListener; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.RpcException; public class XxxExporterListener implements ExporterListener { public void exported(Exporter<?"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="96"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ExporterListener Extension"><meta name=twit [...]
+package com.xxx; import org.apache.dubbo.rpc.ExporterListener; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.RpcException; public class XxxExporterListener implements ExporterListener { public void exported(Exporter<?"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="96"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ExporterListener Extension"><meta name=twit [...]
Extension Interface org.apache.dubbo.rpc.ExporterListener
Extension Configuration <!-- service exporter listener --> <dubbo:service listener="xxx,yyy" /> <!-- default exporter listener for service provider --> <dubbo:provider listener="xxx,yyy" /> Existing Extension org.apache.dubbo.registry.directory.RegistryExporterListener
Extension Guide Directory layout:
diff --git a/en/docs/v2.7/dev/impls/extension-factory/index.html b/en/docs/v2.7/dev/impls/extension-factory/index.html
index 78669e8749..7b7345b132 100644
--- a/en/docs/v2.7/dev/impls/extension-factory/index.html
+++ b/en/docs/v2.7/dev/impls/extension-factory/index.html
@@ -3,12 +3,12 @@ Extension Interface org.apache.dubbo.common.extension.ExtensionFactory
Extension Configuration <dubbo:application compiler="jdk" /> Existing Extension org.apache.dubbo.common.extension.factory.SpiExtensionFactory org.apache.dubbo.config.spring.extension.SpringExtensionFactory Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxExtensionFactory.java (ExtensionFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.common.extension.ExtensionFactory (plain text file with the content: xxx=com.xxx.XxxExtensionFactory) XxxExtensionFactory.java:
package com.xxx; import org.apache.dubbo.common.extension.ExtensionFactory; public class XxxExtensionFactory implements ExtensionFactory { public Object getExtension(Class<?> type, String name) { // ... } } META-INF/dubbo/org.apache.dubbo.common.extension.ExtensionFactory:
-xxx=com.xxx.XxxExtensionFactory "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/extension-factory/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="ExtensionFactory Extension"><meta itemprop=description content="Summary Factory to load dubbo extensions.
+xxx=com.xxx.XxxExtensionFactory "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/extension-factory/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="ExtensionFactory Extension"><meta itemprop=description content="Summary Factory to load dubbo extensions.
Extension Interface org.apache.dubbo.common.extension.ExtensionFactory
Extension Configuration <dubbo:application compiler="jdk" /> Existing Extension org.apache.dubbo.common.extension.factory.SpiExtensionFactory org.apache.dubbo.config.spring.extension.SpringExtensionFactory Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxExtensionFactory.java (ExtensionFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.common.extension.ExtensionFactory (plain text file with the content: xxx=com.xxx.XxxExtensionFactory) XxxExtensionFactory.java:
package com.xxx; import org.apache.dubbo.common.extension.ExtensionFactory; public class XxxExtensionFactory implements ExtensionFactory { public Object getExtension(Class<?> type, String name) { // ... } } META-INF/dubbo/org.apache.dubbo.common.extension.ExtensionFactory:
-xxx=com.xxx.XxxExtensionFactory "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="65"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ExtensionFactory Extension"><meta name=twitter:description content="Summary Factory to load dubbo extensions.
+xxx=com.xxx.XxxExtensionFactory "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="65"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ExtensionFactory Extension"><meta name=twitter:description content="Summary Factory to load dubbo extensions.
Extension Interface org.apache.dubbo.common.extension.ExtensionFactory
Extension Configuration <dubbo:application compiler="jdk" /> Existing Extension org.apache.dubbo.common.extension.factory.SpiExtensionFactory org.apache.dubbo.config.spring.extension.SpringExtensionFactory Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxExtensionFactory.java (ExtensionFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.common.extension.ExtensionFactory (plain text file with the content: xxx=com.xxx.XxxExtensionFactory) XxxExtensionFactory.java:
diff --git a/en/docs/v2.7/dev/impls/filter/index.html b/en/docs/v2.7/dev/impls/filter/index.html
index d6ce449cf6..80a42ad084 100644
--- a/en/docs/v2.7/dev/impls/filter/index.html
+++ b/en/docs/v2.7/dev/impls/filter/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Contract:
-User defined filters are executed after built-in filters by default. Special value default is introduced to represent the default extension location."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/filter/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Fil [...]
+User defined filters are executed after built-in filters by default. Special value default is introduced to represent the default extension location."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/filter/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Fil [...]
Contract:
-User defined filters are executed after built-in filters by default. Special value default is introduced to represent the default extension location."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="288"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Filter Extension"><meta name=twitter:description content="Summary Extension for intercepting the invocation for both service provi [...]
+User defined filters are executed after built-in filters by default. Special value default is introduced to represent the default extension location."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="288"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Filter Extension"><meta name=twitter:description content="Summary Extension for intercepting the invocation for both service provi [...]
Contract:
User defined filters are executed after built-in filters by default. Special value default is introduced to represent the default extension location."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/dev/impls/invoker-listener/index.html b/en/docs/v2.7/dev/impls/invoker-listener/index.html
index 1f3d67a418..dadf4046ca 100644
--- a/en/docs/v2.7/dev/impls/invoker-listener/index.html
+++ b/en/docs/v2.7/dev/impls/invoker-listener/index.html
@@ -3,12 +3,12 @@ Extension Interface org.apache.dubbo.rpc.InvokerListener
Extension Configuration <!-- 引用服务监听 --> <!-- service reference listener --> <dubbo:reference listener="xxx,yyy" /> <!-- default service reference listener --> <dubbo:consumer listener="xxx,yyy" /> Existing Extension org.apache.dubbo.rpc.listener.DeprecatedInvokerListener
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxInvokerListener.java (InvokerListener implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.InvokerListener (plain text file with the content: xxx=com.xxx.XxxInvokerListener) XxxInvokerListener.java:
-package com.xxx; import org.apache.dubbo.rpc.InvokerListener; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxInvokerListener implements InvokerListener { public void referred(Invoker<?"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/invoker-listener/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31 [...]
+package com.xxx; import org.apache.dubbo.rpc.InvokerListener; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxInvokerListener implements InvokerListener { public void referred(Invoker<?"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/invoker-listener/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55 [...]
Extension Interface org.apache.dubbo.rpc.InvokerListener
Extension Configuration <!-- 引用服务监听 --> <!-- service reference listener --> <dubbo:reference listener="xxx,yyy" /> <!-- default service reference listener --> <dubbo:consumer listener="xxx,yyy" /> Existing Extension org.apache.dubbo.rpc.listener.DeprecatedInvokerListener
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxInvokerListener.java (InvokerListener implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.InvokerListener (plain text file with the content: xxx=com.xxx.XxxInvokerListener) XxxInvokerListener.java:
-package com.xxx; import org.apache.dubbo.rpc.InvokerListener; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxInvokerListener implements InvokerListener { public void referred(Invoker<?"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="97"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="InvokerListener Extension"><meta name=twitter:de [...]
+package com.xxx; import org.apache.dubbo.rpc.InvokerListener; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxInvokerListener implements InvokerListener { public void referred(Invoker<?"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="97"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="InvokerListener Extension"><meta name=twitter:de [...]
Extension Interface org.apache.dubbo.rpc.InvokerListener
Extension Configuration <!-- 引用服务监听 --> <!-- service reference listener --> <dubbo:reference listener="xxx,yyy" /> <!-- default service reference listener --> <dubbo:consumer listener="xxx,yyy" /> Existing Extension org.apache.dubbo.rpc.listener.DeprecatedInvokerListener
Extension Guide Directory layout:
diff --git a/en/docs/v2.7/dev/impls/load-balance/index.html b/en/docs/v2.7/dev/impls/load-balance/index.html
index 892f12eb08..cf6042b5d1 100644
--- a/en/docs/v2.7/dev/impls/load-balance/index.html
+++ b/en/docs/v2.7/dev/impls/load-balance/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.rpc.cluster.LoadBalance
Extension Configuration <dubbo:protocol loadbalance="xxx" /> <!-- default configuration, will take effect when loadbalance is not configured in <dubbo:protocol> --> <dubbo:provider loadbalance="xxx" /> Existing Extension org.apache.dubbo.rpc.cluster.loadbalance.RandomLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.ConsistentHashLoadBalance or [...]
src |-main |-java |-com |-xxx |-XxxLoadBalance.java (LoadBalance implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.LoadBalance (plain text file with the content: xxx=com.xxx.XxxLoadBalance) XxxLoadBalance.java:
-package com.xxx; import org.apache.dubbo.rpc.cluster.LoadBalance; import org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/load-balance/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="LoadBalance Extension"><meta itemprop=description content="Summary Pi [...]
+package com.xxx; import org.apache.dubbo.rpc.cluster.LoadBalance; import org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/load-balance/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="LoadBalance Extension"><meta itemprop=description content="Summary Pi [...]
Extension Interface org.apache.dubbo.rpc.cluster.LoadBalance
Extension Configuration <dubbo:protocol loadbalance="xxx" /> <!-- default configuration, will take effect when loadbalance is not configured in <dubbo:protocol> --> <dubbo:provider loadbalance="xxx" /> Existing Extension org.apache.dubbo.rpc.cluster.loadbalance.RandomLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.ConsistentHashLoadBalance or [...]
src |-main |-java |-com |-xxx |-XxxLoadBalance.java (LoadBalance implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.LoadBalance (plain text file with the content: xxx=com.xxx.XxxLoadBalance) XxxLoadBalance.java:
-package com.xxx; import org.apache.dubbo.rpc.cluster.LoadBalance; import org."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="98"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="LoadBalance Extension"><meta name=twitter:description content="Summary Pick one from service providers and fire the invocation.
+package com.xxx; import org.apache.dubbo.rpc.cluster.LoadBalance; import org."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="98"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="LoadBalance Extension"><meta name=twitter:description content="Summary Pick one from service providers and fire the invocation.
Extension Interface org.apache.dubbo.rpc.cluster.LoadBalance
Extension Configuration <dubbo:protocol loadbalance="xxx" /> <!-- default configuration, will take effect when loadbalance is not configured in <dubbo:protocol> --> <dubbo:provider loadbalance="xxx" /> Existing Extension org.apache.dubbo.rpc.cluster.loadbalance.RandomLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.RoundRobinLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.LeastActiveLoadBalance org.apache.dubbo.rpc.cluster.loadbalance.ConsistentHashLoadBalance or [...]
src |-main |-java |-com |-xxx |-XxxLoadBalance.java (LoadBalance implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.LoadBalance (plain text file with the content: xxx=com.xxx.XxxLoadBalance) XxxLoadBalance.java:
diff --git a/en/docs/v2.7/dev/impls/logger-adapter/index.html b/en/docs/v2.7/dev/impls/logger-adapter/index.html
index 8855613791..6f40b6ab4e 100644
--- a/en/docs/v2.7/dev/impls/logger-adapter/index.html
+++ b/en/docs/v2.7/dev/impls/logger-adapter/index.html
@@ -4,13 +4,13 @@ Extension Configuration <dubbo:application logger="xxx" /> Or:
-Ddubbo:application.logger=xxx Existing Extension org.apache.dubbo.common.logger.slf4j.Slf4jLoggerAdapter org.apache.dubbo.common.logger.jcl.JclLoggerAdapter org.apache.dubbo.common.logger.log4j.Log4jLoggerAdapter org.apache.dubbo.common.logger.log4j2.Log4j2LoggerAdapter org.apache.dubbo.common.logger.jdk.JdkLoggerAdapter Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxLoggerAdapter.java (LoggerAdapter implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.common.logger.LoggerAdapter (plain text file with the content: xxx=com.xxx.XxxLoggerAdapter) XxxLoggerAdapter.java:
package com.xxx; import org.apache.dubbo.common.logger.LoggerAdapter; public class XxxLoggerAdapter implements LoggerAdapter { public Logger getLogger(URL url) { // ... } } XxxLogger.java:
-package com.xxx; import org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/logger-adapter/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="LoggerAdapter Extension"><meta itemprop=description content="Summary Extension for adapting logger output
+package com.xxx; import org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/logger-adapter/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="LoggerAdapter Extension"><meta itemprop=description content="Summary Extension for adapting logger output
Extension Interface org.apache.dubbo.common.logger.LoggerAdapter
Extension Configuration <dubbo:application logger="xxx" /> Or:
-Ddubbo:application.logger=xxx Existing Extension org.apache.dubbo.common.logger.slf4j.Slf4jLoggerAdapter org.apache.dubbo.common.logger.jcl.JclLoggerAdapter org.apache.dubbo.common.logger.log4j.Log4jLoggerAdapter org.apache.dubbo.common.logger.log4j2.Log4j2LoggerAdapter org.apache.dubbo.common.logger.jdk.JdkLoggerAdapter Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxLoggerAdapter.java (LoggerAdapter implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.common.logger.LoggerAdapter (plain text file with the content: xxx=com.xxx.XxxLoggerAdapter) XxxLoggerAdapter.java:
package com.xxx; import org.apache.dubbo.common.logger.LoggerAdapter; public class XxxLoggerAdapter implements LoggerAdapter { public Logger getLogger(URL url) { // ... } } XxxLogger.java:
-package com.xxx; import org."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="97"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="LoggerAdapter Extension"><meta name=twitter:description content="Summary Extension for adapting logger output
+package com.xxx; import org."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="97"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="LoggerAdapter Extension"><meta name=twitter:description content="Summary Extension for adapting logger output
Extension Interface org.apache.dubbo.common.logger.LoggerAdapter
Extension Configuration <dubbo:application logger="xxx" /> Or:
-Ddubbo:application.logger=xxx Existing Extension org.apache.dubbo.common.logger.slf4j.Slf4jLoggerAdapter org.apache.dubbo.common.logger.jcl.JclLoggerAdapter org.apache.dubbo.common.logger.log4j.Log4jLoggerAdapter org.apache.dubbo.common.logger.log4j2.Log4j2LoggerAdapter org.apache.dubbo.common.logger.jdk.JdkLoggerAdapter Extension Guide Directory layout:
diff --git a/en/docs/v2.7/dev/impls/merger/index.html b/en/docs/v2.7/dev/impls/merger/index.html
index 5e1ec25d86..1432c56bf4 100644
--- a/en/docs/v2.7/dev/impls/merger/index.html
+++ b/en/docs/v2.7/dev/impls/merger/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.rpc.cluster.Merger
Extension Configuration <dubbo:method merger="xxx" /> Existing Extension org.apache.dubbo.rpc.cluster.merger.ArrayMerger org.apache.dubbo.rpc.cluster.merger.ListMerger org.apache.dubbo.rpc.cluster.merger.SetMerger org.apache.dubbo.rpc.cluster.merger.MapMerger org.apache.dubbo.rpc.cluster.merger.ByteArrayMerger org.apache.dubbo.rpc.cluster.merger.CharArrayMerger org.apache.dubbo.rpc.cluster.merger.ShortArrayMerger org.apache.dubbo.rpc.cluster.merger.IntArrayMerger org.apache.dubbo [...]
src |-main |-java |-com |-xxx |-XxxMerger.java (Merger implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Merger (plain text file with the content: xxx=com.xxx.XxxMerger) XxxMerger.java:
-package com.xxx; import org.apache.dubbo.rpc.cluster.Merger; public class XxxMerger<T> implements Merger<T> { public T merge(T... results) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/merger/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Merger [...]
+package com.xxx; import org.apache.dubbo.rpc.cluster.Merger; public class XxxMerger<T> implements Merger<T> { public T merge(T... results) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/merger/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Merger [...]
Extension Interface org.apache.dubbo.rpc.cluster.Merger
Extension Configuration <dubbo:method merger="xxx" /> Existing Extension org.apache.dubbo.rpc.cluster.merger.ArrayMerger org.apache.dubbo.rpc.cluster.merger.ListMerger org.apache.dubbo.rpc.cluster.merger.SetMerger org.apache.dubbo.rpc.cluster.merger.MapMerger org.apache.dubbo.rpc.cluster.merger.ByteArrayMerger org.apache.dubbo.rpc.cluster.merger.CharArrayMerger org.apache.dubbo.rpc.cluster.merger.ShortArrayMerger org.apache.dubbo.rpc.cluster.merger.IntArrayMerger org.apache.dubbo [...]
src |-main |-java |-com |-xxx |-XxxMerger.java (Merger implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Merger (plain text file with the content: xxx=com.xxx.XxxMerger) XxxMerger.java:
-package com.xxx; import org.apache.dubbo.rpc.cluster.Merger; public class XxxMerger<T> implements Merger<T> { public T merge(T... results) { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="76"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Merger Extension"><meta name=twitter:description content="Summary Merge strategy for return result aggregation in group.
+package com.xxx; import org.apache.dubbo.rpc.cluster.Merger; public class XxxMerger<T> implements Merger<T> { public T merge(T... results) { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="76"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Merger Extension"><meta name=twitter:description content="Summary Merge strategy for return result aggregation in group.
Extension Interface org.apache.dubbo.rpc.cluster.Merger
Extension Configuration <dubbo:method merger="xxx" /> Existing Extension org.apache.dubbo.rpc.cluster.merger.ArrayMerger org.apache.dubbo.rpc.cluster.merger.ListMerger org.apache.dubbo.rpc.cluster.merger.SetMerger org.apache.dubbo.rpc.cluster.merger.MapMerger org.apache.dubbo.rpc.cluster.merger.ByteArrayMerger org.apache.dubbo.rpc.cluster.merger.CharArrayMerger org.apache.dubbo.rpc.cluster.merger.ShortArrayMerger org.apache.dubbo.rpc.cluster.merger.IntArrayMerger org.apache.dubbo [...]
src |-main |-java |-com |-xxx |-XxxMerger.java (Merger implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.Merger (plain text file with the content: xxx=com.xxx.XxxMerger) XxxMerger.java:
diff --git a/en/docs/v2.7/dev/impls/monitor/index.html b/en/docs/v2.7/dev/impls/monitor/index.html
index d4c7266f0f..aae019c604 100644
--- a/en/docs/v2.7/dev/impls/monitor/index.html
+++ b/en/docs/v2.7/dev/impls/monitor/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.monitor.MonitorFactory org.apache.dubbo.monitor.Monitor Extension Configuration <!-- configure monitor center --> <dubbo:monitor address="xxx://ip:port" /> Existing Extension org.apache.dubbo.monitor.support.dubbo.DubboMonitorFactory
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxMonitorFactoryjava (MonitorFactory implementation) |-XxxMonitor.java (Monitor implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.monitor.MonitorFactory (plain text file with the format: xxx=com.xxx.XxxMonitorFactory) XxxMonitorFactory.java:
-package com.xxx; import org.apache.dubbo.monitor.MonitorFactory; import org.apache.dubbo.monitor.Monitor; import org.apache.dubbo.common.URL; public class XxxMonitorFactory implements MonitorFactory { public Monitor getMonitor(URL url) { return new XxxMonitor(url); } } XxxMonitor."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/monitor/"><meta property="article:section" content="docs"><meta property="article:mod [...]
+package com.xxx; import org.apache.dubbo.monitor.MonitorFactory; import org.apache.dubbo.monitor.Monitor; import org.apache.dubbo.common.URL; public class XxxMonitorFactory implements MonitorFactory { public Monitor getMonitor(URL url) { return new XxxMonitor(url); } } XxxMonitor."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/monitor/"><meta property="article:section" content="docs"><meta property="article:mod [...]
Extension Interface org.apache.dubbo.monitor.MonitorFactory org.apache.dubbo.monitor.Monitor Extension Configuration <!-- configure monitor center --> <dubbo:monitor address="xxx://ip:port" /> Existing Extension org.apache.dubbo.monitor.support.dubbo.DubboMonitorFactory
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxMonitorFactoryjava (MonitorFactory implementation) |-XxxMonitor.java (Monitor implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.monitor.MonitorFactory (plain text file with the format: xxx=com.xxx.XxxMonitorFactory) XxxMonitorFactory.java:
-package com.xxx; import org.apache.dubbo.monitor.MonitorFactory; import org.apache.dubbo.monitor.Monitor; import org.apache.dubbo.common.URL; public class XxxMonitorFactory implements MonitorFactory { public Monitor getMonitor(URL url) { return new XxxMonitor(url); } } XxxMonitor."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="104"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content [...]
+package com.xxx; import org.apache.dubbo.monitor.MonitorFactory; import org.apache.dubbo.monitor.Monitor; import org.apache.dubbo.common.URL; public class XxxMonitorFactory implements MonitorFactory { public Monitor getMonitor(URL url) { return new XxxMonitor(url); } } XxxMonitor."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="104"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content [...]
Extension Interface org.apache.dubbo.monitor.MonitorFactory org.apache.dubbo.monitor.Monitor Extension Configuration <!-- configure monitor center --> <dubbo:monitor address="xxx://ip:port" /> Existing Extension org.apache.dubbo.monitor.support.dubbo.DubboMonitorFactory
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxMonitorFactoryjava (MonitorFactory implementation) |-XxxMonitor.java (Monitor implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.monitor.MonitorFactory (plain text file with the format: xxx=com.xxx.XxxMonitorFactory) XxxMonitorFactory.java:
diff --git a/en/docs/v2.7/dev/impls/networker/index.html b/en/docs/v2.7/dev/impls/networker/index.html
index 0d9258daad..eec2fe1ca2 100644
--- a/en/docs/v2.7/dev/impls/networker/index.html
+++ b/en/docs/v2.7/dev/impls/networker/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.remoting.p2p.Networker
Extension Configuration <dubbo:protocol networker="xxx" /> <!-- default configuration, it takes effect if networker attribute is not set in <dubbo:protocol> --> <dubbo:provider networker="xxx" /> Existing Extension org.apache.dubbo.remoting.p2p.support.MulticastNetworker org.apache.dubbo.remoting.p2p.support.FileNetworker Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxNetworker.java (Networker implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.p2p.Networker (plain text file with the content: xxx=com.xxx.XxxNetworker) XxxNetworker.java:
-package com.xxx; import org.apache.dubbo.remoting.p2p.Networker; public class XxxNetworker implements Networker { public Group lookup(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/networker/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
+package com.xxx; import org.apache.dubbo.remoting.p2p.Networker; public class XxxNetworker implements Networker { public Group lookup(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/networker/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
Extension Interface org.apache.dubbo.remoting.p2p.Networker
Extension Configuration <dubbo:protocol networker="xxx" /> <!-- default configuration, it takes effect if networker attribute is not set in <dubbo:protocol> --> <dubbo:provider networker="xxx" /> Existing Extension org.apache.dubbo.remoting.p2p.support.MulticastNetworker org.apache.dubbo.remoting.p2p.support.FileNetworker Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxNetworker.java (Networker implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.p2p.Networker (plain text file with the content: xxx=com.xxx.XxxNetworker) XxxNetworker.java:
-package com.xxx; import org.apache.dubbo.remoting.p2p.Networker; public class XxxNetworker implements Networker { public Group lookup(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="83"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Networker Extension"><meta name=twitter:description content="Summary Extension for peer to peer network grouping.
+package com.xxx; import org.apache.dubbo.remoting.p2p.Networker; public class XxxNetworker implements Networker { public Group lookup(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="83"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Networker Extension"><meta name=twitter:description content="Summary Extension for peer to peer network grouping.
Extension Interface org.apache.dubbo.remoting.p2p.Networker
Extension Configuration <dubbo:protocol networker="xxx" /> <!-- default configuration, it takes effect if networker attribute is not set in <dubbo:protocol> --> <dubbo:provider networker="xxx" /> Existing Extension org.apache.dubbo.remoting.p2p.support.MulticastNetworker org.apache.dubbo.remoting.p2p.support.FileNetworker Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxNetworker.java (Networker implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.p2p.Networker (plain text file with the content: xxx=com.xxx.XxxNetworker) XxxNetworker.java:
diff --git a/en/docs/v2.7/dev/impls/page/index.html b/en/docs/v2.7/dev/impls/page/index.html
index 75c371140b..3ace1ac308 100644
--- a/en/docs/v2.7/dev/impls/page/index.html
+++ b/en/docs/v2.7/dev/impls/page/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.container.page.PageHandler
Extension Configuration <dubbo:protocol page="xxx,yyy" /> <!-- default configuration, will take effect if page attribute is not set in <dubbo:protocol> --> <dubbo:provider page="xxx,yyy" /> Existing Extension org.apache.dubbo.container.page.pages.HomePageHandler org.apache.dubbo.container.page.pages.StatusPageHandler org.apache.dubbo.container.page.pages.LogPageHandler org.apache.dubbo.container.page.pages.SystemPageHandler Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxPageHandler.java (PageHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.container.page.PageHandler (plain text file with the content: xxx=com.xxx.XxxPageHandler) XxxPageHandler.java:
-package com.xxx; import org.apache.dubbo.container.page.PageHandler; public class XxxPageHandler implements PageHandler { public Group lookup(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/page/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name conten [...]
+package com.xxx; import org.apache.dubbo.container.page.PageHandler; public class XxxPageHandler implements PageHandler { public Group lookup(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/page/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name conten [...]
Extension Interface org.apache.dubbo.container.page.PageHandler
Extension Configuration <dubbo:protocol page="xxx,yyy" /> <!-- default configuration, will take effect if page attribute is not set in <dubbo:protocol> --> <dubbo:provider page="xxx,yyy" /> Existing Extension org.apache.dubbo.container.page.pages.HomePageHandler org.apache.dubbo.container.page.pages.StatusPageHandler org.apache.dubbo.container.page.pages.LogPageHandler org.apache.dubbo.container.page.pages.SystemPageHandler Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxPageHandler.java (PageHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.container.page.PageHandler (plain text file with the content: xxx=com.xxx.XxxPageHandler) XxxPageHandler.java:
-package com.xxx; import org.apache.dubbo.container.page.PageHandler; public class XxxPageHandler implements PageHandler { public Group lookup(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="82"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="PageHandler Extension"><meta name=twitter:description content="Summary Extension for page handler
+package com.xxx; import org.apache.dubbo.container.page.PageHandler; public class XxxPageHandler implements PageHandler { public Group lookup(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="82"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="PageHandler Extension"><meta name=twitter:description content="Summary Extension for page handler
Extension Interface org.apache.dubbo.container.page.PageHandler
Extension Configuration <dubbo:protocol page="xxx,yyy" /> <!-- default configuration, will take effect if page attribute is not set in <dubbo:protocol> --> <dubbo:provider page="xxx,yyy" /> Existing Extension org.apache.dubbo.container.page.pages.HomePageHandler org.apache.dubbo.container.page.pages.StatusPageHandler org.apache.dubbo.container.page.pages.LogPageHandler org.apache.dubbo.container.page.pages.SystemPageHandler Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxPageHandler.java (PageHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.container.page.PageHandler (plain text file with the content: xxx=com.xxx.XxxPageHandler) XxxPageHandler.java:
diff --git a/en/docs/v2.7/dev/impls/protocol/index.html b/en/docs/v2.7/dev/impls/protocol/index.html
index ac07eb128c..595d7773d5 100644
--- a/en/docs/v2.7/dev/impls/protocol/index.html
+++ b/en/docs/v2.7/dev/impls/protocol/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Contract:
-When user calls invoke() method of Invoker object which’s returned from refer() call, the protocol needs to correspondingly execute invoke() method of Invoker object passed from remote export() method associated with the same URL. Moreover, it’s protocol’s responsibility to implement Invoker which’s returned from refer(). Generally speaking, protocol sends remote request in the Invoker implementation, but needs not to care about the Invoker passed into export() si [...]
+When user calls invoke() method of Invoker object which’s returned from refer() call, the protocol needs to correspondingly execute invoke() method of Invoker object passed from remote export() method associated with the same URL. Moreover, it’s protocol’s responsibility to implement Invoker which’s returned from refer(). Generally speaking, protocol sends remote request in the Invoker implementation, but needs not to care about the Invoker passed into export() si [...]
Contract:
-When user calls invoke() method of Invoker object which’s returned from refer() call, the protocol needs to correspondingly execute invoke() method of Invoker object passed from remote export() method associated with the same URL. Moreover, it’s protocol’s responsibility to implement Invoker which’s returned from refer(). Generally speaking, protocol sends remote request in the Invoker implementation, but needs not to care about the Invoker passed into export() si [...]
+When user calls invoke() method of Invoker object which’s returned from refer() call, the protocol needs to correspondingly execute invoke() method of Invoker object passed from remote export() method associated with the same URL. Moreover, it’s protocol’s responsibility to implement Invoker which’s returned from refer(). Generally speaking, protocol sends remote request in the Invoker implementation, but needs not to care about the Invoker passed into export() si [...]
Contract:
When user calls invoke() method of Invoker object which’s returned from refer() call, the protocol needs to correspondingly execute invoke() method of Invoker object passed from remote export() method associated with the same URL. Moreover, it’s protocol’s responsibility to implement Invoker which’s returned from refer(). Generally speaking, protocol sends remote request in the Invoker implementation, but needs not to care about the Invoker passed into export() si [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/dev/impls/proxy-factory/index.html b/en/docs/v2.7/dev/impls/proxy-factory/index.html
index 3e791c7fb2..3acf25cc4f 100644
--- a/en/docs/v2.7/dev/impls/proxy-factory/index.html
+++ b/en/docs/v2.7/dev/impls/proxy-factory/index.html
@@ -2,11 +2,11 @@
Extension Interface org.apache.dubbo.rpc.ProxyFactory
Extension Configuration <dubbo:protocol proxy="xxx" /> <!-- default configuration, it will take effect when proxy attribute is not configured in <dubbo:protocol> --> <dubbo:provider proxy="xxx" /> Existing Extension org.apache.dubbo.rpc.proxy.JdkProxyFactory org.apache.dubbo.rpc.proxy.JavassistProxyFactory Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxProxyFactory.java (ProxyFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.ProxyFactory (plain text file with the content: xxx=com.xxx.XxxProxyFactory) XxxProxyFactory.java:
-package com.xxx; import org.apache.dubbo.rpc.ProxyFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxProxyFactory implements ProxyFactory { public <T> T getProxy(Invoker<T> invoker) throws RpcException { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/proxy-factory/"><meta property="article:section" content="docs"><meta property="article:modified_time" co [...]
+package com.xxx; import org.apache.dubbo.rpc.ProxyFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxProxyFactory implements ProxyFactory { public <T> T getProxy(Invoker<T> invoker) throws RpcException { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/proxy-factory/"><meta property="article:section" content="docs"><meta property="article:modified_time" co [...]
Extension Interface org.apache.dubbo.rpc.ProxyFactory
Extension Configuration <dubbo:protocol proxy="xxx" /> <!-- default configuration, it will take effect when proxy attribute is not configured in <dubbo:protocol> --> <dubbo:provider proxy="xxx" /> Existing Extension org.apache.dubbo.rpc.proxy.JdkProxyFactory org.apache.dubbo.rpc.proxy.JavassistProxyFactory Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxProxyFactory.java (ProxyFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.ProxyFactory (plain text file with the content: xxx=com.xxx.XxxProxyFactory) XxxProxyFactory.java:
-package com.xxx; import org.apache.dubbo.rpc.ProxyFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxProxyFactory implements ProxyFactory { public <T> T getProxy(Invoker<T> invoker) throws RpcException { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="104"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ProxyFactory Exten [...]
+package com.xxx; import org.apache.dubbo.rpc.ProxyFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.RpcException; public class XxxProxyFactory implements ProxyFactory { public <T> T getProxy(Invoker<T> invoker) throws RpcException { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="104"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ProxyFactory Exten [...]
Extension Interface org.apache.dubbo.rpc.ProxyFactory
Extension Configuration <dubbo:protocol proxy="xxx" /> <!-- default configuration, it will take effect when proxy attribute is not configured in <dubbo:protocol> --> <dubbo:provider proxy="xxx" /> Existing Extension org.apache.dubbo.rpc.proxy.JdkProxyFactory org.apache.dubbo.rpc.proxy.JavassistProxyFactory Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxProxyFactory.java (ProxyFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.ProxyFactory (plain text file with the content: xxx=com.xxx.XxxProxyFactory) XxxProxyFactory.java:
diff --git a/en/docs/v2.7/dev/impls/registry/index.html b/en/docs/v2.7/dev/impls/registry/index.html
index 66a3addaa5..ad5431eca0 100644
--- a/en/docs/v2.7/dev/impls/registry/index.html
+++ b/en/docs/v2.7/dev/impls/registry/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Extension Interface org.apache.dubbo.registry.RegistryFactory org.apache.dubbo.registry.Registry Extension Configuration <!-- config registry server --> <dubbo:registry id="xxx1" address="xxx://ip:port" /> <!-- reference registry server, if registry attribute is not specified, then ApplicationContext will be scanned to find if there's any --> <dubbo:service registry="xxx1" /> <!-- default configuration for referencing registry server, it will take effect if there' [...]
-Extension Interface org.apache.dubbo.registry.RegistryFactory org.apache.dubbo.registry.Registry Extension Configuration <!-- config registry server --> <dubbo:registry id="xxx1" address="xxx://ip:port" /> <!-- reference registry server, if registry attribute is not specified, then ApplicationContext will be scanned to find if there's any --> <dubbo:service registry="xxx1" /> <!-- default configuration for referencing registry server, it will take effect if there' [...]
+Extension Interface org.apache.dubbo.registry.RegistryFactory org.apache.dubbo.registry.Registry Extension Configuration <!-- config registry server --> <dubbo:registry id="xxx1" address="xxx://ip:port" /> <!-- reference registry server, if registry attribute is not specified, then ApplicationContext will be scanned to find if there's any --> <dubbo:service registry="xxx1" /> <!-- default configuration for referencing registry server, it will take effect if there' [...]
+Extension Interface org.apache.dubbo.registry.RegistryFactory org.apache.dubbo.registry.Registry Extension Configuration <!-- config registry server --> <dubbo:registry id="xxx1" address="xxx://ip:port" /> <!-- reference registry server, if registry attribute is not specified, then ApplicationContext will be scanned to find if there's any --> <dubbo:service registry="xxx1" /> <!-- default configuration for referencing registry server, it will take effect if there' [...]
Extension Interface org.apache.dubbo.registry.RegistryFactory org.apache.dubbo.registry.Registry Extension Configuration <!-- config registry server --> <dubbo:registry id="xxx1" address="xxx://ip:port" /> <!-- reference registry server, if registry attribute is not specified, then ApplicationContext will be scanned to find if there's any --> <dubbo:service registry="xxx1" /> <!-- default configuration for referencing registry server, it will take effect if there' [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/dev/impls/remoting/index.html b/en/docs/v2.7/dev/impls/remoting/index.html
index 7c98d3927f..0493315aa5 100644
--- a/en/docs/v2.7/dev/impls/remoting/index.html
+++ b/en/docs/v2.7/dev/impls/remoting/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Extension Interface org.apache.dubbo.remoting.Transporter org.apache.dubbo.remoting.Server org.apache.dubbo.remoting.Client Extension Configuration <!-- server and client use the same transporter --> <dubbo:protocol transporter="xxx" /> <!-- server and client use the different transporter --> <dubbo:protocol server="xxx" client="xxx" /> <!-- default configuration, will take effect when transport/server/client attribute is not set in <dubbo:protocol> --> <dubbo:pro [...]
-Extension Interface org.apache.dubbo.remoting.Transporter org.apache.dubbo.remoting.Server org.apache.dubbo.remoting.Client Extension Configuration <!-- server and client use the same transporter --> <dubbo:protocol transporter="xxx" /> <!-- server and client use the different transporter --> <dubbo:protocol server="xxx" client="xxx" /> <!-- default configuration, will take effect when transport/server/client attribute is not set in <dubbo:protocol> --> <dubbo:pro [...]
+Extension Interface org.apache.dubbo.remoting.Transporter org.apache.dubbo.remoting.Server org.apache.dubbo.remoting.Client Extension Configuration <!-- server and client use the same transporter --> <dubbo:protocol transporter="xxx" /> <!-- server and client use the different transporter --> <dubbo:protocol server="xxx" client="xxx" /> <!-- default configuration, will take effect when transport/server/client attribute is not set in <dubbo:protocol> --> <dubbo:pro [...]
+Extension Interface org.apache.dubbo.remoting.Transporter org.apache.dubbo.remoting.Server org.apache.dubbo.remoting.Client Extension Configuration <!-- server and client use the same transporter --> <dubbo:protocol transporter="xxx" /> <!-- server and client use the different transporter --> <dubbo:protocol server="xxx" client="xxx" /> <!-- default configuration, will take effect when transport/server/client attribute is not set in <dubbo:protocol> --> <dubbo:pro [...]
Extension Interface org.apache.dubbo.remoting.Transporter org.apache.dubbo.remoting.Server org.apache.dubbo.remoting.Client Extension Configuration <!-- server and client use the same transporter --> <dubbo:protocol transporter="xxx" /> <!-- server and client use the different transporter --> <dubbo:protocol server="xxx" client="xxx" /> <!-- default configuration, will take effect when transport/server/client attribute is not set in <dubbo:protocol> --> <dubbo:pro [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/dev/impls/router/index.html b/en/docs/v2.7/dev/impls/router/index.html
index cde668d866..5e5e78dea9 100644
--- a/en/docs/v2.7/dev/impls/router/index.html
+++ b/en/docs/v2.7/dev/impls/router/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.rpc.cluster.RouterFactory org.apache.dubbo.rpc.cluster.Router Existing Extension org.apache.dubbo.rpc.cluster.router.ScriptRouterFactory org.apache.dubbo.rpc.cluster.router.FileRouterFactory org.apache.dubbo.rpc.cluster.router.condition.config.AppRouterFactory org.apache.dubbo.rpc.cluster.CacheableRouterFactory org.apache.dubbo.rpc.cluster.router.condition.ConditionRouterFactory org.apache.dubbo.rpc.cluster.router.mock.MockRouterFactory org.apache.dub [...]
src |-main |-java |-com |-xxx |-XxxRouterFactory.java (RouterFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.RouterFactory (plain text file with the content: xxx=com.xxx.XxxRouterFactory) XxxRouterFactory.java:
-package com.xxx; import org.apache.dubbo.rpc.cluster.RouterFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.RpcException; public class XxxRouterFactory implements RouterFactory { public Router getRouter(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/router/"><meta property="article:section" content="docs"><meta property="article:mo [...]
+package com.xxx; import org.apache.dubbo.rpc.cluster.RouterFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.RpcException; public class XxxRouterFactory implements RouterFactory { public Router getRouter(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/router/"><meta property="article:section" content="docs"><meta property="article:mo [...]
Extension Interface org.apache.dubbo.rpc.cluster.RouterFactory org.apache.dubbo.rpc.cluster.Router Existing Extension org.apache.dubbo.rpc.cluster.router.ScriptRouterFactory org.apache.dubbo.rpc.cluster.router.FileRouterFactory org.apache.dubbo.rpc.cluster.router.condition.config.AppRouterFactory org.apache.dubbo.rpc.cluster.CacheableRouterFactory org.apache.dubbo.rpc.cluster.router.condition.ConditionRouterFactory org.apache.dubbo.rpc.cluster.router.mock.MockRouterFactory org.apache.dub [...]
src |-main |-java |-com |-xxx |-XxxRouterFactory.java (RouterFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.RouterFactory (plain text file with the content: xxx=com.xxx.XxxRouterFactory) XxxRouterFactory.java:
-package com.xxx; import org.apache.dubbo.rpc.cluster.RouterFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.RpcException; public class XxxRouterFactory implements RouterFactory { public Router getRouter(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="75"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title conten [...]
+package com.xxx; import org.apache.dubbo.rpc.cluster.RouterFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.RpcException; public class XxxRouterFactory implements RouterFactory { public Router getRouter(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="75"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title conten [...]
Extension Interface org.apache.dubbo.rpc.cluster.RouterFactory org.apache.dubbo.rpc.cluster.Router Existing Extension org.apache.dubbo.rpc.cluster.router.ScriptRouterFactory org.apache.dubbo.rpc.cluster.router.FileRouterFactory org.apache.dubbo.rpc.cluster.router.condition.config.AppRouterFactory org.apache.dubbo.rpc.cluster.CacheableRouterFactory org.apache.dubbo.rpc.cluster.router.condition.ConditionRouterFactory org.apache.dubbo.rpc.cluster.router.mock.MockRouterFactory org.apache.dub [...]
src |-main |-java |-com |-xxx |-XxxRouterFactory.java (RouterFactory implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.rpc.cluster.RouterFactory (plain text file with the content: xxx=com.xxx.XxxRouterFactory) XxxRouterFactory.java:
package com.xxx; import org.apache.dubbo.rpc.cluster.RouterFactory; import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.RpcException; public class XxxRouterFactory implements RouterFactory { public Router getRouter(URL url) { // ."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))< [...]
diff --git a/en/docs/v2.7/dev/impls/serialize/index.html b/en/docs/v2.7/dev/impls/serialize/index.html
index ea2f3cf35a..172b9bf863 100644
--- a/en/docs/v2.7/dev/impls/serialize/index.html
+++ b/en/docs/v2.7/dev/impls/serialize/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.common.serialize.Serialization org.apache.dubbo.common.serialize.ObjectInput org.apache.dubbo.common.serialize.ObjectOutput Extension Configuration <!-- protocol serialization style --> <dubbo:protocol serialization="xxx" /> <!-- default configuration, will take effect if serialization is not configured in <dubbo:protocol> --> <dubbo:provider serialization="xxx" /> Existing Extension org.apache.dubbo.common.serialize.dubbo.DubboSeriali [...]
-src |-main |-java |-com |-xxx |-XxxSerialization.java (Serialization implementation) |-XxxObjectInput.java (ObjectInput implementation) |-XxxObjectOutput."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/serialize/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name cont [...]
+src |-main |-java |-com |-xxx |-XxxSerialization.java (Serialization implementation) |-XxxObjectInput.java (ObjectInput implementation) |-XxxObjectOutput."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/serialize/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name cont [...]
Extension Interface org.apache.dubbo.common.serialize.Serialization org.apache.dubbo.common.serialize.ObjectInput org.apache.dubbo.common.serialize.ObjectOutput Extension Configuration <!-- protocol serialization style --> <dubbo:protocol serialization="xxx" /> <!-- default configuration, will take effect if serialization is not configured in <dubbo:protocol> --> <dubbo:provider serialization="xxx" /> Existing Extension org.apache.dubbo.common.serialize.dubbo.DubboSeriali [...]
-src |-main |-java |-com |-xxx |-XxxSerialization.java (Serialization implementation) |-XxxObjectInput.java (ObjectInput implementation) |-XxxObjectOutput."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="129"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Serialization Extension"><meta name=twitter:description content="Summary Extension to serializing java object into byte code [...]
+src |-main |-java |-com |-xxx |-XxxSerialization.java (Serialization implementation) |-XxxObjectInput.java (ObjectInput implementation) |-XxxObjectOutput."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="129"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Serialization Extension"><meta name=twitter:description content="Summary Extension to serializing java object into byte code [...]
Extension Interface org.apache.dubbo.common.serialize.Serialization org.apache.dubbo.common.serialize.ObjectInput org.apache.dubbo.common.serialize.ObjectOutput Extension Configuration <!-- protocol serialization style --> <dubbo:protocol serialization="xxx" /> <!-- default configuration, will take effect if serialization is not configured in <dubbo:protocol> --> <dubbo:provider serialization="xxx" /> Existing Extension org.apache.dubbo.common.serialize.dubbo.DubboSeriali [...]
src |-main |-java |-com |-xxx |-XxxSerialization.java (Serialization implementation) |-XxxObjectInput.java (ObjectInput implementation) |-XxxObjectOutput."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/dev/impls/status-checker/index.html b/en/docs/v2.7/dev/impls/status-checker/index.html
index d2772f1b5e..11e8bfcda5 100644
--- a/en/docs/v2.7/dev/impls/status-checker/index.html
+++ b/en/docs/v2.7/dev/impls/status-checker/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.common.status.StatusChecker
Extension Configuration <dubbo:protocol status="xxx,yyy" /> <!-- default configuration, will take effect if no status attribute is configured in <dubbo:protocol> --> <dubbo:provider status="xxx,yyy" /> Existing Extension org.apache.dubbo.common.status.support.MemoryStatusChecker org.apache.dubbo.common.status.support.LoadStatusChecker org.apache.dubbo.rpc.dubbo.status.ServerStatusChecker org.apache.dubbo.rpc.dubbo.status.ThreadPoolStatusChecker org.apache.dubbo.registry.d [...]
-src |-main |-java |-com |-xxx |-XxxStatusChecker.java (StatusChecker implementation) |-resources |-META-INF |-dubbo |-org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/status-checker/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="StatusChecker Extensio [...]
+src |-main |-java |-com |-xxx |-XxxStatusChecker.java (StatusChecker implementation) |-resources |-META-INF |-dubbo |-org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/status-checker/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="StatusChecker Extensio [...]
Extension Interface org.apache.dubbo.common.status.StatusChecker
Extension Configuration <dubbo:protocol status="xxx,yyy" /> <!-- default configuration, will take effect if no status attribute is configured in <dubbo:protocol> --> <dubbo:provider status="xxx,yyy" /> Existing Extension org.apache.dubbo.common.status.support.MemoryStatusChecker org.apache.dubbo.common.status.support.LoadStatusChecker org.apache.dubbo.rpc.dubbo.status.ServerStatusChecker org.apache.dubbo.rpc.dubbo.status.ThreadPoolStatusChecker org.apache.dubbo.registry.d [...]
-src |-main |-java |-com |-xxx |-XxxStatusChecker.java (StatusChecker implementation) |-resources |-META-INF |-dubbo |-org."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="103"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="StatusChecker Extension"><meta name=twitter:description content="Summary Extension to check status of resources service depends on. This status checker can b [...]
+src |-main |-java |-com |-xxx |-XxxStatusChecker.java (StatusChecker implementation) |-resources |-META-INF |-dubbo |-org."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="103"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="StatusChecker Extension"><meta name=twitter:description content="Summary Extension to check status of resources service depends on. This status checker can b [...]
Extension Interface org.apache.dubbo.common.status.StatusChecker
Extension Configuration <dubbo:protocol status="xxx,yyy" /> <!-- default configuration, will take effect if no status attribute is configured in <dubbo:protocol> --> <dubbo:provider status="xxx,yyy" /> Existing Extension org.apache.dubbo.common.status.support.MemoryStatusChecker org.apache.dubbo.common.status.support.LoadStatusChecker org.apache.dubbo.rpc.dubbo.status.ServerStatusChecker org.apache.dubbo.rpc.dubbo.status.ThreadPoolStatusChecker org.apache.dubbo.registry.d [...]
src |-main |-java |-com |-xxx |-XxxStatusChecker.java (StatusChecker implementation) |-resources |-META-INF |-dubbo |-org."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
diff --git a/en/docs/v2.7/dev/impls/telnet-handler/index.html b/en/docs/v2.7/dev/impls/telnet-handler/index.html
index b75c6c2f12..314430c497 100644
--- a/en/docs/v2.7/dev/impls/telnet-handler/index.html
+++ b/en/docs/v2.7/dev/impls/telnet-handler/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.remoting.telnet.TelnetHandler
Extension Configuration <dubbo:protocol telnet="xxx,yyy" /> <!-- default configuration, will take effect if telnet attribute is not specified in <dubbo:protocol> --> <dubbo:provider telnet="xxx,yyy" /> Existing Extension org.apache.dubbo.remoting.telnet.support.ClearTelnetHandler org.apache.dubbo.remoting.telnet.support.ExitTelnetHandler org.apache.dubbo.remoting.telnet.support.HelpTelnetHandler org.apache.dubbo.remoting.telnet.support.StatusTelnetHandler org.apache.dubbo [...]
-src |-main |-java |-com |-xxx |-XxxTelnetHandler.java (TelnetHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.telnet.TelnetHandler (plain text file with the content: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/telnet-handler/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og [...]
+src |-main |-java |-com |-xxx |-XxxTelnetHandler.java (TelnetHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.telnet.TelnetHandler (plain text file with the content: xxx=com."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/telnet-handler/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og [...]
Extension Interface org.apache.dubbo.remoting.telnet.TelnetHandler
Extension Configuration <dubbo:protocol telnet="xxx,yyy" /> <!-- default configuration, will take effect if telnet attribute is not specified in <dubbo:protocol> --> <dubbo:provider telnet="xxx,yyy" /> Existing Extension org.apache.dubbo.remoting.telnet.support.ClearTelnetHandler org.apache.dubbo.remoting.telnet.support.ExitTelnetHandler org.apache.dubbo.remoting.telnet.support.HelpTelnetHandler org.apache.dubbo.remoting.telnet.support.StatusTelnetHandler org.apache.dubbo [...]
-src |-main |-java |-com |-xxx |-XxxTelnetHandler.java (TelnetHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.telnet.TelnetHandler (plain text file with the content: xxx=com."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="114"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="TelnetHandler Extension"><meta name=twitter:description content="Summar [...]
+src |-main |-java |-com |-xxx |-XxxTelnetHandler.java (TelnetHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.telnet.TelnetHandler (plain text file with the content: xxx=com."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="114"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="TelnetHandler Extension"><meta name=twitter:description content="Summar [...]
Extension Interface org.apache.dubbo.remoting.telnet.TelnetHandler
Extension Configuration <dubbo:protocol telnet="xxx,yyy" /> <!-- default configuration, will take effect if telnet attribute is not specified in <dubbo:protocol> --> <dubbo:provider telnet="xxx,yyy" /> Existing Extension org.apache.dubbo.remoting.telnet.support.ClearTelnetHandler org.apache.dubbo.remoting.telnet.support.ExitTelnetHandler org.apache.dubbo.remoting.telnet.support.HelpTelnetHandler org.apache.dubbo.remoting.telnet.support.StatusTelnetHandler org.apache.dubbo [...]
src |-main |-java |-com |-xxx |-XxxTelnetHandler.java (TelnetHandler implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.remoting.telnet.TelnetHandler (plain text file with the content: xxx=com."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
diff --git a/en/docs/v2.7/dev/impls/threadpool/index.html b/en/docs/v2.7/dev/impls/threadpool/index.html
index bae1b5d140..fdb2b469de 100644
--- a/en/docs/v2.7/dev/impls/threadpool/index.html
+++ b/en/docs/v2.7/dev/impls/threadpool/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Extension Interface org.apache.dubbo.common.threadpool.ThreadPool
Extension Configuration <dubbo:protocol threadpool="xxx" /> <!-- default configuration, it will take effect when threadpool attribute is not specified in <dubbo:protocol> --> <dubbo:provider threadpool="xxx" /> Existing Extension org.apache.dubbo.common.threadpool.FixedThreadPool org.apache.dubbo.common.threadpool.CachedThreadPool Extension Guide Directory layout:
-src |-main |-java |-com |-xxx |-XxxThreadPool.java (ThreadPool implementation) |-resources |-META-INF |-dubbo |-org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/threadpool/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="ThreadPool Extension"><meta item [...]
+src |-main |-java |-com |-xxx |-XxxThreadPool.java (ThreadPool implementation) |-resources |-META-INF |-dubbo |-org."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/threadpool/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="ThreadPool Extension"><meta item [...]
Extension Interface org.apache.dubbo.common.threadpool.ThreadPool
Extension Configuration <dubbo:protocol threadpool="xxx" /> <!-- default configuration, it will take effect when threadpool attribute is not specified in <dubbo:protocol> --> <dubbo:provider threadpool="xxx" /> Existing Extension org.apache.dubbo.common.threadpool.FixedThreadPool org.apache.dubbo.common.threadpool.CachedThreadPool Extension Guide Directory layout:
-src |-main |-java |-com |-xxx |-XxxThreadPool.java (ThreadPool implementation) |-resources |-META-INF |-dubbo |-org."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="104"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ThreadPool Extension"><meta name=twitter:description content="Summary Thread pool strategy extension for service provider. When server receives one request, it nee [...]
+src |-main |-java |-com |-xxx |-XxxThreadPool.java (ThreadPool implementation) |-resources |-META-INF |-dubbo |-org."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="104"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ThreadPool Extension"><meta name=twitter:description content="Summary Thread pool strategy extension for service provider. When server receives one request, it nee [...]
Extension Interface org.apache.dubbo.common.threadpool.ThreadPool
Extension Configuration <dubbo:protocol threadpool="xxx" /> <!-- default configuration, it will take effect when threadpool attribute is not specified in <dubbo:protocol> --> <dubbo:provider threadpool="xxx" /> Existing Extension org.apache.dubbo.common.threadpool.FixedThreadPool org.apache.dubbo.common.threadpool.CachedThreadPool Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxThreadPool.java (ThreadPool implementation) |-resources |-META-INF |-dubbo |-org."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
diff --git a/en/docs/v2.7/dev/impls/validation/index.html b/en/docs/v2.7/dev/impls/validation/index.html
index 0716f12db9..b398288256 100644
--- a/en/docs/v2.7/dev/impls/validation/index.html
+++ b/en/docs/v2.7/dev/impls/validation/index.html
@@ -3,12 +3,12 @@ Extension Interface org.apache.dubbo.validation.Validation
Extension Configuration <dubbo:service validation="xxx,yyy" /> <!-- default configuration, it will take effect when there's no validation attribute specified in <dubbo:service> --> <dubbo:provider validation="xxx,yyy" /> Existing Extension org.apache.dubbo.validation.support.jvalidation.JValidation
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxValidation.java (Validation implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.validation.Validation (plain text file with the content: xxx=com.xxx.XxxValidation) XxxValidation.java:
-package com.xxx; import org.apache.dubbo.validation.Validation; public class XxxValidation implements Validation { public Object getValidator(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/validation/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
+package com.xxx; import org.apache.dubbo.validation.Validation; public class XxxValidation implements Validation { public Object getValidator(URL url) { // ."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/impls/validation/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
Extension Interface org.apache.dubbo.validation.Validation
Extension Configuration <dubbo:service validation="xxx,yyy" /> <!-- default configuration, it will take effect when there's no validation attribute specified in <dubbo:service> --> <dubbo:provider validation="xxx,yyy" /> Existing Extension org.apache.dubbo.validation.support.jvalidation.JValidation
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxValidation.java (Validation implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.validation.Validation (plain text file with the content: xxx=com.xxx.XxxValidation) XxxValidation.java:
-package com.xxx; import org.apache.dubbo.validation.Validation; public class XxxValidation implements Validation { public Object getValidator(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="109"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Validation Extension"><meta name=twitter:description content="Summary Extension for parameter validation.
+package com.xxx; import org.apache.dubbo.validation.Validation; public class XxxValidation implements Validation { public Object getValidator(URL url) { // ."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="109"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Validation Extension"><meta name=twitter:description content="Summary Extension for parameter validation.
Extension Interface org.apache.dubbo.validation.Validation
Extension Configuration <dubbo:service validation="xxx,yyy" /> <!-- default configuration, it will take effect when there's no validation attribute specified in <dubbo:service> --> <dubbo:provider validation="xxx,yyy" /> Existing Extension org.apache.dubbo.validation.support.jvalidation.JValidation
Extension Guide Directory layout:
diff --git a/en/docs/v2.7/dev/principals/code-detail/index.html b/en/docs/v2.7/dev/principals/code-detail/index.html
index ff29769ad8..0ad0b0ddbe 100644
--- a/en/docs/v2.7/dev/principals/code-detail/index.html
+++ b/en/docs/v2.7/dev/principals/code-detail/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Recently, I have been worried about the quality of the Dubbo distributed service framework. If there are more maintenance personnel or changes, there will be a decline in quality. I am thinking, is there any need for everyone to abide by it, according to a habit when writing code, I have summarized it. The code process, especially the framework code, should always keep in mind the details. Maybe the following will be said, everyone will feel very simple, very basic, but always keep in mi [...]
-Recently, I have been worried about the quality of the Dubbo distributed service framework. If there are more maintenance personnel or changes, there will be a decline in quality. I am thinking, is there any need for everyone to abide by it, according to a habit when writing code, I have summarized it. The code process, especially the framework code, should always keep in mind the details. Maybe the following will be said, everyone will feel very simple, very basic, but always keep in mi [...]
+Recently, I have been worried about the quality of the Dubbo distributed service framework. If there are more maintenance personnel or changes, there will be a decline in quality. I am thinking, is there any need for everyone to abide by it, according to a habit when writing code, I have summarized it. The code process, especially the framework code, should always keep in mind the details. Maybe the following will be said, everyone will feel very simple, very basic, but always keep in mi [...]
+Recently, I have been worried about the quality of the Dubbo distributed service framework. If there are more maintenance personnel or changes, there will be a decline in quality. I am thinking, is there any need for everyone to abide by it, according to a habit when writing code, I have summarized it. The code process, especially the framework code, should always keep in mind the details. Maybe the following will be said, everyone will feel very simple, very basic, but always keep in mi [...]
Recently, I have been worried about the quality of the Dubbo distributed service framework. If there are more maintenance personnel or changes, there will be a decline in quality. I am thinking, is there any need for everyone to abide by it, according to a habit when writing code, I have summarized it. The code process, especially the framework code, should always keep in mind the details. Maybe the following will be said, everyone will feel very simple, very basic, but always keep in mi [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/dev/principals/configuration/index.html b/en/docs/v2.7/dev/principals/configuration/index.html
index 89bbc78c0e..778f34d036 100644
--- a/en/docs/v2.7/dev/principals/configuration/index.html
+++ b/en/docs/v2.7/dev/principals/configuration/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Dubbo design is now completely unobtrusive, namely the user only depends on the configuration of contract.After multiple versions of the development, in order to meet the demand of various scenarios, configuration is more and more.In order to maintain compatibility with only grow, lurking inside all sorts of styles, convention, rules.The new version will also be configured for a adjustment, remove the dubbo, properties, instead of all the spring configuration."><meta property="og:type" c [...]
-Dubbo design is now completely unobtrusive, namely the user only depends on the configuration of contract.After multiple versions of the development, in order to meet the demand of various scenarios, configuration is more and more.In order to maintain compatibility with only grow, lurking inside all sorts of styles, convention, rules.The new version will also be configured for a adjustment, remove the dubbo, properties, instead of all the spring configuration."><meta itemprop=dateModifie [...]
+Dubbo design is now completely unobtrusive, namely the user only depends on the configuration of contract.After multiple versions of the development, in order to meet the demand of various scenarios, configuration is more and more.In order to maintain compatibility with only grow, lurking inside all sorts of styles, convention, rules.The new version will also be configured for a adjustment, remove the dubbo, properties, instead of all the spring configuration."><meta property="og:type" c [...]
+Dubbo design is now completely unobtrusive, namely the user only depends on the configuration of contract.After multiple versions of the development, in order to meet the demand of various scenarios, configuration is more and more.In order to maintain compatibility with only grow, lurking inside all sorts of styles, convention, rules.The new version will also be configured for a adjustment, remove the dubbo, properties, instead of all the spring configuration."><meta itemprop=dateModifie [...]
Dubbo design is now completely unobtrusive, namely the user only depends on the configuration of contract.After multiple versions of the development, in order to meet the demand of various scenarios, configuration is more and more.In order to maintain compatibility with only grow, lurking inside all sorts of styles, convention, rules.The new version will also be configured for a adjustment, remove the dubbo, properties, instead of all the spring configuration."><script type=application/j [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/dev/principals/dummy/index.html b/en/docs/v2.7/dev/principals/dummy/index.html
index 78411abdc0..f3cc92b82f 100644
--- a/en/docs/v2.7/dev/principals/dummy/index.html
+++ b/en/docs/v2.7/dev/principals/dummy/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Recently I was feeling stupid because I solved too many stupid problems. The service framework is becoming more widely used. Every day, I have to help the endpoint user to resolve problems. Gradually, it is found that most of the problems are configuration errors, or duplicated files or classes, or network failure. So I prepare to add some “fool-proof” design to the further version. It may be very simple, but it is still a little help for troubleshooting speed."><meta propert [...]
-Recently I was feeling stupid because I solved too many stupid problems. The service framework is becoming more widely used. Every day, I have to help the endpoint user to resolve problems. Gradually, it is found that most of the problems are configuration errors, or duplicated files or classes, or network failure. So I prepare to add some “fool-proof” design to the further version. It may be very simple, but it is still a little help for troubleshooting speed."><meta itempro [...]
+Recently I was feeling stupid because I solved too many stupid problems. The service framework is becoming more widely used. Every day, I have to help the endpoint user to resolve problems. Gradually, it is found that most of the problems are configuration errors, or duplicated files or classes, or network failure. So I prepare to add some “fool-proof” design to the further version. It may be very simple, but it is still a little help for troubleshooting speed."><meta propert [...]
+Recently I was feeling stupid because I solved too many stupid problems. The service framework is becoming more widely used. Every day, I have to help the endpoint user to resolve problems. Gradually, it is found that most of the problems are configuration errors, or duplicated files or classes, or network failure. So I prepare to add some “fool-proof” design to the further version. It may be very simple, but it is still a little help for troubleshooting speed."><meta itempro [...]
Recently I was feeling stupid because I solved too many stupid problems. The service framework is becoming more widely used. Every day, I have to help the endpoint user to resolve problems. Gradually, it is found that most of the problems are configuration errors, or duplicated files or classes, or network failure. So I prepare to add some “fool-proof” design to the further version. It may be very simple, but it is still a little help for troubleshooting speed."><script type= [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/dev/principals/expansibility/index.html b/en/docs/v2.7/dev/principals/expansibility/index.html
index a232a73b4e..8c816d9a6f 100644
--- a/en/docs/v2.7/dev/principals/expansibility/index.html
+++ b/en/docs/v2.7/dev/principals/expansibility/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-There are more and more products in our platform, the function of the product also more and more.Platform products in order to meet the requirement of each BU and department as well as product line, will surely will be a lot of irrelevant function together, the customer can use selective.In order to compatible with more demand for each product, each framework, are constantly expanding, and we often choose some extension of the extension, namely to old and new function expanded into a gen [...]
-There are more and more products in our platform, the function of the product also more and more.Platform products in order to meet the requirement of each BU and department as well as product line, will surely will be a lot of irrelevant function together, the customer can use selective.In order to compatible with more demand for each product, each framework, are constantly expanding, and we often choose some extension of the extension, namely to old and new function expanded into a gen [...]
+There are more and more products in our platform, the function of the product also more and more.Platform products in order to meet the requirement of each BU and department as well as product line, will surely will be a lot of irrelevant function together, the customer can use selective.In order to compatible with more demand for each product, each framework, are constantly expanding, and we often choose some extension of the extension, namely to old and new function expanded into a gen [...]
+There are more and more products in our platform, the function of the product also more and more.Platform products in order to meet the requirement of each BU and department as well as product line, will surely will be a lot of irrelevant function together, the customer can use selective.In order to compatible with more demand for each product, each framework, are constantly expanding, and we often choose some extension of the extension, namely to old and new function expanded into a gen [...]
There are more and more products in our platform, the function of the product also more and more.Platform products in order to meet the requirement of each BU and department as well as product line, will surely will be a lot of irrelevant function together, the customer can use selective.In order to compatible with more demand for each product, each framework, are constantly expanding, and we often choose some extension of the extension, namely to old and new function expanded into a gen [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/docs/v2.7/dev/principals/extension/index.html b/en/docs/v2.7/dev/principals/extension/index.html
index 20bcd26160..96df935519 100644
--- a/en/docs/v2.7/dev/principals/extension/index.html
+++ b/en/docs/v2.7/dev/principals/extension/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
With the promotion of service, the website of Dubbo service framework requirements gradually increase, Dubbo existing developers can implement demand is limited, many requirements have been delay, and site classmates also want to participate, combined with field, so the platform will be open to internal part of the project, let everyone together to implement, Dubbo as one of the pilot project.
-Now that want to open it, about to take some extension point Dubbo, let participants black box extend as far as possible, rather than a white box to modify the code, or branch, quality, merger, the conflict will be hard to manage."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/principals/extension/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08: [...]
+Now that want to open it, about to take some extension point Dubbo, let participants black box extend as far as possible, rather than a white box to modify the code, or branch, quality, merger, the conflict will be hard to manage."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/principals/extension/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08: [...]
With the promotion of service, the website of Dubbo service framework requirements gradually increase, Dubbo existing developers can implement demand is limited, many requirements have been delay, and site classmates also want to participate, combined with field, so the platform will be open to internal part of the project, let everyone together to implement, Dubbo as one of the pilot project.
-Now that want to open it, about to take some extension point Dubbo, let participants black box extend as far as possible, rather than a white box to modify the code, or branch, quality, merger, the conflict will be hard to manage."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="980"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Extension Points To Reconstruct"><meta name=twitt [...]
+Now that want to open it, about to take some extension point Dubbo, let participants black box extend as far as possible, rather than a white box to modify the code, or branch, quality, merger, the conflict will be hard to manage."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="980"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Extension Points To Reconstruct"><meta name=twitt [...]
With the promotion of service, the website of Dubbo service framework requirements gradually increase, Dubbo existing developers can implement demand is limited, many requirements have been delay, and site classmates also want to participate, combined with field, so the platform will be open to internal part of the project, let everyone together to implement, Dubbo as one of the pilot project.
Now that want to open it, about to take some extension point Dubbo, let participants black box extend as far as possible, rather than a white box to modify the code, or branch, quality, merger, the conflict will be hard to manage."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytic [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/dev/principals/general-knowledge/index.html b/en/docs/v2.7/dev/principals/general-knowledge/index.html
index 3dce0bec53..0e0c87e000 100644
--- a/en/docs/v2.7/dev/principals/general-knowledge/index.html
+++ b/en/docs/v2.7/dev/principals/general-knowledge/index.html
@@ -1,8 +1,8 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Recently told the new team some design on the common sense, is likely to be new and some other help, the thought of a few temporarily, first write here.
-The API and SPI separation Framework or component there are generally two types of customers, one is a consumer, is an extension.API (Application Programming Interface) is used to users, and SPI (Service dojo.provide Interface) is used to expand.At design time, try to put them off, and don’t mix."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/principals/general-knowledge/"><meta property="article:section" conte [...]
+The API and SPI separation Framework or component there are generally two types of customers, one is a consumer, is an extension.API (Application Programming Interface) is used to users, and SPI (Service dojo.provide Interface) is used to expand.At design time, try to put them off, and don’t mix."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/principals/general-knowledge/"><meta property="article:section" conte [...]
Recently told the new team some design on the common sense, is likely to be new and some other help, the thought of a few temporarily, first write here.
-The API and SPI separation Framework or component there are generally two types of customers, one is a consumer, is an extension.API (Application Programming Interface) is used to users, and SPI (Service dojo.provide Interface) is used to expand.At design time, try to put them off, and don’t mix."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1459"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta nam [...]
+The API and SPI separation Framework or component there are generally two types of customers, one is a consumer, is an extension.API (Application Programming Interface) is used to users, and SPI (Service dojo.provide Interface) is used to expand.At design time, try to put them off, and don’t mix."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1459"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta nam [...]
Recently told the new team some design on the common sense, is likely to be new and some other help, the thought of a few temporarily, first write here.
The API and SPI separation Framework or component there are generally two types of customers, one is a consumer, is an extension.API (Application Programming Interface) is used to users, and SPI (Service dojo.provide Interface) is used to expand.At design time, try to put them off, and don’t mix."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga( [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
diff --git a/en/docs/v2.7/dev/principals/robustness/index.html b/en/docs/v2.7/dev/principals/robustness/index.html
index e15a878803..580300fec3 100644
--- a/en/docs/v2.7/dev/principals/robustness/index.html
+++ b/en/docs/v2.7/dev/principals/robustness/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
Dubbo as a remote service exposure, calls and management solutions, through the meridians of the application is running, its itself to achieve robustness of importance is self-evident.
Here are some Dubbo principle and method of use.
-The log Logging is one of the most commonly used way to find, discover problems. Log quality is often neglected, there is no log on using expressly agreed upon. Attaches great importance to the use of the Log, and improve the concentration of the Log information."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/principals/robustness/"><meta property="article:section" content="docs"><meta property="article:modified_time [...]
+The log Logging is one of the most commonly used way to find, discover problems. Log quality is often neglected, there is no log on using expressly agreed upon. Attaches great importance to the use of the Log, and improve the concentration of the Log information."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v2.7/dev/principals/robustness/"><meta property="article:section" content="docs"><meta property="article:modified_time [...]
Dubbo as a remote service exposure, calls and management solutions, through the meridians of the application is running, its itself to achieve robustness of importance is self-evident.
Here are some Dubbo principle and method of use.
-The log Logging is one of the most commonly used way to find, discover problems. Log quality is often neglected, there is no log on using expressly agreed upon. Attaches great importance to the use of the Log, and improve the concentration of the Log information."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="969"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="The Robustness O [...]
+The log Logging is one of the most commonly used way to find, discover problems. Log quality is often neglected, there is no log on using expressly agreed upon. Attaches great importance to the use of the Log, and improve the concentration of the Log information."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="969"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="The Robustness O [...]
Dubbo as a remote service exposure, calls and management solutions, through the meridians of the application is running, its itself to achieve robustness of importance is self-evident.
Here are some Dubbo principle and method of use.
The log Logging is one of the most commonly used way to find, discover problems. Log quality is often neglected, there is no log on using expressly agreed upon. Attaches great importance to the use of the Log, and improve the concentration of the Log information."><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script asyn [...]
diff --git a/en/docs/v2.7/dev/release/index.html b/en/docs/v2.7/dev/release/index.html
index ab0adea78c..fa0aa9176b 100644
--- a/en/docs/v2.7/dev/release/index.html
+++ b/en/docs/v2.7/dev/release/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/spi/index.html b/en/docs/v2.7/dev/spi/index.html
index e67722a6ba..cc05045a27 100644
--- a/en/docs/v2.7/dev/spi/index.html
+++ b/en/docs/v2.7/dev/spi/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/dev/tck/index.html b/en/docs/v2.7/dev/tck/index.html
index 7d610d25b2..9a65717fce 100644
--- a/en/docs/v2.7/dev/tck/index.html
+++ b/en/docs/v2.7/dev/tck/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/benchmark-tool/index.html b/en/docs/v2.7/user/benchmark-tool/index.html
index 43a2b9275b..27a3e8c0ec 100644
--- a/en/docs/v2.7/user/benchmark-tool/index.html
+++ b/en/docs/v2.7/user/benchmark-tool/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/best-practice/index.html b/en/docs/v2.7/user/best-practice/index.html
index 0a628152a0..b9c7a00ec9 100644
--- a/en/docs/v2.7/user/best-practice/index.html
+++ b/en/docs/v2.7/user/best-practice/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/capacity-plan/index.html b/en/docs/v2.7/user/capacity-plan/index.html
index afedcdc6d4..0304bfd7ab 100644
--- a/en/docs/v2.7/user/capacity-plan/index.html
+++ b/en/docs/v2.7/user/capacity-plan/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/configuration/annotation/index.html b/en/docs/v2.7/user/configuration/annotation/index.html
index ae7bd1904f..2e20ca0950 100644
--- a/en/docs/v2.7/user/configuration/annotation/index.html
+++ b/en/docs/v2.7/user/configuration/annotation/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/configuration/api/index.html b/en/docs/v2.7/user/configuration/api/index.html
index 77e52da0b4..342598267e 100644
--- a/en/docs/v2.7/user/configuration/api/index.html
+++ b/en/docs/v2.7/user/configuration/api/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/configuration/configuration-load-process/index.html b/en/docs/v2.7/user/configuration/configuration-load-process/index.html
index c9ce759c67..90758e59a5 100644
--- a/en/docs/v2.7/user/configuration/configuration-load-process/index.html
+++ b/en/docs/v2.7/user/configuration/configuration-load-process/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/configuration/properties/index.html b/en/docs/v2.7/user/configuration/properties/index.html
index cbd7a029ea..6789a02fe7 100644
--- a/en/docs/v2.7/user/configuration/properties/index.html
+++ b/en/docs/v2.7/user/configuration/properties/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/configuration/xml/index.html b/en/docs/v2.7/user/configuration/xml/index.html
index ce9f5fd989..1fbc254040 100644
--- a/en/docs/v2.7/user/configuration/xml/index.html
+++ b/en/docs/v2.7/user/configuration/xml/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/coveragence/index.html b/en/docs/v2.7/user/coveragence/index.html
index dfc20c992f..3b3bb4246b 100644
--- a/en/docs/v2.7/user/coveragence/index.html
+++ b/en/docs/v2.7/user/coveragence/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/dependencies/index.html b/en/docs/v2.7/user/dependencies/index.html
index 81843c702b..af0fa23383 100644
--- a/en/docs/v2.7/user/dependencies/index.html
+++ b/en/docs/v2.7/user/dependencies/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/accesslog/index.html b/en/docs/v2.7/user/examples/accesslog/index.html
index f0f61d3b23..9cfd35d85b 100644
--- a/en/docs/v2.7/user/examples/accesslog/index.html
+++ b/en/docs/v2.7/user/examples/accesslog/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/async-call/index.html b/en/docs/v2.7/user/examples/async-call/index.html
index e39e70e919..9fd06ef36c 100644
--- a/en/docs/v2.7/user/examples/async-call/index.html
+++ b/en/docs/v2.7/user/examples/async-call/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/async-execute-on-provider/index.html b/en/docs/v2.7/user/examples/async-execute-on-provider/index.html
index ec3ab7fdb3..298b3ce841 100644
--- a/en/docs/v2.7/user/examples/async-execute-on-provider/index.html
+++ b/en/docs/v2.7/user/examples/async-execute-on-provider/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/attachment/index.html b/en/docs/v2.7/user/examples/attachment/index.html
index 1de40dee07..8f02410e9f 100644
--- a/en/docs/v2.7/user/examples/attachment/index.html
+++ b/en/docs/v2.7/user/examples/attachment/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/broadcast-resp-collect/index.html b/en/docs/v2.7/user/examples/broadcast-resp-collect/index.html
index f39dd385b0..c249d53077 100644
--- a/en/docs/v2.7/user/examples/broadcast-resp-collect/index.html
+++ b/en/docs/v2.7/user/examples/broadcast-resp-collect/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/callback-parameter/index.html b/en/docs/v2.7/user/examples/callback-parameter/index.html
index f63956c377..86cb6f9d93 100644
--- a/en/docs/v2.7/user/examples/callback-parameter/index.html
+++ b/en/docs/v2.7/user/examples/callback-parameter/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/concurrency-control/index.html b/en/docs/v2.7/user/examples/concurrency-control/index.html
index 1c9a53a88b..4cdedb071b 100644
--- a/en/docs/v2.7/user/examples/concurrency-control/index.html
+++ b/en/docs/v2.7/user/examples/concurrency-control/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/config-connections/index.html b/en/docs/v2.7/user/examples/config-connections/index.html
index 51fcbd89e2..75771b085c 100644
--- a/en/docs/v2.7/user/examples/config-connections/index.html
+++ b/en/docs/v2.7/user/examples/config-connections/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/config-rule/index.html b/en/docs/v2.7/user/examples/config-rule/index.html
index a9674d8d2d..75b7c44b1a 100644
--- a/en/docs/v2.7/user/examples/config-rule/index.html
+++ b/en/docs/v2.7/user/examples/config-rule/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/context/index.html b/en/docs/v2.7/user/examples/context/index.html
index 1c2a4aee3d..12fffba7ee 100644
--- a/en/docs/v2.7/user/examples/context/index.html
+++ b/en/docs/v2.7/user/examples/context/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/delay-publish/index.html b/en/docs/v2.7/user/examples/delay-publish/index.html
index 80fb9f5268..9c363f3b40 100644
--- a/en/docs/v2.7/user/examples/delay-publish/index.html
+++ b/en/docs/v2.7/user/examples/delay-publish/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/distributed-transaction/index.html b/en/docs/v2.7/user/examples/distributed-transaction/index.html
index 44cb5cd2b7..939a4a2793 100644
--- a/en/docs/v2.7/user/examples/distributed-transaction/index.html
+++ b/en/docs/v2.7/user/examples/distributed-transaction/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/dump/index.html b/en/docs/v2.7/user/examples/dump/index.html
index bc6e4c91f5..46cf0ecfe8 100644
--- a/en/docs/v2.7/user/examples/dump/index.html
+++ b/en/docs/v2.7/user/examples/dump/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/echo-service/index.html b/en/docs/v2.7/user/examples/echo-service/index.html
index 159c328548..43c8264716 100644
--- a/en/docs/v2.7/user/examples/echo-service/index.html
+++ b/en/docs/v2.7/user/examples/echo-service/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/events-notify/index.html b/en/docs/v2.7/user/examples/events-notify/index.html
index d3f7e37203..d7b551cce5 100644
--- a/en/docs/v2.7/user/examples/events-notify/index.html
+++ b/en/docs/v2.7/user/examples/events-notify/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/explicit-target/index.html b/en/docs/v2.7/user/examples/explicit-target/index.html
index 38a777243d..78ee0788f1 100644
--- a/en/docs/v2.7/user/examples/explicit-target/index.html
+++ b/en/docs/v2.7/user/examples/explicit-target/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/fault-tolerent-strategy/index.html b/en/docs/v2.7/user/examples/fault-tolerent-strategy/index.html
index 80d529b760..74ead7179c 100644
--- a/en/docs/v2.7/user/examples/fault-tolerent-strategy/index.html
+++ b/en/docs/v2.7/user/examples/fault-tolerent-strategy/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/generic-invoke-with-json/index.html b/en/docs/v2.7/user/examples/generic-invoke-with-json/index.html
index aeffdfe3a5..2cad0c7d82 100644
--- a/en/docs/v2.7/user/examples/generic-invoke-with-json/index.html
+++ b/en/docs/v2.7/user/examples/generic-invoke-with-json/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/generic-reference/index.html b/en/docs/v2.7/user/examples/generic-reference/index.html
index f8b25db20c..ae728fab4a 100644
--- a/en/docs/v2.7/user/examples/generic-reference/index.html
+++ b/en/docs/v2.7/user/examples/generic-reference/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/generic-service/index.html b/en/docs/v2.7/user/examples/generic-service/index.html
index 627e40a462..da9ab20c71 100644
--- a/en/docs/v2.7/user/examples/generic-service/index.html
+++ b/en/docs/v2.7/user/examples/generic-service/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/graceful-shutdown/index.html b/en/docs/v2.7/user/examples/graceful-shutdown/index.html
index 0cc1c97aed..707427a612 100644
--- a/en/docs/v2.7/user/examples/graceful-shutdown/index.html
+++ b/en/docs/v2.7/user/examples/graceful-shutdown/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/group-merger/index.html b/en/docs/v2.7/user/examples/group-merger/index.html
index e40cac04bf..4d07fc4c7f 100644
--- a/en/docs/v2.7/user/examples/group-merger/index.html
+++ b/en/docs/v2.7/user/examples/group-merger/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/hostname-binding/index.html b/en/docs/v2.7/user/examples/hostname-binding/index.html
index 24a4ceaebd..786ce2fe88 100644
--- a/en/docs/v2.7/user/examples/hostname-binding/index.html
+++ b/en/docs/v2.7/user/examples/hostname-binding/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/invoke-with-specified-ip/index.html b/en/docs/v2.7/user/examples/invoke-with-specified-ip/index.html
index 4118f54c89..16ce0f7b3e 100644
--- a/en/docs/v2.7/user/examples/invoke-with-specified-ip/index.html
+++ b/en/docs/v2.7/user/examples/invoke-with-specified-ip/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/lazy-connect/index.html b/en/docs/v2.7/user/examples/lazy-connect/index.html
index 8ef28d2e35..c64e466c93 100644
--- a/en/docs/v2.7/user/examples/lazy-connect/index.html
+++ b/en/docs/v2.7/user/examples/lazy-connect/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/loadbalance/index.html b/en/docs/v2.7/user/examples/loadbalance/index.html
index cf3ed60f63..6bf144aee3 100644
--- a/en/docs/v2.7/user/examples/loadbalance/index.html
+++ b/en/docs/v2.7/user/examples/loadbalance/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/local-call/index.html b/en/docs/v2.7/user/examples/local-call/index.html
index 45ef0353e8..a5efb45850 100644
--- a/en/docs/v2.7/user/examples/local-call/index.html
+++ b/en/docs/v2.7/user/examples/local-call/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/local-mock/index.html b/en/docs/v2.7/user/examples/local-mock/index.html
index 4729ac0c8f..7e63b789f2 100644
--- a/en/docs/v2.7/user/examples/local-mock/index.html
+++ b/en/docs/v2.7/user/examples/local-mock/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/local-stub/index.html b/en/docs/v2.7/user/examples/local-stub/index.html
index 9435ea77de..6ecc81905c 100644
--- a/en/docs/v2.7/user/examples/local-stub/index.html
+++ b/en/docs/v2.7/user/examples/local-stub/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/logger-strategy/index.html b/en/docs/v2.7/user/examples/logger-strategy/index.html
index c8da637f82..205ba81e96 100644
--- a/en/docs/v2.7/user/examples/logger-strategy/index.html
+++ b/en/docs/v2.7/user/examples/logger-strategy/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/msgpack-serialization/index.html b/en/docs/v2.7/user/examples/msgpack-serialization/index.html
index 3ce3766d05..20765386b2 100644
--- a/en/docs/v2.7/user/examples/msgpack-serialization/index.html
+++ b/en/docs/v2.7/user/examples/msgpack-serialization/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/multi-protocols/index.html b/en/docs/v2.7/user/examples/multi-protocols/index.html
index 2738e9dceb..301b24b3a9 100644
--- a/en/docs/v2.7/user/examples/multi-protocols/index.html
+++ b/en/docs/v2.7/user/examples/multi-protocols/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/multi-registry/index.html b/en/docs/v2.7/user/examples/multi-registry/index.html
index 8b03e76c9c..1eb9c3e06d 100644
--- a/en/docs/v2.7/user/examples/multi-registry/index.html
+++ b/en/docs/v2.7/user/examples/multi-registry/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/multi-versions/index.html b/en/docs/v2.7/user/examples/multi-versions/index.html
index adf0680e6d..6266f4e2d1 100644
--- a/en/docs/v2.7/user/examples/multi-versions/index.html
+++ b/en/docs/v2.7/user/examples/multi-versions/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/netty4/index.html b/en/docs/v2.7/user/examples/netty4/index.html
index a4c6328827..84d1c66558 100644
--- a/en/docs/v2.7/user/examples/netty4/index.html
+++ b/en/docs/v2.7/user/examples/netty4/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/parameter-validation/index.html b/en/docs/v2.7/user/examples/parameter-validation/index.html
index 8658416b51..0524d05c74 100644
--- a/en/docs/v2.7/user/examples/parameter-validation/index.html
+++ b/en/docs/v2.7/user/examples/parameter-validation/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/preflight-check/index.html b/en/docs/v2.7/user/examples/preflight-check/index.html
index b5625fa62f..abe83f63f0 100644
--- a/en/docs/v2.7/user/examples/preflight-check/index.html
+++ b/en/docs/v2.7/user/examples/preflight-check/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/provider-timeout-release/index.html b/en/docs/v2.7/user/examples/provider-timeout-release/index.html
index 916bce3805..11a25a4867 100644
--- a/en/docs/v2.7/user/examples/provider-timeout-release/index.html
+++ b/en/docs/v2.7/user/examples/provider-timeout-release/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/reference-config-cache/index.html b/en/docs/v2.7/user/examples/reference-config-cache/index.html
index 274d2fce8b..60c622c114 100644
--- a/en/docs/v2.7/user/examples/reference-config-cache/index.html
+++ b/en/docs/v2.7/user/examples/reference-config-cache/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/registry-only/index.html b/en/docs/v2.7/user/examples/registry-only/index.html
index 4fe50581c6..8c4158d6d3 100644
--- a/en/docs/v2.7/user/examples/registry-only/index.html
+++ b/en/docs/v2.7/user/examples/registry-only/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/result-cache/index.html b/en/docs/v2.7/user/examples/result-cache/index.html
index e813dc126f..f580178dd9 100644
--- a/en/docs/v2.7/user/examples/result-cache/index.html
+++ b/en/docs/v2.7/user/examples/result-cache/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/routing-rule/index.html b/en/docs/v2.7/user/examples/routing-rule/index.html
index bbaa283f14..5687141e94 100644
--- a/en/docs/v2.7/user/examples/routing-rule/index.html
+++ b/en/docs/v2.7/user/examples/routing-rule/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/serialization/index.html b/en/docs/v2.7/user/examples/serialization/index.html
index 0e130ac54a..69c92315be 100644
--- a/en/docs/v2.7/user/examples/serialization/index.html
+++ b/en/docs/v2.7/user/examples/serialization/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/service-container/index.html b/en/docs/v2.7/user/examples/service-container/index.html
index 60fc62c4a1..de78f683de 100644
--- a/en/docs/v2.7/user/examples/service-container/index.html
+++ b/en/docs/v2.7/user/examples/service-container/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/service-downgrade/index.html b/en/docs/v2.7/user/examples/service-downgrade/index.html
index 0c24d8abb1..683ccbe4d0 100644
--- a/en/docs/v2.7/user/examples/service-downgrade/index.html
+++ b/en/docs/v2.7/user/examples/service-downgrade/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/service-group/index.html b/en/docs/v2.7/user/examples/service-group/index.html
index 5101c8e864..676e4e4924 100644
--- a/en/docs/v2.7/user/examples/service-group/index.html
+++ b/en/docs/v2.7/user/examples/service-group/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/static-service/index.html b/en/docs/v2.7/user/examples/static-service/index.html
index fa39fa920f..1ea7274bed 100644
--- a/en/docs/v2.7/user/examples/static-service/index.html
+++ b/en/docs/v2.7/user/examples/static-service/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/stickiness/index.html b/en/docs/v2.7/user/examples/stickiness/index.html
index 6d4f653cee..e012113202 100644
--- a/en/docs/v2.7/user/examples/stickiness/index.html
+++ b/en/docs/v2.7/user/examples/stickiness/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/subscribe-only/index.html b/en/docs/v2.7/user/examples/subscribe-only/index.html
index 4535ed66b5..e0c3328ced 100644
--- a/en/docs/v2.7/user/examples/subscribe-only/index.html
+++ b/en/docs/v2.7/user/examples/subscribe-only/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/thread-model/index.html b/en/docs/v2.7/user/examples/thread-model/index.html
index 6e79c17516..3da8896b18 100644
--- a/en/docs/v2.7/user/examples/thread-model/index.html
+++ b/en/docs/v2.7/user/examples/thread-model/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/examples/token-authorization/index.html b/en/docs/v2.7/user/examples/token-authorization/index.html
index ceb2508ecb..a46ffebd2f 100644
--- a/en/docs/v2.7/user/examples/token-authorization/index.html
+++ b/en/docs/v2.7/user/examples/token-authorization/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/languages/erlang/quick-start/index.html b/en/docs/v2.7/user/languages/erlang/quick-start/index.html
index f07cf4cba2..c60e3b0192 100644
--- a/en/docs/v2.7/user/languages/erlang/quick-start/index.html
+++ b/en/docs/v2.7/user/languages/erlang/quick-start/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/languages/erlang/reference/index.html b/en/docs/v2.7/user/languages/erlang/reference/index.html
index 458618973a..0f6fbf383e 100644
--- a/en/docs/v2.7/user/languages/erlang/reference/index.html
+++ b/en/docs/v2.7/user/languages/erlang/reference/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/languages/erlang/serialization/index.html b/en/docs/v2.7/user/languages/erlang/serialization/index.html
index 81cc64ebc5..b8c94d46ce 100644
--- a/en/docs/v2.7/user/languages/erlang/serialization/index.html
+++ b/en/docs/v2.7/user/languages/erlang/serialization/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/languages/erlang/service/index.html b/en/docs/v2.7/user/languages/erlang/service/index.html
index 94e3c35af9..fc3d22e28f 100644
--- a/en/docs/v2.7/user/languages/erlang/service/index.html
+++ b/en/docs/v2.7/user/languages/erlang/service/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/maturity/index.html b/en/docs/v2.7/user/maturity/index.html
index e0d493ae6a..0f3805bb44 100644
--- a/en/docs/v2.7/user/maturity/index.html
+++ b/en/docs/v2.7/user/maturity/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/perf-test/index.html b/en/docs/v2.7/user/perf-test/index.html
index c3784ec96b..1308bcbc4a 100644
--- a/en/docs/v2.7/user/perf-test/index.html
+++ b/en/docs/v2.7/user/perf-test/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/preface/architecture/index.html b/en/docs/v2.7/user/preface/architecture/index.html
index 0e68ac47fa..9734d6b6ed 100644
--- a/en/docs/v2.7/user/preface/architecture/index.html
+++ b/en/docs/v2.7/user/preface/architecture/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/preface/background/index.html b/en/docs/v2.7/user/preface/background/index.html
index 9861063e85..94624eb643 100644
--- a/en/docs/v2.7/user/preface/background/index.html
+++ b/en/docs/v2.7/user/preface/background/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/preface/requirements/index.html b/en/docs/v2.7/user/preface/requirements/index.html
index 43faa15b5a..028f32a56d 100644
--- a/en/docs/v2.7/user/preface/requirements/index.html
+++ b/en/docs/v2.7/user/preface/requirements/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/preface/usage/index.html b/en/docs/v2.7/user/preface/usage/index.html
index 06e18ea46c..082345b977 100644
--- a/en/docs/v2.7/user/preface/usage/index.html
+++ b/en/docs/v2.7/user/preface/usage/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/quick-start/index.html b/en/docs/v2.7/user/quick-start/index.html
index c609daabc7..2fe211093b 100644
--- a/en/docs/v2.7/user/quick-start/index.html
+++ b/en/docs/v2.7/user/quick-start/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/recommend/index.html b/en/docs/v2.7/user/recommend/index.html
index b3dc66a8c0..1230b7f2ea 100644
--- a/en/docs/v2.7/user/recommend/index.html
+++ b/en/docs/v2.7/user/recommend/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/api/index.html b/en/docs/v2.7/user/references/api/index.html
index 65109e2cc3..474dd99a7f 100644
--- a/en/docs/v2.7/user/references/api/index.html
+++ b/en/docs/v2.7/user/references/api/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/maven/index.html b/en/docs/v2.7/user/references/maven/index.html
index 14f2848896..f396720c6d 100644
--- a/en/docs/v2.7/user/references/maven/index.html
+++ b/en/docs/v2.7/user/references/maven/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/metadata/index.html b/en/docs/v2.7/user/references/metadata/index.html
index dac57a137d..3590ded81d 100644
--- a/en/docs/v2.7/user/references/metadata/index.html
+++ b/en/docs/v2.7/user/references/metadata/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/dubbo/index.html b/en/docs/v2.7/user/references/protocol/dubbo/index.html
index b7382adef5..024fbecc07 100644
--- a/en/docs/v2.7/user/references/protocol/dubbo/index.html
+++ b/en/docs/v2.7/user/references/protocol/dubbo/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/hessian/index.html b/en/docs/v2.7/user/references/protocol/hessian/index.html
index 4bdb26e348..212b26ea74 100644
--- a/en/docs/v2.7/user/references/protocol/hessian/index.html
+++ b/en/docs/v2.7/user/references/protocol/hessian/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/http/index.html b/en/docs/v2.7/user/references/protocol/http/index.html
index 2b3979c4e2..615e99773d 100644
--- a/en/docs/v2.7/user/references/protocol/http/index.html
+++ b/en/docs/v2.7/user/references/protocol/http/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/memcached/index.html b/en/docs/v2.7/user/references/protocol/memcached/index.html
index 45422931c2..ca6f7af3ff 100644
--- a/en/docs/v2.7/user/references/protocol/memcached/index.html
+++ b/en/docs/v2.7/user/references/protocol/memcached/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/redis/index.html b/en/docs/v2.7/user/references/protocol/redis/index.html
index 58994d2280..81d51beaa1 100644
--- a/en/docs/v2.7/user/references/protocol/redis/index.html
+++ b/en/docs/v2.7/user/references/protocol/redis/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/rest/index.html b/en/docs/v2.7/user/references/protocol/rest/index.html
index f1f477f2a8..64b6fadd38 100644
--- a/en/docs/v2.7/user/references/protocol/rest/index.html
+++ b/en/docs/v2.7/user/references/protocol/rest/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/rmi/index.html b/en/docs/v2.7/user/references/protocol/rmi/index.html
index 5d58f36eeb..c16beab89b 100644
--- a/en/docs/v2.7/user/references/protocol/rmi/index.html
+++ b/en/docs/v2.7/user/references/protocol/rmi/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/thrift/index.html b/en/docs/v2.7/user/references/protocol/thrift/index.html
index 34bac44d04..5f45780848 100644
--- a/en/docs/v2.7/user/references/protocol/thrift/index.html
+++ b/en/docs/v2.7/user/references/protocol/thrift/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/protocol/webservice/index.html b/en/docs/v2.7/user/references/protocol/webservice/index.html
index 763798316d..be760cb26c 100644
--- a/en/docs/v2.7/user/references/protocol/webservice/index.html
+++ b/en/docs/v2.7/user/references/protocol/webservice/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/qos/index.html b/en/docs/v2.7/user/references/qos/index.html
index 1f7b2eb542..3a9fa05bb3 100644
--- a/en/docs/v2.7/user/references/qos/index.html
+++ b/en/docs/v2.7/user/references/qos/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/registry/multicast/index.html b/en/docs/v2.7/user/references/registry/multicast/index.html
index 84fe085df8..0004e4f46a 100644
--- a/en/docs/v2.7/user/references/registry/multicast/index.html
+++ b/en/docs/v2.7/user/references/registry/multicast/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/registry/nacos/index.html b/en/docs/v2.7/user/references/registry/nacos/index.html
index 8085e7ab72..70e75cbf0c 100644
--- a/en/docs/v2.7/user/references/registry/nacos/index.html
+++ b/en/docs/v2.7/user/references/registry/nacos/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/registry/redis/index.html b/en/docs/v2.7/user/references/registry/redis/index.html
index 8ffb28834c..e826776c31 100644
--- a/en/docs/v2.7/user/references/registry/redis/index.html
+++ b/en/docs/v2.7/user/references/registry/redis/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/registry/simple/index.html b/en/docs/v2.7/user/references/registry/simple/index.html
index 55abc84c0e..0e232ba955 100644
--- a/en/docs/v2.7/user/references/registry/simple/index.html
+++ b/en/docs/v2.7/user/references/registry/simple/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/registry/zookeeper/index.html b/en/docs/v2.7/user/references/registry/zookeeper/index.html
index d11c3694c2..54211a9c8e 100644
--- a/en/docs/v2.7/user/references/registry/zookeeper/index.html
+++ b/en/docs/v2.7/user/references/registry/zookeeper/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/telnet/index.html b/en/docs/v2.7/user/references/telnet/index.html
index 52b99cae20..8c4664f3e9 100644
--- a/en/docs/v2.7/user/references/telnet/index.html
+++ b/en/docs/v2.7/user/references/telnet/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-application/index.html b/en/docs/v2.7/user/references/xml/dubbo-application/index.html
index a1caf269bf..0090b28680 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-application/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-application/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-argument/index.html b/en/docs/v2.7/user/references/xml/dubbo-argument/index.html
index c808248013..c7606f0af1 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-argument/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-argument/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-config-center/index.html b/en/docs/v2.7/user/references/xml/dubbo-config-center/index.html
index 5fa881c719..3a340c0d60 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-config-center/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-config-center/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-consumer/index.html b/en/docs/v2.7/user/references/xml/dubbo-consumer/index.html
index 4a9524b941..f278d2aac4 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-consumer/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-consumer/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-method/index.html b/en/docs/v2.7/user/references/xml/dubbo-method/index.html
index 22e1796b86..f430aaf7c8 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-method/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-method/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-module/index.html b/en/docs/v2.7/user/references/xml/dubbo-module/index.html
index 44732fb763..42e6390e19 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-module/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-module/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-monitor/index.html b/en/docs/v2.7/user/references/xml/dubbo-monitor/index.html
index 46a5e41877..acbedcb1ad 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-monitor/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-monitor/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-parameter/index.html b/en/docs/v2.7/user/references/xml/dubbo-parameter/index.html
index 6394eb66e7..1313987515 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-parameter/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-parameter/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-protocol/index.html b/en/docs/v2.7/user/references/xml/dubbo-protocol/index.html
index 7f6337f875..581a0fa731 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-protocol/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-protocol/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-provider/index.html b/en/docs/v2.7/user/references/xml/dubbo-provider/index.html
index 4605f61845..b4444c832f 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-provider/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-provider/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-reference/index.html b/en/docs/v2.7/user/references/xml/dubbo-reference/index.html
index 687d0e619f..84aa02bdef 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-reference/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-reference/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-registry/index.html b/en/docs/v2.7/user/references/xml/dubbo-registry/index.html
index 9aba4c7027..6a38e78df7 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-registry/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-registry/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/references/xml/dubbo-service/index.html b/en/docs/v2.7/user/references/xml/dubbo-service/index.html
index a7910e76a3..408fafed64 100644
--- a/en/docs/v2.7/user/references/xml/dubbo-service/index.html
+++ b/en/docs/v2.7/user/references/xml/dubbo-service/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/rest/index.html b/en/docs/v2.7/user/rest/index.html
index 608db6b9dc..2eafc62010 100644
--- a/en/docs/v2.7/user/rest/index.html
+++ b/en/docs/v2.7/user/rest/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v2.7/user/simple-monitor/index.html b/en/docs/v2.7/user/simple-monitor/index.html
index cb79630ae4..d5fe380cd2 100644
--- a/en/docs/v2.7/user/simple-monitor/index.html
+++ b/en/docs/v2.7/user/simple-monitor/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v3.0/languages/erlang/quick-start/index.html b/en/docs/v3.0/languages/erlang/quick-start/index.html
index f440ba6399..a616a08fbb 100644
--- a/en/docs/v3.0/languages/erlang/quick-start/index.html
+++ b/en/docs/v3.0/languages/erlang/quick-start/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v3.0/languages/erlang/reference/index.html b/en/docs/v3.0/languages/erlang/reference/index.html
index 9ed3128845..80397f052e 100644
--- a/en/docs/v3.0/languages/erlang/reference/index.html
+++ b/en/docs/v3.0/languages/erlang/reference/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v3.0/languages/erlang/serialization/index.html b/en/docs/v3.0/languages/erlang/serialization/index.html
index e9b4ad5284..8b4b114c06 100644
--- a/en/docs/v3.0/languages/erlang/serialization/index.html
+++ b/en/docs/v3.0/languages/erlang/serialization/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v3.0/languages/erlang/service/index.html b/en/docs/v3.0/languages/erlang/service/index.html
index 71712b3886..50181ce47b 100644
--- a/en/docs/v3.0/languages/erlang/service/index.html
+++ b/en/docs/v3.0/languages/erlang/service/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v3.0/languages/golang/go-specific/index.html b/en/docs/v3.0/languages/golang/go-specific/index.html
index 4fde0dc6c1..6bd80b717e 100644
--- a/en/docs/v3.0/languages/golang/go-specific/index.html
+++ b/en/docs/v3.0/languages/golang/go-specific/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v3.0/languages/golang/quick-start/index.html b/en/docs/v3.0/languages/golang/quick-start/index.html
index 2c19319018..09d7db2a31 100644
--- a/en/docs/v3.0/languages/golang/quick-start/index.html
+++ b/en/docs/v3.0/languages/golang/quick-start/index.html
@@ -3,12 +3,12 @@ The following shows the service definition and development methods of the Golang
Quick start use hello world example to show how to start with the Dubbo-go framework.
Protocol: Dubbo
Coding: Hessian2
-Registration Center: Zookeeper"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/languages/golang/quick-start/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Go quick start"><meta itemprop=description content="It is recommended to use IDL to define cross-language serv [...]
+Registration Center: Zookeeper"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/languages/golang/quick-start/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Go quick start"><meta itemprop=description content="It is recommended to use IDL to define cross-language serv [...]
The following shows the service definition and development methods of the Golang language version. If you have a legacy system or do not have multi-language development requirements, you can refer to the following usage methods.
Quick start use hello world example to show how to start with the Dubbo-go framework.
Protocol: Dubbo
Coding: Hessian2
-Registration Center: Zookeeper"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="639"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Go quick start"><meta name=twitter:description content="It is recommended to use IDL to define cross-language services and coding formats.
+Registration Center: Zookeeper"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="639"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Go quick start"><meta name=twitter:description content="It is recommended to use IDL to define cross-language services and coding formats.
The following shows the service definition and development methods of the Golang language version. If you have a legacy system or do not have multi-language development requirements, you can refer to the following usage methods.
Quick start use hello world example to show how to start with the Dubbo-go framework.
Protocol: Dubbo
diff --git a/en/docs/v3.0/references/graalvm/support-graalvm/index.html b/en/docs/v3.0/references/graalvm/support-graalvm/index.html
index 1d20f0b06f..6899dd3f1f 100644
--- a/en/docs/v3.0/references/graalvm/support-graalvm/index.html
+++ b/en/docs/v3.0/references/graalvm/support-graalvm/index.html
@@ -3,12 +3,12 @@ For more information about GraalVM, read https://www.graalvm.org/docs/getting-st
Demo Before compiling the dubbo project, make sure that we are programming based on the GraalVM environment.
Install GraalVM
Visite the official website (https://www.graalvm.org/ ) and install the latest version based on your system:
-After installation, configure the path of JAVA_HOME."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/graalvm/support-graalvm/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content><meta itemprop=description content="Overview This document will show you how to acc [...]
+After installation, configure the path of JAVA_HOME."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/graalvm/support-graalvm/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content><meta itemprop=description content="Overview This document will show you how to acc [...]
For more information about GraalVM, read https://www.graalvm.org/docs/getting-started/container-images/.
Demo Before compiling the dubbo project, make sure that we are programming based on the GraalVM environment.
Install GraalVM
Visite the official website (https://www.graalvm.org/ ) and install the latest version based on your system:
-After installation, configure the path of JAVA_HOME."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="471"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content><meta name=twitter:description content="Overview This document will show you how to access GraalVM with a dubbo project and how to compile the project to a binary executable using native-image.
+After installation, configure the path of JAVA_HOME."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="471"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content><meta name=twitter:description content="Overview This document will show you how to access GraalVM with a dubbo project and how to compile the project to a binary executable using native-image.
For more information about GraalVM, read https://www.graalvm.org/docs/getting-started/container-images/.
Demo Before compiling the dubbo project, make sure that we are programming based on the GraalVM environment.
Install GraalVM
diff --git a/en/docs/v3.0/references/lifecycle/brief/index.html b/en/docs/v3.0/references/lifecycle/brief/index.html
index 7b91a8a9f2..117b4c87c1 100644
--- a/en/docs/v3.0/references/lifecycle/brief/index.html
+++ b/en/docs/v3.0/references/lifecycle/brief/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/docs/v3.0/references/lifecycle/liveness/index.html b/en/docs/v3.0/references/lifecycle/liveness/index.html
index b670c690e9..d62c2b7d0d 100644
--- a/en/docs/v3.0/references/lifecycle/liveness/index.html
+++ b/en/docs/v3.0/references/lifecycle/liveness/index.html
@@ -5,14 +5,14 @@ Existing Extensions No default implementation
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxLivenessProbe.java (LivenessProbe implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.qos.probe.LivenessProbe (plain text file with the content:xxx=com.xxx.XxxLivenessProbe) XxxLivenessProbe.java:
package com.xxx; public class XxxLivenessProbe implements LivenessProbe { public boolean check() { // ... } } META-INF/dubbo/org.apache.dubbo.qos.probe.LivenessProbe:
-xxx=com.xxx.XxxLivenessProbe "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/lifecycle/liveness/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Liveness Probe"><meta itemprop=description content="Summary Extend the detection point of application survival.
+xxx=com.xxx.XxxLivenessProbe "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/lifecycle/liveness/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Liveness Probe"><meta itemprop=description content="Summary Extend the detection point of application survival.
Extension Interface org.apache.dubbo.qos.probe.LivenessProbe
Extension Configuration Dubbo QOS live command will automaticly discovery.
Existing Extensions No default implementation
Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxLivenessProbe.java (LivenessProbe implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.qos.probe.LivenessProbe (plain text file with the content:xxx=com.xxx.XxxLivenessProbe) XxxLivenessProbe.java:
package com.xxx; public class XxxLivenessProbe implements LivenessProbe { public boolean check() { // ... } } META-INF/dubbo/org.apache.dubbo.qos.probe.LivenessProbe:
-xxx=com.xxx.XxxLivenessProbe "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="66"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Liveness Probe"><meta name=twitter:description content="Summary Extend the detection point of application survival.
+xxx=com.xxx.XxxLivenessProbe "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="66"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Liveness Probe"><meta name=twitter:description content="Summary Extend the detection point of application survival.
Extension Interface org.apache.dubbo.qos.probe.LivenessProbe
Extension Configuration Dubbo QOS live command will automaticly discovery.
Existing Extensions No default implementation
diff --git a/en/docs/v3.0/references/lifecycle/readiness/index.html b/en/docs/v3.0/references/lifecycle/readiness/index.html
index 6fdd449fa3..21a08c85f9 100644
--- a/en/docs/v3.0/references/lifecycle/readiness/index.html
+++ b/en/docs/v3.0/references/lifecycle/readiness/index.html
@@ -4,13 +4,13 @@ Extension Configuration Dubbo QOS ready command will automaticly discovery.
Existing Extensions org.apache.dubbo.qos.probe.impl.BootstrapReadinessProbe org.apache.dubbo.qos.probe.impl.ProviderReadinessProbe Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxReadinessProbe.java (ReadinessProbe implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.qos.probe.ReadinessProbe (plain text file with the content:xxx=com.xxx.XxxReadinessProbe) XxxReadinessProbe.java:
package com.xxx; public class XxxReadinessProbe implements ReadinessProbe { public boolean check() { // ... } } META-INF/dubbo/org.apache.dubbo.qos.probe.ReadinessProbe:
-xxx=com.xxx.XxxReadinessProbe "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/lifecycle/readiness/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Readiness Probe"><meta itemprop=description content="Summary Extend the detection point of application readiness.
+xxx=com.xxx.XxxReadinessProbe "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/lifecycle/readiness/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Readiness Probe"><meta itemprop=description content="Summary Extend the detection point of application readiness.
Extension Interface org.apache.dubbo.qos.probe.ReadinessProbe
Extension Configuration Dubbo QOS ready command will automaticly discovery.
Existing Extensions org.apache.dubbo.qos.probe.impl.BootstrapReadinessProbe org.apache.dubbo.qos.probe.impl.ProviderReadinessProbe Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxReadinessProbe.java (ReadinessProbe implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.qos.probe.ReadinessProbe (plain text file with the content:xxx=com.xxx.XxxReadinessProbe) XxxReadinessProbe.java:
package com.xxx; public class XxxReadinessProbe implements ReadinessProbe { public boolean check() { // ... } } META-INF/dubbo/org.apache.dubbo.qos.probe.ReadinessProbe:
-xxx=com.xxx.XxxReadinessProbe "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="65"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Readiness Probe"><meta name=twitter:description content="Summary Extend the detection point of application readiness.
+xxx=com.xxx.XxxReadinessProbe "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="65"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Readiness Probe"><meta name=twitter:description content="Summary Extend the detection point of application readiness.
Extension Interface org.apache.dubbo.qos.probe.ReadinessProbe
Extension Configuration Dubbo QOS ready command will automaticly discovery.
Existing Extensions org.apache.dubbo.qos.probe.impl.BootstrapReadinessProbe org.apache.dubbo.qos.probe.impl.ProviderReadinessProbe Extension Guide Directory layout:
diff --git a/en/docs/v3.0/references/lifecycle/startup/index.html b/en/docs/v3.0/references/lifecycle/startup/index.html
index b60ae95a4d..7087c1faa3 100644
--- a/en/docs/v3.0/references/lifecycle/startup/index.html
+++ b/en/docs/v3.0/references/lifecycle/startup/index.html
@@ -4,13 +4,13 @@ Extension Configuration Dubbo QOS startup command will automaticly discovery.
Existing Extensions org.apache.dubbo.qos.probe.impl.BootstrapStartupProbe Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxStartupProbe.java (StartupProbe implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.qos.probe.StartupProbe (plain text file with the content:xxx=com.xxx.XxxStartupProbe) XxxStartupProbe.java:
package com.xxx; public class XxxStartupProbe implements StartupProbe { public boolean check() { // ... } } META-INF/dubbo/org.apache.dubbo.qos.probe.StartupProbe:
-xxx=com.xxx.XxxStartupProbe "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/lifecycle/startup/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Startup Probe"><meta itemprop=description content="Summary Extend the detection point of application startup.
+xxx=com.xxx.XxxStartupProbe "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/docs/v3.0/references/lifecycle/startup/"><meta property="article:section" content="docs"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Startup Probe"><meta itemprop=description content="Summary Extend the detection point of application startup.
Extension Interface org.apache.dubbo.qos.probe.StartupProbe
Extension Configuration Dubbo QOS startup command will automaticly discovery.
Existing Extensions org.apache.dubbo.qos.probe.impl.BootstrapStartupProbe Extension Guide Directory layout:
src |-main |-java |-com |-xxx |-XxxStartupProbe.java (StartupProbe implementation) |-resources |-META-INF |-dubbo |-org.apache.dubbo.qos.probe.StartupProbe (plain text file with the content:xxx=com.xxx.XxxStartupProbe) XxxStartupProbe.java:
package com.xxx; public class XxxStartupProbe implements StartupProbe { public boolean check() { // ... } } META-INF/dubbo/org.apache.dubbo.qos.probe.StartupProbe:
-xxx=com.xxx.XxxStartupProbe "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="64"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Startup Probe"><meta name=twitter:description content="Summary Extend the detection point of application startup.
+xxx=com.xxx.XxxStartupProbe "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="64"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Startup Probe"><meta name=twitter:description content="Summary Extend the detection point of application startup.
Extension Interface org.apache.dubbo.qos.probe.StartupProbe
Extension Configuration Dubbo QOS startup command will automaticly discovery.
Existing Extensions org.apache.dubbo.qos.probe.impl.BootstrapStartupProbe Extension Guide Directory layout:
diff --git a/en/latest/contribution-guidelines/committer/apache-dubbo-page_dev/index.html b/en/latest/contribution-guidelines/committer/apache-dubbo-page_dev/index.html
index 516f75d79e..c8f7c10bb0 100644
--- a/en/latest/contribution-guidelines/committer/apache-dubbo-page_dev/index.html
+++ b/en/latest/contribution-guidelines/committer/apache-dubbo-page_dev/index.html
@@ -9,7 +9,7 @@
5.构建完成后,可以用浏览器打开 target/site/projects/dubbo.html 文件,预览修改是否生效。
6.用 SVN 的 commit 命令将 dubbo.xml 文件提交到服务器,并且不要提交 dubbo.html 文件(因为服务器端会定时自动构建)。 此过程会要求输入Apache id和密码。
参考:
-http://incubator.apache.org/guides/website.html https://svn.apache.org/repos/asf/incubator/public/trunk/README.txt "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/committer/apache-dubbo-page_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content= [...]
+http://incubator.apache.org/guides/website.html https://svn.apache.org/repos/asf/incubator/public/trunk/README.txt "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/committer/apache-dubbo-page_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content= [...]
当项目发生比较大的变化,比如新的 committer 的加入,新的 PMC 的当选,或是新版本的 Release 等,都需要将这些更新信息维护到这个页面。
这个官方网站的项目地址是https://svn.apache.org/repos/asf/incubator/public/trunk。
维护这个页面的方法如下:
@@ -20,7 +20,7 @@ http://incubator.apache.org/guides/website.html https://svn.apache.org/repos/asf
5.构建完成后,可以用浏览器打开 target/site/projects/dubbo.html 文件,预览修改是否生效。
6.用 SVN 的 commit 命令将 dubbo.xml 文件提交到服务器,并且不要提交 dubbo.html 文件(因为服务器端会定时自动构建)。 此过程会要求输入Apache id和密码。
参考:
-http://incubator.apache.org/guides/website.html https://svn.apache.org/repos/asf/incubator/public/trunk/README.txt "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="60"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="官方 Dubbo 主页的维护"><meta name=twitter:description content="Apache 有一个官方的网站,用来维护所有的孵化项目的信息。每一个孵化项目在这个网站下都有一个信息页。 Dubbo 的信息页地址是 https://incubator.apache.org/projects/dubbo.html。
+http://incubator.apache.org/guides/website.html https://svn.apache.org/repos/asf/incubator/public/trunk/README.txt "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="60"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="官方 Dubbo 主页的维护"><meta name=twitter:description content="Apache 有一个官方的网站,用来维护所有的孵化项目的信息。每一个孵化项目在这个网站下都有一个信息页。 Dubbo 的信息页地址是 https://incubator.apache.org/projects/dubbo.html。
当项目发生比较大的变化,比如新的 committer 的加入,新的 PMC 的当选,或是新版本的 Release 等,都需要将这些更新信息维护到这个页面。
这个官方网站的项目地址是https://svn.apache.org/repos/asf/incubator/public/trunk。
维护这个页面的方法如下:
diff --git a/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev/index.html b/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev/index.html
index b809fb38a2..950752cf74 100644
--- a/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
对于需要编码和发版修复的 issues 和 pull requests,需要您将其标记为 milestone。
一些常用的标签:
-请求帮助 help wanted good first issue 优先级 priority/blocker priority/high priority/low priority/normal 状态 status/need-triage status/DO-NOT-MERGE status/READY-TO-MERGE status/invalid status/wontfix 类型 type/bug type/documentation type/enhancement type/feature "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev/"><meta property="article:section" content="latest"><meta property= [...]
+请求帮助 help wanted good first issue 优先级 priority/blocker priority/high priority/low priority/normal 状态 status/need-triage status/DO-NOT-MERGE status/READY-TO-MERGE status/invalid status/wontfix 类型 type/bug type/documentation type/enhancement type/feature "><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/committer/label-an-issue-guide_dev/"><meta property="article:section" content="latest"><meta property= [...]
对于需要编码和发版修复的 issues 和 pull requests,需要您将其标记为 milestone。
一些常用的标签:
-请求帮助 help wanted good first issue 优先级 priority/blocker priority/high priority/low priority/normal 状态 status/need-triage status/DO-NOT-MERGE status/READY-TO-MERGE status/invalid status/wontfix 类型 type/bug type/documentation type/enhancement type/feature "><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="30"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="给问题打标签"><meta name=twitter: [...]
+请求帮助 help wanted good first issue 优先级 priority/blocker priority/high priority/low priority/normal 状态 status/need-triage status/DO-NOT-MERGE status/READY-TO-MERGE status/invalid status/wontfix 类型 type/bug type/documentation type/enhancement type/feature "><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="30"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="给问题打标签"><meta name=twitter: [...]
对于需要编码和发版修复的 issues 和 pull requests,需要您将其标记为 milestone。
一些常用的标签:
请求帮助 help wanted good first issue 优先级 priority/blocker priority/high priority/low priority/normal 状态 status/need-triage status/DO-NOT-MERGE status/READY-TO-MERGE status/invalid status/wontfix 类型 type/bug type/documentation type/enhancement type/feature "><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=http [...]
diff --git a/en/latest/contribution-guidelines/committer/new-committer-guide_dev/index.html b/en/latest/contribution-guidelines/committer/new-committer-guide_dev/index.html
index b38d8349b4..9e223349c7 100644
--- a/en/latest/contribution-guidelines/committer/new-committer-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/committer/new-committer-guide_dev/index.html
@@ -3,12 +3,12 @@
二、个人开发者提交 ICLA 1、选择 apache id 在 apache 提交者列表页查看已经注册过的 apache id,
2、个人提交者授权协议(ICLA): 下载 ICLA 模板,查找可用的 id。将 icla.pdf 个人信息填写正确后打印,签名、扫描、并当做附件发送邮件给秘书 secretary@apache.org,秘书会帮忙创建 apache 用户 id。同时会创建一个 your_id@apache.org 的邮箱,可以在 apache 提交者列表页查看查找用户是否已经创建。
3、导师帮助提交用户id创建请求 导师将帮助提交 apache 账户创建请求给 root 邮件组,会有人帮助建立 id。一般需要2天时间账户会建立,请等待并在 apache 提交者列表页查看查找用户是否已经创建。
-三、加入apache开发者组 登陆 Apache 账户工具,在登陆页面点击"忘记密码"设置始化密码,会有一封密码重置邮件发送到 forward 邮箱(在孵化项目提案中提交的开发者邮件) 关于 apache 邮箱:apache.org 邮箱并没有自己的邮件内容存储服务器。它需要借用其他邮件提供商的邮件内容存储、分发功能。在很多投票环节是建议使用 apache 邮箱的。 这里就有一个问题,怎么在其它邮箱里面配置 apache.org 邮箱转发功能: 收件箱:收取发送到 apache.org 的邮件。这个在第一步配置好 Apache 账户工具的 forward 邮箱就可以用 forward 邮箱收取邮件了 发件箱:将发出的邮件显示发件邮箱为 apache.org 邮箱。请参考:设置 apache 邮箱指南和 gmail 邮箱设置方式。 其他邮箱服务的设置方式不方便找到,gmail 的最方便,建议换成 gmail 邮箱(不是广告)。 修改编辑页面的 homepage url,a
pache 提交者列表页中你的账户能加主页链接。 修改编辑页面的 github 账户( [...]
+三、加入apache开发者组 登陆 Apache 账户工具,在登陆页面点击"忘记密码"设置始化密码,会有一封密码重置邮件发送到 forward 邮箱(在孵化项目提案中提交的开发者邮件) 关于 apache 邮箱:apache.org 邮箱并没有自己的邮件内容存储服务器。它需要借用其他邮件提供商的邮件内容存储、分发功能。在很多投票环节是建议使用 apache 邮箱的。 这里就有一个问题,怎么在其它邮箱里面配置 apache.org 邮箱转发功能: 收件箱:收取发送到 apache.org 的邮件。这个在第一步配置好 Apache 账户工具的 forward 邮箱就可以用 forward 邮箱收取邮件了 发件箱:将发出的邮件显示发件邮箱为 apache.org 邮箱。请参考:设置 apache 邮箱指南和 gmail 邮箱设置方式。 其他邮箱服务的设置方式不方便找到,gmail 的最方便,建议换成 gmail 邮箱(不是广告)。 修改编辑页面的 homepage url,a
pache 提交者列表页中你的账户能加主页链接。 修改编辑页面的 github 账户( [...]
活跃的贡献者被选举为提交者 在后期的开发过程中,活跃的贡献者可以被选举为提交者。见如何成为 committer
二、个人开发者提交 ICLA 1、选择 apache id 在 apache 提交者列表页查看已经注册过的 apache id,
2、个人提交者授权协议(ICLA): 下载 ICLA 模板,查找可用的 id。将 icla.pdf 个人信息填写正确后打印,签名、扫描、并当做附件发送邮件给秘书 secretary@apache.org,秘书会帮忙创建 apache 用户 id。同时会创建一个 your_id@apache.org 的邮箱,可以在 apache 提交者列表页查看查找用户是否已经创建。
3、导师帮助提交用户id创建请求 导师将帮助提交 apache 账户创建请求给 root 邮件组,会有人帮助建立 id。一般需要2天时间账户会建立,请等待并在 apache 提交者列表页查看查找用户是否已经创建。
-三、加入apache开发者组 登陆 Apache 账户工具,在登陆页面点击"忘记密码"设置始化密码,会有一封密码重置邮件发送到 forward 邮箱(在孵化项目提案中提交的开发者邮件) 关于 apache 邮箱:apache.org 邮箱并没有自己的邮件内容存储服务器。它需要借用其他邮件提供商的邮件内容存储、分发功能。在很多投票环节是建议使用 apache 邮箱的。 这里就有一个问题,怎么在其它邮箱里面配置 apache.org 邮箱转发功能: 收件箱:收取发送到 apache.org 的邮件。这个在第一步配置好 Apache 账户工具的 forward 邮箱就可以用 forward 邮箱收取邮件了 发件箱:将发出的邮件显示发件邮箱为 apache.org 邮箱。请参考:设置 apache 邮箱指南和 gmail 邮箱设置方式。 其他邮箱服务的设置方式不方便找到,gmail 的最方便,建议换成 gmail 邮箱(不是广告)。 修改编辑页面的 homepage url,a
pache 提交者列表页中你的账户能加主页链接。 修改编辑页面的 github 账户( [...]
+三、加入apache开发者组 登陆 Apache 账户工具,在登陆页面点击"忘记密码"设置始化密码,会有一封密码重置邮件发送到 forward 邮箱(在孵化项目提案中提交的开发者邮件) 关于 apache 邮箱:apache.org 邮箱并没有自己的邮件内容存储服务器。它需要借用其他邮件提供商的邮件内容存储、分发功能。在很多投票环节是建议使用 apache 邮箱的。 这里就有一个问题,怎么在其它邮箱里面配置 apache.org 邮箱转发功能: 收件箱:收取发送到 apache.org 的邮件。这个在第一步配置好 Apache 账户工具的 forward 邮箱就可以用 forward 邮箱收取邮件了 发件箱:将发出的邮件显示发件邮箱为 apache.org 邮箱。请参考:设置 apache 邮箱指南和 gmail 邮箱设置方式。 其他邮箱服务的设置方式不方便找到,gmail 的最方便,建议换成 gmail 邮箱(不是广告)。 修改编辑页面的 homepage url,a
pache 提交者列表页中你的账户能加主页链接。 修改编辑页面的 github 账户( [...]
活跃的贡献者被选举为提交者 在后期的开发过程中,活跃的贡献者可以被选举为提交者。见如何成为 committer
二、个人开发者提交 ICLA 1、选择 apache id 在 apache 提交者列表页查看已经注册过的 apache id,
2、个人提交者授权协议(ICLA): 下载 ICLA 模板,查找可用的 id。将 icla.pdf 个人信息填写正确后打印,签名、扫描、并当做附件发送邮件给秘书 secretary@apache.org,秘书会帮忙创建 apache 用户 id。同时会创建一个 your_id@apache.org 的邮箱,可以在 apache 提交者列表页查看查找用户是否已经创建。
diff --git a/en/latest/contribution-guidelines/committer/release-guide_dev/index.html b/en/latest/contribution-guidelines/committer/release-guide_dev/index.html
index 129a807da3..bef93fa7da 100644
--- a/en/latest/contribution-guidelines/committer/release-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/committer/release-guide_dev/index.html
@@ -3,12 +3,12 @@
Apache Release Guide Apache Release Policy Maven Release Info 本地构建环境准备 主要包括签名工具、Maven 仓库认证相关准备
安装GPG 详细文档请参见这里, Mac OS 下配置如下
$ brew install gpg $ gpg --version #检查版本,应该为2.x 用gpg生成key 根据提示,生成 key
-$ gpg --full-gen-key gpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/committer/release-guide_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apac [...]
+$ gpg --full-gen-key gpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/committer/release-guide_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apac [...]
请参考以下链接,找到更多关于 ASF 的发布指南:
Apache Release Guide Apache Release Policy Maven Release Info 本地构建环境准备 主要包括签名工具、Maven 仓库认证相关准备
安装GPG 详细文档请参见这里, Mac OS 下配置如下
$ brew install gpg $ gpg --version #检查版本,应该为2.x 用gpg生成key 根据提示,生成 key
-$ gpg --full-gen-key gpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1214"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何准备 Apache Release"><meta name=twitter:description content="理解 Apache 发布的内容和流程 总的来说,Source Release 是 Apache 关注的重点,也是发布的必 [...]
+$ gpg --full-gen-key gpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1214"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何准备 Apache Release"><meta name=twitter:description content="理解 Apache 发布的内容和流程 总的来说,Source Release 是 Apache 关注的重点,也是发布的必 [...]
请参考以下链接,找到更多关于 ASF 的发布指南:
Apache Release Guide Apache Release Policy Maven Release Info 本地构建环境准备 主要包括签名工具、Maven 仓库认证相关准备
安装GPG 详细文档请参见这里, Mac OS 下配置如下
diff --git a/en/latest/contribution-guidelines/committer/website-guide_dev/index.html b/en/latest/contribution-guidelines/committer/website-guide_dev/index.html
index 98d0a8fc4f..335e0db00b 100644
--- a/en/latest/contribution-guidelines/committer/website-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/committer/website-guide_dev/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/contribution-guidelines/contributor/become-a-committer_dev/index.html b/en/latest/contribution-guidelines/contributor/become-a-committer_dev/index.html
index 157ededf06..1bc1f55773 100644
--- a/en/latest/contribution-guidelines/contributor/become-a-committer_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/become-a-committer_dev/index.html
@@ -3,12 +3,12 @@
在 Dubbo 社区,如果一个 committer 获得大量的优秀成绩,就可以被邀请加入项目管理委员会(PMC)。
当您不熟悉ASF使用的开源的开发过程时,有时难以理解的一点,就是我们更重视社区而不是代码。一个强大而健康的社区将受到尊重,成为一个有趣和有益的地方。更重要的是,一个多元化和健康的社区可以长时间的持续支持代码,即使个别公司在这个领域来来往往,也是如此。
更多详细信息可以在这里找到。
-我可以贡献什么? 请参阅新的贡献者指南。"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/contributor/become-a-committer_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="如何成为 Dubbo Committer"><meta itemprop=description content="每个人都可以成为 Apache 项目的贡献者。作为一个贡献者只是意 [...]
+我可以贡献什么? 请参阅新的贡献者指南。"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/contributor/become-a-committer_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="如何成为 Dubbo Committer"><meta itemprop=description content="每个人都可以成为 Apache 项目的贡献者。作为一个贡献者只是意 [...]
如果你成为对一个项目有价值的贡献者,你有可能被邀请成为一个 committer。committer 是 ASF(Apache软件基金会)中用来表示提交特定项目的人的术语。它给你带来对项目仓库和资源写的权限。
在 Dubbo 社区,如果一个 committer 获得大量的优秀成绩,就可以被邀请加入项目管理委员会(PMC)。
当您不熟悉ASF使用的开源的开发过程时,有时难以理解的一点,就是我们更重视社区而不是代码。一个强大而健康的社区将受到尊重,成为一个有趣和有益的地方。更重要的是,一个多元化和健康的社区可以长时间的持续支持代码,即使个别公司在这个领域来来往往,也是如此。
更多详细信息可以在这里找到。
-我可以贡献什么? 请参阅新的贡献者指南。"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="16"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何成为 Dubbo Committer"><meta name=twitter:description content="每个人都可以成为 Apache 项目的贡献者。作为一个贡献者只是意味着你对项目感兴趣并以某种方式做出贡献,从提出合理的问题(这些问题记录了项目并向开发人员提供反馈)到提供新的特性作为补丁。
+我可以贡献什么? 请参阅新的贡献者指南。"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="16"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何成为 Dubbo Committer"><meta name=twitter:description content="每个人都可以成为 Apache 项目的贡献者。作为一个贡献者只是意味着你对项目感兴趣并以某种方式做出贡献,从提出合理的问题(这些问题记录了项目并向开发人员提供反馈)到提供新的特性作为补丁。
如果你成为对一个项目有价值的贡献者,你有可能被邀请成为一个 committer。committer 是 ASF(Apache软件基金会)中用来表示提交特定项目的人的术语。它给你带来对项目仓库和资源写的权限。
在 Dubbo 社区,如果一个 committer 获得大量的优秀成绩,就可以被邀请加入项目管理委员会(PMC)。
当您不熟悉ASF使用的开源的开发过程时,有时难以理解的一点,就是我们更重视社区而不是代码。一个强大而健康的社区将受到尊重,成为一个有趣和有益的地方。更重要的是,一个多元化和健康的社区可以长时间的持续支持代码,即使个别公司在这个领域来来往往,也是如此。
diff --git a/en/latest/contribution-guidelines/contributor/cla-signing-guide_dev/index.html b/en/latest/contribution-guidelines/contributor/cla-signing-guide_dev/index.html
index d8c6d7085c..5554dd8e08 100644
--- a/en/latest/contribution-guidelines/contributor/cla-signing-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/cla-signing-guide_dev/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-在 Dubbo 被捐赠给 Apache 之前,您已经为 Dubbo 作出了很多贡献,并且您以前没有签署过 Alibaba-CLA。 您已经为 Dubbo 作出了很多贡献,并且您被邀请成为 Dubbo 提交者,且之前没有签署过 Alibaba-CLA 或者 Apache ICLA。 步骤 下载这篇 pdf 文档 编辑该文档,在必要的空格处填上适当的内容 打印 在打印好的文件上签字 扫描 发送一封邮件到secretary@apache.org,并抄送给private@dubbo.apache.org: 邮件标题为“ICLA submission” 请在邮件正文附上您的github账号链接 请记得将您的ICLA文档放入邮件的附件里 空格填写必要说明 Mailing address:首选英文格式的公司地址 preferred apache id(s):如果您被邀请成为一名提交者,那么需要您填写一个apache账号,否则,可以不填 notify project:Dubbo(意思就是Dubbo就是通知您签署ICLA的项目) "><meta property="og:type" co [...]
-在 Dubbo 被捐赠给 Apache 之前,您已经为 Dubbo 作出了很多贡献,并且您以前没有签署过 Alibaba-CLA。 您已经为 Dubbo 作出了很多贡献,并且您被邀请成为 Dubbo 提交者,且之前没有签署过 Alibaba-CLA 或者 Apache ICLA。 步骤 下载这篇 pdf 文档 编辑该文档,在必要的空格处填上适当的内容 打印 在打印好的文件上签字 扫描 发送一封邮件到secretary@apache.org,并抄送给private@dubbo.apache.org: 邮件标题为“ICLA submission” 请在邮件正文附上您的github账号链接 请记得将您的ICLA文档放入邮件的附件里 空格填写必要说明 Mailing address:首选英文格式的公司地址 preferred apache id(s):如果您被邀请成为一名提交者,那么需要您填写一个apache账号,否则,可以不填 notify project:Dubbo(意思就是Dubbo就是通知您签署ICLA的项目) "><meta itemprop=dateModified [...]
+在 Dubbo 被捐赠给 Apache 之前,您已经为 Dubbo 作出了很多贡献,并且您以前没有签署过 Alibaba-CLA。 您已经为 Dubbo 作出了很多贡献,并且您被邀请成为 Dubbo 提交者,且之前没有签署过 Alibaba-CLA 或者 Apache ICLA。 步骤 下载这篇 pdf 文档 编辑该文档,在必要的空格处填上适当的内容 打印 在打印好的文件上签字 扫描 发送一封邮件到secretary@apache.org,并抄送给private@dubbo.apache.org: 邮件标题为“ICLA submission” 请在邮件正文附上您的github账号链接 请记得将您的ICLA文档放入邮件的附件里 空格填写必要说明 Mailing address:首选英文格式的公司地址 preferred apache id(s):如果您被邀请成为一名提交者,那么需要您填写一个apache账号,否则,可以不填 notify project:Dubbo(意思就是Dubbo就是通知您签署ICLA的项目) "><meta property="og:type" co [...]
+在 Dubbo 被捐赠给 Apache 之前,您已经为 Dubbo 作出了很多贡献,并且您以前没有签署过 Alibaba-CLA。 您已经为 Dubbo 作出了很多贡献,并且您被邀请成为 Dubbo 提交者,且之前没有签署过 Alibaba-CLA 或者 Apache ICLA。 步骤 下载这篇 pdf 文档 编辑该文档,在必要的空格处填上适当的内容 打印 在打印好的文件上签字 扫描 发送一封邮件到secretary@apache.org,并抄送给private@dubbo.apache.org: 邮件标题为“ICLA submission” 请在邮件正文附上您的github账号链接 请记得将您的ICLA文档放入邮件的附件里 空格填写必要说明 Mailing address:首选英文格式的公司地址 preferred apache id(s):如果您被邀请成为一名提交者,那么需要您填写一个apache账号,否则,可以不填 notify project:Dubbo(意思就是Dubbo就是通知您签署ICLA的项目) "><meta itemprop=dateModified [...]
在 Dubbo 被捐赠给 Apache 之前,您已经为 Dubbo 作出了很多贡献,并且您以前没有签署过 Alibaba-CLA。 您已经为 Dubbo 作出了很多贡献,并且您被邀请成为 Dubbo 提交者,且之前没有签署过 Alibaba-CLA 或者 Apache ICLA。 步骤 下载这篇 pdf 文档 编辑该文档,在必要的空格处填上适当的内容 打印 在打印好的文件上签字 扫描 发送一封邮件到secretary@apache.org,并抄送给private@dubbo.apache.org: 邮件标题为“ICLA submission” 请在邮件正文附上您的github账号链接 请记得将您的ICLA文档放入邮件的附件里 空格填写必要说明 Mailing address:首选英文格式的公司地址 preferred apache id(s):如果您被邀请成为一名提交者,那么需要您填写一个apache账号,否则,可以不填 notify project:Dubbo(意思就是Dubbo就是通知您签署ICLA的项目) "><script type=application/ja [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html b/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html
index 5e57b7bec9..ec92bf510c 100644
--- a/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/dubbo-extension-guide_dev/index.html
@@ -2,11 +2,11 @@
Dubbo 生态系统 我们建议您将扩展加入到 Dubbo 生态系统。使用这种模式,可以使 Dubbo 的核心仓库更干净,并且可以减少维护工作。更少的代码也可以提高核心仓库的构建速度。
依赖 要实现您自己的 Dubbo 扩展,通常只需依赖 API jar 就可以满足您的需求。例如:
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-serialization-api</artifactId> <version>${dubbo.version}</version> </dependency> Src指导 通常,要实现特殊的扩展,只需要参考开发者指南,实现Dubbo必要的接口和合适的扩展即可。除此之外,还有一些其它的事项需要注意:
-良好的测试,您需要编写单元测试和冒烟测试以消除潜在的 bug。 没有警告,如有不可避免的警告,请使用 @SuppressWarnings 阻止它,但是请不要乱用。 README。添加必要的自述以说明如何使用扩展,以及需要注意的事项。 许可证:请确保使用Apache License 2.0。 通知社区 提交您的代码到 github。 加入邮件列表(建议)。点击这里查看如何加入邮件列表。 发送一封邮件到 dev@incubator.dubbo.apache.org 通知社区。 通常,发送邮件之后,社区会对您的扩展进行讨论,dubbo 组的管理员会联系您转移您的项目到 dubbo 生态系统。 转移项目到dubbo生态系统 dubbo 组的管理员会请您将您的项目的所有者转让给 dubbo。 dubbo 组的管理员会在 dubbo 组下新建一个项目并邀请您加入到这个项目。 一旦您接受邀请,您可以将您的项目转移到 dubbo 组下的新项目里。 dubbo 组的成员会对您�
�项目进行代码审查。随后,您可以对这些代码进行改进。 "><meta property="og:type" con [...]
+良好的测试,您需要编写单元测试和冒烟测试以消除潜在的 bug。 没有警告,如有不可避免的警告,请使用 @SuppressWarnings 阻止它,但是请不要乱用。 README。添加必要的自述以说明如何使用扩展,以及需要注意的事项。 许可证:请确保使用Apache License 2.0。 通知社区 提交您的代码到 github。 加入邮件列表(建议)。点击这里查看如何加入邮件列表。 发送一封邮件到 dev@incubator.dubbo.apache.org 通知社区。 通常,发送邮件之后,社区会对您的扩展进行讨论,dubbo 组的管理员会联系您转移您的项目到 dubbo 生态系统。 转移项目到dubbo生态系统 dubbo 组的管理员会请您将您的项目的所有者转让给 dubbo。 dubbo 组的管理员会在 dubbo 组下新建一个项目并邀请您加入到这个项目。 一旦您接受邀请,您可以将您的项目转移到 dubbo 组下的新项目里。 dubbo 组的成员会对您�
�项目进行代码审查。随后,您可以对这些代码进行改进。 "><meta property="og:type" con [...]
Dubbo 生态系统 我们建议您将扩展加入到 Dubbo 生态系统。使用这种模式,可以使 Dubbo 的核心仓库更干净,并且可以减少维护工作。更少的代码也可以提高核心仓库的构建速度。
依赖 要实现您自己的 Dubbo 扩展,通常只需依赖 API jar 就可以满足您的需求。例如:
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-serialization-api</artifactId> <version>${dubbo.version}</version> </dependency> Src指导 通常,要实现特殊的扩展,只需要参考开发者指南,实现Dubbo必要的接口和合适的扩展即可。除此之外,还有一些其它的事项需要注意:
-良好的测试,您需要编写单元测试和冒烟测试以消除潜在的 bug。 没有警告,如有不可避免的警告,请使用 @SuppressWarnings 阻止它,但是请不要乱用。 README。添加必要的自述以说明如何使用扩展,以及需要注意的事项。 许可证:请确保使用Apache License 2.0。 通知社区 提交您的代码到 github。 加入邮件列表(建议)。点击这里查看如何加入邮件列表。 发送一封邮件到 dev@incubator.dubbo.apache.org 通知社区。 通常,发送邮件之后,社区会对您的扩展进行讨论,dubbo 组的管理员会联系您转移您的项目到 dubbo 生态系统。 转移项目到dubbo生态系统 dubbo 组的管理员会请您将您的项目的所有者转让给 dubbo。 dubbo 组的管理员会在 dubbo 组下新建一个项目并邀请您加入到这个项目。 一旦您接受邀请,您可以将您的项目转移到 dubbo 组下的新项目里。 dubbo 组的成员会对您�
�项目进行代码审查。随后,您可以对这些代码进行改进。 "><meta itemprop=dateModified [...]
+良好的测试,您需要编写单元测试和冒烟测试以消除潜在的 bug。 没有警告,如有不可避免的警告,请使用 @SuppressWarnings 阻止它,但是请不要乱用。 README。添加必要的自述以说明如何使用扩展,以及需要注意的事项。 许可证:请确保使用Apache License 2.0。 通知社区 提交您的代码到 github。 加入邮件列表(建议)。点击这里查看如何加入邮件列表。 发送一封邮件到 dev@incubator.dubbo.apache.org 通知社区。 通常,发送邮件之后,社区会对您的扩展进行讨论,dubbo 组的管理员会联系您转移您的项目到 dubbo 生态系统。 转移项目到dubbo生态系统 dubbo 组的管理员会请您将您的项目的所有者转让给 dubbo。 dubbo 组的管理员会在 dubbo 组下新建一个项目并邀请您加入到这个项目。 一旦您接受邀请,您可以将您的项目转移到 dubbo 组下的新项目里。 dubbo 组的成员会对您�
�项目进行代码审查。随后,您可以对这些代码进行改进。 "><meta itemprop=dateModified [...]
Dubbo 生态系统 我们建议您将扩展加入到 Dubbo 生态系统。使用这种模式,可以使 Dubbo 的核心仓库更干净,并且可以减少维护工作。更少的代码也可以提高核心仓库的构建速度。
依赖 要实现您自己的 Dubbo 扩展,通常只需依赖 API jar 就可以满足您的需求。例如:
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-serialization-api</artifactId> <version>${dubbo.version}</version> </dependency> Src指导 通常,要实现特殊的扩展,只需要参考开发者指南,实现Dubbo必要的接口和合适的扩展即可。除此之外,还有一些其它的事项需要注意:
diff --git a/en/latest/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html b/en/latest/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html
index f9e5e40714..1a554fcb56 100644
--- a/en/latest/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/mailing-list-subscription-guide_dev/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
你也可以直接查看历史邮件
下面是一个关于 Dubbo 邮件列表订阅的简短指南:
-发一封邮件到 dev-subscribe@dubbo.apache.org,其内容和标题均可为空。随后,您会收到一封邮件,其内容如下: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo.apache.org mailed-by: apache.org Hi! This is the ezmlm program. I'm managing the dev@dubbo.apache.org mailing list. I'm working for my owner, who can be reached at dev-owner@dubbo.apache.org. To confirm that you would like hel [...]
+发一封邮件到 dev-subscribe@dubbo.apache.org,其内容和标题均可为空。随后,您会收到一封邮件,其内容如下: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo.apache.org mailed-by: apache.org Hi! This is the ezmlm program. I'm managing the dev@dubbo.apache.org mailing list. I'm working for my owner, who can be reached at dev-owner@dubbo.apache.org. To confirm that you would like hel [...]
你也可以直接查看历史邮件
下面是一个关于 Dubbo 邮件列表订阅的简短指南:
-发一封邮件到 dev-subscribe@dubbo.apache.org,其内容和标题均可为空。随后,您会收到一封邮件,其内容如下: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo.apache.org mailed-by: apache.org Hi! This is the ezmlm program. I'm managing the dev@dubbo.apache.org mailing list. I'm working for my owner, who can be reached at dev-owner@dubbo.apache.org. To confirm that you would like hel [...]
+发一封邮件到 dev-subscribe@dubbo.apache.org,其内容和标题均可为空。随后,您会收到一封邮件,其内容如下: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo.apache.org mailed-by: apache.org Hi! This is the ezmlm program. I'm managing the dev@dubbo.apache.org mailing list. I'm working for my owner, who can be reached at dev-owner@dubbo.apache.org. To confirm that you would like hel [...]
你也可以直接查看历史邮件
下面是一个关于 Dubbo 邮件列表订阅的简短指南:
发一封邮件到 dev-subscribe@dubbo.apache.org,其内容和标题均可为空。随后,您会收到一封邮件,其内容如下: from: dev-help@dubbo.apache.org reply-to: dev-sc.xxxxxxx.xxxxxxxx-hello=example.com@dubbo.apache.org to: hello@example.com date: Sat, Feb 24, 2018 at 3:12 PM subject: confirm subscribe to dev@dubbo.apache.org mailed-by: apache.org Hi! This is the ezmlm program. I'm managing the dev@dubbo.apache.org mailing list. I'm working for my owner, who can be reached at dev-owner@dubbo.apache.org. To confirm that you would like hel [...]
diff --git a/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev/index.html b/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev/index.html
index 5b5d146e47..d70fdb5108 100644
--- a/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev/index.html
@@ -3,12 +3,12 @@
如需订阅如下邮件列表,请参考 邮件列表订阅向导
dev@dubbo.apache.org:开发邮件列表,您在使用或者开发 Dubbo 的过程中遇到的任何问题,都可以在这里进行提问。 commits@dubbo.apache.org:所有的提交内容都会推送到这个邮件列表,如果您对 Dubbo 的进展感兴趣,可以订阅这个邮件列表。 issues@dubbo.apache.org:所有的 JIRA issues 和修改信息都会推送到这个邮件列表。Dubbo 社区已经决定使用 github issues 代替 JIRA issues,因此大部分 issues 将由 github issues 进行跟踪。JIRA issues 用于跟踪 ASF 相关问题。 报告问题 贡献代码 贡献流程 此贡献流程适用于所有的Apache Dubbo社区内容,包括但不限于dubbo(主干仓库)、dubbo admin、dubbo website。
以下以贡献dubbo(主干仓库)为例,详细说明贡献流程。
-1. fork Apache/Dubbo 项目到您的github帐号下 2. 克隆您fork的Dubbo代码仓库到您本地 git clone ${your fork dubbo repo address,for example:https://github.com/${your github id}/dubbo.git} cd dubbo 3. 添加Apache/Dubbo仓库为upstream仓库 git remote add upstream https://github."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev/"><meta property="article:section" content="latest"><meta property="article: [...]
+1. fork Apache/Dubbo 项目到您的github帐号下 2. 克隆您fork的Dubbo代码仓库到您本地 git clone ${your fork dubbo repo address,for example:https://github.com/${your github id}/dubbo.git} cd dubbo 3. 添加Apache/Dubbo仓库为upstream仓库 git remote add upstream https://github."><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/contributor/new-contributor-guide_dev/"><meta property="article:section" content="latest"><meta property="article: [...]
邮件列表描述 邮件列表是 Dubbo 官方推荐的讨论方式,所有与 Dubbo 相关的内容都可以在这里讨论,请点击 issue 了解更多关于邮件列表订阅的内容
如需订阅如下邮件列表,请参考 邮件列表订阅向导
dev@dubbo.apache.org:开发邮件列表,您在使用或者开发 Dubbo 的过程中遇到的任何问题,都可以在这里进行提问。 commits@dubbo.apache.org:所有的提交内容都会推送到这个邮件列表,如果您对 Dubbo 的进展感兴趣,可以订阅这个邮件列表。 issues@dubbo.apache.org:所有的 JIRA issues 和修改信息都会推送到这个邮件列表。Dubbo 社区已经决定使用 github issues 代替 JIRA issues,因此大部分 issues 将由 github issues 进行跟踪。JIRA issues 用于跟踪 ASF 相关问题。 报告问题 贡献代码 贡献流程 此贡献流程适用于所有的Apache Dubbo社区内容,包括但不限于dubbo(主干仓库)、dubbo admin、dubbo website。
以下以贡献dubbo(主干仓库)为例,详细说明贡献流程。
-1. fork Apache/Dubbo 项目到您的github帐号下 2. 克隆您fork的Dubbo代码仓库到您本地 git clone ${your fork dubbo repo address,for example:https://github.com/${your github id}/dubbo.git} cd dubbo 3. 添加Apache/Dubbo仓库为upstream仓库 git remote add upstream https://github."><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="272"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="新贡献者向导"><meta name=twitter:description [...]
+1. fork Apache/Dubbo 项目到您的github帐号下 2. 克隆您fork的Dubbo代码仓库到您本地 git clone ${your fork dubbo repo address,for example:https://github.com/${your github id}/dubbo.git} cd dubbo 3. 添加Apache/Dubbo仓库为upstream仓库 git remote add upstream https://github."><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="272"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="新贡献者向导"><meta name=twitter:description [...]
邮件列表描述 邮件列表是 Dubbo 官方推荐的讨论方式,所有与 Dubbo 相关的内容都可以在这里讨论,请点击 issue 了解更多关于邮件列表订阅的内容
如需订阅如下邮件列表,请参考 邮件列表订阅向导
dev@dubbo.apache.org:开发邮件列表,您在使用或者开发 Dubbo 的过程中遇到的任何问题,都可以在这里进行提问。 commits@dubbo.apache.org:所有的提交内容都会推送到这个邮件列表,如果您对 Dubbo 的进展感兴趣,可以订阅这个邮件列表。 issues@dubbo.apache.org:所有的 JIRA issues 和修改信息都会推送到这个邮件列表。Dubbo 社区已经决定使用 github issues 代替 JIRA issues,因此大部分 issues 将由 github issues 进行跟踪。JIRA issues 用于跟踪 ASF 相关问题。 报告问题 贡献代码 贡献流程 此贡献流程适用于所有的Apache Dubbo社区内容,包括但不限于dubbo(主干仓库)、dubbo admin、dubbo website。
diff --git a/en/latest/contribution-guidelines/contributor/reporting-security-issues_dev/index.html b/en/latest/contribution-guidelines/contributor/reporting-security-issues_dev/index.html
index 5bf2c881f1..dd51bf2969 100644
--- a/en/latest/contribution-guidelines/contributor/reporting-security-issues_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/reporting-security-issues_dev/index.html
@@ -2,11 +2,11 @@
报告漏洞 如果您对 Dubbo 的安全性有担心,或者发现漏洞或潜在威胁,请发送电子邮件至 security@dubbo.apache.org 与 Apache Dubbo 安全团队联系。在邮件中,指定问题或潜在威胁的描述。还敦促您推荐重现和复制问题的方法。Dubbo 社区会在评估和分析调查结果之后与您联系。
请先注意在安全电子邮件中报告安全问题,然后再在公共领域公开该问题。
漏洞处理 漏洞处理过程的概述是:
-报告者将漏洞秘密报告给 Apache。 相应项目的安全团队与报告者私下合作来解决漏洞。 制作了包含该修复程序的有关 Apache 产品的新版本。 该漏洞已公开宣布。 有关此过程的详细说明,请参见此处"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/contributor/reporting-security-issues_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="报告安全问 [...]
+报告者将漏洞秘密报告给 Apache。 相应项目的安全团队与报告者私下合作来解决漏洞。 制作了包含该修复程序的有关 Apache 产品的新版本。 该漏洞已公开宣布。 有关此过程的详细说明,请参见此处"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/contribution-guidelines/contributor/reporting-security-issues_dev/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="报告安全问 [...]
报告漏洞 如果您对 Dubbo 的安全性有担心,或者发现漏洞或潜在威胁,请发送电子邮件至 security@dubbo.apache.org 与 Apache Dubbo 安全团队联系。在邮件中,指定问题或潜在威胁的描述。还敦促您推荐重现和复制问题的方法。Dubbo 社区会在评估和分析调查结果之后与您联系。
请先注意在安全电子邮件中报告安全问题,然后再在公共领域公开该问题。
漏洞处理 漏洞处理过程的概述是:
-报告者将漏洞秘密报告给 Apache。 相应项目的安全团队与报告者私下合作来解决漏洞。 制作了包含该修复程序的有关 Apache 产品的新版本。 该漏洞已公开宣布。 有关此过程的详细说明,请参见此处"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="27"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="报告安全问题"><meta name=twitter:description content="Apache Software Foundation 在消除其软件项目中的安全性问题方面采取严格的立场。Apache Dubbo 对与其功能和特性有关的问题非常敏感并很快提出。
+报告者将漏洞秘密报告给 Apache。 相应项目的安全团队与报告者私下合作来解决漏洞。 制作了包含该修复程序的有关 Apache 产品的新版本。 该漏洞已公开宣布。 有关此过程的详细说明,请参见此处"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="27"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="报告安全问题"><meta name=twitter:description content="Apache Software Foundation 在消除其软件项目中的安全性问题方面采取严格的立场。Apache Dubbo 对与其功能和特性有关的问题非常敏感并很快提出。
报告漏洞 如果您对 Dubbo 的安全性有担心,或者发现漏洞或潜在威胁,请发送电子邮件至 security@dubbo.apache.org 与 Apache Dubbo 安全团队联系。在邮件中,指定问题或潜在威胁的描述。还敦促您推荐重现和复制问题的方法。Dubbo 社区会在评估和分析调查结果之后与您联系。
请先注意在安全电子邮件中报告安全问题,然后再在公共领域公开该问题。
漏洞处理 漏洞处理过程的概述是:
diff --git a/en/latest/contribution-guidelines/contributor/software-donation-guide_dev/index.html b/en/latest/contribution-guidelines/contributor/software-donation-guide_dev/index.html
index 2ef03a0e27..9a27d538c3 100644
--- a/en/latest/contribution-guidelines/contributor/software-donation-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/software-donation-guide_dev/index.html
@@ -1,10 +1,10 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
如果您向 Apache Dubbo 捐赠了大量的代码或文档,则需要在合并代码或者文档之前签署软件授权书。
操作步骤 下载这篇pdf文档 打印下载好的文档 按要求填充表格(请看下边示例) 请您的领导在上边签字 扫描 将扫描好的文档以邮件的方式发送给secretary@apache.org,并抄送给private@dubbo.apache.org 示例 下边是一个文本示例,原始文本可以在这里找到
-License Agreement This License Agreement is entered into as of the _12th_ day of ___April____, __2018__ by ___ABC Software Co., Ltd.____ ("Licensor"), in favor of The Apache Software Foundation, a Delaware nonstock membership corporation (the "Foundation"). WHEREAS, Licensor owns or has sufficient rights to contribute the software source code and other related intellectual property as itemized on Exhibit A ("Software") under the terms of this agreement to the Foun [...]
+License Agreement This License Agreement is entered into as of the _12th_ day of ___April____, __2018__ by ___ABC Software Co., Ltd.____ ("Licensor"), in favor of The Apache Software Foundation, a Delaware nonstock membership corporation (the "Foundation"). WHEREAS, Licensor owns or has sufficient rights to contribute the software source code and other related intellectual property as itemized on Exhibit A ("Software") under the terms of this agreement to the Foun [...]
如果您向 Apache Dubbo 捐赠了大量的代码或文档,则需要在合并代码或者文档之前签署软件授权书。
操作步骤 下载这篇pdf文档 打印下载好的文档 按要求填充表格(请看下边示例) 请您的领导在上边签字 扫描 将扫描好的文档以邮件的方式发送给secretary@apache.org,并抄送给private@dubbo.apache.org 示例 下边是一个文本示例,原始文本可以在这里找到
-License Agreement This License Agreement is entered into as of the _12th_ day of ___April____, __2018__ by ___ABC Software Co., Ltd.____ ("Licensor"), in favor of The Apache Software Foundation, a Delaware nonstock membership corporation (the "Foundation"). WHEREAS, Licensor owns or has sufficient rights to contribute the software source code and other related intellectual property as itemized on Exhibit A ("Software") under the terms of this agreement to the Foun [...]
+License Agreement This License Agreement is entered into as of the _12th_ day of ___April____, __2018__ by ___ABC Software Co., Ltd.____ ("Licensor"), in favor of The Apache Software Foundation, a Delaware nonstock membership corporation (the "Foundation"). WHEREAS, Licensor owns or has sufficient rights to contribute the software source code and other related intellectual property as itemized on Exhibit A ("Software") under the terms of this agreement to the Foun [...]
如果您向 Apache Dubbo 捐赠了大量的代码或文档,则需要在合并代码或者文档之前签署软件授权书。
操作步骤 下载这篇pdf文档 打印下载好的文档 按要求填充表格(请看下边示例) 请您的领导在上边签字 扫描 将扫描好的文档以邮件的方式发送给secretary@apache.org,并抄送给private@dubbo.apache.org 示例 下边是一个文本示例,原始文本可以在这里找到
License Agreement This License Agreement is entered into as of the _12th_ day of ___April____, __2018__ by ___ABC Software Co., Ltd.____ ("Licensor"), in favor of The Apache Software Foundation, a Delaware nonstock membership corporation (the "Foundation"). WHEREAS, Licensor owns or has sufficient rights to contribute the software source code and other related intellectual property as itemized on Exhibit A ("Software") under the terms of this agreement to the Foun [...]
diff --git a/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev/index.html b/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev/index.html
index 9cfda79ff5..3c5895363a 100644
--- a/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev/index.html
+++ b/en/latest/contribution-guidelines/contributor/test-coverage-guide_dev/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/facade-docs/how/quick-start/index.html b/en/latest/facade-docs/how/quick-start/index.html
index ca8f4b800e..9e2a8dfcb1 100644
--- a/en/latest/facade-docs/how/quick-start/index.html
+++ b/en/latest/facade-docs/how/quick-start/index.html
@@ -1,6 +1,6 @@
<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-Quick start Dubbo Golang SDK"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/facade-docs/how/quick-start/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Quick Start"><meta itemprop=description content="Quick start Dubbo Java SDK
-Quick start Dubbo Golang SDK"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="10"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Quick Start"><meta name=twitter:description content="Quick start Dubbo Java SDK
+Quick start Dubbo Golang SDK"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/en/latest/facade-docs/how/quick-start/"><meta property="article:section" content="latest"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Quick Start"><meta itemprop=description content="Quick start Dubbo Java SDK
+Quick start Dubbo Golang SDK"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="10"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Quick Start"><meta name=twitter:description content="Quick start Dubbo Java SDK
Quick start Dubbo Golang SDK"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
diff --git a/en/latest/facade-docs/what/core-concepts/index.html b/en/latest/facade-docs/what/core-concepts/index.html
index 424aa9f83f..ead8a749df 100644
--- a/en/latest/facade-docs/what/core-concepts/index.html
+++ b/en/latest/facade-docs/what/core-concepts/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/facade-docs/what/ecosystem/index.html b/en/latest/facade-docs/what/ecosystem/index.html
index 18dc8622d6..27b1a7db84 100644
--- a/en/latest/facade-docs/what/ecosystem/index.html
+++ b/en/latest/facade-docs/what/ecosystem/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/facade-docs/what/overview/index.html b/en/latest/facade-docs/what/overview/index.html
index 822f8cf374..07d20c0808 100644
--- a/en/latest/facade-docs/what/overview/index.html
+++ b/en/latest/facade-docs/what/overview/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/facade-docs/why/advantage/index.html b/en/latest/facade-docs/why/advantage/index.html
index 331bd9a49e..b2fa33d5ea 100644
--- a/en/latest/facade-docs/why/advantage/index.html
+++ b/en/latest/facade-docs/why/advantage/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/java-sdk/v2.x/concepts-and-architecture/users/index.html b/en/latest/java-sdk/v2.x/concepts-and-architecture/users/index.html
index 027434751c..94006e0fda 100644
--- a/en/latest/java-sdk/v2.x/concepts-and-architecture/users/index.html
+++ b/en/latest/java-sdk/v2.x/concepts-and-architecture/users/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/java-sdk/v2.x/introduction/users/index.html b/en/latest/java-sdk/v2.x/introduction/users/index.html
index 0b26c52810..112ab5449b 100644
--- a/en/latest/java-sdk/v2.x/introduction/users/index.html
+++ b/en/latest/java-sdk/v2.x/introduction/users/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/java-sdk/v2.x/quick-start/quick-start/index.html b/en/latest/java-sdk/v2.x/quick-start/quick-start/index.html
index 350d9d5502..bc266506c4 100644
--- a/en/latest/java-sdk/v2.x/quick-start/quick-start/index.html
+++ b/en/latest/java-sdk/v2.x/quick-start/quick-start/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/java-sdk/v3.x/concepts-and-architecture/users/index.html b/en/latest/java-sdk/v3.x/concepts-and-architecture/users/index.html
index 932e175707..28a8bf8ea3 100644
--- a/en/latest/java-sdk/v3.x/concepts-and-architecture/users/index.html
+++ b/en/latest/java-sdk/v3.x/concepts-and-architecture/users/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/java-sdk/v3.x/introduction/users/index.html b/en/latest/java-sdk/v3.x/introduction/users/index.html
index fcf7312e7e..6232e69a25 100644
--- a/en/latest/java-sdk/v3.x/introduction/users/index.html
+++ b/en/latest/java-sdk/v3.x/introduction/users/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/latest/notices/security/index.html b/en/latest/notices/security/index.html
index 8c103312ed..dfe5f55bc4 100644
--- a/en/latest/notices/security/index.html
+++ b/en/latest/notices/security/index.html
@@ -1,4 +1,4 @@
-<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=en class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class=td-page><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/en/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7.25H68.46z [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
diff --git a/en/sitemap.xml b/en/sitemap.xml
index a35fe1f797..17fd6019ef 100644
--- a/en/sitemap.xml
+++ b/en/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://dubbo.apache.org/en/docs/v2.7/admin/install/admin-console/</loc><lastmod>2022-07-08T10:43:31+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/en/latest/facade-docs/why/advantage/</loc><lastmod>2022-07-08T10:43:31+08:00</lastmod><changefreq>monthly</chan [...]
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://dubbo.apache.org/en/docs/v2.7/admin/install/admin-console/</loc><lastmod>2022-07-08T11:00:55+08:00</lastmod><changefreq>monthly</changefreq><priority>0.5</priority></url><url><loc>https://dubbo.apache.org/en/latest/facade-docs/why/advantage/</loc><lastmod>2022-07-08T11:00:55+08:00</lastmod><changefreq>monthly</chan [...]
\ No newline at end of file
diff --git a/imgs/v3/mesh/dubbo-mesh-arc.png b/imgs/v3/mesh/dubbo-mesh-arc.png
new file mode 100644
index 0000000000..d4dd7f103f
Binary files /dev/null and b/imgs/v3/mesh/dubbo-mesh-arc.png differ
diff --git a/sitemap.xml b/sitemap.xml
index e7f0fa423c..8fd4bc637b 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://dubbo.apache.org/zh/sitemap.xml</loc><lastmod>2022-07-08T10:43:31+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2022-07-08T10:43:31+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
+<?xml version="1.0" encoding="utf-8" standalone="yes"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://dubbo.apache.org/zh/sitemap.xml</loc><lastmod>2022-07-08T11:00:55+08:00</lastmod></sitemap><sitemap><loc>https://dubbo.apache.org/en/sitemap.xml</loc><lastmod>2022-07-08T11:00:55+08:00</lastmod></sitemap></sitemapindex>
\ No newline at end of file
diff --git "a/zh/blog/2018/01/01/dubbo-\345\215\232\345\256\242\346\226\207\346\241\243\344\270\255\346\226\207\346\216\222\347\211\210\346\214\207\345\215\227/index.html" "b/zh/blog/2018/01/01/dubbo-\345\215\232\345\256\242\346\226\207\346\241\243\344\270\255\346\226\207\346\216\222\347\211\210\346\214\207\345\215\227/index.html"
index ab78aedf26..1907bcc67e 100644
--- "a/zh/blog/2018/01/01/dubbo-\345\215\232\345\256\242\346\226\207\346\241\243\344\270\255\346\226\207\346\216\222\347\211\210\346\214\207\345\215\227/index.html"
+++ "b/zh/blog/2018/01/01/dubbo-\345\215\232\345\256\242\346\226\207\346\241\243\344\270\255\346\226\207\346\216\222\347\211\210\346\214\207\345\215\227/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/01/01/dubbo-%E5%8D%9A%E5%AE%A2%E6%96%87%E6%A1%A3%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88%E6%8C%87%E5%8D%97/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-01-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
-"><meta itemprop=datePublished content="2018-01-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="379"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 博客文档中文排版指南"><meta name=twitter:description content="统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/01/01/dubbo-%E5%8D%9A%E5%AE%A2%E6%96%87%E6%A1%A3%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88%E6%8C%87%E5%8D%97/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-01-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
+"><meta itemprop=datePublished content="2018-01-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="379"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 博客文档中文排版指南"><meta name=twitter:description content="统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/03/11/\345\246\202\344\275\225\345\217\202\344\270\216\350\264\241\347\214\256dubbo\347\244\276\345\214\272/index.html" "b/zh/blog/2018/03/11/\345\246\202\344\275\225\345\217\202\344\270\216\350\264\241\347\214\256dubbo\347\244\276\345\214\272/index.html"
index d0bebd30a8..333837993a 100644
--- "a/zh/blog/2018/03/11/\345\246\202\344\275\225\345\217\202\344\270\216\350\264\241\347\214\256dubbo\347\244\276\345\214\272/index.html"
+++ "b/zh/blog/2018/03/11/\345\246\202\344\275\225\345\217\202\344\270\216\350\264\241\347\214\256dubbo\347\244\276\345\214\272/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/03/11/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AEdubbo%E7%A4%BE%E5%8C%BA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-03-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="如何参与贡献Dub [...]
-"><meta itemprop=datePublished content="2018-03-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="112"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何参与贡献Dubbo社区"><meta name=twitter:description content="本文介绍了如何以Apache Way的方式参与Dubbo社区并做贡献
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/03/11/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AEdubbo%E7%A4%BE%E5%8C%BA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-03-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="如何参与贡献Dub [...]
+"><meta itemprop=datePublished content="2018-03-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="112"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何参与贡献Dubbo社区"><meta name=twitter:description content="本文介绍了如何以Apache Way的方式参与Dubbo社区并做贡献
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/04/22/dubbo\350\267\257\347\272\277\345\233\276\345\234\250qcon-beijing-2018\344\270\212\345\205\254\345\270\203/index.html" "b/zh/blog/2018/04/22/dubbo\350\267\257\347\272\277\345\233\276\345\234\250qcon-beijing-2018\344\270\212\345\205\254\345\270\203/index.html"
index b36f6cce7b..6e3889b54f 100644
--- "a/zh/blog/2018/04/22/dubbo\350\267\257\347\272\277\345\233\276\345\234\250qcon-beijing-2018\344\270\212\345\205\254\345\270\203/index.html"
+++ "b/zh/blog/2018/04/22/dubbo\350\267\257\347\272\277\345\233\276\345\234\250qcon-beijing-2018\344\270\212\345\205\254\345\270\203/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/04/22/dubbo%E8%B7%AF%E7%BA%BF%E5%9B%BE%E5%9C%A8qcon-beijing-2018%E4%B8%8A%E5%85%AC%E5%B8%83/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="D [...]
-"><meta itemprop=datePublished content="2018-04-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="3"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo路线图在QCon Beijing 2018上公布"><meta name=twitter:description content="本文将向你介绍在QCon Beijing 2018上公布Dubbo路线图。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/04/22/dubbo%E8%B7%AF%E7%BA%BF%E5%9B%BE%E5%9C%A8qcon-beijing-2018%E4%B8%8A%E5%85%AC%E5%B8%83/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="D [...]
+"><meta itemprop=datePublished content="2018-04-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="3"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo路线图在QCon Beijing 2018上公布"><meta name=twitter:description content="本文将向你介绍在QCon Beijing 2018上公布Dubbo路线图。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/04/22/dubbo-roadmap-is-announced-in-qcon-beijing-2018/>English</a></div></li></ul></div>< [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/04/23/\345\234\250dockerhub\345\217\221\345\270\203dubbo-admin\351\225\234\345\203\217/index.html" "b/zh/blog/2018/04/23/\345\234\250dockerhub\345\217\221\345\270\203dubbo-admin\351\225\234\345\203\217/index.html"
index 30d8b62662..467ae6da7d 100644
--- "a/zh/blog/2018/04/23/\345\234\250dockerhub\345\217\221\345\270\203dubbo-admin\351\225\234\345\203\217/index.html"
+++ "b/zh/blog/2018/04/23/\345\234\250dockerhub\345\217\221\345\270\203dubbo-admin\351\225\234\345\203\217/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/04/23/%E5%9C%A8dockerhub%E5%8F%91%E5%B8%83dubbo-admin%E9%95%9C%E5%83%8F/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在DockerHub发布Dubbo Adm [...]
-"><meta itemprop=datePublished content="2018-04-23T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="40"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在DockerHub发布Dubbo Admin镜像"><meta name=twitter:description content="本文将介绍如何在Dockerhub上发布Dubbo Admin镜像。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/04/23/%E5%9C%A8dockerhub%E5%8F%91%E5%B8%83dubbo-admin%E9%95%9C%E5%83%8F/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在DockerHub发布Dubbo Adm [...]
+"><meta itemprop=datePublished content="2018-04-23T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="40"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在DockerHub发布Dubbo Admin镜像"><meta name=twitter:description content="本文将介绍如何在Dockerhub上发布Dubbo Admin镜像。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
特别是对于一些希望快速调研和试用Dubbo Admin的用户,这种流程的体验并不是很好。</p><p>Docker是一个开源的应用容器引擎,让开发者可以打包应用以及依赖包到一个可移植的镜像中,社区对于提供Dubbo Admin镜像的呼声较高。
Docker官方维护了一个公共仓库DockerHub,该仓库还有很多国内镜像,访问速度快,将Dubbo Admin镜像发布到DockerHub是一个较好的选择。</p><h2 id=dockerhub账号申请>DockerHub账号申请</h2><p>要在DockerHub上发布镜像,自然需要对应的账号。
而DockerHub有两种常见账号,一种是面向个人的,一种是面向组织的。Apache在DockerHub上有一个组织账号<sup id=fnref:1><a href=#fn:1 class=footnote-ref role=doc-noteref>1</a></sup>。
diff --git "a/zh/blog/2018/04/25/\350\260\267\346\255\214\347\274\226\347\250\213\344\271\213\345\244\217\344\274\232\350\256\256\344\270\2122018\344\270\252\351\241\271\347\233\256\350\242\253\345\256\243\345\270\203/index.html" "b/zh/blog/2018/04/25/\350\260\267\346\255\214\347\274\226\347\250\213\344\271\213\345\244\217\344\274\232\350\256\256\344\270\2122018\344\270\252\351\241\271\347\233\256\350\242\253\345\256\243\345\270\203/index.html"
index ea60fa1f93..bbb06ee656 100644
--- "a/zh/blog/2018/04/25/\350\260\267\346\255\214\347\274\226\347\250\213\344\271\213\345\244\217\344\274\232\350\256\256\344\270\2122018\344\270\252\351\241\271\347\233\256\350\242\253\345\256\243\345\270\203/index.html"
+++ "b/zh/blog/2018/04/25/\350\260\267\346\255\214\347\274\226\347\250\213\344\271\213\345\244\217\344\274\232\350\256\256\344\270\2122018\344\270\252\351\241\271\347\233\256\350\242\253\345\256\243\345\270\203/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/04/25/%E8%B0%B7%E6%AD%8C%E7%BC%96%E7%A8%8B%E4%B9%8B%E5%A4%8F%E4%BC%9A%E8%AE%AE%E4%B8%8A2018%E4%B8%AA%E9%A1%B9%E7%9B%AE%E8%A2%AB%E5%AE%A3%E5%B8%83/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" [...]
-"><meta itemprop=datePublished content="2018-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="8"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="谷歌编程之夏会议上2018个项目被宣布"><meta name=twitter:description content="谷歌编程之夏会议上2018个项目被宣布,Dubbo位列其中。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/04/25/%E8%B0%B7%E6%AD%8C%E7%BC%96%E7%A8%8B%E4%B9%8B%E5%A4%8F%E4%BC%9A%E8%AE%AE%E4%B8%8A2018%E4%B8%AA%E9%A1%B9%E7%9B%AE%E8%A2%AB%E5%AE%A3%E5%B8%83/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" [...]
+"><meta itemprop=datePublished content="2018-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="8"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="谷歌编程之夏会议上2018个项目被宣布"><meta name=twitter:description content="谷歌编程之夏会议上2018个项目被宣布,Dubbo位列其中。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/04/25/the-gsocgoogle-summer-of-code-2018/>English</a></div></li></ul></div><div class="na [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/05/02/apachecon-na-\345\244\247\344\274\232\350\256\256\347\250\213\345\205\254\345\270\203/index.html" "b/zh/blog/2018/05/02/apachecon-na-\345\244\247\344\274\232\350\256\256\347\250\213\345\205\254\345\270\203/index.html"
index bbeec1f684..952fc191f4 100644
--- "a/zh/blog/2018/05/02/apachecon-na-\345\244\247\344\274\232\350\256\256\347\250\213\345\205\254\345\270\203/index.html"
+++ "b/zh/blog/2018/05/02/apachecon-na-\345\244\247\344\274\232\350\256\256\347\250\213\345\205\254\345\270\203/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/05/02/apachecon-na-%E5%A4%A7%E4%BC%9A%E8%AE%AE%E7%A8%8B%E5%85%AC%E5%B8%83/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="ApacheCon NA 大会议程公布 [...]
-"><meta itemprop=datePublished content="2018-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="12"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ApacheCon NA 大会议程公布"><meta name=twitter:description content="本文将向你介绍在ApacheCon大会议程公布上相关Dubbo议题演讲。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/05/02/apachecon-na-%E5%A4%A7%E4%BC%9A%E8%AE%AE%E7%A8%8B%E5%85%AC%E5%B8%83/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="ApacheCon NA 大会议程公布 [...]
+"><meta itemprop=datePublished content="2018-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="12"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="ApacheCon NA 大会议程公布"><meta name=twitter:description content="本文将向你介绍在ApacheCon大会议程公布上相关Dubbo议题演讲。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/05/02/the-apachecon-na-schedule-has-been-announced/>English</a></div></li></ul></div><div [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/05/12/\351\246\226\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\345\214\227\344\272\254\346\210\220\345\212\237\344\270\276\345\212\236/index.html" "b/zh/blog/2018/05/12/\351\246\226\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\345\214\227\344\272\254\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
index f2552fce9b..88eeaa975c 100644
--- "a/zh/blog/2018/05/12/\351\246\226\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\345\214\227\344\272\254\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
+++ "b/zh/blog/2018/05/12/\351\246\226\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\345\214\227\344\272\254\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/05/12/the-first-dubbo-meetup-has-been-held-in-beijing/>English</a></div></li></ul></div>< [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/05/21/dubbo-\345\244\226\351\203\250\345\214\226\351\205\215\347\275\256/index.html" "b/zh/blog/2018/05/21/dubbo-\345\244\226\351\203\250\345\214\226\351\205\215\347\275\256/index.html"
index 295e2cd2ff..486145f405 100644
--- "a/zh/blog/2018/05/21/dubbo-\345\244\226\351\203\250\345\214\226\351\205\215\347\275\256/index.html"
+++ "b/zh/blog/2018/05/21/dubbo-\345\244\226\351\203\250\345\214\226\351\205\215\347\275\256/index.html"
@@ -3,12 +3,12 @@
尽管在 Spring 应用中,可以通过 @Value 或者 Environment 的方式获取外部配置,其代码简洁性以及类型转换灵活性存在明显的不足。因此,Spring Boot 提出了外部化配置(External Configuration)的感念,即通过程序以外的配置源,动态地绑定指定类型。
随着 Spring Boot / Spring Cloud 应用的流行,开发人员逐渐地接受并且使用 Spring Boot 外部化配置(External Configuration),即通过 application.properties 或者 bootstrap.properties 装配配置 Bean。
下列表格记录了 Dubbo 内置配置类:
-配置类 标签 用途 解释 ProtocolConfig <dubbo:protocol/> 协议配置 用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受 ApplicationConfig <dubbo:application/> 应用配置 用于配置当前应用信息,不管该应用是提供者还是消费者 ModuleConfig <dubbo:module/> 模块配置 用于配置当前模块信息,可选 RegistryConfig <dubbo:registry/> 注册中心配置 用于配置连接注册中心相关信息 MonitorConfig <dubbo:monitor/> 监控中心配置 用于配置连接监控中心相关信息,可选 ProviderConfig <dubbo:provider/> 提供方配置 当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选 ConsumerConfig <dubbo:consumer/> 消费方配置 当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选 MethodConfig < [...]
+配置类 标签 用途 解释 ProtocolConfig <dubbo:protocol/> 协议配置 用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受 ApplicationConfig <dubbo:application/> 应用配置 用于配置当前应用信息,不管该应用是提供者还是消费者 ModuleConfig <dubbo:module/> 模块配置 用于配置当前模块信息,可选 RegistryConfig <dubbo:registry/> 注册中心配置 用于配置连接注册中心相关信息 MonitorConfig <dubbo:monitor/> 监控中心配置 用于配置连接监控中心相关信息,可选 ProviderConfig <dubbo:provider/> 提供方配置 当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选 ConsumerConfig <dubbo:consumer/> 消费方配置 当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选 MethodConfig < [...]
@Bean public ApplicationConfig applicationConfig() { ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("dubbo-annotation-consumer"); return applicationConfig; } 虽然实现类似于ProviderConfiguration 和 ConsumerConfiguration 这样的 Spring @Configuration Bean 成本并不高,不过通过 Java Code 的方式定义配置 Bean,或多或少是一种 Hard Code(硬编码)的行为,缺少弹性。
尽管在 Spring 应用中,可以通过 @Value 或者 Environment 的方式获取外部配置,其代码简洁性以及类型转换灵活性存在明显的不足。因此,Spring Boot 提出了外部化配置(External Configuration)的感念,即通过程序以外的配置源,动态地绑定指定类型。
随着 Spring Boot / Spring Cloud 应用的流行,开发人员逐渐地接受并且使用 Spring Boot 外部化配置(External Configuration),即通过 application.properties 或者 bootstrap.properties 装配配置 Bean。
下列表格记录了 Dubbo 内置配置类:
-配置类 标签 用途 解释 ProtocolConfig <dubbo:protocol/> 协议配置 用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受 ApplicationConfig <dubbo:application/> 应用配置 用于配置当前应用信息,不管该应用是提供者还是消费者 ModuleConfig <dubbo:module/> 模块配置 用于配置当前模块信息,可选 RegistryConfig <dubbo:registry/> 注册中心配置 用于配置连接注册中心相关信息 MonitorConfig <dubbo:monitor/> 监控中心配置 用于配置连接监控中心相关信息,可选 ProviderConfig <dubbo:provider/> 提供方配置 当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选 ConsumerConfig <dubbo:consumer/> 消费方配置 当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选 MethodConfig < [...]
+配置类 标签 用途 解释 ProtocolConfig <dubbo:protocol/> 协议配置 用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受 ApplicationConfig <dubbo:application/> 应用配置 用于配置当前应用信息,不管该应用是提供者还是消费者 ModuleConfig <dubbo:module/> 模块配置 用于配置当前模块信息,可选 RegistryConfig <dubbo:registry/> 注册中心配置 用于配置连接注册中心相关信息 MonitorConfig <dubbo:monitor/> 监控中心配置 用于配置连接监控中心相关信息,可选 ProviderConfig <dubbo:provider/> 提供方配置 当 ProtocolConfig 和 ServiceConfig 某属性没有配置时,采用此缺省值,可选 ConsumerConfig <dubbo:consumer/> 消费方配置 当 ReferenceConfig 某属性没有配置时,采用此缺省值,可选 MethodConfig < [...]
@Bean public ApplicationConfig applicationConfig() { ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("dubbo-annotation-consumer"); return applicationConfig; } 虽然实现类似于ProviderConfiguration 和 ConsumerConfiguration 这样的 Spring @Configuration Bean 成本并不高,不过通过 Java Code 的方式定义配置 Bean,或多或少是一种 Hard Code(硬编码)的行为,缺少弹性。
尽管在 Spring 应用中,可以通过 @Value 或者 Environment 的方式获取外部配置,其代码简洁性以及类型转换灵活性存在明显的不足。因此,Spring Boot 提出了外部化配置(External Configuration)的感念,即通过程序以外的配置源,动态地绑定指定类型。
随着 Spring Boot / Spring Cloud 应用的流行,开发人员逐渐地接受并且使用 Spring Boot 外部化配置(External Configuration),即通过 application.properties 或者 bootstrap.properties 装配配置 Bean。
@@ -18,7 +18,7 @@
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> ApplicationConfig <span style=color:#268bd2>applicationConfig</span><span style=color:#719e07>()</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> ApplicationConfig applicationConfig <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> ApplicationConfig<span style=color:#719e07>();</span>
</span></span><span style=display:flex><span> applicationConfig<span style=color:#719e07>.</span>setName<span style=color:#719e07>(</span><span style=color:#2aa198>"dubbo-annotation-consumer"</span><span style=color:#719e07>);</span>
@@ -283,7 +283,7 @@
</span></span><span style=display:flex><span><span style=color:#268bd2>applicationBean3</span>.<span style=color:#268bd2>name</span> <span style=color:#719e07>=</span> <span style=color:#268bd2>dubbo</span><span style=color:#719e07>-</span><span style=color:#268bd2>demo</span><span style=color:#719e07>-</span><span style=color:#268bd2>application3</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>moduleBean</span>.<span style=color:#268bd2>name</span> <span style=color:#719e07>=</span> <span style=color:#268bd2>dubbo</span><span style=color:#719e07>-</span><span style=color:#268bd2>demo</span><span style=color:#719e07>-</span><span style=color:#719e07>module</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>registry</span>.<span style=color:#268bd2>address</span> <span style=color:#719e07>=</span> <span style=color:#268bd2>zookeeper</span>:<span style=color:#586e75>//192.168.99.100:32770
-</span></span></span></code></pre></div><p>输出的内容与<code>classpath:/META-INF/bindings.properties</code> 绑定的内容一致,符合期望。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/05/12/%E9%A6%96%E5%B1%8Adubbo%E5%BC%80%E5%8F%91%E8%80%85%E6%B2%99%E9%BE%99%E5%9C%A8%E5%8C%97%E4%BA%AC%E6%88%90%E5%8A%9F%E4%B8%BE%E5%8A%9E/ aria-label="上一页 - 首届Dubbo开发者沙龙在北京成功举办" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/ [...]
+</span></span></span></code></pre></div><p>输出的内容与<code>classpath:/META-INF/bindings.properties</code> 绑定的内容一致,符合期望。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/01/01/dubbo-%E5%8D%9A%E5%AE%A2%E6%96%87%E6%A1%A3%E4%B8%AD%E6%96%87%E6%8E%92%E7%89%88%E6%8C%87%E5%8D%97/ aria-label="上一页 - Dubbo 博客文档中文排版指南" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/06/03/%E4%BB%A5-dubbo-%E4%B8%BA%E4%BE% [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/06/03/\344\273\245-dubbo-\344\270\272\344\276\213\350\201\212\350\201\212\345\246\202\344\275\225\345\220\221\345\274\200\346\272\220\351\241\271\347\233\256\345\201\232\350\264\241\347\214\256/index.html" "b/zh/blog/2018/06/03/\344\273\245-dubbo-\344\270\272\344\276\213\350\201\212\350\201\212\345\246\202\344\275\225\345\220\221\345\274\200\346\272\220\351\241\271\347\233\256\345\201\232\350\264\241\347\214\256/index.html"
index 195cded09d..6c46b1697f 100644
--- "a/zh/blog/2018/06/03/\344\273\245-dubbo-\344\270\272\344\276\213\350\201\212\350\201\212\345\246\202\344\275\225\345\220\221\345\274\200\346\272\220\351\241\271\347\233\256\345\201\232\350\264\241\347\214\256/index.html"
+++ "b/zh/blog/2018/06/03/\344\273\245-dubbo-\344\270\272\344\276\213\350\201\212\350\201\212\345\246\202\344\275\225\345\220\221\345\274\200\346\272\220\351\241\271\347\233\256\345\201\232\350\264\241\347\214\256/index.html"
@@ -1,19 +1,19 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/06/03/%E4%BB%A5-dubbo-%E4%B8%BA%E4%BE%8B%E8%81%8A%E8%81%8A%E5%A6%82%E4%BD%95%E5%90%91%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%81%9A%E8%B4%A1%E7%8C%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-06-03T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_na [...]
-"><meta itemprop=datePublished content="2018-06-03T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="330"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="以 Dubbo 为例,聊聊如何向开源项目做贡献"><meta name=twitter:description content="本文将会以 dubbo 项目为例向你阐释,给开源项目做贡献并不是一件难事
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/06/03/%E4%BB%A5-dubbo-%E4%B8%BA%E4%BE%8B%E8%81%8A%E8%81%8A%E5%A6%82%E4%BD%95%E5%90%91%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%81%9A%E8%B4%A1%E7%8C%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-06-03T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_na [...]
+"><meta itemprop=datePublished content="2018-06-03T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="330"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="以 Dubbo 为例,聊聊如何向开源项目做贡献"><meta name=twitter:description content="本文将会以 dubbo 项目为例向你阐释,给开源项目做贡献并不是一件难事
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>git remote add upstream https://github.com/apache/dubbo.git
</span></span><span style=display:flex><span><span style=color:#586e75># 拉取源仓库的更新</span>
</span></span><span style=display:flex><span>git fetch upstream
</span></span><span style=display:flex><span><span style=color:#586e75># 将自己仓库的主分支合并源仓库的更新</span>
</span></span><span style=display:flex><span>git checkout master
</span></span><span style=display:flex><span>git merge upstream/master
-</span></span></code></pre></div><p><strong>pull request</strong></p><p>pull request 经常被缩写为 PR,指的是一次向源仓库请求合并的行为,如上是我 fork 了 dubbo 的仓库之后才存在的操作按钮。</p><p><strong>源仓库视角的 pull request</strong></p><p>管理者会对 pull request 涉及的改动进行 review,以确保你的代码是符合规范的,逻辑有没有偏差,以及符合框架的功能需求。</p><h3 id=22-travis-ci>2.2 Travis CI</h3><p>一些自动化的 CI 流程被植入在每一次 pull request 的构建之中,用于给开源仓库去校验提交者的代码是否符合既定的规范,如:是否有编译问题,单元测试是否通过,覆盖率是否达标,代码风格是否合规等等。</p><p>一般情况下,必须通过 CI,你的 pull request 才会被管理 review。</p><h3 id=23-mailing-list>2.3 M [...]
+</span></span></code></pre></div><p><strong>pull request</strong></p><p>pull request 经常被缩写为 PR,指的是一次向源仓库请求合并的行为,如上是我 fork 了 dubbo 的仓库之后才存在的操作按钮。</p><p><strong>源仓库视角的 pull request</strong></p><p>管理者会对 pull request 涉及的改动进行 review,以确保你的代码是符合规范的,逻辑有没有偏差,以及符合框架的功能需求。</p><h3 id=22-travis-ci>2.2 Travis CI</h3><p>一些自动化的 CI 流程被植入在每一次 pull request 的构建之中,用于给开源仓库去校验提交者的代码是否符合既定的规范,如:是否有编译问题,单元测试是否通过,覆盖率是否达标,代码风格是否合规等等。</p><p>一般情况下,必须通过 CI,你的 pull request 才会被管理 review。</p><h3 id=23-mailing-list>2.3 M [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/06/17/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-zipkin/index.html" "b/zh/blog/2018/06/17/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-zipkin/index.html"
index 55801970e7..84972db7e8 100644
--- "a/zh/blog/2018/06/17/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-zipkin/index.html"
+++ "b/zh/blog/2018/06/17/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-zipkin/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/06/17/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-zipkin/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-06-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在 Dubbo 中使用 Zipkin"><meta itemprop=d [...]
-"><meta itemprop=datePublished content="2018-06-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1449"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在 Dubbo 中使用 Zipkin"><meta name=twitter:description content="本文介绍如何在 Dubbo 中使用 Zipkin 进行全链路追踪
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/06/17/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-zipkin/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-06-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在 Dubbo 中使用 Zipkin"><meta itemprop=d [...]
+"><meta itemprop=datePublished content="2018-06-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1449"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在 Dubbo 中使用 Zipkin"><meta name=twitter:description content="本文介绍如何在 Dubbo 中使用 Zipkin 进行全链路追踪
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>$ java -jar zipkin.jar
</span></span></code></pre></div><p>按照这种方式安装的 Zipkin Server 使用的存储类型是 inMemory 的。当服务器停机之后,所有收集到的 trace 信息会丢失,不适用于生产系统。如果在生产系统中使用,需要配置另外的存储类型。Zipkin 支持 MySql、Cassandra、和 ElasticSearch。推荐使用 Cassandra 和 ElasticSearch,相关的配置请自行查阅<a href=https://github.com/openzipkin/zipkin/tree/master/zipkin-server>官方文档</a>。</p><p>本文为了演示方便,使用的存储是 inMemory 类型。成功启动之后,可以在终端看到如下的提示:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code c [...]
</span></span><span style=display:flex><span>Picked up JAVA_TOOL_OPTIONS: -Djava.awt.headless<span style=color:#719e07>=</span><span style=color:#b58900>true</span>
@@ -346,7 +346,7 @@
</span></span></code></pre></div><h4 id=启动-helloservice>启动 HelloService</h4><p>使用下面的命令启动 HelloService,当然也可以直接在 IDE 中启动:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>$ mvn exec:java -Dexec.mainClass<span style=color:#719e07>=</span>com.alibaba.dubbo.samples.service.hello.Application
</span></span></code></pre></div><p>启动成功后应该可以在终端上看到 “Hello service started” 的字样。</p><h4 id=启动-greetingservice>启动 GreetingService</h4><p>使用下面的命令启动 GreetingService,当然也可以直接在 IDE 中启动:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>$ mvn exec:java -Dexec.mainClass<span style=color:#719e07>=</span>com.alibaba.dubbo.samples.service.greeting.Application
</span></span></code></pre></div><p>启动成功后应该可以在终端上看到 “Greeting service started” 的字样。</p><h4 id=运行-dubbo-客户端>运行 Dubbo 客户端</h4><p>使用下面的命令运行 Dubbo 客户端向 GreetingService 发起远程调用,当然也可以直接在 IDE 中运行:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>$ mvn exec:java -Dexec.mainClass<span style=color:#719e07>=</span>com.alibaba.dubbo.samples.client.Application
-</span></span></code></pre></div><p>执行成功后,客户端会在终端上输出 “greeting, hello, world”。</p><h4 id=链路追踪>链路追踪</h4><p>打开浏览器访问 “http://localhost:9411” 并通过 “Find Traces” 按钮来搜索,可以找到刚刚调用的链路追踪,效果如下图所示:</p><p><img src=/imgs/blog/zipkin-trace.png alt="zipkin trace"></p><p>还可以进一步的选择每一个 span 来查看本次调用边界内的详情,比如,hello-service 这个 span 的详情如下:</p><p><img src=/imgs/blog/zipkin-span.png alt="zipkin span"></p><h2 id=总结>总结</h2><p>本文介绍了链路追踪的基本概念以及 Zipkin 的基本用法,然后用 Dubbo 构建了一条最简单的调用链路,并引入了 Zipkin [...]
+</span></span></code></pre></div><p>执行成功后,客户端会在终端上输出 “greeting, hello, world”。</p><h4 id=链路追踪>链路追踪</h4><p>打开浏览器访问 “http://localhost:9411” 并通过 “Find Traces” 按钮来搜索,可以找到刚刚调用的链路追踪,效果如下图所示:</p><p><img src=/imgs/blog/zipkin-trace.png alt="zipkin trace"></p><p>还可以进一步的选择每一个 span 来查看本次调用边界内的详情,比如,hello-service 这个 span 的详情如下:</p><p><img src=/imgs/blog/zipkin-span.png alt="zipkin span"></p><h2 id=总结>总结</h2><p>本文介绍了链路追踪的基本概念以及 Zipkin 的基本用法,然后用 Dubbo 构建了一条最简单的调用链路,并引入了 Zipkin [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/06/23/\347\254\254\344\272\214\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\344\270\212\346\265\267\346\210\220\345\212\237\344\270\276\345\212\236/index.html" "b/zh/blog/2018/06/23/\347\254\254\344\272\214\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\344\270\212\346\265\267\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
index 7b0f0f0962..ccf6ec237a 100644
--- "a/zh/blog/2018/06/23/\347\254\254\344\272\214\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\344\270\212\346\265\267\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
+++ "b/zh/blog/2018/06/23/\347\254\254\344\272\214\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\344\270\212\346\265\267\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/06/23/the-second-dubbo-shanghai-meetup-has-been-held-successfully/>English</a></div></li> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/06/26/\345\233\236\345\243\260\346\265\213\350\257\225/index.html" "b/zh/blog/2018/06/26/\345\233\236\345\243\260\346\265\213\350\257\225/index.html"
index 6bf791979d..320cc0f05f 100644
--- "a/zh/blog/2018/06/26/\345\233\236\345\243\260\346\265\213\350\257\225/index.html"
+++ "b/zh/blog/2018/06/26/\345\233\236\345\243\260\346\265\213\350\257\225/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/06/26/%E5%9B%9E%E5%A3%B0%E6%B5%8B%E8%AF%95/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-06-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="回声测试"><meta itemprop=description content="回声测试用于检测服务是否可用
-"><meta itemprop=datePublished content="2018-06-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="279"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="回声测试"><meta name=twitter:description content="回声测试用于检测服务是否可用
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/06/26/%E5%9B%9E%E5%A3%B0%E6%B5%8B%E8%AF%95/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-06-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="回声测试"><meta itemprop=description content="回声测试用于检测服务是否可用
+"><meta itemprop=datePublished content="2018-06-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="279"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="回声测试"><meta name=twitter:description content="回声测试用于检测服务是否可用
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#586e75>/**
</span></span></span><span style=display:flex><span><span style=color:#586e75> * echo test.
@@ -69,7 +69,7 @@ Spring 配置:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;bac
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
-</span></span></code></pre></div><p>请求经过 EchoFilter.invoke 方法时,如果判定为 $echo 调用,则直接返回请求参数,否则继续执行 Filter 链。EchoFilter 默认加入到每一个服务提供者的 Filter 链里 EchoFilter.invoke 方法时,如果判定为 $echo 调用,则直接返回请求参数,否则继续执行 Filter 链。EchoFilter 默认加入到每一个服务提供者的 Filter 链里。这样每一个服务提供者自动具备了响应 EchoService 的能力。</p><p>通过上述分析,我们了解了框架是如何通过动态代理和 Filter 机制,使得用户可以透明地使用 EchoService 功能。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/06/23/%E7%AC%AC%E4%BA%8C%E5%B1%8Ad [...]
+</span></span></code></pre></div><p>请求经过 EchoFilter.invoke 方法时,如果判定为 $echo 调用,则直接返回请求参数,否则继续执行 Filter 链。EchoFilter 默认加入到每一个服务提供者的 Filter 链里 EchoFilter.invoke 方法时,如果判定为 $echo 调用,则直接返回请求参数,否则继续执行 Filter 链。EchoFilter 默认加入到每一个服务提供者的 Filter 链里。这样每一个服务提供者自动具备了响应 EchoService 的能力。</p><p>通过上述分析,我们了解了框架是如何通过动态代理和 Filter 机制,使得用户可以透明地使用 EchoService 功能。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/06/03/%E4%BB%A5-dubbo-%E4%B8%BA%E4 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/07/01/\347\254\254\344\270\200\344\270\252-dubbo-filter/index.html" "b/zh/blog/2018/07/01/\347\254\254\344\270\200\344\270\252-dubbo-filter/index.html"
index 644d629ff8..c079ef111e 100644
--- "a/zh/blog/2018/07/01/\347\254\254\344\270\200\344\270\252-dubbo-filter/index.html"
+++ "b/zh/blog/2018/07/01/\347\254\254\344\270\200\344\270\252-dubbo-filter/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/01/%E7%AC%AC%E4%B8%80%E4%B8%AA-dubbo-filter/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="第一个 Dubbo Filter"><meta itemprop=description c [...]
-"><meta itemprop=datePublished content="2018-07-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="434"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="第一个 Dubbo Filter"><meta name=twitter:description content="本文介绍了如何开发一个 Dubbo 的 Filter
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/01/%E7%AC%AC%E4%B8%80%E4%B8%AA-dubbo-filter/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="第一个 Dubbo Filter"><meta itemprop=description c [...]
+"><meta itemprop=datePublished content="2018-07-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="434"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="第一个 Dubbo Filter"><meta name=twitter:description content="本文介绍了如何开发一个 Dubbo 的 Filter
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/07/01/your-first-dubbo-filter/>English</a></div></li></ul></div><div class="navbar-nav d- [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></span><span style=display:flex><span><span style=color:#586e75></span><span style=color:#268bd2>public</span> <span style=color:#719e07><</span>T<span style=color:#719e07>></span> Invoker<span style=color:#719e07><</span>T<span style=color:#719e07>></span> <span style=color:#268bd2>refer</span><span style=color:#719e07>(</span>Class<span style=color:#719e07><</span>T<span style=color:#719e07>></span> type<span style=color:#719e07>,</span> URL url<span sty [...]
</span></span><span style=display:flex><span> <span style=color:#719e07>if</span> <span style=color:#719e07>(</span>Constants<span style=color:#719e07>.</span>REGISTRY_PROTOCOL<span style=color:#719e07>.</span>equals<span style=color:#719e07>(</span>url<span style=color:#719e07>.</span>getProtocol<span style=color:#719e07>()))</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> protocol<span style=color:#719e07>.</span>refer<span style=color:#719e07>(</span>type<span style=color:#719e07>,</span> url<span style=color:#719e07>);</span>
@@ -145,7 +145,7 @@
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>XxxFilter</span> <span style=color:#268bd2>implements</span> Filter <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> <span style=color:#586e75>// ...
</span></span></span><span style=display:flex><span><span style=color:#586e75></span><span style=color:#719e07>}</span>
-</span></span></code></pre></div><p>使用 xml 的配置方式会更加灵活,粒度更细。</p><p>在before和after中,可以实现自己的业务逻辑来赋予该filter一定的功能。编写和配置完成后,该filter就会被Dubbo框架激活并且在调用链中执行。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/06/26/%E5%9B%9E%E5%A3%B0%E6%B5%8B%E8%AF%95/ aria-label="上一页 - 回声测试" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/07/12/%E4%BD%BF%E7%94%A8pinpoint%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E [...]
+</span></span></code></pre></div><p>使用 xml 的配置方式会更加灵活,粒度更细。</p><p>在before和after中,可以实现自己的业务逻辑来赋予该filter一定的功能。编写和配置完成后,该filter就会被Dubbo框架激活并且在调用链中执行。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/06/26/%E5%9B%9E%E5%A3%B0%E6%B5%8B%E8%AF%95/ aria-label="上一页 - 回声测试" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/07/12/dubbo-%E4%B8%8A%E4%B8%8B%E6%96%87%E4%BF%A1%E6%81%AF/ aria-label="下一页 - Du [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/07/12/dubbo-\344\270\212\344\270\213\346\226\207\344\277\241\346\201\257/index.html" "b/zh/blog/2018/07/12/dubbo-\344\270\212\344\270\213\346\226\207\344\277\241\346\201\257/index.html"
index 4b166595ed..3943211af2 100644
--- "a/zh/blog/2018/07/12/dubbo-\344\270\212\344\270\213\346\226\207\344\277\241\346\201\257/index.html"
+++ "b/zh/blog/2018/07/12/dubbo-\344\270\212\344\270\213\346\226\207\344\277\241\346\201\257/index.html"
@@ -1,13 +1,13 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/12/dubbo-%E4%B8%8A%E4%B8%8B%E6%96%87%E4%BF%A1%E6%81%AF/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 上下文信息"><meta itemprop=descrip [...]
-"><meta itemprop=datePublished content="2018-07-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="156"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 上下文信息"><meta name=twitter:description content="介绍Dubbo上下文信息的作用、应用场景、使用方式以及注意事项
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/12/dubbo-%E4%B8%8A%E4%B8%8B%E6%96%87%E4%BF%A1%E6%81%AF/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 上下文信息"><meta itemprop=descrip [...]
+"><meta itemprop=datePublished content="2018-07-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="156"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 上下文信息"><meta name=twitter:description content="介绍Dubbo上下文信息的作用、应用场景、使用方式以及注意事项
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
-</span></span></code></pre></div><h2 id=使用场景>使用场景</h2><h3 id=获取调用信息>获取调用信息</h3><table><thead><tr><th style=text-align:left>方法名</th><th>用途</th><th>作用范围</th><th>说明</th></tr></thead><tbody><tr><td style=text-align:left>getRequest</td><td>获取 RPC 请求对象</td><td>Consumer</td><td>获取底层 RPC 请求对象,例如 HttpServletRequest,其他情况为 null</td></tr><tr><td style=text-align:left>getResponse</td><td>获取 RPC 请求响应</td><td>Consumer</td><td>获取底层 RPC 响应对象,例如HttpServletResponse,其他情况为 null</td></tr><tr><td style=text-al [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+</span></span></code></pre></div><h2 id=使用场景>使用场景</h2><h3 id=获取调用信息>获取调用信息</h3><table><thead><tr><th style=text-align:left>方法名</th><th>用途</th><th>作用范围</th><th>说明</th></tr></thead><tbody><tr><td style=text-align:left>getRequest</td><td>获取 RPC 请求对象</td><td>Consumer</td><td>获取底层 RPC 请求对象,例如 HttpServletRequest,其他情况为 null</td></tr><tr><td style=text-align:left>getResponse</td><td>获取 RPC 请求响应</td><td>Consumer</td><td>获取底层 RPC 响应对象,例如HttpServletResponse,其他情况为 null</td></tr><tr><td style=text-al [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/07/12/\344\275\277\347\224\250pinpoint\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html" "b/zh/blog/2018/07/12/\344\275\277\347\224\250pinpoint\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html"
index 6d3ebc8096..425fbbfe0f 100644
--- "a/zh/blog/2018/07/12/\344\275\277\347\224\250pinpoint\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html"
+++ "b/zh/blog/2018/07/12/\344\275\277\347\224\250pinpoint\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/12/%E4%BD%BF%E7%94%A8pinpoint%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="使用Pinp [...]
-"><meta itemprop=datePublished content="2018-07-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="560"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用Pinpoint做分布式跟踪"><meta name=twitter:description content="本文介绍了利用Pinpoint对Dubbo分布式应用进行调用链跟踪与性能监控。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/12/%E4%BD%BF%E7%94%A8pinpoint%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="使用Pinp [...]
+"><meta itemprop=datePublished content="2018-07-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="560"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用Pinpoint做分布式跟踪"><meta name=twitter:description content="本文介绍了利用Pinpoint对Dubbo分布式应用进行调用链跟踪与性能监控。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/07/12/tracking-with-pinpoint/>English</a></div></li></ul></div><div class="navbar-nav d-n [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
仿照Google Dapper,Pinpoint通过跟踪分布式应用之间的调用来提供解决方案,以帮助分析系统的总体结构和内部模块之间如何相互联系。</p><blockquote><p>注:对于各个模块之间的通讯英文原文中用的是transaction一词,但是我觉得如果翻译为"事务"容易引起误解,所以替换为"交互"或者"调用"这种比较直白的字眼。</p></blockquote><p>在使用上力图简单高效:</p><ul><li>安装agent,不需要修改哪怕一行代码</li><li>最小化性能损失</li></ul><h3 id=服务器地图servermap>服务器地图(ServerMap)</h3><p>通过可视化分布式系统的模块和他们之间的相互联系来理解系统拓扑。点击某个节点会展示这个模块的详情,比如它当前的状态和请求数量。</p><h3 id=实时活动线程图表realtime-active-thread-chart>实时活动线程图表(Realtime Active Thread Chart)</h3><p>实时监控应用内部的活动线程。</p><h3 id=请求应答
分 [...]
</span></span><span style=display:flex><span><span style=color:#268bd2><project</span> xmlns=<span style=color:#2aa198>"http://maven.apache.org/POM/4.0.0"</span>
</span></span><span style=display:flex><span> xmlns:xsi=<span style=color:#2aa198>"http://www.w3.org/2001/XMLSchema-instance"</span>
@@ -275,7 +275,7 @@
</span></span></code></pre></div><h3 id=使用pinpoint-agent启动服务提供方和服务消费方>使用Pinpoint-agent启动服务提供方和服务消费方</h3><h4 id=启动服务提供方>启动服务提供方</h4><ol><li>编译打包</li></ol><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>mvn clean package
</span></span></code></pre></div><ol start=2><li>附加参数启动服务提供方</li></ol><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>java -jar -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar -Dpinpoint.agentId=demo-provider -Dpinpoint.applicationName=DP target/demo-provider-0.0.1-SNAPSHOT.jar
</span></span></code></pre></div><ol start=3><li>附加参数启动服务消费方</li></ol><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>java -jar -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar -Dpinpoint.agentId=demo-consumer -Dpinpoint.applicationName=DC target/demo-comsumer-0.0.1-SNAPSHOT-exec.jar
-</span></span></code></pre></div><ol start=4><li>访问消费方地址模拟用户请求</li></ol><p><code>http://localhost:8080/sayHello?name=ABC</code></p><h2 id=使用pinpoint快速定位问题>使用Pinpoint快速定位问题</h2><h3 id=首页>首页</h3><p><img src=/imgs/blog/pinpoint-home.png alt=/admin-guide/images/pinpoint-home.png></p><blockquote><p>这里的用户请求是请求DubboProvider数量的双倍,原因是记录了favicon.ico图标请求导致的</p></blockquote><h3 id=调用树>调用树</h3><p><img src=/imgs/blog/pinpoint-calltree.png alt=/admin-guide/images/pinpoint-calltree.png></p><h3 id=深入跟踪>深 [...]
+</span></span></code></pre></div><ol start=4><li>访问消费方地址模拟用户请求</li></ol><p><code>http://localhost:8080/sayHello?name=ABC</code></p><h2 id=使用pinpoint快速定位问题>使用Pinpoint快速定位问题</h2><h3 id=首页>首页</h3><p><img src=/imgs/blog/pinpoint-home.png alt=/admin-guide/images/pinpoint-home.png></p><blockquote><p>这里的用户请求是请求DubboProvider数量的双倍,原因是记录了favicon.ico图标请求导致的</p></blockquote><h3 id=调用树>调用树</h3><p><img src=/imgs/blog/pinpoint-calltree.png alt=/admin-guide/images/pinpoint-calltree.png></p><h3 id=深入跟踪>深 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/07/22/dubbo-2.7.x-repackage-\345\220\216\347\232\204\345\205\274\345\256\271\345\256\236\347\216\260\346\226\271\346\241\210/index.html" "b/zh/blog/2018/07/22/dubbo-2.7.x-repackage-\345\220\216\347\232\204\345\205\274\345\256\271\345\256\236\347\216\260\346\226\271\346\241\210/index.html"
index e7906e8d36..2b67c81599 100644
--- "a/zh/blog/2018/07/22/dubbo-2.7.x-repackage-\345\220\216\347\232\204\345\205\274\345\256\271\345\256\236\347\216\260\346\226\271\346\241\210/index.html"
+++ "b/zh/blog/2018/07/22/dubbo-2.7.x-repackage-\345\220\216\347\232\204\345\205\274\345\256\271\345\256\236\347\216\260\346\226\271\346\241\210/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/22/dubbo-2.7.x-repackage-%E5%90%8E%E7%9A%84%E5%85%BC%E5%AE%B9%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%88/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name c [...]
-"><meta itemprop=datePublished content="2018-07-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="285"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 2.7.x repackage 后的兼容实现方案"><meta name=twitter:description content="本文简单描述了2.7.x repackage后对老版本的兼容性实现方案。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/22/dubbo-2.7.x-repackage-%E5%90%8E%E7%9A%84%E5%85%BC%E5%AE%B9%E5%AE%9E%E7%8E%B0%E6%96%B9%E6%A1%88/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name c [...]
+"><meta itemprop=datePublished content="2018-07-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="285"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 2.7.x repackage 后的兼容实现方案"><meta name=twitter:description content="本文简单描述了2.7.x repackage后对老版本的兼容性实现方案。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#268bd2>@Deprecated</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>ApplicationConfig</span> <span style=color:#268bd2>extends</span> org<span style=color:#719e07>.</span>apache<span style=color:#719e07>.</span>dubbo<span style=color:#719e07>.</span>config<span style=color:#719e07>.</span>ApplicationConfig <span style=color:#719e07>{</span>
@@ -73,7 +73,7 @@
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> result<span style=color:#719e07>.</span>getDelegate<span style=color:#719e07>();</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
-</span></span></code></pre></div><p>可以看到,default方法里,对参数进行了包装,然后调用老的invoke方法,并将返回值进行解包后返回给Dubbo框架。这里Result.CompatibleResult、Invocation.CompatibleInvocation以及Invoker.CompatibleInvoker都用到了代理模式。</p><p>感兴趣的同学可以详细看一下以下几个类:</p><ul><li>com.alibaba.dubbo.rpc.Invocation</li><li>com.alibaba.dubbo.rpc.Invoker</li><li>com.alibaba.dubbo.rpc.Result</li></ul><h2 id=后续todo-list>后续todo list</h2><p>目前兼容包仅仅是对常见的API及SPI做了支持,列表如下:</p><ul><li>com.alibaba.dubbo.rpc.Filter / Invocation / Invoker / Result / RpcCo [...]
+</span></span></code></pre></div><p>可以看到,default方法里,对参数进行了包装,然后调用老的invoke方法,并将返回值进行解包后返回给Dubbo框架。这里Result.CompatibleResult、Invocation.CompatibleInvocation以及Invoker.CompatibleInvoker都用到了代理模式。</p><p>感兴趣的同学可以详细看一下以下几个类:</p><ul><li>com.alibaba.dubbo.rpc.Invocation</li><li>com.alibaba.dubbo.rpc.Invoker</li><li>com.alibaba.dubbo.rpc.Result</li></ul><h2 id=后续todo-list>后续todo list</h2><p>目前兼容包仅仅是对常见的API及SPI做了支持,列表如下:</p><ul><li>com.alibaba.dubbo.rpc.Filter / Invocation / Invoker / Result / RpcCo [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/07/27/sentinel-\344\270\272-dubbo-\346\234\215\345\212\241\344\277\235\351\251\276\346\212\244\350\210\252/index.html" "b/zh/blog/2018/07/27/sentinel-\344\270\272-dubbo-\346\234\215\345\212\241\344\277\235\351\251\276\346\212\244\350\210\252/index.html"
index 85c9eea47b..0f6bf3f7d4 100644
--- "a/zh/blog/2018/07/27/sentinel-\344\270\272-dubbo-\346\234\215\345\212\241\344\277\235\351\251\276\346\212\244\350\210\252/index.html"
+++ "b/zh/blog/2018/07/27/sentinel-\344\270\272-dubbo-\346\234\215\345\212\241\344\277\235\351\251\276\346\212\244\350\210\252/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/27/sentinel-%E4%B8%BA-dubbo-%E6%9C%8D%E5%8A%A1%E4%BF%9D%E9%A9%BE%E6%8A%A4%E8%88%AA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-27T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Sentine [...]
-"><meta itemprop=datePublished content="2018-07-27T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="388"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Sentinel 为 Dubbo 服务保驾护航"><meta name=twitter:description content="本文主要介绍了面向分布式服务架构的轻量级流量控制组件 Sentinel 以及在 Dubbo 中整合使用 Sentinel 的最佳实践。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/07/27/sentinel-%E4%B8%BA-dubbo-%E6%9C%8D%E5%8A%A1%E4%BF%9D%E9%A9%BE%E6%8A%A4%E8%88%AA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-07-27T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Sentine [...]
+"><meta itemprop=datePublished content="2018-07-27T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="388"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Sentinel 为 Dubbo 服务保驾护航"><meta name=twitter:description content="本文主要介绍了面向分布式服务架构的轻量级流量控制组件 Sentinel 以及在 Dubbo 中整合使用 Sentinel 的最佳实践。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/07/27/sentinel-the-flow-sentinel-of-dubbo-services/>English</a></div></li></ul></div><div [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2><groupId></span>com.alibaba.csp<span style=color:#268bd2></groupId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><artifactId></span>sentinel-dubbo-adapter<span style=color:#268bd2></artifactId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><version></span>x.y.z<span style=color:#268bd2></version></span>
@@ -16,7 +16,7 @@
</span></span></code></pre></div><p>在 Provider 对应的 metrics 日志中也有记录:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>1532423623000|2018-07-24 17:13:43|com.alibaba.csp.sentinel.demo.dubbo.FooService|15|0|15|0|3
</span></span><span style=display:flex><span>1532423623000|2018-07-24 17:13:43|com.alibaba.csp.sentinel.demo.dubbo.FooService:sayHello(java.lang.String)|10|5|10|0|0
</span></span></code></pre></div><p>根据<strong>调用方</strong>的需求来分配服务提供方的处理能力也是常见的限流方式。比如有两个服务 A 和 B 都向 Service Provider 发起调用请求,我们希望只对来自服务 B 的请求进行限流,则可以设置限流规则的 <code>limitApp</code> 为服务 B 的名称。Sentinel Dubbo Adapter 会自动解析 Dubbo 消费者(调用方)的 application name 作为调用方名称(<code>origin</code>),在进行资源保护的时候都会带上调用方名称。若限流规则未配置调用方(<code>default</code>),则该限流规则对所有调用方生效。若限流规则配置了调用方则限流规则将仅对指定调用方生效。</p><blockquote><p>注:Dubbo 默认通信不携带对端 application name 信息,因此需要开发者在调用端手动将 application name 置入 attachment 中,provider 端进 [...]
-</span></span></code></pre></div><h3 id=service-consumer>Service Consumer</h3><blockquote><p>对服务提供方的流量控制可分为<strong>控制并发线程数</strong>和<strong>服务降级</strong>两个维度。</p></blockquote><h4 id=并发线程数限流>并发线程数限流</h4><p>Service Consumer 作为客户端去调用远程服务。每一个服务都可能会依赖几个下游服务,若某个服务 A 依赖的下游服务 B 出现了不稳定的情况,服务 A 请求 服务 B 的响应时间变长,从而服务 A 调用服务 B 的线程就会产生堆积,最终可能耗尽服务 A 的线程数。我们通过用并发线程数来控制对下游服务 B 的访问,来保证下游服务不可靠的时候,不会拖垮服务自身。基于这种场景,推荐给 Consumer 配置<strong>线程数模式</strong>的限流,来保证自身不被不稳定服务所影响。采用基于线程数的限流模式后,我们不需要再显式地去进行线程池隔离
,Sentin [...]
+</span></span></code></pre></div><h3 id=service-consumer>Service Consumer</h3><blockquote><p>对服务提供方的流量控制可分为<strong>控制并发线程数</strong>和<strong>服务降级</strong>两个维度。</p></blockquote><h4 id=并发线程数限流>并发线程数限流</h4><p>Service Consumer 作为客户端去调用远程服务。每一个服务都可能会依赖几个下游服务,若某个服务 A 依赖的下游服务 B 出现了不稳定的情况,服务 A 请求 服务 B 的响应时间变长,从而服务 A 调用服务 B 的线程就会产生堆积,最终可能耗尽服务 A 的线程数。我们通过用并发线程数来控制对下游服务 B 的访问,来保证下游服务不可靠的时候,不会拖垮服务自身。基于这种场景,推荐给 Consumer 配置<strong>线程数模式</strong>的限流,来保证自身不被不稳定服务所影响。采用基于线程数的限流模式后,我们不需要再显式地去进行线程池隔离
,Sentin [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/07/30/\347\254\254\344\270\211\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\267\261\345\234\263\346\210\220\345\212\237\344\270\276\345\212\236/index.html" "b/zh/blog/2018/07/30/\347\254\254\344\270\211\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\267\261\345\234\263\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
index 3fe74264c5..9e8b678cf6 100644
--- "a/zh/blog/2018/07/30/\347\254\254\344\270\211\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\267\261\345\234\263\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
+++ "b/zh/blog/2018/07/30/\347\254\254\344\270\211\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\267\261\345\234\263\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/07/30/the-third-dubbo-meetup-has-been-held-in-shenzhen/>English</a></div></li></ul></div> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git a/zh/blog/2018/08/07/dubbo-101/index.html b/zh/blog/2018/08/07/dubbo-101/index.html
index 6232a38546..5d1e943a07 100644
--- a/zh/blog/2018/08/07/dubbo-101/index.html
+++ b/zh/blog/2018/08/07/dubbo-101/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/dubbo-101/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="第一个 Dubbo 应用"><meta itemprop=description content="现代的分布式服务框架的基本概念与 RMI 是类似的,同 [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1013"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="第一个 Dubbo 应用"><meta name=twitter:description content="现代的分布式服务框架的基本概念与 RMI 是类似的,同样是使用 Java 的 Interface 作为服务契约,通过注册中心来完成服务的注册和发现,远程通讯的细节也是通过代理类来屏蔽。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/dubbo-101/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="第一个 Dubbo 应用"><meta itemprop=description content="现代的分布式服务框架的基本概念与 RMI 是类似的,同 [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1013"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="第一个 Dubbo 应用"><meta name=twitter:description content="现代的分布式服务框架的基本概念与 RMI 是类似的,同样是使用 Java 的 Interface 作为服务契约,通过注册中心来完成服务的注册和发现,远程通讯的细节也是通过代理类来屏蔽。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/07/dubbo-101/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-bloc [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>Hello stub <span style=color:#719e07>=</span> <span style=color:#719e07>(</span>Hello<span style=color:#719e07>)</span> UnicastRemoteObject<span style=color:#719e07>.</span>exportObject<span style=color:#719e07>(</span>obj<span style=color:#719e07>,</span> 0<span style=color:#719e07>);</span> <span style=color:#586e75>// #2
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>Registry registry <span style=color:#719e07>=</span> LocateRegistry<span style=color:#719e07>.</span>createRegistry<span style=color:#719e07>(</span>1099<span style=color:#719e07>);</span> <span style=color:#586e75>// #3
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>registry<span style=color:#719e07>.</span>rebind<span style=color:#719e07>(</span><span style=color:#2aa198>"Hello"</span><span style=color:#719e07>,</span> stub<span style=color:#719e07>);</span> <span style=color:#586e75>// #4
diff --git "a/zh/blog/2018/08/07/dubbo-\346\263\250\350\247\243\351\251\261\345\212\250/index.html" "b/zh/blog/2018/08/07/dubbo-\346\263\250\350\247\243\351\251\261\345\212\250/index.html"
index ef00127320..0922dcf551 100644
--- "a/zh/blog/2018/08/07/dubbo-\346\263\250\350\247\243\351\251\261\345\212\250/index.html"
+++ "b/zh/blog/2018/08/07/dubbo-\346\263\250\350\247\243\351\251\261\345\212\250/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/dubbo-%E6%B3%A8%E8%A7%A3%E9%A9%B1%E5%8A%A8/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 注解驱动"><meta itemprop=description conte [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1333"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 注解驱动"><meta name=twitter:description content="介绍了 Dubbo 中新引入的注解驱动支持
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/dubbo-%E6%B3%A8%E8%A7%A3%E9%A9%B1%E5%8A%A8/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 注解驱动"><meta itemprop=description conte [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1333"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 注解驱动"><meta name=twitter:description content="介绍了 Dubbo 中新引入的注解驱动支持
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<code>2.5.7</code> 之前的Dubbo,与早期的 Spring Framework 2.5 存在类似的不足,即注解支持不够充分。注解需要和 XML 配置文件配合使用,如下所示:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#719e07><?xml version="1.0" encoding="UTF-8"?></span>
</span></span><span style=display:flex><span><span style=color:#268bd2><beans</span> xmlns:xsi=<span style=color:#2aa198>"http://www.w3.org/2001/XMLSchema-instance"</span>
</span></span><span style=display:flex><span> xmlns:dubbo=<span style=color:#2aa198>"http://code.alibabatech.com/schema/dubbo"</span>
diff --git "a/zh/blog/2018/08/07/\344\275\277\347\224\250jdk17\347\274\226\350\257\221\350\277\220\350\241\214dubbo-2.7.14\351\241\271\347\233\256/index.html" "b/zh/blog/2018/08/07/\344\275\277\347\224\250jdk17\347\274\226\350\257\221\350\277\220\350\241\214dubbo-2.7.14\351\241\271\347\233\256/index.html"
index 9aab6a373e..72aecfba0c 100644
--- "a/zh/blog/2018/08/07/\344\275\277\347\224\250jdk17\347\274\226\350\257\221\350\277\220\350\241\214dubbo-2.7.14\351\241\271\347\233\256/index.html"
+++ "b/zh/blog/2018/08/07/\344\275\277\347\224\250jdk17\347\274\226\350\257\221\350\277\220\350\241\214dubbo-2.7.14\351\241\271\347\233\256/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/%E4%BD%BF%E7%94%A8jdk17%E7%BC%96%E8%AF%91%E8%BF%90%E8%A1%8Cdubbo-2.7.14%E9%A1%B9%E7%9B%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name conten [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="174"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用jdk17编译运行dubbo 2.7.14项目"><meta name=twitter:description content="本文介绍了如何在jdk17环境下编译运行dubbo 2.7.14项目。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/%E4%BD%BF%E7%94%A8jdk17%E7%BC%96%E8%AF%91%E8%BF%90%E8%A1%8Cdubbo-2.7.14%E9%A1%B9%E7%9B%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name conten [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="174"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用jdk17编译运行dubbo 2.7.14项目"><meta name=twitter:description content="本文介绍了如何在jdk17环境下编译运行dubbo 2.7.14项目。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
首先使用java 17作为我们的开发环境,通过</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>git clone git@github.com:apache/dubbo.git
</span></span><span style=display:flex><span>git checkout dubbo-2.7.14
</span></span><span style=display:flex><span>cd dubbo-demo/dubbo-demo-annotation
@@ -33,7 +33,7 @@
</span></span><span style=display:flex><span> </dependency>
</span></span></code></pre></div><p>再次运行provider和consumer<br>可以看到consumer端成功输出了类似的结果</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>result :Hello world, response from provider: *.*.*.*/<unresolved>:20880
</span></span></code></pre></div><p>provider端也有对应的日志</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>Hello world, request from consumer: /*.*.*.*:43346
-</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E5%BA%94%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8-zookeeper/ aria-label="上一页 - 在 Dubbo 应用中使用 Zookeeper" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/08/07/dubbo-101/ aria-label="下一页 - 第一个 Dubbo 应用" class="btn btn-primary">下一页<span class=ml-1>→</span></a></li></ul></div></main></div></div><f [...]
+</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B3%A8%E8%A7%A3/ aria-label="上一页 - 在 Dubbo 中使用注解" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/08/07/dubbo-101/ aria-label="下一页 - 第一个 Dubbo 应用" class="btn btn-primary">下一页<span class=ml-1>→</span></a></li></ul></div></main></div></div><footer class="bg-dark [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/07/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250\346\263\250\350\247\243/index.html" "b/zh/blog/2018/08/07/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250\346\263\250\350\247\243/index.html"
index d6b363600a..279043bc95 100644
--- "a/zh/blog/2018/08/07/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250\346\263\250\350\247\243/index.html"
+++ "b/zh/blog/2018/08/07/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250\346\263\250\350\247\243/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B3%A8%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在 Dubbo 中使用注解"><meta item [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="994"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在 Dubbo 中使用注解"><meta name=twitter:description content="介绍了如何使用注解方式而非 XML 方式来开发 Dubbo 应用,可以学习到如何使用 @EnableDubbo、@Service、@Reference 的用法。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%B3%A8%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在 Dubbo 中使用注解"><meta item [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="994"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在 Dubbo 中使用注解"><meta name=twitter:description content="介绍了如何使用注解方式而非 XML 方式来开发 Dubbo 应用,可以学习到如何使用 @EnableDubbo、@Service、@Reference 的用法。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/07/use-annotations-in-dubbo/>English</a></div></li></ul></div><div class="navbar-nav d [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#268bd2>@EnableDubboConfig</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>@DubboComponentScan</span>
@@ -191,7 +191,7 @@
</span></span></code></pre></div><p>说明:</p><ol><li><p>初始化一个 <code>AnnotationConfigApplicationContext</code> 的示例,并将 <code>ConsumerConfiguration</code> 传入以完成 Dubbo 服务消费者的自动发现和装配</p></li><li><p>启动 Spring Context</p></li><li><p>从 Context 中查找出类型为 <code>GreetingServiceConsumer</code> 的 Bean</p></li><li><p>调用 <code>doSayHello</code> 方法,最终通过 Dubbo 的服务引用(由 <code>@Reference</code> 标注)发起一次远程调用</p></li><li><p>打印调用结果</p></li></ol><p>启动客户端的 <code>main</code> 方法,将会看到下面的输出,其中返回结果为 result: hello, annotat [...]
</span></span><span style=display:flex><span><span style=color:#719e07>[</span>01/08/18 02:38:40:040 CST<span style=color:#719e07>]</span> main INFO annotation.ReferenceBeanBuilder: <dubbo:reference <span style=color:#268bd2>object</span><span style=color:#719e07>=</span><span style=color:#2aa198>"com.alibaba.dubbo.common.bytecode.proxy0@673be18f"</span> <span style=color:#268bd2>singleton</span><span style=color:#719e07>=</span><span style=color:#2aa198>"true"</span> [...]
</span></span><span style=display:flex><span>result: hello, annotation
-</span></span></code></pre></div><h2 id=总结>总结</h2><p>通过本文的学习,读者可以掌握 Dubbo 专属的 annotation <code>@EnableDubbo</code>、<code>@Service</code>、<code>@Reference</code> 的基本概念,并通过一个简单 Dubbo 应用的实战开发掌握其基本的用法。</p><p>Spring 除了传统的 XML 配置之外,还提供了注解驱动、外部化配置、以及自动装配等更现代的配置方式。本文专注在介绍通过注解方式来开发 Dubbo 应用,可以看到,与 XML 配置相比,注解方式编程更加简洁明快。在今后的博文中,会进一步的介绍在 Dubbo 中使用外部化配置、以及自动装配的方法。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/07/30/%E7%AC%AC%E4%B8% [...]
+</span></span></code></pre></div><h2 id=总结>总结</h2><p>通过本文的学习,读者可以掌握 Dubbo 专属的 annotation <code>@EnableDubbo</code>、<code>@Service</code>、<code>@Reference</code> 的基本概念,并通过一个简单 Dubbo 应用的实战开发掌握其基本的用法。</p><p>Spring 除了传统的 XML 配置之外,还提供了注解驱动、外部化配置、以及自动装配等更现代的配置方式。本文专注在介绍通过注解方式来开发 Dubbo 应用,可以看到,与 XML 配置相比,注解方式编程更加简洁明快。在今后的博文中,会进一步的介绍在 Dubbo 中使用外部化配置、以及自动装配的方法。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/07/22/dubbo-2.7.x-repa [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/07/\345\234\250-dubbo-\345\272\224\347\224\250\344\270\255\344\275\277\347\224\250-zookeeper/index.html" "b/zh/blog/2018/08/07/\345\234\250-dubbo-\345\272\224\347\224\250\344\270\255\344\275\277\347\224\250-zookeeper/index.html"
index bcf0fb2552..db41134b8a 100644
--- "a/zh/blog/2018/08/07/\345\234\250-dubbo-\345\272\224\347\224\250\344\270\255\344\275\277\347\224\250-zookeeper/index.html"
+++ "b/zh/blog/2018/08/07/\345\234\250-dubbo-\345\272\224\347\224\250\344\270\255\344\275\277\347\224\250-zookeeper/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E5%BA%94%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8-zookeeper/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在 Dubbo 应用中使用 Z [...]
-"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="809"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在 Dubbo 应用中使用 Zookeeper"><meta name=twitter:description content="本文介绍了 Zookeeper 的基本概念、用法,以及如何在 Dubbo 应用中使用 Zookeeper 作为注册中心。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/07/%E5%9C%A8-dubbo-%E5%BA%94%E7%94%A8%E4%B8%AD%E4%BD%BF%E7%94%A8-zookeeper/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="在 Dubbo 应用中使用 Z [...]
+"><meta itemprop=datePublished content="2018-08-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="809"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="在 Dubbo 应用中使用 Zookeeper"><meta name=twitter:description content="本文介绍了 Zookeeper 的基本概念、用法,以及如何在 Dubbo 应用中使用 Zookeeper 作为注册中心。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/07/using-zookeeper-in-dubbo/>English</a></div></li></ul></div><div class="navbar-nav d [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<em>Image Credit : ebook -Zookeeper-Distributed Process Coordination from O’Reilly</em></p><p>Zookeeper 中的数据存储方式与传统的 UNIX 文件系统相似,节点按照树状结构来组织,其中,节点被称之为 <em>znodes (ZooKeeper data nodes)</em></p><p><img src=/imgs/blog/zk-tree.png alt=zk-tree>
<em>Image Credit : ebook -Zookeeper-Distributed Process Coordination from O’Reilly</em></p><h3 id=基本用法>基本用法</h3><p>可以通过直接下载的方式 <sup id=fnref:2><a href=#fn:2 class=footnote-ref role=doc-noteref>2</a></sup>安装并运行 Zookeeper ,在 Mac 上也可以通过 Homebrew <sup id=fnref:3><a href=#fn:3 class=footnote-ref role=doc-noteref>3</a></sup> <code>brew install zookeeper</code> 来安装,考虑到通用性,本文采用 docker 的方式来运行 Zookeeper。如果没有安装 docker,请先准备好 docker 环境 <sup id=fnref:4><a href=#fn:4 class=footnote-ref role=doc-n [...]
</span></span></code></pre></div><h4 id=2-进入-zookeeper-容器>2. 进入 Zookeeper 容器</h4><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>docker <span style=color:#b58900>exec</span> -it zookeeper bash
@@ -140,7 +140,7 @@
</span></span><span style=display:flex><span>...
</span></span><span style=display:flex><span><span style=color:#719e07>[</span>zk: localhost:2181<span style=color:#719e07>(</span>CONNECTED<span style=color:#719e07>)</span> 4<span style=color:#719e07>]</span> ls /dubbo/com.alibaba.dubbo.samples.api.GreetingService/consumers
</span></span><span style=display:flex><span><span style=color:#719e07>[</span>consumer%3A%2F%2F192.168.99.1%2Fcom.alibaba.dubbo.samples.api.GreetingService%3Fapplication%3Ddemo-consumer%26category%3Dconsumers%26check%3Dfalse%26default.timeout%3D3000%26dubbo%3D2.6.2%26interface%3Dcom.alibaba.dubbo.samples.api.GreetingService%26methods%3DsayHello%26pid%3D82406%26side%3Dconsumer%26timestamp%3D1533274951195<span style=color:#719e07>]</span>
-</span></span></code></pre></div><p>可以看到 Dubbo 的服务消费者在 <code>consumers</code> 节点下注册了自己的 URL 地址:<em>consumer://192.168.99.1/com.alibaba.dubbo.samples.api.GreetingService?application=demo-consumer&category=providers,configurators,routers&default.timeout=3000&dubbo=2.6.2&interface=com.alibaba.dubbo.samples.api.GreetingService&methods=sayHello&pid=82406&side=consumer×tamp=1533274951195</em></p><h2 id=总结>总结</h2><p>本文侧重介绍了如何在 Dubbo 应用中使用 Zookeeper 做为注册中心,当然,本文也提到了 Zookeeper 在 Dubbo 的应用场景下 [...]
+</span></span></code></pre></div><p>可以看到 Dubbo 的服务消费者在 <code>consumers</code> 节点下注册了自己的 URL 地址:<em>consumer://192.168.99.1/com.alibaba.dubbo.samples.api.GreetingService?application=demo-consumer&category=providers,configurators,routers&default.timeout=3000&dubbo=2.6.2&interface=com.alibaba.dubbo.samples.api.GreetingService&methods=sayHello&pid=82406&side=consumer×tamp=1533274951195</em></p><h2 id=总结>总结</h2><p>本文侧重介绍了如何在 Dubbo 应用中使用 Zookeeper 做为注册中心,当然,本文也提到了 Zookeeper 在 Dubbo 的应用场景下 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/10/dubbo\347\232\204\350\264\237\350\275\275\345\235\207\350\241\241/index.html" "b/zh/blog/2018/08/10/dubbo\347\232\204\350\264\237\350\275\275\345\235\207\350\241\241/index.html"
index 88f1b6738c..49449091dd 100644
--- "a/zh/blog/2018/08/10/dubbo\347\232\204\350\264\237\350\275\275\345\235\207\350\241\241/index.html"
+++ "b/zh/blog/2018/08/10/dubbo\347\232\204\350\264\237\350\275\275\345\235\207\350\241\241/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/10/dubbo%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-10T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo的负载均衡"><meta itemprop=descripti [...]
-"><meta itemprop=datePublished content="2018-08-10T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="471"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo的负载均衡"><meta name=twitter:description content="本文介绍了负载均衡的相关概念以及 Dubbo 中的负载均衡策略实现。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/10/dubbo%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-10T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo的负载均衡"><meta itemprop=descripti [...]
+"><meta itemprop=datePublished content="2018-08-10T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="471"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo的负载均衡"><meta name=twitter:description content="本文介绍了负载均衡的相关概念以及 Dubbo 中的负载均衡策略实现。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/10/dubbos-load-balance/>English</a></div></li></ul></div><div class="navbar-nav d-none [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>| | | | |
</span></span><span style=display:flex><span>+-----------------------------------------------------------------------------------+
</span></span><span style=display:flex><span>1 10 30 50 80
diff --git "a/zh/blog/2018/08/14/dubbo-\344\274\230\351\233\205\345\201\234\346\234\272/index.html" "b/zh/blog/2018/08/14/dubbo-\344\274\230\351\233\205\345\201\234\346\234\272/index.html"
index 95354f9ded..8c1cb11eb9 100644
--- "a/zh/blog/2018/08/14/dubbo-\344\274\230\351\233\205\345\201\234\346\234\272/index.html"
+++ "b/zh/blog/2018/08/14/dubbo-\344\274\230\351\233\205\345\201\234\346\234\272/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E4%BC%98%E9%9B%85%E5%81%9C%E6%9C%BA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 优雅停机"><meta itemprop=description conte [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="121"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 优雅停机"><meta name=twitter:description content="本文介绍了Dubbo优雅停机的原理和使用方式
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E4%BC%98%E9%9B%85%E5%81%9C%E6%9C%BA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 优雅停机"><meta itemprop=description conte [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="121"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 优雅停机"><meta name=twitter:description content="本文介绍了Dubbo优雅停机的原理和使用方式
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></code></pre></div><h3 id=容器的优雅停机>容器的优雅停机</h3><p>当使用<code>org.apache.dubbo.container.Main</code>这种容器方式来使用 Dubbo 时,也可以通过配置<code>dubbo.shutdown.hook</code>为<code>true</code>来开启优雅停机。</p><h3 id=通过qos优雅上下线>通过QOS优雅上下线</h3><p>基于<code>ShutdownHook</code>方式的优雅停机无法确保所有关闭流程一定执行完,所以 Dubbo 推出了多段关闭的方式来保证服务完全无损。</p><p>多段关闭即将停止应用分为多个步骤,通过运维自动化脚本或手工操作的方式来保证脚本每一阶段都能执行完毕。</p><p>在关闭应用前,首先通过 QOS 的<code>offline</code>指令下线所有服务,然后等待一定时间确保已经到达请求全部处理完毕,由于服务已经在注册中心下线,当前应用不会有新的请求。这时再执行真正的关闭(<code>SIGT [...]
</span></span></span><span style=display:flex><span><span style=color:#586e75> * Register the ShutdownHook
</span></span></span><span style=display:flex><span><span style=color:#586e75> */</span>
diff --git "a/zh/blog/2018/08/14/dubbo-\345\205\263\344\272\216\345\220\214\346\255\245/\345\274\202\346\255\245\350\260\203\347\224\250\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217/index.html" "b/zh/blog/2018/08/14/dubbo-\345\205\263\344\272\216\345\220\214\346\255\245/\345\274\202\346\255\245\350\260\203\347\224\250\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217/index.html"
index 1d7ae76f3e..7937b86e8e 100644
--- "a/zh/blog/2018/08/14/dubbo-\345\205\263\344\272\216\345\220\214\346\255\245/\345\274\202\346\255\245\350\260\203\347\224\250\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217/index.html"
+++ "b/zh/blog/2018/08/14/dubbo-\345\205\263\344\272\216\345\220\214\346\255\245/\345\274\202\346\255\245\350\260\203\347\224\250\347\232\204\345\207\240\347\247\215\346\226\271\345\274\217/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E5%85%B3%E4%BA%8E%E5%90%8C%E6%AD%A5/%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apach [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="438"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 关于同步/异步调用的几种方式"><meta name=twitter:description content="本文介绍了Dubbo基于异步通讯机制实现的几种同步和异步调用方式。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E5%85%B3%E4%BA%8E%E5%90%8C%E6%AD%A5/%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E7%9A%84%E5%87%A0%E7%A7%8D%E6%96%B9%E5%BC%8F/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apach [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="438"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 关于同步/异步调用的几种方式"><meta name=twitter:description content="本文介绍了Dubbo基于异步通讯机制实现的几种同步和异步调用方式。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/dubbo-several-ways-about-synchronous/asynchronous-invoke/>English</a></div></li></u [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> String <span style=color:#268bd2>goodbye</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
</span></span></code></pre></div><h3 id=consumer-配置>Consumer 配置</h3><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> id=<span style=color:#2aa198>"asyncService"</span> interface=<span style=color:#2aa198>"com.alibaba.dubbo.samples.async.api.AsyncService"</span><span style=color: [...]
diff --git "a/zh/blog/2018/08/14/dubbo-\345\237\272\346\234\254\347\224\250\346\263\225-dubbo-consumer-\351\205\215\347\275\256/index.html" "b/zh/blog/2018/08/14/dubbo-\345\237\272\346\234\254\347\224\250\346\263\225-dubbo-consumer-\351\205\215\347\275\256/index.html"
index fbfa7edcc0..478baf7bb8 100644
--- "a/zh/blog/2018/08/14/dubbo-\345\237\272\346\234\254\347\224\250\346\263\225-dubbo-consumer-\351\205\215\347\275\256/index.html"
+++ "b/zh/blog/2018/08/14/dubbo-\345\237\272\346\234\254\347\224\250\346\263\225-dubbo-consumer-\351\205\215\347\275\256/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95-dubbo-consumer-%E9%85%8D%E7%BD%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 基本用法 [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="244"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 基本用法 - Dubbo Consumer 配置"><meta name=twitter:description content="XML配置,API调用方式配置,注解方式配置
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E5%9F%BA%E6%9C%AC%E7%94%A8%E6%B3%95-dubbo-consumer-%E9%85%8D%E7%BD%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 基本用法 [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="244"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 基本用法 - Dubbo Consumer 配置"><meta name=twitter:description content="XML配置,API调用方式配置,注解方式配置
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/dubbo-basic-usage-dubbo-consumer-configuration/>English</a></div></li></ul></div><d [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><?xml version="1.0" encoding="UTF-8"?>
</span></span><span style=display:flex><span><beans xmlns="http://www.springframework.org/schema/beans"
</span></span><span style=display:flex><span> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
diff --git "a/zh/blog/2018/08/14/dubbo-\345\237\272\347\241\200\347\224\250\346\263\225-provider-\351\205\215\347\275\256/index.html" "b/zh/blog/2018/08/14/dubbo-\345\237\272\347\241\200\347\224\250\346\263\225-provider-\351\205\215\347\275\256/index.html"
index 41614819ff..6841752c15 100644
--- "a/zh/blog/2018/08/14/dubbo-\345\237\272\347\241\200\347\224\250\346\263\225-provider-\351\205\215\347\275\256/index.html"
+++ "b/zh/blog/2018/08/14/dubbo-\345\237\272\347\241\200\347\224\250\346\263\225-provider-\351\205\215\347\275\256/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95-provider-%E9%85%8D%E7%BD%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 基础用法 - Pro [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="466"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 基础用法 - Provider 配置"><meta name=twitter:description content="主要讲述如何配置dubbo,按照配置方式上可以分为:XML配置,properties方式配置,注解方式配置,API调用方式配置。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo-%E5%9F%BA%E7%A1%80%E7%94%A8%E6%B3%95-provider-%E9%85%8D%E7%BD%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 基础用法 - Pro [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="466"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 基础用法 - Provider 配置"><meta name=twitter:description content="主要讲述如何配置dubbo,按照配置方式上可以分为:XML配置,properties方式配置,注解方式配置,API调用方式配置。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/dubbo-basic-usage--dubbo-provider-configuration/>English</a></div></li></ul></div>< [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
按照功能角度进行划分,可以分为Dubbo Provider和Dubbo Consumer。接下来章节中,分别对dubbo provider和Dubbo consumer进行讲解。</p><h3 id=dubbo-provider配置>Dubbo Provider配置</h3><h4 id=provider-配置详解>Provider 配置详解</h4><p>配置Dubbo Provider有4种方式:XML配置,properties方式配置,API调用方式配置,注解方式配置。</p><h5 id=xml配置>XML配置</h5><h6 id=最简单的配置的样例>最简单的配置的样例:</h6><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:f [...]
</span></span><span style=display:flex><span><beans xmlns="http://www.springframework.org/schema/beans"
</span></span><span style=display:flex><span> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
diff --git "a/zh/blog/2018/08/14/dubbo\347\232\204\346\263\233\345\214\226\350\260\203\347\224\250/index.html" "b/zh/blog/2018/08/14/dubbo\347\232\204\346\263\233\345\214\226\350\260\203\347\224\250/index.html"
index 3c1683a957..bfa4d8b72a 100644
--- "a/zh/blog/2018/08/14/dubbo\347\232\204\346\263\233\345\214\226\350\260\203\347\224\250/index.html"
+++ "b/zh/blog/2018/08/14/dubbo\347\232\204\346\263\233\345\214\226\350\260\203\347\224\250/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo%E7%9A%84%E6%B3%9B%E5%8C%96%E8%B0%83%E7%94%A8/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo的泛化调用"><meta itemprop=descripti [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="345"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo的泛化调用"><meta name=twitter:description content="本文介绍了 Dubbo 泛化调用的使用场景及相关示例
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/dubbo%E7%9A%84%E6%B3%9B%E5%8C%96%E8%B0%83%E7%94%A8/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo的泛化调用"><meta itemprop=descripti [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="345"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo的泛化调用"><meta name=twitter:description content="本文介绍了 Dubbo 泛化调用的使用场景及相关示例
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/generic-invoke-of-dubbo/>English</a></div></li></ul></div><div class="navbar-nav d- [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></code></pre></div><p>需要使用的地方,通过强制类型转化为 GenericService 进行调用:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>GenericService userService <span style=color:#719e07>=</span> <span style=color:#719e07>(</span>GenericService<span style=color:#719e07>)</span> context<span style=color:#719e07>.</span>getBean<span style=color:#719e07> [...]
</span></span><span style=display:flex><span><span style=color:#586e75>// primary param and return value
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>String name <span style=color:#719e07>=</span> <span style=color:#719e07>(</span>String<span style=color:#719e07>)</span> userService<span style=color:#719e07>.</span>$invoke<span style=color:#719e07>(</span><span style=color:#2aa198>"delete"</span><span style=color:#719e07>,</span> <span style=color:#719e07>new</span> String<span style=color:#719e07>[]{</span><span style=color:#dc322f>int</span> [...]
diff --git "a/zh/blog/2018/08/14/spring-boot-dubbo\345\272\224\347\224\250\345\220\257\345\201\234\346\272\220\347\240\201\345\210\206\346\236\220/index.html" "b/zh/blog/2018/08/14/spring-boot-dubbo\345\272\224\347\224\250\345\220\257\345\201\234\346\272\220\347\240\201\345\210\206\346\236\220/index.html"
index e6f4417aca..37130b8ba0 100644
--- "a/zh/blog/2018/08/14/spring-boot-dubbo\345\272\224\347\224\250\345\220\257\345\201\234\346\272\220\347\240\201\345\210\206\346\236\220/index.html"
+++ "b/zh/blog/2018/08/14/spring-boot-dubbo\345\272\224\347\224\250\345\220\257\345\201\234\346\272\220\347\240\201\345\210\206\346\236\220/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/spring-boot-dubbo%E5%BA%94%E7%94%A8%E5%90%AF%E5%81%9C%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name conten [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="534"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Spring Boot Dubbo应用启停源码分析"><meta name=twitter:description content="本文分析 `dubbo-spring-boot-project` 中 Dubbo 启停源码的实现原理。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/spring-boot-dubbo%E5%BA%94%E7%94%A8%E5%90%AF%E5%81%9C%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name conten [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="534"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Spring Boot Dubbo应用启停源码分析"><meta name=twitter:description content="本文分析 `dubbo-spring-boot-project` 中 Dubbo 启停源码的实现原理。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/source-code-analysis-of-spring-boot-dubbo-app-start-and-stop/>English</a></div></li [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>DubboConsumerDemo</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> <span style=color:#268bd2>static</span> <span style=color:#dc322f>void</span> <span style=color:#268bd2>main</span><span style=color:#719e07>(</span>String<span style=color:#719e07>[]</span> args<span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
@@ -115,7 +115,7 @@
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>}).</span>start<span style=color:#719e07>();</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
-</span></span></code></pre></div><p>[1] <a href=https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.8>https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.8</a></p><p>[2] <a href=https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#addShutdownHook>https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#addShutdownHook</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018 [...]
+</span></span></code></pre></div><p>[1] <a href=https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.8>https://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.8</a></p><p>[2] <a href=https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#addShutdownHook>https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html#addShutdownHook</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/14/\344\273\216\350\267\250\350\257\255\350\250\200\350\260\203\347\224\250\345\210\260dubbo2.js/index.html" "b/zh/blog/2018/08/14/\344\273\216\350\267\250\350\257\255\350\250\200\350\260\203\347\224\250\345\210\260dubbo2.js/index.html"
index e7357fb510..4ec5ead15e 100644
--- "a/zh/blog/2018/08/14/\344\273\216\350\267\250\350\257\255\350\250\200\350\260\203\347\224\250\345\210\260dubbo2.js/index.html"
+++ "b/zh/blog/2018/08/14/\344\273\216\350\267\250\350\257\255\350\250\200\350\260\203\347\224\250\345\210\260dubbo2.js/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/%E4%BB%8E%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E5%88%B0dubbo2.js/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="从跨语言调用到dubbo2. [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="638"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="从跨语言调用到dubbo2.js"><meta name=twitter:description content="本文介绍了如何使用 dubbo2.js 进行跨语言的 dubbo 调用。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/%E4%BB%8E%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E5%88%B0dubbo2.js/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="从跨语言调用到dubbo2. [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="638"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="从跨语言调用到dubbo2.js"><meta name=twitter:description content="本文介绍了如何使用 dubbo2.js 进行跨语言的 dubbo 调用。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/implementation-of-cross-language-calls-by-dubbo2.js/>English</a></div></li></ul></d [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
跨语言调用是一个很大的话题,也是一个很有挑战的技术活,目前业界经常被提及的解决方案有如下几种,不妨拿出来老生常谈一番:</p><ul><li>spring cloud。spring cloud 提供了一整套微服务开发组件,它主要面向 java 开发,但由于其使用的协议是基于 restful 风格的 http 协议,这使得其天然具备跨语言能力,异构语言只需要提供 http 客户端,便可以实现跨语言调用。</li><li>service mesh。号称下一代微服务框架的 service mesh,其解决跨语言问题的核心在于 SideCar ,SideCar 在 service mesh 的发展过程中概念不断的迁移,但本质都是完成了一件事:处理服务间通信,负责实现请求的可靠传递。</li><li>motan。<a href=https://github.com/weibocom/motan>motan</a> 是新浪微博开源的一款跨语言服务治理框架,在其早期版本中仅支持 motan-java,随着版本演进,在目前最新版本(1.1.0)中,提�
��了 motan-go,motan- [...]
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:protocol</span> name=<span style=color:#2aa198>"jsonrpc"</span> port=<span style=color:#2aa198>"8080"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><p>dubbo 协议主要支持 java 间的相互调用,适配老接口;json-rpc 协议主要支持异构语言的调用。</p><h3 id=定制协议的跨语言支持>定制协议的跨语言支持</h3><p>微服务框架所谓的协议(protocol)可以简单理解为:报文格式和序列化方案。服务治理框架一般都提供了众多的协议配置项供使用者选择,除去上述两种通用协议,还存在一些定制化的协议,如 dubbo 框架的默认协议:dubbo 协议以及 motan 框架提供的跨语言协议:motan2。</p><h4 id=motan2协议的跨语言支持>motan2协议的跨语言支持</h4><p><img src=/imgs/blog/motan-protocol.png alt=motan2></p><p>motan2 协议被设计用来满足跨语言的需求主要体现在两个细节中—MetaData 和 motan-go。在最初的 motan 协议中,协议报文仅由 Header+Body 组成,这样导致 path,param,group 等存储在 [...]
@@ -116,7 +116,7 @@
</span></span><span style=display:flex><span>});
</span></span></code></pre></div><h3 id=3-执行调用>3. 执行调用</h3><p>Debug 模式启动 nodejs 客户端:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sh data-lang=sh><span style=display:flex><span><span style=color:#268bd2>DEBUG</span><span style=color:#719e07>=</span>dubbo* ts-node main.ts
</span></span></code></pre></div><p>查看运行结果:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-sh data-lang=sh><span style=display:flex><span>Hello kirito, response form provider: 172.19.6.151:20880
-</span></span></code></pre></div><p>Congratulation!</p><h2 id=dubbo2js特性>dubbo2.js特性</h2><ul><li>支持 zookeeper 注册中心</li><li>支持原生 dubbo 协议</li><li>支持服务直连</li><li>全链路跟踪</li><li>dubbo 接口自动生成</li></ul><h2 id=更多细节>更多细节</h2><p>本文中的示例代码,提供在此处,<a href=https://github.com/dubbo/dubbo2.js>https://github.com/dubbo/dubbo2.js</a> 。如果你对 dubbo 协议不甚了解,想要理解它的工作原理,项目中提供了一个子 moudle — java-socket-consumer,使用面向过程的思路实现了 java-socket-consumer,完成了原生 socket 发送 dubbo 协议报文,完成方法调用,并获取响应的全流程。</p><ul class="list-unstyle [...]
+</span></span></code></pre></div><p>Congratulation!</p><h2 id=dubbo2js特性>dubbo2.js特性</h2><ul><li>支持 zookeeper 注册中心</li><li>支持原生 dubbo 协议</li><li>支持服务直连</li><li>全链路跟踪</li><li>dubbo 接口自动生成</li></ul><h2 id=更多细节>更多细节</h2><p>本文中的示例代码,提供在此处,<a href=https://github.com/dubbo/dubbo2.js>https://github.com/dubbo/dubbo2.js</a> 。如果你对 dubbo 协议不甚了解,想要理解它的工作原理,项目中提供了一个子 moudle — java-socket-consumer,使用面向过程的思路实现了 java-socket-consumer,完成了原生 socket 发送 dubbo 协议报文,完成方法调用,并获取响应的全流程。</p><ul class="list-unstyle [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/14/\351\200\232\350\277\207qos\345\257\271\346\234\215\345\212\241\350\277\233\350\241\214\345\212\250\346\200\201\346\216\247\345\210\266/index.html" "b/zh/blog/2018/08/14/\351\200\232\350\277\207qos\345\257\271\346\234\215\345\212\241\350\277\233\350\241\214\345\212\250\346\200\201\346\216\247\345\210\266/index.html"
index 5daa27c5f4..2c87bc4610 100644
--- "a/zh/blog/2018/08/14/\351\200\232\350\277\207qos\345\257\271\346\234\215\345\212\241\350\277\233\350\241\214\345\212\250\346\200\201\346\216\247\345\210\266/index.html"
+++ "b/zh/blog/2018/08/14/\351\200\232\350\277\207qos\345\257\271\346\234\215\345\212\241\350\277\233\350\241\214\345\212\250\346\200\201\346\216\247\345\210\266/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/%E9%80%9A%E8%BF%87qos%E5%AF%B9%E6%9C%8D%E5%8A%A1%E8%BF%9B%E8%A1%8C%E5%8A%A8%E6%80%81%E6%8E%A7%E5%88%B6/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itempro [...]
-"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="365"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="通过QoS对服务进行动态控制"><meta name=twitter:description content="本文介绍了如何使用Dubbo的QoS功能对服务进行动态配置,以及相关的参数及配置方式。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/14/%E9%80%9A%E8%BF%87qos%E5%AF%B9%E6%9C%8D%E5%8A%A1%E8%BF%9B%E8%A1%8C%E5%8A%A8%E6%80%81%E6%8E%A7%E5%88%B6/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itempro [...]
+"><meta itemprop=datePublished content="2018-08-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="365"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="通过QoS对服务进行动态控制"><meta name=twitter:description content="本文介绍了如何使用Dubbo的QoS功能对服务进行动态配置,以及相关的参数及配置方式。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/manipulating-services-dynamically-via-qos/>English</a></div></li></ul></div><div cl [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>Trying 127.0.0.1...
</span></span><span style=display:flex><span>Connected to localhost.
</span></span><span style=display:flex><span>Escape character is '^]'.
@@ -116,7 +116,7 @@
</span></span></code></pre></div><h3 id=使用spring-boot自动装配方式配置>使用spring-boot自动装配方式配置</h3><p>如果是spring-boot的应用,可以在<code>application.properties</code>或者<code>application.yml</code>上配置:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>dubbo.application.qosEnable=true
</span></span><span style=display:flex><span>dubbo.application.qosPort=33333
</span></span><span style=display:flex><span>dubbo.application.qosAcceptForeignIp=false
-</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/10/dubbo%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/ aria-label="上一页 - Dubbo的负载均衡" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/08/14/%E4%BB%8E%E8%B7%A8%E8%AF%AD%E8%A8%80%E8%B0%83%E7%94%A8%E5%88%B0dubbo2.js/ aria-label="下一页 - 从跨语言调用到dubbo2.js" class="btn btn-primary">下一页<span class=ml-1>→</span></a></li [...]
+</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/10/dubbo%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1/ aria-label="上一页 - Dubbo的负载均衡" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/08/14/spring-boot-dubbo%E5%BA%94%E7%94%A8%E5%90%AF%E5%81%9C%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90/ aria-label="下一页 - Spring Boot Dubbo应用启停源码分析" class="btn btn-primary">下一页<span c [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/15/dubbo2.7-\344\270\211\345\244\247\346\226\260\347\211\271\346\200\247\350\257\246\350\247\243/index.html" "b/zh/blog/2018/08/15/dubbo2.7-\344\270\211\345\244\247\346\226\260\347\211\271\346\200\247\350\257\246\350\247\243/index.html"
index d103b5b3c8..3485564a21 100644
--- "a/zh/blog/2018/08/15/dubbo2.7-\344\270\211\345\244\247\346\226\260\347\211\271\346\200\247\350\257\246\350\247\243/index.html"
+++ "b/zh/blog/2018/08/15/dubbo2.7-\344\270\211\345\244\247\346\226\260\347\211\271\346\200\247\350\257\246\350\247\243/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/15/dubbo2.7-%E4%B8%89%E5%A4%A7%E6%96%B0%E7%89%B9%E6%80%A7%E8%AF%A6%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo2.7 三大新特性 [...]
-"><meta itemprop=datePublished content="2018-08-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="442"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo2.7 三大新特性详解"><meta name=twitter:description content="异步化改造,三大中心改造,服务治理增强
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/15/dubbo2.7-%E4%B8%89%E5%A4%A7%E6%96%B0%E7%89%B9%E6%80%A7%E8%AF%A6%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo2.7 三大新特性 [...]
+"><meta itemprop=datePublished content="2018-08-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="442"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo2.7 三大新特性详解"><meta name=twitter:description content="异步化改造,三大中心改造,服务治理增强
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></code></pre></div><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>AsyncService</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> String <span style=color:#268bd2>sayHello</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
diff --git "a/zh/blog/2018/08/19/dubbo-\347\216\260\346\234\211\345\277\203\350\267\263\346\226\271\346\241\210\346\200\273\347\273\223\344\273\245\345\217\212\346\224\271\350\277\233\345\273\272\350\256\256/index.html" "b/zh/blog/2018/08/19/dubbo-\347\216\260\346\234\211\345\277\203\350\267\263\346\226\271\346\241\210\346\200\273\347\273\223\344\273\245\345\217\212\346\224\271\350\277\233\345\273\272\350\256\256/index.html"
index 3bfb8d823e..531df24bc0 100644
--- "a/zh/blog/2018/08/19/dubbo-\347\216\260\346\234\211\345\277\203\350\267\263\346\226\271\346\241\210\346\200\273\347\273\223\344\273\245\345\217\212\346\224\271\350\277\233\345\273\272\350\256\256/index.html"
+++ "b/zh/blog/2018/08/19/dubbo-\347\216\260\346\234\211\345\277\203\350\267\263\346\226\271\346\241\210\346\200\273\347\273\223\344\273\245\345\217\212\346\224\271\350\277\233\345\273\272\350\256\256/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/19/dubbo-%E7%8E%B0%E6%9C%89%E5%BF%83%E8%B7%B3%E6%96%B9%E6%A1%88%E6%80%BB%E7%BB%93%E4%BB%A5%E5%8F%8A%E6%94%B9%E8%BF%9B%E5%BB%BA%E8%AE%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-19T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" conten [...]
-"><meta itemprop=datePublished content="2018-08-19T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="805"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 现有心跳方案总结以及改进建议"><meta name=twitter:description content="本文介绍了一种心跳,两种设计
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/19/dubbo-%E7%8E%B0%E6%9C%89%E5%BF%83%E8%B7%B3%E6%96%B9%E6%A1%88%E6%80%BB%E7%BB%93%E4%BB%A5%E5%8F%8A%E6%94%B9%E8%BF%9B%E5%BB%BA%E8%AE%AE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-19T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" conten [...]
+"><meta itemprop=datePublished content="2018-08-19T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="805"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 现有心跳方案总结以及改进建议"><meta name=twitter:description content="本文介绍了一种心跳,两种设计
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>final</span> DefaultFuture future <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> DefaultFuture<span style=color:#719e07>(</span>channel<span style=color:#719e07>,</span> request<span style=color:#719e07>,</span> timeout<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span> <span style=color:#586e75>// timeout check
</span></span></span><span style=display:flex><span><span style=color:#586e75></span> timeoutCheck<span style=color:#719e07>(</span>future<span style=color:#719e07>);</span>
@@ -147,7 +147,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>super</span><span style=color:#719e07>.</span>userEventTriggered<span style=color:#719e07>(</span>ctx<span style=color:#719e07>,</span> evt<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
-</span></span></code></pre></div><p>服务端处理空闲连接的方式非常简单粗暴,直接关闭连接。</p><h4 id=45-改进方案心跳总结>4.5 改进方案心跳总结</h4><ol><li><p>为什么客户端和服务端配置的超时时间不一致?</p><p>因为客户端有重试逻辑,不断发送心跳失败 n 次之后,才认为是连接断开;而服务端是直接断开,留给服务端时间得长一点。60 * 3 < 200 还说明了一个问题,双方都拥有断开连接的能力,但连接的创建是由客户端主动发起的,那么客户端也更有权利去主动断开连接。</p></li><li><p>为什么客户端检测的是读超时,而服务端检测的是读写超时?</p><p>这其实是一个心跳的共识了,仔细思考一下,定时逻辑是由客户端发起的,所以整个链路中不通的情况只有可能是:服务端接收,服务端发送,客户端接收。也就是说,只有客户端的 pong,服务端的 ping,pong �
��检测是有意义的。</p></li></ol><blockquote><p>主动追求别人的是你,主动说分手的也是你。</p></blockq [...]
+</span></span></code></pre></div><p>服务端处理空闲连接的方式非常简单粗暴,直接关闭连接。</p><h4 id=45-改进方案心跳总结>4.5 改进方案心跳总结</h4><ol><li><p>为什么客户端和服务端配置的超时时间不一致?</p><p>因为客户端有重试逻辑,不断发送心跳失败 n 次之后,才认为是连接断开;而服务端是直接断开,留给服务端时间得长一点。60 * 3 < 200 还说明了一个问题,双方都拥有断开连接的能力,但连接的创建是由客户端主动发起的,那么客户端也更有权利去主动断开连接。</p></li><li><p>为什么客户端检测的是读超时,而服务端检测的是读写超时?</p><p>这其实是一个心跳的共识了,仔细思考一下,定时逻辑是由客户端发起的,所以整个链路中不通的情况只有可能是:服务端接收,服务端发送,客户端接收。也就是说,只有客户端的 pong,服务端的 ping,pong �
��检测是有意义的。</p></li></ol><blockquote><p>主动追求别人的是你,主动说分手的也是你。</p></blockq [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/22/dubbo-\351\233\206\347\276\244\345\256\271\351\224\231/index.html" "b/zh/blog/2018/08/22/dubbo-\351\233\206\347\276\244\345\256\271\351\224\231/index.html"
index 5b6438229e..2e473316fd 100644
--- "a/zh/blog/2018/08/22/dubbo-\351\233\206\347\276\244\345\256\271\351\224\231/index.html"
+++ "b/zh/blog/2018/08/22/dubbo-\351\233\206\347\276\244\345\256\271\351\224\231/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/22/dubbo-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 集群容错"><meta itemprop=description conte [...]
-"><meta itemprop=datePublished content="2018-08-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="262"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 集群容错"><meta name=twitter:description content="在分布式系统中,集群某个某些节点出现问题是大概率事件,因此在设计分布式RPC框架的过程中,必须要把失败作为设计的一等公民来对待。一次调用失败之后,应该如何选择对失败的选择策略,这是一个见仁见智的问题,每种策略可能都有自己独特的应用场景。因此,作为框架来说,应当针对不同场景提供多种策略,供用户进行选择。本文介绍了Dubbo框 [...]
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/22/dubbo-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 集群容错"><meta itemprop=description conte [...]
+"><meta itemprop=datePublished content="2018-08-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="262"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 集群容错"><meta name=twitter:description content="在分布式系统中,集群某个某些节点出现问题是大概率事件,因此在设计分布式RPC框架的过程中,必须要把失败作为设计的一等公民来对待。一次调用失败之后,应该如何选择对失败的选择策略,这是一个见仁见智的问题,每种策略可能都有自己独特的应用场景。因此,作为框架来说,应当针对不同场景提供多种策略,供用户进行选择。本文介绍了Dubbo框 [...]
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></code></pre></div><p>以XML方式为例,具体配置方法如下:</p><p>服务提供方,服务级配置</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:service</span> interface=<span style=color:#2aa198>"org.apache.dubbo.demo.DemoService"</span> ref=<span style=color:#2aa198>"demoService"</span> cluster=<span style=color: [...]
</span></span></code></pre></div><p>服务提供方,方法级配置</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:service</span> interface=<span style=color:#2aa198>"org.apache.dubbo.demo.DemoService"</span> ref=<span style=color:#2aa198>"demoService"</span>cluster=<span style=color:#2aa198>"failover" [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo:method</span> name=<span style=color:#2aa198>"sayHello"</span> retries=<span style=color:#2aa198>"2"</span> <span style=color:#268bd2>/></span>
@@ -64,7 +64,7 @@ Maven 项目结构:</p><div class=highlight><pre tabindex=0 style=color:#93a1a
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
</span></span></code></pre></div><p><code>META-INF/dubbo/com.alibaba.dubbo.rpc.cluster.Cluster</code>文件的内容为</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>xxx=com.xxx.XxxCluster
-</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/22/spring%E5%BA%94%E7%94%A8%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90dubbo--hystrix/ aria-label="上一页 - Spring应用快速集成Dubbo + Hystrix" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/08/26/%E7%AC%AC%E5%9B%9B%E5%B1%8Adubbo%E5%BC%80%E5%8F%91%E8%80%85%E6%B2%99%E9%BE%99%E4%BA%8E8%E6%9C%8826%E6%97%A5%E5%9C%A8%E6%88%90%E9% [...]
+</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/19/dubbo-%E7%8E%B0%E6%9C%89%E5%BF%83%E8%B7%B3%E6%96%B9%E6%A1%88%E6%80%BB%E7%BB%93%E4%BB%A5%E5%8F%8A%E6%94%B9%E8%BF%9B%E5%BB%BA%E8%AE%AE/ aria-label="上一页 - Dubbo 现有心跳方案总结以及改进建议" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%9F%BA%E4%BA%8Edubbo%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%BC%82% [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/22/spring\345\272\224\347\224\250\345\277\253\351\200\237\351\233\206\346\210\220dubbo--hystrix/index.html" "b/zh/blog/2018/08/22/spring\345\272\224\347\224\250\345\277\253\351\200\237\351\233\206\346\210\220dubbo--hystrix/index.html"
index 88f9364225..a06cabc568 100644
--- "a/zh/blog/2018/08/22/spring\345\272\224\347\224\250\345\277\253\351\200\237\351\233\206\346\210\220dubbo--hystrix/index.html"
+++ "b/zh/blog/2018/08/22/spring\345\272\224\347\224\250\345\277\253\351\200\237\351\233\206\346\210\220dubbo--hystrix/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/22/spring%E5%BA%94%E7%94%A8%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90dubbo--hystrix/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Spring应用快速集成 [...]
-"><meta itemprop=datePublished content="2018-08-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="356"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Spring应用快速集成Dubbo + Hystrix"><meta name=twitter:description content="本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/08/22/spring%E5%BA%94%E7%94%A8%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90dubbo--hystrix/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-08-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Spring应用快速集成 [...]
+"><meta itemprop=datePublished content="2018-08-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="356"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Spring应用快速集成Dubbo + Hystrix"><meta name=twitter:description content="本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2><groupId></span>org.springframework.cloud<span style=color:#268bd2></groupId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><artifactId></span>spring-cloud-starter-netflix-hystrix<span style=color:#268bd2></artifactId></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><version></span>1.4.4.RELEASE<span style=color:#268bd2></version></span>
@@ -101,7 +101,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> HystrixCommandAspect <span style=color:#268bd2>hystrixCommandAspect</span><span style=color:#719e07>()</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> <span style=color:#719e07>new</span> HystrixCommandAspect<span style=color:#719e07>();</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
-</span></span></code></pre></div></li></ol><p>可见<code>spring-cloud-starter-netflix-hystrix</code>实际上也是创建了<code>HystrixCommandAspect</code>来集成Hystrix。</p><p>另外<code>spring-cloud-starter-netflix-hystrix</code>里还有metrics, health, dashboard等集成。</p><h2 id=总结>总结</h2><ul><li>对于dubbo provider的<code>@Service</code>是一个spring bean,直接在上面配置<code>@HystrixCommand</code>即可</li><li>对于dubbo consumer的<code>@Reference</code>,可以通过加一层简单的spring method包装,配置<code>@HystrixCommand</code>即可</li><li>Hystrix本身提供<code [...]
+</span></span></code></pre></div></li></ol><p>可见<code>spring-cloud-starter-netflix-hystrix</code>实际上也是创建了<code>HystrixCommandAspect</code>来集成Hystrix。</p><p>另外<code>spring-cloud-starter-netflix-hystrix</code>里还有metrics, health, dashboard等集成。</p><h2 id=总结>总结</h2><ul><li>对于dubbo provider的<code>@Service</code>是一个spring bean,直接在上面配置<code>@HystrixCommand</code>即可</li><li>对于dubbo consumer的<code>@Reference</code>,可以通过加一层简单的spring method包装,配置<code>@HystrixCommand</code>即可</li><li>Hystrix本身提供<code [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/08/26/\347\254\254\345\233\233\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\344\272\2168\346\234\21026\346\227\245\345\234\250\346\210\220\351\203\275\344\270\276\350\241\214/index.html" "b/zh/blog/2018/08/26/\347\254\254\345\233\233\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\344\272\2168\346\234\21026\346\227\245\345\234\250\346\210\220\351\203\275\344\270\276\350\241\214/index.html"
index 81d69e6999..a339fdd160 100644
--- "a/zh/blog/2018/08/26/\347\254\254\345\233\233\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\344\272\2168\346\234\21026\346\227\245\345\234\250\346\210\220\351\203\275\344\270\276\350\241\214/index.html"
+++ "b/zh/blog/2018/08/26/\347\254\254\345\233\233\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\344\272\2168\346\234\21026\346\227\245\345\234\250\346\210\220\351\203\275\344\270\276\350\241\214/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/26/the-fourth-dubbo-meetup-has-been-held-in-chengdu/>English</a></div></li></ul></div> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/09/02/\345\246\202\344\275\225\345\207\206\345\244\207apache-release/index.html" "b/zh/blog/2018/09/02/\345\246\202\344\275\225\345\207\206\345\244\207apache-release/index.html"
index 6af6557d04..784f6e9d58 100644
--- "a/zh/blog/2018/09/02/\345\246\202\344\275\225\345\207\206\345\244\207apache-release/index.html"
+++ "b/zh/blog/2018/09/02/\345\246\202\344\275\225\345\207\206\345\244\207apache-release/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%87%86%E5%A4%87apache-release/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="如何准备Apache Release"><meta itemprop=d [...]
-"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1358"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何准备Apache Release"><meta name=twitter:description content="本文介绍了Apache如何发布内容和流程
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%87%86%E5%A4%87apache-release/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="如何准备Apache Release"><meta itemprop=d [...]
+"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1358"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何准备Apache Release"><meta name=twitter:description content="本文介绍了Apache如何发布内容和流程
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/09/02/how-to-prepare-an-apache-release/>English</a></div></li></ul></div><div class="navb [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>$ gpg --version <span style=color:#586e75>#检查版本,应该为2.x</span>
</span></span></code></pre></div><h3 id=用gpg生成key>用gpg生成key</h3><p>根据提示,生成key</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-shell data-lang=shell><span style=display:flex><span>$ gpg --full-gen-key
</span></span><span style=display:flex><span>gpg <span style=color:#719e07>(</span>GnuPG<span style=color:#719e07>)</span> 2.0.12; Copyright <span style=color:#719e07>(</span>C<span style=color:#719e07>)</span> <span style=color:#2aa198>2009</span> Free Software Foundation, Inc.
@@ -237,7 +237,7 @@ https://dist.apache.org/repos/dist/dev/incubator/dubbo/${release_version}/
</span></span><span style=display:flex><span>[3] https://github.com/apache/dubbo/releases
</span></span><span style=display:flex><span>[4] https://github.com/apache/dubbo/issues
</span></span></code></pre></div><h2 id=完成maven-convenient-binary发布可选>完成Maven Convenient Binary发布(可选)</h2><p><strong>repository.apache.org</strong> nexus仓库的权限已经申请,参见<a href=https://issues.apache.org/jira/browse/INFRA-16451>jira</a></p><p>发布jar包到maven仓库,首先访问<a href=https://repository.apache.org>repository.apache.org</a>, 选择<code>staging repository</code>, 点击<code>release</code>按钮。等待一段时间之后,在<a href=https://repository.apache.org/content/repositories/releases/org/apache/dubbo/>这里</a>确认完整性和正确 [...]
-</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/26/%E7%AC%AC%E5%9B%9B%E5%B1%8Adubbo%E5%BC%80%E5%8F%91%E8%80%85%E6%B2%99%E9%BE%99%E4%BA%8E8%E6%9C%8826%E6%97%A5%E5%9C%A8%E6%88%90%E9%83%BD%E4%B8%BE%E8%A1%8C/ aria-label="上一页 - 第四届Dubbo开发者沙龙于8月26日在成都举行" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%9F%BA%E4%BA%8Edubbo%E5%AE%9E%E7% [...]
+</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/26/%E7%AC%AC%E5%9B%9B%E5%B1%8Adubbo%E5%BC%80%E5%8F%91%E8%80%85%E6%B2%99%E9%BE%99%E4%BA%8E8%E6%9C%8826%E6%97%A5%E5%9C%A8%E6%88%90%E9%83%BD%E4%B8%BE%E8%A1%8C/ aria-label="上一页 - 第四届Dubbo开发者沙龙于8月26日在成都举行" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/12/10/%E7%AC%AC%E4%BA%94%E5%B1%8Adubbo%E5%BC%80%E5%8F%91%E8% [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/09/02/\345\246\202\344\275\225\345\237\272\344\272\216dubbo\345\256\236\347\216\260\345\205\250\345\274\202\346\255\245\350\260\203\347\224\250\351\223\276/index.html" "b/zh/blog/2018/09/02/\345\246\202\344\275\225\345\237\272\344\272\216dubbo\345\256\236\347\216\260\345\205\250\345\274\202\346\255\245\350\260\203\347\224\250\351\223\276/index.html"
index 709a66f876..0a8dd82411 100644
--- "a/zh/blog/2018/09/02/\345\246\202\344\275\225\345\237\272\344\272\216dubbo\345\256\236\347\216\260\345\205\250\345\274\202\346\255\245\350\260\203\347\224\250\351\223\276/index.html"
+++ "b/zh/blog/2018/09/02/\345\246\202\344\275\225\345\237\272\344\272\216dubbo\345\256\236\347\216\260\345\205\250\345\274\202\346\255\245\350\260\203\347\224\250\351\223\276/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%9F%BA%E4%BA%8Edubbo%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E9%93%BE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><m [...]
-"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="656"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何基于Dubbo实现全异步调用链"><meta name=twitter:description content="本文回顾了 2.6.x 版本的异步实现,然后引出了 2.7.0 版本基于 CompletableFuture 的异步编程方式。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%9F%BA%E4%BA%8Edubbo%E5%AE%9E%E7%8E%B0%E5%85%A8%E5%BC%82%E6%AD%A5%E8%B0%83%E7%94%A8%E9%93%BE/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><m [...]
+"><meta itemprop=datePublished content="2018-09-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="656"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何基于Dubbo实现全异步调用链"><meta name=twitter:description content="本文回顾了 2.6.x 版本的异步实现,然后引出了 2.7.0 版本基于 CompletableFuture 的异步编程方式。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/09/02/how-to-implement-a-fully-asynchronous-calls-chain-based-on-dubbo/>English</a></div> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> String <span style=color:#268bd2>findFoo</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
</span></span></code></pre></div><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> id=<span style=color:#2aa198>"fooService"</span> interface=<span style=color:#2aa198>"com.alibaba.foo.FooService"</span><span style=color:#268bd2>></span>
@@ -199,7 +199,7 @@
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> <span style=color:#cb4b16>null</span><span style=color:#719e07>;</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
-</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/09/02/%E5%A6%82%E4%BD%95%E5%87%86%E5%A4%87apache-release/ aria-label="上一页 - 如何准备Apache Release" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/09/20/dubbo-mesh-service-mesh%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2%E7%B4%A2/ aria-label="下一页 - Dubbo Mesh | Service Mesh的实践与探索" class="btn btn-primary">下一页<span [...]
+</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/08/22/dubbo-%E9%9B%86%E7%BE%A4%E5%AE%B9%E9%94%99/ aria-label="上一页 - Dubbo 集群容错" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/09/20/dubbo-mesh-service-mesh%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2%E7%B4%A2/ aria-label="下一页 - Dubbo Mesh | Service Mesh的实践与探索" class="btn btn-primary">下一页<span class=ml-1>→</s [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/09/20/dubbo-mesh-service-mesh\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html" "b/zh/blog/2018/09/20/dubbo-mesh-service-mesh\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html"
index 0d4406a050..785e5bc9ec 100644
--- "a/zh/blog/2018/09/20/dubbo-mesh-service-mesh\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html"
+++ "b/zh/blog/2018/09/20/dubbo-mesh-service-mesh\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<img src=/imgs/blog/meetup-chengdu/challenges.jpg alt=img></p><h4 id=挑战二微服务框架sdk多语言并行开发与维护成本高>挑战二:微服务框架SDK多语言并行开发与维护成本高。</h4><p>以前我们都是通过对技术栈的统一来提升成本优势和团队效率,大家可以用一种语言去开发和维护,避免多语言时团队的不聚焦。但在软件和开源生态演进的过程中,多语言已经成为一种流行,因为不同语言都有其自身的优势,今天大家能看到的一个现象是云原生的生态中有多种开发语言,使用频率最高的语言已经不是Java了,而是Go,是因为Go的footprint很小。再以 Dubbo为例,除了Java,我们还提供C++,Node.js的SDK,以便让更多的开发者可以加入Dubbo生态,但所有的这些,如果没有社区力量的参与,是很难维持的。
<img src=/imgs/blog/meetup-chengdu/speaker.webp alt=img></p><h4 id=挑战三异构服务框架难以共存完成渐进式演进>挑战三:异构服务框架难以共存完成渐进式演进。</h4><p>我们结合场景来看看这个挑战。阿里巴巴收购了一些企业,被收购企业的技术栈可能和阿里巴巴不同,比如有些用的是Go语言,有些用的是PHP,这时候为了统一技术栈,我们需要对这类技术平台推倒重来,但这个过程中,我们会面临一系列问题,首当其冲的就是推倒重来会带来巨大的技术风险,其次是可能会面临技术人员大批量流失的风险,这在社会责任的层面也是很难接受。所以我们在寻求一种可能的方案,去解决这类问题。</p><h4 id=挑战四是单一的语言限制了人才的多样性>挑战四:是单一的语言限制了人才的多样性。</h4><p>这里,我们不去争论某个编程语言的好与坏,每个语言都有其适用场�
�,你不能说我手里有个榔头,你面对的都是钉子。以前我们觉得统一技术栈可以集中开发力量,并且带来较高的运维便利性。但伴随着互联网带来的快节奏,以往的团队能力设置已经很难满足这类变化,对工程 [...]
<img src=/imgs/blog/meetup-chengdu/challenges-continued.jpg alt=img></p><h4 id=挑战五是点状的服务治理难以做到及时有效和经济>挑战五:是点状的服务治理难以做到及时、有效和经济。</h4><p>微服务和架构的核心是拆分,通过拆分,让每个模块可以独立运行,跟上业务的发展速度,持续推动业务的创新。但拆完后新的问题出来了,缺少横向的内容拉通所有独立的烟囱,从而在服务治理上带来极大的挑战。</p><h2 id=分布式应用的发展趋势>分布式应用的发展趋势</h2><p>微服务会成为大规模分布式应用的主流架构。任何复杂的工程问题都会归结为devide and conquer(分而治之),意思就是就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。微服务本质是对服�
��的拆分,与工程领域惯用的“分而治之”的思路是一致的。</p><p>微服务架构下应用的开发是多语言的。没有一个语言是一家独大的,每种语言在特定场景下都有 [...]
diff --git "a/zh/blog/2018/09/30/dubbo\344\270\216kubernetes\351\233\206\346\210\220/index.html" "b/zh/blog/2018/09/30/dubbo\344\270\216kubernetes\351\233\206\346\210\220/index.html"
index e9fd2a4918..d8ac1d3732 100644
--- "a/zh/blog/2018/09/30/dubbo\344\270\216kubernetes\351\233\206\346\210\220/index.html"
+++ "b/zh/blog/2018/09/30/dubbo\344\270\216kubernetes\351\233\206\346\210\220/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/09/30/dubbo%E4%B8%8Ekubernetes%E9%9B%86%E6%88%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-30T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo与Kubernetes集成"><meta itemprop=descripti [...]
-"><meta itemprop=datePublished content="2018-09-30T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="139"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo与Kubernetes集成"><meta name=twitter:description content="本文主要尝试将Dubbo服务注册到Kubernetes,同时无缝融入Kubernetes的多租户安全体系。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/09/30/dubbo%E4%B8%8Ekubernetes%E9%9B%86%E6%88%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-09-30T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo与Kubernetes集成"><meta itemprop=descripti [...]
+"><meta itemprop=datePublished content="2018-09-30T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="139"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo与Kubernetes集成"><meta name=twitter:description content="本文主要尝试将Dubbo服务注册到Kubernetes,同时无缝融入Kubernetes的多租户安全体系。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/09/30/integrate-dubbo-with-kubernetes/>English</a></div></li></ul></div><div class="navba [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>"kind"</span>: <span style=color:#2aa198>"Pod"</span>,
</span></span><span style=display:flex><span> <span style=color:#268bd2>"namespace"</span>: <span style=color:#2aa198>"lzumwsrddf831iwarhehd14zh2-default"</span>,
</span></span><span style=display:flex><span> <span style=color:#268bd2>"name"</span>: <span style=color:#2aa198>"dubbo-k8s-demo-610694273-jq238"</span>,
diff --git "a/zh/blog/2018/10/05/dubbo-\345\215\217\350\256\256\350\257\246\350\247\243/index.html" "b/zh/blog/2018/10/05/dubbo-\345\215\217\350\256\256\350\257\246\350\247\243/index.html"
index 009e8e3440..56d29a1d9f 100644
--- "a/zh/blog/2018/10/05/dubbo-\345\215\217\350\256\256\350\257\246\350\247\243/index.html"
+++ "b/zh/blog/2018/10/05/dubbo-\345\215\217\350\256\256\350\257\246\350\247\243/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/10/05/introduction-to-the-dubbo-protocol/>English</a></div></li></ul></div><div class="na [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>Codec2</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>@Adaptive</span><span style=color:#719e07>({</span>Constants<span style=color:#719e07>.</span>CODEC_KEY<span style=color:#719e07>})</span>
diff --git "a/zh/blog/2018/10/27/dubbo\346\234\215\345\212\241\345\210\206\347\273\204\345\222\214\347\211\210\346\234\254\350\201\232\345\220\210/index.html" "b/zh/blog/2018/10/27/dubbo\346\234\215\345\212\241\345\210\206\347\273\204\345\222\214\347\211\210\346\234\254\350\201\232\345\220\210/index.html"
index f213c3dae3..66c26644e5 100644
--- "a/zh/blog/2018/10/27/dubbo\346\234\215\345\212\241\345\210\206\347\273\204\345\222\214\347\211\210\346\234\254\350\201\232\345\220\210/index.html"
+++ "b/zh/blog/2018/10/27/dubbo\346\234\215\345\212\241\345\210\206\347\273\204\345\222\214\347\211\210\346\234\254\350\201\232\345\220\210/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/10/27/dubbo%E6%9C%8D%E5%8A%A1%E5%88%86%E7%BB%84%E5%92%8C%E7%89%88%E6%9C%AC%E8%81%9A%E5%90%88/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-10-27T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
-"><meta itemprop=datePublished content="2018-10-27T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="473"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo服务分组和版本聚合"><meta name=twitter:description content="本文主要介绍了 Dubbo 中服务分组和版本聚合的概念和用法
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2018/10/27/dubbo%E6%9C%8D%E5%8A%A1%E5%88%86%E7%BB%84%E5%92%8C%E7%89%88%E6%9C%AC%E8%81%9A%E5%90%88/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2018-10-27T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
+"><meta itemprop=datePublished content="2018-10-27T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="473"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo服务分组和版本聚合"><meta name=twitter:description content="本文主要介绍了 Dubbo 中服务分组和版本聚合的概念和用法
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
其实除了服务提供者以外,Dubbo也有服务分组和版本的概念,在客户端去寻找“匹配”的服务端的时候,需要服务接口,版本号,组别这三个信息都匹配,才算是一个有效的服务端:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span> <span style=color:#268bd2>public</span> <span style=color:#268bd2>static</span> <span style=color:#dc322f>boolean</span> <span style=color:#268bd2>isMatch</span><span style=color:#719e07>(</span>URL consumer [...]
</span></span><span style=display:flex><span> String consumerInterface <span style=color:#719e07>=</span> consumerUrl<span style=color:#719e07>.</span>getServiceInterface<span style=color:#719e07>();</span>
</span></span><span style=display:flex><span> String providerInterface <span style=color:#719e07>=</span> providerUrl<span style=color:#719e07>.</span>getServiceInterface<span style=color:#719e07>();</span>
@@ -136,7 +136,7 @@
</span></span><span style=display:flex><span> <span style=color:#719e07>throw</span> <span style=color:#719e07>new</span> RpcException<span style=color:#719e07>(</span><span style=color:#2aa198>"There is no merger to merge result."</span><span style=color:#719e07>)</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> <span style=color:#719e07>new</span> RpcResult<span style=color:#719e07>(</span>result<span style=color:#719e07>);</span>
-</span></span></code></pre></div><p>这里会根据返回值的类型,获取到对应的resultMerger,除了Dubbo默认实现的类型外,也可以自己指定merger类型并且添加相应的扩展,通过实现<code>merge</code>方法类进行结果聚合。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/10/05/dubbo-%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3/ aria-label="上一页 - Dubbo 协议详解" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2018/11/07/dubbo-%E8%9E%8D%E5%90%88-nacos-%E6%88%90%E4%B8%BA%E6%B3%A8%E5%86%8C [...]
+</span></span></code></pre></div><p>这里会根据返回值的类型,获取到对应的resultMerger,除了Dubbo默认实现的类型外,也可以自己指定merger类型并且添加相应的扩展,通过实现<code>merge</code>方法类进行结果聚合。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/10/05/dubbo-%E5%8D%8F%E8%AE%AE%E8%AF%A6%E8%A7%A3/ aria-label="上一页 - Dubbo 协议详解" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2019/01/07/%E6%B5%85%E8%B0%88-rpc/ aria-label="下一页 - 浅谈 RPC" class="btn btn-pr [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/11/07/dubbo-\350\236\215\345\220\210-nacos-\346\210\220\344\270\272\346\263\250\345\206\214\344\270\255\345\277\203/index.html" "b/zh/blog/2018/11/07/dubbo-\350\236\215\345\220\210-nacos-\346\210\220\344\270\272\346\263\250\345\206\214\344\270\255\345\277\203/index.html"
index 69b8553e72..4f3e120ba0 100644
--- "a/zh/blog/2018/11/07/dubbo-\350\236\215\345\220\210-nacos-\346\210\220\344\270\272\346\263\250\345\206\214\344\270\255\345\277\203/index.html"
+++ "b/zh/blog/2018/11/07/dubbo-\350\236\215\345\220\210-nacos-\346\210\220\344\270\272\346\263\250\345\206\214\344\270\255\345\277\203/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/11/07/dubbo-integrates-with-nacos-to-become-a-registry/>English</a></div></li></ul></div> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> ...
</span></span><span style=display:flex><span>
@@ -300,7 +300,7 @@
</span></span><span style=display:flex><span>Service [name :null , port : 20883] sayName("小马哥(mercyblitz)") : Hello,小马哥(mercyblitz)
</span></span><span style=display:flex><span>Service [name :null , port : 20883] sayName("小马哥(mercyblitz)") : Hello,小马哥(mercyblitz)
</span></span><span style=display:flex><span>Service [name :null , port : 20883] sayName("小马哥(mercyblitz)") : Hello,小马哥(mercyblitz)
-</span></span></code></pre></div><p>结果同样运行和负载均衡正常,不过由于当前示例尚未添加属性 <code>demo.service.name</code> 的缘故,因此,“name”部分信息输出为 <code>null</code>。更多内容请参考:https://github.com/apache/dubbo/tree/master/dubbo-registry/dubbo-registry-nacos。</p><p>如果您关注或喜爱 Dubbo 以及 Nacos 等开源工程,不妨为它们点 “star”,加油打气链接:</p><ul><li>Apache Dubbo:https://github.com/apache/dubbo</li><li>Dubbo Nacos Registry:https://github.com/apache/dubbo/tree/master/dubbo-registry/dubbo-registry-nacos</li><li>Alibaba Nacos:https://github.com/alib [...]
+</span></span></code></pre></div><p>结果同样运行和负载均衡正常,不过由于当前示例尚未添加属性 <code>demo.service.name</code> 的缘故,因此,“name”部分信息输出为 <code>null</code>。更多内容请参考:https://github.com/apache/dubbo/tree/master/dubbo-registry/dubbo-registry-nacos。</p><p>如果您关注或喜爱 Dubbo 以及 Nacos 等开源工程,不妨为它们点 “star”,加油打气链接:</p><ul><li>Apache Dubbo:https://github.com/apache/dubbo</li><li>Dubbo Nacos Registry:https://github.com/apache/dubbo/tree/master/dubbo-registry/dubbo-registry-nacos</li><li>Alibaba Nacos:https://github.com/alib [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2018/12/10/\347\254\254\344\272\224\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\235\255\345\267\236\346\210\220\345\212\237\344\270\276\345\212\236/index.html" "b/zh/blog/2018/12/10/\347\254\254\344\272\224\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\235\255\345\267\236\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
index c60ba0f3d1..ba65cfd0a8 100644
--- "a/zh/blog/2018/12/10/\347\254\254\344\272\224\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\235\255\345\267\236\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
+++ "b/zh/blog/2018/12/10/\347\254\254\344\272\224\345\261\212dubbo\345\274\200\345\217\221\350\200\205\346\262\231\351\276\231\345\234\250\346\235\255\345\267\236\346\210\220\345\212\237\344\270\276\345\212\236/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/12/10/the-fifth-dubbo-meetup-has-been-held-in-hangzhou/>English</a></div></li></ul></div> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/01/05/dubbo-\345\234\250\347\223\234\345\255\220\344\272\214\346\211\213\350\275\246\347\232\204\345\256\236\350\267\265/index.html" "b/zh/blog/2019/01/05/dubbo-\345\234\250\347\223\234\345\255\220\344\272\214\346\211\213\350\275\246\347\232\204\345\256\236\350\267\265/index.html"
index c08395621e..939520252b 100644
--- "a/zh/blog/2019/01/05/dubbo-\345\234\250\347\223\234\345\255\220\344\272\214\346\211\213\350\275\246\347\232\204\345\256\236\350\267\265/index.html"
+++ "b/zh/blog/2019/01/05/dubbo-\345\234\250\347\223\234\345\255\220\344\272\214\346\211\213\350\275\246\347\232\204\345\256\236\350\267\265/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/05/dubbo-%E5%9C%A8%E7%93%9C%E5%AD%90%E4%BA%8C%E6%89%8B%E8%BD%A6%E7%9A%84%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-05T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content= [...]
-"><meta itemprop=datePublished content="2019-01-05T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="246"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 在瓜子二手车的实践"><meta name=twitter:description content="目前在瓜子的私有云上已经运行着数百个dubbo应用,上千个dubbo实例
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/05/dubbo-%E5%9C%A8%E7%93%9C%E5%AD%90%E4%BA%8C%E6%89%8B%E8%BD%A6%E7%9A%84%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-05T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content= [...]
+"><meta itemprop=datePublished content="2019-01-05T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="246"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 在瓜子二手车的实践"><meta name=twitter:description content="目前在瓜子的私有云上已经运行着数百个dubbo应用,上千个dubbo实例
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>super</span><span style=color:#719e07>.</span>register<span style=color:#719e07>(</span>url<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span> failedRegistered<span style=color:#719e07>.</span>remove<span style=color:#719e07>(</span>url<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span> failedUnregistered<span style=color:#719e07>.</span>remove<span style=color:#719e07>(</span>url<span style=color:#719e07>);</span>
@@ -67,7 +67,7 @@ dubbo低版本consumer不能识别dubbo2.7版本provider抛出的<code>org.apach
dubbo2.7.3默认开启qos功能,导致一些混部在物理机的dubbo服务升级时出现qos端口占用问题。关闭qos功能后恢复。</p></li><li><p><strong>自定义扩展兼容性问题</strong>
业务线对于dubbo的自定义扩展比较少,因此在自定义扩展的兼容性方面暂时还没有遇到比较难处理的问题,基本上都是变更package导致的问题,由业务线自行修复。</p></li><li><p><strong>skywalking agent兼容性问题</strong>
我们项目中一般使用skywalking进行链路追踪,由于skywalking agent6.0的plugin不支持dubbo2.7,因此统一升级skywalking agent到6.1。</p></li></ul><h2 id=三dubbo多机房方案>三、dubbo多机房方案</h2><p> 瓜子目前正在进行第二机房的建设工作,dubbo多机房是第二机房建设中比较重要的一个话题。在dubbo版本统一的前提下,我们就能够更顺利的开展dubbo多机房相关的调研与开发工作。</p><h3 id=初步方案>初步方案</h3><p> 我们咨询了dubbo社区的建议,并结合瓜子云平台的现状,初步确定了dubbo多机房的方案。</p><ol><li>在每个机房内,部署一套独立的zookeeper集群。集群间信息不同步。这样就没有了zookeeper集群跨机房延迟与数据不同步的问题。</li><li>dubbo服务注册时,仅注册到本机房的zookeeper集群;订阅时,同时订阅两个机房的zookeeper集群。</li><li>实现同机房优先调用的路由�
�辑。以减少跨机房调用导致的不 [...]
- dubbo通过环境变量路由pr: <a href=https://github.com/apache/dubbo/pull/5348>https://github.com/apache/dubbo/pull/5348</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/12/10/%E7%AC%AC%E4%BA%94%E5%B1%8Adubbo%E5%BC%80%E5%8F%91%E8%80%85%E6%B2%99%E9%BE%99%E5%9C%A8%E6%9D%AD%E5%B7%9E%E6%88%90%E5%8A%9F%E4%B8%BE%E5%8A%9E/ aria-label="上一页 - 第五届Dubbo开发者沙龙在杭州成功举办" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/b [...]
+ dubbo通过环境变量路由pr: <a href=https://github.com/apache/dubbo/pull/5348>https://github.com/apache/dubbo/pull/5348</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2018/11/07/dubbo-%E8%9E%8D%E5%90%88-nacos-%E6%88%90%E4%B8%BA%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83/ aria-label="上一页 - Dubbo 融合 Nacos 成为注册中心" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2019/01/07/%E6%96%B0%E7%89%88-dubbo-admin-%E4%BB%8 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/01/07/\346\226\260\347\211\210-dubbo-admin-\344\273\213\347\273\215/index.html" "b/zh/blog/2019/01/07/\346\226\260\347\211\210-dubbo-admin-\344\273\213\347\273\215/index.html"
index 64deaf98e3..76c9d3e41b 100644
--- "a/zh/blog/2019/01/07/\346\226\260\347\211\210-dubbo-admin-\344\273\213\347\273\215/index.html"
+++ "b/zh/blog/2019/01/07/\346\226\260\347\211\210-dubbo-admin-\344\273\213\347\273\215/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/07/%E6%96%B0%E7%89%88-dubbo-admin-%E4%BB%8B%E7%BB%8D/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="新版 Dubbo Admin 介绍"><meta itemprop=des [...]
-"><meta itemprop=datePublished content="2019-01-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="61"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="新版 Dubbo Admin 介绍"><meta name=twitter:description content="当前版本的Dubbo Admin包含了之前版本中的绝大部分功能,包括服务治理,服务查询等,同时支持了Dubbo2.7中服务治理的新特性
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/07/%E6%96%B0%E7%89%88-dubbo-admin-%E4%BB%8B%E7%BB%8D/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="新版 Dubbo Admin 介绍"><meta itemprop=des [...]
+"><meta itemprop=datePublished content="2019-01-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="61"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="新版 Dubbo Admin 介绍"><meta name=twitter:description content="当前版本的Dubbo Admin包含了之前版本中的绝大部分功能,包括服务治理,服务查询等,同时支持了Dubbo2.7中服务治理的新特性
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>github: https://github.com/apache/dubbo-ops
</span></span></code></pre></div><p>Dubbo Admin之前的版本过于老旧,也长期疏于维护,因此在去年年中的时候,对该项目进行了一次重构,项目结构上的变化如下:</p><ul><li>将后端框架从webx替换成spring boot</li><li>前端采用Vue和Vuetify.js作为开发框架</li><li>移除velocity模板</li><li>集成swagger,提供api管理功能</li></ul><p>当前版本的Dubbo Admin包含了之前版本中的绝大部分功能,包括服务治理,服务查询等,同时支持了Dubbo2.7中服务治理的新特性。</p><h2 id=配置规范>配置规范</h2><p>由于在Dubbo2.7中,配置中心和注册中心做了分离,并且增加了元数据中心,因此Dubbo Admin的配置方式也做了更新,<code>application.properties</code>中的配置如下:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;b [...]
</span></span><span style=display:flex><span>admin.config-center=zookeeper://127.0.0.1:2181
@@ -14,7 +14,7 @@
</span></span></code></pre></div><p>也可以和Dubbo2.7一样,在配置中心指定元数据和注册中心的地址,以zookeeper为例,配置的路径和内容如下:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span># /dubbo/config/dubbo/dubbo.properties
</span></span><span style=display:flex><span>dubbo.registry.address=zookeeper://127.0.0.1:2181
</span></span><span style=display:flex><span>dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
-</span></span></code></pre></div><p>配置中心里的地址会覆盖掉本地<code>application.properties</code>的配置</p><h2 id=功能介绍>功能介绍</h2><p>功能上,主要延续了之前版本的功能,包括服务查询和服务治理,2.7版本在服务治理的功能上有了很大的改进,这些改进也大部分都会以Dubbo Admin作为入口来体现。</p><h3 id=标签路由>标签路由</h3><p>标签路由是Dubbo2.7引入的新功能,配置以应用作为维度,给不同的服务器打上不同名字的标签,配置如下图所示:</p><p><img src=/imgs/blog/admin/route.jpg alt=tag></p><p>调用的时候,客户端可以通过<code>setAttachment</code>的方式,来设置不同的标签名称,比如本例中,<code>setAttachment(tag1)</code>,客户端的选址范围就在如图所示的三台机器中,可以通过这种方式来实现流量隔离,灰度发布等功能。</p><h3 id=应用级别的 [...]
+</span></span></code></pre></div><p>配置中心里的地址会覆盖掉本地<code>application.properties</code>的配置</p><h2 id=功能介绍>功能介绍</h2><p>功能上,主要延续了之前版本的功能,包括服务查询和服务治理,2.7版本在服务治理的功能上有了很大的改进,这些改进也大部分都会以Dubbo Admin作为入口来体现。</p><h3 id=标签路由>标签路由</h3><p>标签路由是Dubbo2.7引入的新功能,配置以应用作为维度,给不同的服务器打上不同名字的标签,配置如下图所示:</p><p><img src=/imgs/blog/admin/route.jpg alt=tag></p><p>调用的时候,客户端可以通过<code>setAttachment</code>的方式,来设置不同的标签名称,比如本例中,<code>setAttachment(tag1)</code>,客户端的选址范围就在如图所示的三台机器中,可以通过这种方式来实现流量隔离,灰度发布等功能。</p><h3 id=应用级别的 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/01/07/\346\265\205\350\260\210-rpc/index.html" "b/zh/blog/2019/01/07/\346\265\205\350\260\210-rpc/index.html"
index ff1af0a169..de90ee1196 100644
--- "a/zh/blog/2019/01/07/\346\265\205\350\260\210-rpc/index.html"
+++ "b/zh/blog/2019/01/07/\346\265\205\350\260\210-rpc/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/07/%E6%B5%85%E8%B0%88-rpc/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="浅谈 RPC"><meta itemprop=description content="RPC-远程过程调用,它是一种通过网络从 [...]
-"><meta itemprop=datePublished content="2019-01-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="186"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="浅谈 RPC"><meta name=twitter:description content="RPC-远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/07/%E6%B5%85%E8%B0%88-rpc/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-07T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="浅谈 RPC"><meta itemprop=description content="RPC-远程过程调用,它是一种通过网络从 [...]
+"><meta itemprop=datePublished content="2019-01-07T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="186"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="浅谈 RPC"><meta name=twitter:description content="RPC-远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> 负责导出(export)远程接口
</span></span><span style=display:flex><span>
@@ -43,7 +43,7 @@
</span></span><span style=display:flex><span>9. RpcChannel
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> 数据传输通道
-</span></span></code></pre></div><h2 id=rpc-工作原理>RPC 工作原理</h2><p>RPC的设计由Client,Client stub,Network ,Server stub,Server构成。 其中Client就是用来调用服务的,Cient stub是用来把调用的方法和参数序列化的(因为要在网络中传输,必须要把对象转变成字节),Network用来传输这些信息到Server stub, Server stub用来把这些信息反序列化的,Server就是服务的提供者,最终调用的就是Server提供的方法。</p><p><img src=/imgs/blog/rpc/rpc-work-principle.png alt=RPC工作原理></p><ol><li><p>Client像调用本地服务似的调用远程服务;</p></li><li><p>Client stub接收到调用后,将方法、参数序列化</p></li><li><p>客户端通过sockets将消息发送到服务端</p></li><li><p>Server stub 收到消息 [...]
+</span></span></code></pre></div><h2 id=rpc-工作原理>RPC 工作原理</h2><p>RPC的设计由Client,Client stub,Network ,Server stub,Server构成。 其中Client就是用来调用服务的,Cient stub是用来把调用的方法和参数序列化的(因为要在网络中传输,必须要把对象转变成字节),Network用来传输这些信息到Server stub, Server stub用来把这些信息反序列化的,Server就是服务的提供者,最终调用的就是Server提供的方法。</p><p><img src=/imgs/blog/rpc/rpc-work-principle.png alt=RPC工作原理></p><ol><li><p>Client像调用本地服务似的调用远程服务;</p></li><li><p>Client stub接收到调用后,将方法、参数序列化</p></li><li><p>客户端通过sockets将消息发送到服务端</p></li><li><p>Server stub 收到消息 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/01/17/\345\246\202\344\275\225\344\275\277\347\224\250seata\344\277\235\350\257\201dubbo\345\276\256\346\234\215\345\212\241\351\227\264\347\232\204\344\270\200\350\207\264\346\200\247/index.html" "b/zh/blog/2019/01/17/\345\246\202\344\275\225\344\275\277\347\224\250seata\344\277\235\350\257\201dubbo\345\276\256\346\234\215\345\212\241\351\227\264\347\232\204\344\270\200\350\207\264\346\200\247/index.html"
index 3d4cf7d673..b210660b84 100644
--- "a/zh/blog/2019/01/17/\345\246\202\344\275\225\344\275\277\347\224\250seata\344\277\235\350\257\201dubbo\345\276\256\346\234\215\345\212\241\351\227\264\347\232\204\344\270\200\350\207\264\346\200\247/index.html"
+++ "b/zh/blog/2019/01/17/\345\246\202\344\275\225\344\275\277\347\224\250seata\344\277\235\350\257\201dubbo\345\276\256\346\234\215\345\212\241\351\227\264\347\232\204\344\270\200\350\207\264\346\200\247/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/17/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8seata%E4%BF%9D%E8%AF%81dubbo%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%97%B4%E7%9A%84%E4%B8%80%E8%87%B4%E6%80%A7/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" co [...]
-"><meta itemprop=datePublished content="2019-01-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="453"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何使用Seata保证Dubbo微服务间的一致性"><meta name=twitter:description content="本文主要介绍如何使用Seata保证Dubbo微服务间的一致性
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/17/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8seata%E4%BF%9D%E8%AF%81dubbo%E5%BE%AE%E6%9C%8D%E5%8A%A1%E9%97%B4%E7%9A%84%E4%B8%80%E8%87%B4%E6%80%A7/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" co [...]
+"><meta itemprop=datePublished content="2019-01-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="453"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何使用Seata保证Dubbo微服务间的一致性"><meta name=twitter:description content="本文主要介绍如何使用Seata保证Dubbo微服务间的一致性
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2019/01/17/how-to-use-seata-to-ensure-consistency-between-dubbo-microservices/>English</a></di [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#586e75>/**
</span></span></span><span style=display:flex><span><span style=color:#586e75> * 扣除存储数量
@@ -145,7 +145,7 @@ dubbo-storage-service.xml</p><div class=highlight><pre tabindex=0 style=color:#9
</span></span><span style=display:flex><span>e.g.
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>sh seata-server.sh -p <span style=color:#2aa198>8091</span> -h 127.0.0.1 -m file
-</span></span></code></pre></div><h3 id=step-5-运行例子>Step 5: 运行例子</h3><ul><li>启动账户服务 (<a href=https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboAccountServiceStarter.java>DubboAccountServiceStarter</a>)。</li><li>启动库存服务 (<a href=https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStorageServiceStarter.java>DubboStorageServiceStarter</a>)。</li><li>启动订单服务 (<a href=https://github.co [...]
+</span></span></code></pre></div><h3 id=step-5-运行例子>Step 5: 运行例子</h3><ul><li>启动账户服务 (<a href=https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboAccountServiceStarter.java>DubboAccountServiceStarter</a>)。</li><li>启动库存服务 (<a href=https://github.com/seata/seata-samples/blob/master/dubbo/src/main/java/io/seata/samples/dubbo/starter/DubboStorageServiceStarter.java>DubboStorageServiceStarter</a>)。</li><li>启动订单服务 (<a href=https://github.co [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/01/26/\351\201\207\350\247\201dubbo/index.html" "b/zh/blog/2019/01/26/\351\201\207\350\247\201dubbo/index.html"
index 84e82e1645..85004c490a 100644
--- "a/zh/blog/2019/01/26/\351\201\207\350\247\201dubbo/index.html"
+++ "b/zh/blog/2019/01/26/\351\201\207\350\247\201dubbo/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/26/%E9%81%87%E8%A7%81dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="遇见Dubbo"><meta itemprop=description content="本文记录了一个小白成长为Dubbo [...]
-"><meta itemprop=datePublished content="2019-01-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="44"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="遇见Dubbo"><meta name=twitter:description content="本文记录了一个小白成长为Dubbo committer的过程。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/01/26/%E9%81%87%E8%A7%81dubbo/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-01-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="遇见Dubbo"><meta itemprop=description content="本文记录了一个小白成长为Dubbo [...]
+"><meta itemprop=datePublished content="2019-01-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="44"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="遇见Dubbo"><meta name=twitter:description content="本文记录了一个小白成长为Dubbo committer的过程。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/02/02/\345\275\223dubbo\351\201\207\344\270\212arthas\346\216\222\346\237\245\351\227\256\351\242\230\347\232\204\345\256\236\350\267\265/index.html" "b/zh/blog/2019/02/02/\345\275\223dubbo\351\201\207\344\270\212arthas\346\216\222\346\237\245\351\227\256\351\242\230\347\232\204\345\256\236\350\267\265/index.html"
index e83e70252d..f2f1d5aa55 100644
--- "a/zh/blog/2019/02/02/\345\275\223dubbo\351\201\207\344\270\212arthas\346\216\222\346\237\245\351\227\256\351\242\230\347\232\204\345\256\236\350\267\265/index.html"
+++ "b/zh/blog/2019/02/02/\345\275\223dubbo\351\201\207\344\270\212arthas\346\216\222\346\237\245\351\227\256\351\242\230\347\232\204\345\256\236\350\267\265/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/02/02/%E5%BD%93dubbo%E9%81%87%E4%B8%8Aarthas%E6%8E%92%E6%9F%A5%E9%97%AE%E9%A2%98%E7%9A%84%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop [...]
-"><meta itemprop=datePublished content="2019-02-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="683"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="当Dubbo遇上Arthas:排查问题的实践"><meta name=twitter:description content="使用Alibaba开源的应用诊断利器Arthas来排查Dubbo应用的问题。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/02/02/%E5%BD%93dubbo%E9%81%87%E4%B8%8Aarthas%E6%8E%92%E6%9F%A5%E9%97%AE%E9%A2%98%E7%9A%84%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop [...]
+"><meta itemprop=datePublished content="2019-02-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="683"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="当Dubbo遇上Arthas:排查问题的实践"><meta name=twitter:description content="使用Alibaba开源的应用诊断利器Arthas来排查Dubbo应用的问题。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> Browser Dubbo Client Dubbo Server
</span></span></code></pre></div><p>Client端:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>@RestController</span>
</span></span><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>UserController</span> <span style=color:#719e07>{</span>
@@ -197,7 +197,7 @@
</span></span><span style=display:flex><span> <span style=color:#268bd2>id</span><span style=color:#719e07>=</span>@Integer<span style=color:#719e07>[</span>1<span style=color:#719e07>]</span>,
</span></span><span style=display:flex><span> <span style=color:#268bd2>name</span><span style=color:#719e07>=</span>@String<span style=color:#719e07>[</span>Deanna Borer<span style=color:#719e07>]</span>,
</span></span><span style=display:flex><span><span style=color:#719e07>]</span>
-</span></span></code></pre></div><ul><li><code>SpringExtensionFactory@contexts.iterator.next</code> 获取到<code>SpringExtensionFactory</code>里保存的spring context对象</li><li><code>#context.getBean("userServiceImpl").findUser(1)</code> 获取到<code>userServiceImpl</code>再执行一次调用</li></ul><p>只要充分发挥想像力,组合Arthas里的各种命令,可以发挥出神奇的效果。</p><h2 id=总结>总结</h2><p>本篇文章来自杭州Dubbo Meetup的分享《当DUBBO遇上Arthas - 排查问题的实践》,希望对大家线上排查Dubbo问题有帮助。</p><p>分享的PDF可以在 <a href=https://github.com/alibaba/arthas/issues/327>https://githu [...]
+</span></span></code></pre></div><ul><li><code>SpringExtensionFactory@contexts.iterator.next</code> 获取到<code>SpringExtensionFactory</code>里保存的spring context对象</li><li><code>#context.getBean("userServiceImpl").findUser(1)</code> 获取到<code>userServiceImpl</code>再执行一次调用</li></ul><p>只要充分发挥想像力,组合Arthas里的各种命令,可以发挥出神奇的效果。</p><h2 id=总结>总结</h2><p>本篇文章来自杭州Dubbo Meetup的分享《当DUBBO遇上Arthas - 排查问题的实践》,希望对大家线上排查Dubbo问题有帮助。</p><p>分享的PDF可以在 <a href=https://github.com/alibaba/arthas/issues/327>https://githu [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/02/03/\346\217\220\345\211\215if\345\210\244\346\226\255\345\270\256\345\212\251cpu\345\210\206\346\224\257\351\242\204\346\265\213/index.html" "b/zh/blog/2019/02/03/\346\217\220\345\211\215if\345\210\244\346\226\255\345\270\256\345\212\251cpu\345\210\206\346\224\257\351\242\204\346\265\213/index.html"
index 254e753032..870c490263 100644
--- "a/zh/blog/2019/02/03/\346\217\220\345\211\215if\345\210\244\346\226\255\345\270\256\345\212\251cpu\345\210\206\346\224\257\351\242\204\346\265\213/index.html"
+++ "b/zh/blog/2019/02/03/\346\217\220\345\211\215if\345\210\244\346\226\255\345\270\256\345\212\251cpu\345\210\206\346\224\257\351\242\204\346\265\213/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/02/03/%E6%8F%90%E5%89%8Dif%E5%88%A4%E6%96%AD%E5%B8%AE%E5%8A%A9cpu%E5%88%86%E6%94%AF%E9%A2%84%E6%B5%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-03T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
-"><meta itemprop=datePublished content="2019-02-03T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="296"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="提前if判断帮助CPU分支预测"><meta name=twitter:description content="本文介绍了通过提前if判断帮助CPU分支预测的优化技巧
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/02/03/%E6%8F%90%E5%89%8Dif%E5%88%A4%E6%96%AD%E5%B8%AE%E5%8A%A9cpu%E5%88%86%E6%94%AF%E9%A2%84%E6%B5%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-02-03T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name [...]
+"><meta itemprop=datePublished content="2019-02-03T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="296"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="提前if判断帮助CPU分支预测"><meta name=twitter:description content="本文介绍了通过提前if判断帮助CPU分支预测的优化技巧
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> <span style=color:#268bd2>enum</span> ChannelState <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> CONNECTED<span style=color:#719e07>,</span> DISCONNECTED<span style=color:#719e07>,</span> SENT<span style=color:#719e07>,</span> RECEIVED<span style=color:#719e07>,</span> CAUGHT
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
@@ -100,7 +100,7 @@
</span></span><span style=display:flex><span>Benchmark (size) Mode Cnt Score Error Units
</span></span><span style=display:flex><span>TestBenchMarks.benchIfAndSwitch 1000000 thrpt 100 1535.867 ± 61.212 ops/s
</span></span><span style=display:flex><span>TestBenchMarks.benchSiwtch 1000000 thrpt 100 576.745 ± 6.806 ops/s
-</span></span></code></pre></div><p>可以看到提前if判断的确提高了代码效率,这种技巧可以放在性能要求严格的地方。</p><p>Benchmark代码:https://github.com/hengyunabc/jmh-demo</p><h2 id=总结>总结</h2><ul><li>switch对于CPU来说难以做分支预测</li><li>某些switch条件如果概率比较高,可以考虑单独提前if判断,充分利用CPU的分支预测机制</li></ul><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/02/02/%E5%BD%93dubbo%E9%81%87%E4%B8%8Aarthas%E6%8E%92%E6%9F%A5%E9%97%AE%E9%A2%98%E7%9A%84%E5%AE%9E%E8%B7%B5/ aria-label="上一页 - 当Dubbo遇上A [...]
+</span></span></code></pre></div><p>可以看到提前if判断的确提高了代码效率,这种技巧可以放在性能要求严格的地方。</p><p>Benchmark代码:https://github.com/hengyunabc/jmh-demo</p><h2 id=总结>总结</h2><ul><li>switch对于CPU来说难以做分支预测</li><li>某些switch条件如果概率比较高,可以考虑单独提前if判断,充分利用CPU的分支预测机制</li></ul><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/01/07/%E6%B5%85%E8%B0%88-rpc/ aria-label="上一页 - 浅谈 RPC" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/20 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html" "b/zh/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html"
index d4aa78c60d..b8a35e4d19 100644
--- "a/zh/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html"
+++ "b/zh/blog/2019/04/25/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\345\256\236\346\210\230/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo可扩展机制实战"><met [...]
-"><meta itemprop=datePublished content="2019-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="303"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo可扩展机制实战"><meta name=twitter:description content="description: 本文介绍了Dubbo框架的核心,SPI扩展机制。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/04/25/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E5%AE%9E%E6%88%98/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-04-25T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo可扩展机制实战"><met [...]
+"><meta itemprop=datePublished content="2019-04-25T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="303"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo可扩展机制实战"><meta name=twitter:description content="description: 本文介绍了Dubbo框架的核心,SPI扩展机制。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2019/04/25/dubbo-extensible-mechanism-source-code-analysis-part-1/>English</a></div></li></ul> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
如同罗马不是一天建成的,任何系统都一定是从小系统不断发展成为大系统的,想要从一开始就把系统设计的足够完善是不可能的,相反的,我们应该关注当下的需求,然后再不断地对系统进行迭代。在代码层面,要求我们适当的对关注点进行抽象和隔离,在软件不断添加功能和特性时,依然能保持良好的结构和可维护性,同时允许第三方开发者对其功能进行扩展。在某些时候,软件设计者对扩展性的追求甚至超过了性能。</p><p>在谈到软件设计时,可扩展性一直被谈起,那到底什么才是可扩展性,什么样的框架才算有良好的可扩展性呢?它必须要做到以下两点:</p><ol><li>作为框架的维护者,在添加一个新功能时,只需要添加一些新代码,而不用大量的修改现有的代码,即符合开闭原则。</li><li>作为框架的使用者,在添加一个新功能时,不需要去�
�改框架的源码,在自己的工程中添加代码即可。</li></ol><p>Dubbo很好的做到了上面两点。这要得益于Dubbo的微内核+插件的机制。接下来的章节中我们会慢慢揭开Dubbo扩展机制的神秘面纱。</p><h2 id=2-可扩展的几种解决方案>2. 可扩展的几种解决方案</h [...]
让我们通过一个简单的例子,来看看Java SPI是如何工作的。</p><ol><li>定义一个接口IRepository用于实现数据储存</li></ol><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>IRepository</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> <span style=color:#dc322f>void</span> <span style=color:#268bd2>save</span><span style=color:#719e07>(</span>String data<span style=color:#719e07>);</span>
diff --git "a/zh/blog/2019/05/01/dubbo-\344\270\200\350\207\264\346\200\247hash\350\264\237\350\275\275\345\235\207\350\241\241\345\256\236\347\216\260\345\211\226\346\236\220/index.html" "b/zh/blog/2019/05/01/dubbo-\344\270\200\350\207\264\346\200\247hash\350\264\237\350\275\275\345\235\207\350\241\241\345\256\236\347\216\260\345\211\226\346\236\220/index.html"
index 240506ec48..10b33979db 100644
--- "a/zh/blog/2019/05/01/dubbo-\344\270\200\350\207\264\346\200\247hash\350\264\237\350\275\275\345\235\207\350\241\241\345\256\236\347\216\260\345\211\226\346\236\220/index.html"
+++ "b/zh/blog/2019/05/01/dubbo-\344\270\200\350\207\264\346\200\247hash\350\264\237\350\275\275\345\235\207\350\241\241\345\256\236\347\216\260\345\211\226\346\236\220/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/05/01/dubbo-%E4%B8%80%E8%87%B4%E6%80%A7hash%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%AE%9E%E7%8E%B0%E5%89%96%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-05-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta [...]
-"><meta itemprop=datePublished content="2019-05-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="410"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 一致性Hash负载均衡实现剖析"><meta name=twitter:description content="本文以一般的一致性Hash实现作为引子,详细剖析了Dubbo一致性Hash负载均衡算法的实现
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/05/01/dubbo-%E4%B8%80%E8%87%B4%E6%80%A7hash%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%AE%9E%E7%8E%B0%E5%89%96%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-05-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta [...]
+"><meta itemprop=datePublished content="2019-05-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="410"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 一致性Hash负载均衡实现剖析"><meta name=twitter:description content="本文以一般的一致性Hash实现作为引子,详细剖析了Dubbo一致性Hash负载均衡算法的实现
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#719e07>if</span> <span style=color:#719e07>(</span>CollectionUtils<span style=color:#719e07>.</span>isNotEmpty<span style=color:#719e07>(</span>invokers<span style=color:#719e07>))</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> ExtensionLoader<span style=color:#719e07>.</span>getExtensionLoader<span style=color:#719e07>(</span>LoadBalance<span style=color:#719e07>.</span>class<span style=color:#719e07>).</span>getExtension<span style=color:#719e07>(</span>invokers<span style=color:#719e07>.</span>get<span style=color:#719e07>(</span>0<span style=color:#719e07>).</span>getUrl<span style=color:#719e07>()</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>.</span>getMethodParameter<span style=color:#719e07>(</span>RpcUtils<span style=color:#719e07>.</span>getMethodName<span style=color:#719e07>(</span>invocation<span style=color:#719e07>),</span> LOADBALANCE_KEY<span style=color:#719e07>,</span> DEFAULT_LOADBALANCE<span style=color:#719e07>));</span>
diff --git "a/zh/blog/2019/05/02/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\346\272\220\347\240\201\350\247\243\346\236\220/index.html" "b/zh/blog/2019/05/02/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\346\272\220\347\240\201\350\247\243\346\236\220/index.html"
index 96decf3a40..945177e936 100644
--- "a/zh/blog/2019/05/02/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\346\272\220\347\240\201\350\247\243\346\236\220/index.html"
+++ "b/zh/blog/2019/05/02/dubbo\345\217\257\346\211\251\345\261\225\346\234\272\345\210\266\346\272\220\347\240\201\350\247\243\346\236\220/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/05/02/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
-"><meta itemprop=datePublished content="2019-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="944"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo可扩展机制源码解析"><meta name=twitter:description content="本文介绍了SPI扩展机制的实现原理与细节。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/05/02/dubbo%E5%8F%AF%E6%89%A9%E5%B1%95%E6%9C%BA%E5%88%B6%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-05-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content=" [...]
+"><meta itemprop=datePublished content="2019-05-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="944"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo可扩展机制源码解析"><meta name=twitter:description content="本文介绍了SPI扩展机制的实现原理与细节。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2019/05/02/dubbo-extensible-mechanism-source-code-analysis-part-2/>English</a></div></li></ul> [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
ExtensionLoader 的方法比较多,比较常用的方法有:</p><ul><li><code>public static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type)</code></li><li><code>public T getExtension(String name)</code></li><li><code>public T getAdaptiveExtension()</code></li></ul><p>比较常见的用法有:</p><ul><li><code>LoadBalance lb = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(loadbalanceName)</code></li><li><code>RouterFactory routerFactory = ExtensionLoader.getExtensionLoader(RouterFactory.class) [...]
这是一个静态工厂方法,入参是一个可扩展的接口,返回一个该接口的ExtensionLoader实体类。通过这个实体类,可以根据name获得具体的扩展,也可以获得一个自适应扩展。</li></ol><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>static</span> <span style=color:#719e07><</span>T<span style=color:#719e07>></span> ExtensionLoader<span style=color:#719e07>< [...]
</span></span><span style=display:flex><span> <span style=color:#586e75>// 扩展点必须是接口
diff --git "a/zh/blog/2019/06/22/\344\275\277\347\224\250-dubbo-\350\277\236\346\216\245\345\274\202\346\236\204\345\276\256\346\234\215\345\212\241\344\275\223\347\263\273/index.html" "b/zh/blog/2019/06/22/\344\275\277\347\224\250-dubbo-\350\277\236\346\216\245\345\274\202\346\236\204\345\276\256\346\234\215\345\212\241\344\275\223\347\263\273/index.html"
index 0ff20d42a5..646f62ed7e 100644
--- "a/zh/blog/2019/06/22/\344\275\277\347\224\250-dubbo-\350\277\236\346\216\245\345\274\202\346\236\204\345\276\256\346\234\215\345\212\241\344\275\223\347\263\273/index.html"
+++ "b/zh/blog/2019/06/22/\344\275\277\347\224\250-dubbo-\350\277\236\346\216\245\345\274\202\346\236\204\345\276\256\346\234\215\345\212\241\344\275\223\347\263\273/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/06/22/%E4%BD%BF%E7%94%A8-dubbo-%E8%BF%9E%E6%8E%A5%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%BD%93%E7%B3%BB/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-06-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta ite [...]
-"><meta itemprop=datePublished content="2019-06-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="540"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用 Dubbo 连接异构微服务体系"><meta name=twitter:description content="在这篇文章中,我们将探索如何利用 Dubbo 对多协议、多服务发现模型的支持,来实现异构微服务体系间的互联互通
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/06/22/%E4%BD%BF%E7%94%A8-dubbo-%E8%BF%9E%E6%8E%A5%E5%BC%82%E6%9E%84%E5%BE%AE%E6%9C%8D%E5%8A%A1%E4%BD%93%E7%B3%BB/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-06-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta ite [...]
+"><meta itemprop=datePublished content="2019-06-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="540"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用 Dubbo 连接异构微服务体系"><meta name=twitter:description content="在这篇文章中,我们将探索如何利用 Dubbo 对多协议、多服务发现模型的支持,来实现异构微服务体系间的互联互通
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> String <span style=color:#268bd2>sayHi</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
</span></span></code></pre></div><ol start=2><li>消费方调用服务</li></ol><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#586e75>// 和调用本地服务一样,完全透明。
diff --git "a/zh/blog/2019/07/26/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-rest/index.html" "b/zh/blog/2019/07/26/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-rest/index.html"
index 1d5b3331ba..fa069d1f5a 100644
--- "a/zh/blog/2019/07/26/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-rest/index.html"
+++ "b/zh/blog/2019/07/26/\345\234\250-dubbo-\344\270\255\344\275\277\347\224\250-rest/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo.version></span>2.6.5<span style=color:#268bd2></dubbo.version></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2></properties></span>
</span></span><span style=display:flex><span>
@@ -436,7 +436,7 @@
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span></<span style=color:#268bd2>body</span>>
</span></span><span style=display:flex><span></<span style=color:#268bd2>html</span>>
-</span></span></code></pre></div><p>再次重启服务器,并访问 “http://localhost:8080” 时,将会看到 swagger UI 页面的展示:</p><p><img src=../../img/blog/swagger-ui.png alt=swagger-ui></p><p>通过 Swagger UI 可以很方便的浏览当前服务器提供的 REST 服务的文档信息,甚至可以直接调用来做服务测试。以 ‘/api/users/{id}’ 为例,测试结果如下图所示:</p><p><img src=../../img/blog/swagger-ui-execute.png alt=swagger-ui-execute></p><h2 id=总结>总结</h2><p>本文主要关注了在 Dubbo 中支持 REST 协议的情况。首先探索了 REST 概念的起源,澄清了 REST 是一种适合互联网的软件架构风格,进一步的说明了 REST 风格的架构可以与 HTTP 协议无关,但是 HTTP [...]
+</span></span></code></pre></div><p>再次重启服务器,并访问 “http://localhost:8080” 时,将会看到 swagger UI 页面的展示:</p><p><img src=../../img/blog/swagger-ui.png alt=swagger-ui></p><p>通过 Swagger UI 可以很方便的浏览当前服务器提供的 REST 服务的文档信息,甚至可以直接调用来做服务测试。以 ‘/api/users/{id}’ 为例,测试结果如下图所示:</p><p><img src=../../img/blog/swagger-ui-execute.png alt=swagger-ui-execute></p><h2 id=总结>总结</h2><p>本文主要关注了在 Dubbo 中支持 REST 协议的情况。首先探索了 REST 概念的起源,澄清了 REST 是一种适合互联网的软件架构风格,进一步的说明了 REST 风格的架构可以与 HTTP 协议无关,但是 HTTP [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/08/11/\344\275\277\347\224\250apache-skywalking-incubator-\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html" "b/zh/blog/2019/08/11/\344\275\277\347\224\250apache-skywalking-incubator-\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html"
index ea85883774..1831e48827 100644
--- "a/zh/blog/2019/08/11/\344\275\277\347\224\250apache-skywalking-incubator-\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html"
+++ "b/zh/blog/2019/08/11/\344\275\277\347\224\250apache-skywalking-incubator-\345\201\232\345\210\206\345\270\203\345\274\217\350\267\237\350\270\252/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/08/11/%E4%BD%BF%E7%94%A8apache-skywalking-incubator-%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop= [...]
-"><meta itemprop=datePublished content="2019-08-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="169"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用Apache Skywalking (Incubator) 做分布式跟踪"><meta name=twitter:description content="本文介绍如何使用 Apache Skywalking 对 Dubbo 应用做分布式链路追踪。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/08/11/%E4%BD%BF%E7%94%A8apache-skywalking-incubator-%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F%E8%B8%AA/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop= [...]
+"><meta itemprop=datePublished content="2019-08-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="169"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用Apache Skywalking (Incubator) 做分布式跟踪"><meta name=twitter:description content="本文介绍如何使用 Apache Skywalking 对 Dubbo 应用做分布式链路追踪。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2019/08/11/tracing-dubbo-service-with-apache-skywalking/>English</a></div></li></ul></div><div [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>public <span style=color:#268bd2>interface</span> HelloService {
</span></span><span style=display:flex><span> String <span style=color:#268bd2>sayHello</span>(String name);
@@ -54,7 +54,7 @@
<img src=/imgs/blog/skywalking-application_instance.png alt=/admin-guide/images/skywalking-application_instance.png></p><h3 id=服务视图>服务视图</h3><p>服务消费端:
<img src=/imgs/blog/skywalking-service-consumer.png alt=/admin-guide/images/skywalking-service-consumer.png></p><p>服务提供端:
<img src=/imgs/blog/skywalking-service-provider.png alt=/admin-guide/images/skywalking-service-provider.png></p><h3 id=trace视图>Trace视图</h3><p><img src=/imgs/blog/skywalking-trace.png alt=/admin-guide/images/skywalking-trace.png></p><p>Span信息:
-<img src=/imgs/blog/skywalking-span-Info.png alt=/admin-guide/images/skywalking-span-Info.png></p><h3 id=告警视图>告警视图</h3><p><img src=/imgs/blog/skywalking-alarm.png alt=/admin-guide/images/skywalking-alarm.png></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/07/26/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-rest/ aria-label="上一页 - 在 Dubbo 中使用 REST" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blo [...]
+<img src=/imgs/blog/skywalking-span-Info.png alt=/admin-guide/images/skywalking-span-Info.png></p><h3 id=告警视图>告警视图</h3><p><img src=/imgs/blog/skywalking-alarm.png alt=/admin-guide/images/skywalking-alarm.png></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/02/02/%E5%BD%93dubbo%E9%81%87%E4%B8%8Aarthas%E6%8E%92%E6%9F%A5%E9%97%AE%E9%A2%98%E7%9A%84%E5%AE%9E%E8%B7%B5/ aria-label="上一页 - 当Dubbo遇上Arthas:排查问题的实践" class="btn btn-pr [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/08/11/\346\234\254\345\234\260\350\260\203\347\224\250/index.html" "b/zh/blog/2019/08/11/\346\234\254\345\234\260\350\260\203\347\224\250/index.html"
index 93e433dba7..87ccac9257 100644
--- "a/zh/blog/2019/08/11/\346\234\254\345\234\260\350\260\203\347\224\250/index.html"
+++ "b/zh/blog/2019/08/11/\346\234\254\345\234\260\350\260\203\347\224\250/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/08/11/%E6%9C%AC%E5%9C%B0%E8%B0%83%E7%94%A8/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="本地调用"><meta itemprop=description content="当一个应用既是一 [...]
-"><meta itemprop=datePublished content="2019-08-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="227"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="本地调用"><meta name=twitter:description content="当一个应用既是一个服务的提供者,同时也是这个服务的消费者的时候,可以直接对本机提供的服务发起本地调用
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/08/11/%E6%9C%AC%E5%9C%B0%E8%B0%83%E7%94%A8/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="本地调用"><meta itemprop=description content="当一个应用既是一 [...]
+"><meta itemprop=datePublished content="2019-08-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="227"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="本地调用"><meta name=twitter:description content="当一个应用既是一个服务的提供者,同时也是这个服务的消费者的时候,可以直接对本机提供的服务发起本地调用
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:protocol</span> name=<span style=color:#2aa198>"dubbo"</span> port=<span style=color:#2aa198>"20800"</span><span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#268bd2><bean</span> id=<span style=color:#2aa198>"demoServiceTarget"</span> class=<span style=color:#2aa198>"org.apache.dubbo.samples.local.impl.DemoServiceImpl"</span><span style=color:#268bd2>/></span>
@@ -28,7 +28,7 @@
</span></span></code></pre></div><h3 id=何时无法使用本地调用>何时无法使用本地调用</h3><p>默认情况下,本地调用是自动开启的,不需要做额外的配置。只有当需要关闭的时候,才需要通过 <em>scope</em> 的配置来显式的关闭。</p><p>但是,特别需要指出的是,在下面的几种情况下,本地调用是无法使用的:</p><p>第一,泛化调用的时候无法使用本地调用。</p><p>第二,消费者明确指定 URL 发起直连调用。当然,如果消费者指定的是 <em>injvm</em> 的 URL,最终的调用也是走本地调用的,比如:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style [...]
</span></span></code></pre></div><h3 id=强制打开本地调用>强制打开本地调用</h3><p>除了通过 <em>scope</em> 来控制本地调用的行为之外,也可以通过 <em>injvm</em> 这个配置来强制打开或者禁用本地调用。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-xml data-lang=xml><span style=display:flex><span><span style=color:#268bd2><dubbo:consumer</span> injvm=<span style=color:#2aa198>"false"</span> ...<span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:provider</span> injvm=<span style=color:#2aa198>"true"</span> ...<span style=color:#268bd2>/></span>
-</span></span></code></pre></div><p>但是通过 <em>injvm</em> 来配置本地调用的方式已经被废弃。通过 <em>scope</em> 的方式来控制是官方推荐的。</p><h3 id=总结>总结</h3><p>本文介绍了本地调用的概念以及带来的好处,并进一步的揭示了 dubbo 本地调用实际上是在当前进程中暴露了 <em>injvm</em> 的协议,而该协议并不会对外暴露端口,然后讨论了如何通过 <em>scope</em> 来细粒度的控制本地调用的行为,并强调了通过 <em>invjm</em> 来配置的方式已经被废弃,在未来版本中可能会被删除。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/08/11/%E4%BD%BF%E7%94%A8apache-skywalking-incubator-%E5%81%9A%E5%88%86%E5%B8 [...]
+</span></span></code></pre></div><p>但是通过 <em>injvm</em> 来配置本地调用的方式已经被废弃。通过 <em>scope</em> 的方式来控制是官方推荐的。</p><h3 id=总结>总结</h3><p>本文介绍了本地调用的概念以及带来的好处,并进一步的揭示了 dubbo 本地调用实际上是在当前进程中暴露了 <em>injvm</em> 的协议,而该协议并不会对外暴露端口,然后讨论了如何通过 <em>scope</em> 来细粒度的控制本地调用的行为,并强调了通过 <em>invjm</em> 来配置的方式已经被废弃,在未来版本中可能会被删除。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/07/26/%E5%9C%A8-dubbo-%E4%B8%AD%E4%BD%BF%E7%94%A8-rest/ aria-label="上一页 - 在 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git a/zh/blog/2019/08/26/service-test/index.html b/zh/blog/2019/08/26/service-test/index.html
index 0367367744..3c2a54e3c6 100644
--- a/zh/blog/2019/08/26/service-test/index.html
+++ b/zh/blog/2019/08/26/service-test/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/08/26/service-test/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Admin服务测试功能"><meta itemprop=description content="可以通过泛化调用,在控制台上调用真实的服务提供者
-"><meta itemprop=datePublished content="2019-08-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="253"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin服务测试功能"><meta name=twitter:description content="可以通过泛化调用,在控制台上调用真实的服务提供者
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/08/26/service-test/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-08-26T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo Admin服务测试功能"><meta itemprop=description content="可以通过泛化调用,在控制台上调用真实的服务提供者
+"><meta itemprop=datePublished content="2019-08-26T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="253"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo Admin服务测试功能"><meta name=twitter:description content="可以通过泛化调用,在控制台上调用真实的服务提供者
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2019/08/26/service-test/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-b [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<img src=/imgs/blog/admin/testSearch.jpg alt=testSearch><br>这里的信息和元数据类似,包含方法名,参数类型和返回值信息,点击右边的标签就可以进入服务测试页面</li><li>服务测试:
<img src=/imgs/blog/admin/testSuccess.jpg alt=testSuccess><br>服务测试页面包含了两个json编辑器,参数类型的信息都是以json格式保存,这里需要填入对应的参数值(本例中数类型时<code>String</code>),填写完成后点击<code>执行</code>即可对服务端发起调用,调用结果展示在右边的编辑器中,如果调用失败,会显示详细的失败原因,下面来看一下调用失败的例子:<br><img src=/imgs/blog/admin/testFail.jpg alt=testFail>
本例中,先关掉Dubbo服务提供者的进程,再执行服务测试,可以看到返回的结果是<code>找不到服务提供者</code>的异常。和普通调用一样,业务和框架的异常都会返回在结果中,方便业务排查。</li><li>复合类型参数<br>考虑<code>UserService</code>中的以下方法和类型:</li></ul><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#586e75>//org.apache.dubbo.demo.api.UserService
diff --git "a/zh/blog/2019/10/01/\347\240\224\347\251\266-dubbo-\347\275\221\345\215\241\345\234\260\345\235\200\346\263\250\345\206\214\346\227\266\347\232\204\344\270\200\347\202\271\346\200\235\350\200\203/index.html" "b/zh/blog/2019/10/01/\347\240\224\347\251\266-dubbo-\347\275\221\345\215\241\345\234\260\345\235\200\346\263\250\345\206\214\346\227\266\347\232\204\344\270\200\347\202\271\346\200\235\350\200\203/index.html"
index e22b9f734d..52b31914b1 100644
--- "a/zh/blog/2019/10/01/\347\240\224\347\251\266-dubbo-\347\275\221\345\215\241\345\234\260\345\235\200\346\263\250\345\206\214\346\227\266\347\232\204\344\270\200\347\202\271\346\200\235\350\200\203/index.html"
+++ "b/zh/blog/2019/10/01/\347\240\224\347\251\266-dubbo-\347\275\221\345\215\241\345\234\260\345\235\200\346\263\250\345\206\214\346\227\266\347\232\204\344\270\200\347\202\271\346\200\235\350\200\203/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> InetAddress localAddress <span style=color:#719e07>=</span> <span style=color:#cb4b16>null</span><span style=color:#719e07>;</span>
</span></span><span style=display:flex><span> <span style=color:#586e75>// 首先尝试获取 /etc/hosts 中 hostname 对应的 IP
</span></span></span><span style=display:flex><span><span style=color:#586e75></span> localAddress <span style=color:#719e07>=</span> InetAddress<span style=color:#719e07>.</span>getLocalHost<span style=color:#719e07>();</span>
@@ -212,7 +212,7 @@
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
</span></span></code></pre></div><p>JDK 提供了以上的 API,我们可以利用起来,过滤一部分一定不正确的网卡。</p><p><strong>Dubbo Action 3:</strong></p><p>我们本文花了较多的篇幅介绍了 docker 和 TUN/TAP 两种场景导致的虚拟网卡的问题,算是较为常见的一个影响因素,虽然他们的命名具有固定性,如 docker0、tunX、tapX,但我觉得通过网卡名称的判断方式去过滤注册 IP 有一些 hack,所以不建议 dubbo contributor 提出相应的 pr 去增加这些 hack 判断,尽管可能会对判断有所帮助。</p><p>对于真实多网卡、内外网 IP 共存的场景,不能仅仅是框架侧在做努力,用户也需要做一些事,就像爱情一样,我可以主动一点,但你也得反馈,才能发展出故事。</p><p><strong>Dubbo User Action 1:</strong></p><p>可以配置 <code>/etc/hosts</code> 文件,将 hostname 对应的 IP 显式配 [...]
</span></span></code></pre></div><p>也可以指定 Dubbo 服务绑定在哪块网卡上:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#719e07>-</span>DDUBBO_IP_TO_BIND<span style=color:#719e07>=</span>1<span style=color:#719e07>.</span>2<span style=color:#719e07>.</span>3<span style=color:#719e07>.</span>4
-</span></span></code></pre></div><h2 id=9-参考文章>9 参考文章</h2><p><a href=https://www.jianshu.com/p/09f9375b7fa7>TUN/TAP 设备浅析</a></p><p><a href=https://stackoverflow.com/questions/29958143/what-are-en0-en1-p2p-and-so-on-that-are-displayed-after-executing-ifconfig>what-are-en0-en1-p2p-and-so-on-that-are-displayed-after-executing-ifconfig</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/08/26/service-test/ aria-label="上一页 - D [...]
+</span></span></code></pre></div><h2 id=9-参考文章>9 参考文章</h2><p><a href=https://www.jianshu.com/p/09f9375b7fa7>TUN/TAP 设备浅析</a></p><p><a href=https://stackoverflow.com/questions/29958143/what-are-en0-en1-p2p-and-so-on-that-are-displayed-after-executing-ifconfig>what-are-en0-en1-p2p-and-so-on-that-are-displayed-after-executing-ifconfig</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/08/26/service-test/ aria-label="上一页 - D [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/10/17/dubbo-\344\270\255\347\232\204-url-\347\273\237\344\270\200\346\250\241\345\236\213/index.html" "b/zh/blog/2019/10/17/dubbo-\344\270\255\347\232\204-url-\347\273\237\344\270\200\346\250\241\345\236\213/index.html"
index 84808374e4..0a8be4f955 100644
--- "a/zh/blog/2019/10/17/dubbo-\344\270\255\347\232\204-url-\347\273\237\344\270\200\346\250\241\345\236\213/index.html"
+++ "b/zh/blog/2019/10/17/dubbo-\344\270\255\347\232\204-url-\347\273\237\344\270\200\346\250\241\345\236\213/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/10/17/dubbo-%E4%B8%AD%E7%9A%84-url-%E7%BB%9F%E4%B8%80%E6%A8%A1%E5%9E%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-10-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 中的 URL 统一模型"><m [...]
-"><meta itemprop=datePublished content="2019-10-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="455"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 中的 URL 统一模型"><meta name=twitter:description content="URL 是 Dubbo 中一个重要的领域模型,了解它可以更加轻松的理解 Dubbo 的设计理念。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/10/17/dubbo-%E4%B8%AD%E7%9A%84-url-%E7%BB%9F%E4%B8%80%E6%A8%A1%E5%9E%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-10-17T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo 中的 URL 统一模型"><m [...]
+"><meta itemprop=datePublished content="2019-10-17T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="484"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 中的 URL 统一模型"><meta name=twitter:description content="URL 是 Dubbo 中一个重要的领域模型,了解它可以更加轻松的理解 Dubbo 的设计理念。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
义。而这些字符串则被称为:“统一资源定位器”(URL)</p></blockquote><p><strong>一个标准的 URL 格式</strong>至多可以包含如下的几个部分</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>protocol://username:password@host:port/path?key=value&key=value
</span></span></code></pre></div><p><strong>一些典型 URL</strong></p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>http://www.facebook.com/friends?param1=value1&amp;param2=value2
</span></span><span style=display:flex><span>https://username:password@10.20.130.230:8080/list?version=1.0.0
@@ -61,11 +61,11 @@
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>consumer://30.5.120.217/org.apache.dubbo.demo.DemoService?application=demo-consumer&category=consumers&check=false&dubbo=2.0.2&interface=org.apache.dubbo.demo.DemoService&methods=sayHello&pid=1209&qos.port=33333&side=consumer&timestamp=1545721827784
</span></span><span style=display:flex><span>描述一个消费者
-</span></span></code></pre></div><p>可以说,任意的一个领域中的一个实现都可以认为是一类 URL,dubbo 使用 URL 来统一描述了元数据,配置信息,贯穿在整个框架之中。</p><h3 id=url-相关的生命周期>URL 相关的生命周期</h3><h4 id=解析服务>解析服务</h4><p>基于 dubbo.jar 内的 <code>META-INF/spring.handlers</code> 配置,Spring 在遇到 dubbo 名称空间时,会回调 <code>DubboNamespaceHandler</code>。</p><p>所有 dubbo 的标签,都统一用 <code>DubboBeanDefinitionParser</code> 进行解析,基于一对一属性映射,将 XML 标签解析为 Bean 对象。</p><p>在 <code>ServiceConfig.export()</code> 或 <code>ReferenceConfig.get()</code> 初始化时,将 Bean 对象转换 URL 格式,所 [...]
+</span></span></code></pre></div><p>可以说,任意的一个领域中的一个实现都可以认为是一类 URL,dubbo 使用 URL 来统一描述了元数据,配置信息,贯穿在整个框架之中。</p><h3 id=url-相关的生命周期>URL 相关的生命周期</h3><h4 id=rpc调用>RPC调用</h4><p>从地址发现的视角,URL 代表了一条可用的 provider 实例地址,除了地址信息之外还有相关的配置信息,这些配置信息是层次化的,有 provider 侧指定的配置值、consumer 侧指定的配置值、接口级别的配置值、方法级别的配置值等。这些 URL 配置值将直接影响消费端的 RPC 调用行为。</p><p>以 timeout 为例,下图显示了配置的查找顺序,其它 retries, loadbalance, actives 等类似:</p><ul><li>方法级优先,接口级次之,全局配置再次之。</li><li>如果级别一样,则消费方优先,提供方次之。</li></ul><p>其中,服务提供方配置,通过 URL 经由�
�册中心传递给消费 [...]
</span></span><span style=display:flex><span>createExporter<span style=color:#719e07>(</span>String host<span style=color:#719e07>,</span> <span style=color:#dc322f>int</span> port<span style=color:#719e07>,</span> Parameters params<span style=color:#719e07>)</span>
</span></span></code></pre></div><p>使用 URL 一致性模型:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span>export<span style=color:#719e07>(</span>URL url<span style=color:#719e07>)</span>
</span></span><span style=display:flex><span>createExporter<span style=color:#719e07>(</span>URL url<span style=color:#719e07>)</span>
-</span></span></code></pre></div><p>在最新的 dubbo 代码中,我们可以看到大量使用 URL 来进行上下文之间信息的传递,这样的好处是显而易见的:</p><ol><li>使得代码编写者和阅读者能够将一系列的参数联系起来,进而形成规范,使得代码易写,易读。</li><li>可扩展性强,URL 相当于参数的集合(相当于一个 Map),他所表达的含义比单个参数更丰富,当我们在扩展代码时,可以将新的参数追加到 URL 之中,而不需要改变入参,返参的结构。</li><li>统一模型,它位于 org.apache.dubbo.common 包中,各个扩展模块都可以使用它作为参数的表达形式,简化了概念,降低了代码的理解成本。</li></ol><p>如果你能够理解 final 契约和 restful 契约,那我相信你会很好地理解 URL 契约。契约的好处我还是啰嗦一句:大家都这么做,就形成了默契,沟通是一件很麻烦的事,统一 URL 模型可
以省去很多沟通成本,这边是 URL 统一模型存在的意义。</p><ul class="list-unstyle [...]
+</span></span></code></pre></div><p>在最新的 dubbo 代码中,我们可以看到大量使用 URL 来进行上下文之间信息的传递,这样的好处是显而易见的:</p><ol><li>使得代码编写者和阅读者能够将一系列的参数联系起来,进而形成规范,使得代码易写,易读。</li><li>可扩展性强,URL 相当于参数的集合(相当于一个 Map),他所表达的含义比单个参数更丰富,当我们在扩展代码时,可以将新的参数追加到 URL 之中,而不需要改变入参,返参的结构。</li><li>统一模型,它位于 org.apache.dubbo.common 包中,各个扩展模块都可以使用它作为参数的表达形式,简化了概念,降低了代码的理解成本。</li></ol><p>如果你能够理解 final 契约和 restful 契约,那我相信你会很好地理解 URL 契约。契约的好处我还是啰嗦一句:大家都这么做,就形成了默契,沟通是一件很麻烦的事,统一 URL 模型可
以省去很多沟通成本,这边是 URL 统一模型存在的意义。</p><ul class="list-unstyle [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/10/22/\346\234\254\345\234\260\345\255\230\346\240\271\345\222\214\346\234\254\345\234\260\344\274\252\350\243\205/index.html" "b/zh/blog/2019/10/22/\346\234\254\345\234\260\345\255\230\346\240\271\345\222\214\346\234\254\345\234\260\344\274\252\350\243\205/index.html"
index bf707ab0b7..e986b8e651 100644
--- "a/zh/blog/2019/10/22/\346\234\254\345\234\260\345\255\230\346\240\271\345\222\214\346\234\254\345\234\260\344\274\252\350\243\205/index.html"
+++ "b/zh/blog/2019/10/22/\346\234\254\345\234\260\345\255\230\346\240\271\345\222\214\346\234\254\345\234\260\344\274\252\350\243\205/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> preProcess<span style=color:#719e07>();</span>
</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> service<span style=color:#719e07>.</span>invoke<span style=color:#719e07>(...);</span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span> <span style=color:#719e07>catch</span> <span style=color:#719e07>(</span>Throwable e<span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
@@ -133,7 +133,7 @@
</span></span><span style=display:flex><span> at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke<span style=color:#719e07>(</span>FailoverClusterInvoker.java:80<span style=color:#719e07>)</span>
</span></span><span style=display:flex><span> ... <span style=color:#2aa198>5</span> more
</span></span><span style=display:flex><span><span style=color:#719e07>[</span>09/04/19 02:19:04:004 CST<span style=color:#719e07>]</span> main INFO mock.MockConsumer: result: configured-mock-value
-</span></span></code></pre></div><h2 id=总结>总结</h2><p>本文介绍了 Dubbo 中本地存根和本地伪装的概念和用法。从本质来讲,本地存根和本地伪装等同于面向切面编程中的概念,通过诸如 Spring 框架提供的 <em>AOP</em> 编程可以达到同样的目的。通过本文如何开发一个本地存根和本地伪装的示例,读者可以直观的感受到通过框架提供的机制更加方便快捷。同时,对于很多简单的场景和动态配置推送的场景,框架提供了仅通过配置而无需编码的方式来满足,进一步提升了框架使用者的效率。</p><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p><a href=https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-stub>https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-stub</a> <a h [...]
+</span></span></code></pre></div><h2 id=总结>总结</h2><p>本文介绍了 Dubbo 中本地存根和本地伪装的概念和用法。从本质来讲,本地存根和本地伪装等同于面向切面编程中的概念,通过诸如 Spring 框架提供的 <em>AOP</em> 编程可以达到同样的目的。通过本文如何开发一个本地存根和本地伪装的示例,读者可以直观的感受到通过框架提供的机制更加方便快捷。同时,对于很多简单的场景和动态配置推送的场景,框架提供了仅通过配置而无需编码的方式来满足,进一步提升了框架使用者的效率。</p><div class=footnotes role=doc-endnotes><hr><ol><li id=fn:1><p><a href=https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-stub>https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-stub</a> <a h [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2019/10/28/dubbo-\345\234\250\350\267\250\350\257\255\350\250\200\345\222\214\345\215\217\350\256\256\347\251\277\351\200\217\346\200\247\346\226\271\345\220\221\344\270\212\347\232\204\346\216\242\347\264\242\346\224\257\346\214\201-http/2-grpc-\345\222\214-protobuf/index.html" "b/zh/blog/2019/10/28/dubbo-\345\234\250\350\267\250\350\257\255\350\250\200\345\222\214\345\215\217\350\256\256\347\251\277\351\200\217\346\200\247\346\226\271\345\220\221\344\270\212\347\23 [...]
index b3795bd536..63c93b0f1f 100644
--- "a/zh/blog/2019/10/28/dubbo-\345\234\250\350\267\250\350\257\255\350\250\200\345\222\214\345\215\217\350\256\256\347\251\277\351\200\217\346\200\247\346\226\271\345\220\221\344\270\212\347\232\204\346\216\242\347\264\242\346\224\257\346\214\201-http/2-grpc-\345\222\214-protobuf/index.html"
+++ "b/zh/blog/2019/10/28/dubbo-\345\234\250\350\267\250\350\257\255\350\250\200\345\222\214\345\215\217\350\256\256\347\251\277\351\200\217\346\200\247\346\226\271\345\220\221\344\270\212\347\232\204\346\216\242\347\264\242\346\224\257\346\214\201-http/2-grpc-\345\222\214-protobuf/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/10/28/dubbo-%E5%9C%A8%E8%B7%A8%E8%AF%AD%E8%A8%80%E5%92%8C%E5%8D%8F%E8%AE%AE%E7%A9%BF%E9%80%8F%E6%80%A7%E6%96%B9%E5%90%91%E4%B8%8A%E7%9A%84%E6%8E%A2%E7%B4%A2%E6%94%AF%E6%8C%81-http/2-grpc-%E5%92%8C-protobuf/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-10-28T00:00:00+00:00"><meta property="article:modified_time" conte [...]
-"><meta itemprop=datePublished content="2019-10-28T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1504"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 在跨语言和协议穿透性方向上的探索:支持 HTTP/2 gRPC 和 Protobuf"><meta name=twitter:description content="本文整理自刘军在 Dubbo 成都 meetup 上分享的《Dubbo 在多语言和协议穿透性方向上的探索》。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/10/28/dubbo-%E5%9C%A8%E8%B7%A8%E8%AF%AD%E8%A8%80%E5%92%8C%E5%8D%8F%E8%AE%AE%E7%A9%BF%E9%80%8F%E6%80%A7%E6%96%B9%E5%90%91%E4%B8%8A%E7%9A%84%E6%8E%A2%E7%B4%A2%E6%94%AF%E6%8C%81-http/2-grpc-%E5%92%8C-protobuf/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-10-28T00:00:00+00:00"><meta property="article:modified_time" conte [...]
+"><meta itemprop=datePublished content="2019-10-28T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1504"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo 在跨语言和协议穿透性方向上的探索:支持 HTTP/2 gRPC 和 Protobuf"><meta name=twitter:description content="本文整理自刘军在 Dubbo 成都 meetup 上分享的《Dubbo 在多语言和协议穿透性方向上的探索》。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> required string name = 1;
</span></span><span style=display:flex><span> required int32 id = 2;
</span></span><span style=display:flex><span> optional string email = 3;
diff --git "a/zh/blog/2019/11/01/dubbo\345\256\242\346\210\267\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html" "b/zh/blog/2019/11/01/dubbo\345\256\242\346\210\267\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html"
index 33388c96e4..72391a4aa0 100644
--- "a/zh/blog/2019/11/01/dubbo\345\256\242\346\210\267\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html"
+++ "b/zh/blog/2019/11/01/dubbo\345\256\242\346\210\267\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/11/01/dubbo%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-11-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name [...]
-"><meta itemprop=datePublished content="2019-11-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="97"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo客户端异步接口的实现背景和实践"><meta name=twitter:description content="本文介绍了 Dubbo 客户端异步接口的实现背景和实践
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/11/01/dubbo%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-11-01T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name [...]
+"><meta itemprop=datePublished content="2019-11-01T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="97"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo客户端异步接口的实现背景和实践"><meta name=twitter:description content="本文介绍了 Dubbo 客户端异步接口的实现背景和实践
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-client-asynchronous-interface/>Engl [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> id=<span style=color:#2aa198>"demoService"</span> check=<span style=color:#2aa198>"false"</span> interface=<span style=color:#2aa198>"com.alibaba.dubbo.samples.notify.api.DemoService"</span> version=<span style=color:#2aa198>"1.0.0"</span> group=<span style=color:#2aa198>"cn"</span><span style=color:#268bd2>></span>
</span></span><span style=display:flex><span> <span style=color:#268bd2><dubbo:method</span> name=<span style=color:#2aa198>"sayHello"</span> onreturn=<span style=color:#2aa198>"demoCallback.onreturn"</span> onthrow=<span style=color:#2aa198>"demoCallback.onthrow"</span><span style=color:#268bd2>/></span>
diff --git "a/zh/blog/2019/11/02/dubbo\346\234\215\345\212\241\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html" "b/zh/blog/2019/11/02/dubbo\346\234\215\345\212\241\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html"
index a23f9864f8..3ad80d31b5 100644
--- "a/zh/blog/2019/11/02/dubbo\346\234\215\345\212\241\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html"
+++ "b/zh/blog/2019/11/02/dubbo\346\234\215\345\212\241\347\253\257\345\274\202\346\255\245\346\216\245\345\217\243\347\232\204\345\256\236\347\216\260\350\203\214\346\231\257\345\222\214\345\256\236\350\267\265/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/11/02/dubbo%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-11-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name [...]
-"><meta itemprop=datePublished content="2019-11-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="106"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo服务端异步接口的实现背景和实践"><meta name=twitter:description content="本文介绍了 Dubbo 服务端异步接口的实现背景和实践
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/11/02/dubbo%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%BC%82%E6%AD%A5%E6%8E%A5%E5%8F%A3%E7%9A%84%E5%AE%9E%E7%8E%B0%E8%83%8C%E6%99%AF%E5%92%8C%E5%AE%9E%E8%B7%B5/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-11-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name [...]
+"><meta itemprop=datePublished content="2019-11-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="106"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo服务端异步接口的实现背景和实践"><meta name=twitter:description content="本文介绍了 Dubbo 服务端异步接口的实现背景和实践
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2019/02/20/implementation-background-and-practice-of-dubbo-server-asynchronous-interface/>Engl [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
多说一句,希望大家对这个策略多留意一下,它可能是Dubbo服务端异步方式的最佳搭配。我也多扯个淡,这几天关注了些adaptive XX或者predictive XX,这里看到dynamic真是亲切,Dubbo作为产品级生产级的微服务解决方案,是必须既要adaptive,又要predictive,还要dynamic,哈哈。</p><ol start=4><li><strong>Leader-follower策略</strong></li></ol><p><img src=/imgs/blog/dubboasyn_server/4.png alt=leaderfollower-strategy.png></p><p>此策略类似于第一种,但它不是将NIO事件处理传递给worker线程,而是通过将控制传递给Selector给工作线程,并将实际NIO事件处理当前IO线程中。这种策略其实是把worker和IO线程阶段做了混淆,个人不建议。</p><h3 id=协程与线程>协程与线程</h3><p>在CPU资源的管理上,OS和JVM的最小调度单位都是线程,业务应用通过扩展实现的协程包 [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>@Override</span>
diff --git "a/zh/blog/2019/11/30/dubbo-\345\234\250-service-mesh-\344\270\213\347\232\204\346\200\235\350\200\203\345\222\214\346\226\271\346\241\210/index.html" "b/zh/blog/2019/11/30/dubbo-\345\234\250-service-mesh-\344\270\213\347\232\204\346\200\235\350\200\203\345\222\214\346\226\271\346\241\210/index.html"
index ab92e698e5..76748fb5bb 100644
--- "a/zh/blog/2019/11/30/dubbo-\345\234\250-service-mesh-\344\270\213\347\232\204\346\200\235\350\200\203\345\222\214\346\226\271\346\241\210/index.html"
+++ "b/zh/blog/2019/11/30/dubbo-\345\234\250-service-mesh-\344\270\213\347\232\204\346\200\235\350\200\203\345\222\214\346\226\271\346\241\210/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
我们相信在这几个层面,尤其是会话层和应用层,用不多几年一定会是标准化的,尤其是在云原生的趋势下。</li></ul><h3 id=方案之kubernetes集成span-data-typecolor-stylecolorwhiteduspan>方案之Kubernetes集成<span data-type=color style=color:#fff>Du</span></h3><p><img src=/imgs/blog/dubbomesh/7.png alt="7.png | center | 826x206" title>
<span data-type=color style=color:#fff>bbo Mesh方案之Kubernetes集成</span>
其实,servicemesh在最近两年流行最大的原因是云原生理念的逐渐深入人心,从广义角度看,能够融入云原生的微服务框架都能称得上servicemesh。谈云原生,肯定绕不开kubernetes,所以我们在Dubbo Mesh的方案的第一个分享是 在kubernetes下的集成,目标是复用Kubernetes的基础服务,从而使得Dubbo能解决kubernetes环境下的微服务集成问题,同时能最大限度的利用dubbo已有的功能。核心思路是两点,</p><ul><li>Dubbo应用在构建阶段自动生成其deployment和service的声明文件。这个主要是解决Dubbo与kubernetes的服务映射。</li><li>Dubbo地址注册针对kubernetes的扩展实现,通过Kubernetes的APIServer来拉取并监听某个服务的podIP。这样,在kubernetes集群内,Dubbo服务就能在其podID的虚拟网络内实现服务发现。</li></ul><h2 id=方案之跨语言协议支持>方案之跨语言协议支持</h2><p><img src=/imgs/blo [...]
diff --git "a/zh/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html" "b/zh/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html"
index 6e35107c67..50d5e6f2c1 100644
--- "a/zh/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html"
+++ "b/zh/blog/2019/12/02/dubbo\346\265\213\350\257\225\351\252\214\350\257\201/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-12-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo测试验证"><meta itemprop=description content [...]
-"><meta itemprop=datePublished content="2019-12-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="207"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo测试验证"><meta name=twitter:description content="对正在开发的功能进行验证测试,或者单独调用某台机器的服务
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2019-12-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo测试验证"><meta itemprop=description content [...]
+"><meta itemprop=datePublished content="2019-12-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="207"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo测试验证"><meta name=twitter:description content="对正在开发的功能进行验证测试,或者单独调用某台机器的服务
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
禁用注册配置</p><pre><code><dubbo:registry address="10.20.153.10:9090" register="false" />
</code></pre><p>或者</p><pre><code><dubbo:registry address="10.20.153.10:9090?register=false" />
</code></pre><h3 id=指定ip调用>指定IP调用</h3><p>在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直联方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表<br><img src=/imgs/blog/dubbo-directly.jpg alt=subscribe-only></p><p>可以通过以下几种配置来指定IP调用</p><ul><li>XML 配置: 如果是线上需求需要点对点,可在 <a href=dubbo:reference>dubbo:reference</a> 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
@@ -51,7 +51,7 @@
</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
-</span></span></code></pre></div><p>在经过EchoFilter.invoke方法时,如果调用的是<code>$echo</code>,会中断当前的调用过程,直接返回<code>$echo</code>的入参,否则会继续执行Filter链。<br>通过动态代理和EchoFilter机制,使得回声测试的整个过程对用户透明,不需要做任何额外的配置,直接调用即可。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/11/30/dubbo-%E5%9C%A8-service-mesh-%E4%B8%8B%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E6%96%B9%E6%A1%88/ aria-label="上一页 - Dubbo 在 Service Mesh 下的思考和方案" class="btn btn-primary"><span c [...]
+</span></span></code></pre></div><p>在经过EchoFilter.invoke方法时,如果调用的是<code>$echo</code>,会中断当前的调用过程,直接返回<code>$echo</code>的入参,否则会继续执行Filter链。<br>通过动态代理和EchoFilter机制,使得回声测试的整个过程对用户透明,不需要做任何额外的配置,直接调用即可。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/11/30/dubbo-%E5%9C%A8-service-mesh-%E4%B8%8B%E7%9A%84%E6%80%9D%E8%80%83%E5%92%8C%E6%96%B9%E6%A1%88/ aria-label="上一页 - Dubbo 在 Service Mesh 下的思考和方案" class="btn btn-primary"><span c [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2020/05/11/\344\273\216-2019-\345\210\260-2020apache-dubbo-\345\271\264\345\272\246\345\233\236\351\241\276\344\270\216\346\200\273\347\273\223/index.html" "b/zh/blog/2020/05/11/\344\273\216-2019-\345\210\260-2020apache-dubbo-\345\271\264\345\272\246\345\233\236\351\241\276\344\270\216\346\200\273\347\273\223/index.html"
index a7ca4859ba..1bc93c9e48 100644
--- "a/zh/blog/2020/05/11/\344\273\216-2019-\345\210\260-2020apache-dubbo-\345\271\264\345\272\246\345\233\236\351\241\276\344\270\216\346\200\273\347\273\223/index.html"
+++ "b/zh/blog/2020/05/11/\344\273\216-2019-\345\210\260-2020apache-dubbo-\345\271\264\345\272\246\345\233\236\351\241\276\344\270\216\346\200\273\347\273\223/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/05/11/%E4%BB%8E-2019-%E5%88%B0-2020apache-dubbo-%E5%B9%B4%E5%BA%A6%E5%9B%9E%E9%A1%BE%E4%B8%8E%E6%80%BB%E7%BB%93/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta item [...]
-"><meta itemprop=datePublished content="2020-05-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="722"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="从 2019 到 2020,Apache Dubbo 年度回顾与总结"><meta name=twitter:description content="通过这篇文章我们将:总结过去一年 Dubbo 社区取得的成绩
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/05/11/%E4%BB%8E-2019-%E5%88%B0-2020apache-dubbo-%E5%B9%B4%E5%BA%A6%E5%9B%9E%E9%A1%BE%E4%B8%8E%E6%80%BB%E7%BB%93/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-11T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta item [...]
+"><meta itemprop=datePublished content="2020-05-11T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="722"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="从 2019 到 2020,Apache Dubbo 年度回顾与总结"><meta name=twitter:description content="通过这篇文章我们将:总结过去一年 Dubbo 社区取得的成绩
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
Dubbo Java 版本的典型服务定义如下:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>interface</span> <span style=color:#268bd2>HelloService</span> <span style=color:#719e07>{</span>
</span></span><span style=display:flex><span> <span style=color:#586e75>// Synchronous style
</span></span></span><span style=display:flex><span><span style=color:#586e75></span> String <span style=color:#268bd2>sayHello</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
@@ -37,7 +37,7 @@ Reactive Stream 引入 RPC,带来更丰富的通信语义和 API 编程模型
兼顾通用性与性能,支持协议能在各种设备上运行</p><h3 id=服务自省---应用粒度的服务注册>服务自省 - 应用粒度的服务注册</h3><p>Dubbo 最大的优势之一在于其易用性,其面向接口(RPC 方法)的编程模型。同时,面向接口的治理也带来了一些问题:</p><ul><li>地址数量成倍增长,给地址推送带来很大压力</li><li>和主流微服务体系模型不匹配,如 SpringCloud、Kubernetes 等</li></ul><p>为此,我们计划引入应用粒度的服务注册机制,主要有以下几个重点:</p><ul><li>注册中心按 “应用 - 实例IP” 组织,不再关心 RPC 接口同步</li><li>引入独立的元数据服务完成 RPC 接口同步工作</li></ul><p>以下是应用粒度服务注册(服务自省)的基本工作原理,请持续关注后续对这部分的具体解析和开发进展。</p><p><img src=/imgs/blog/servicediscovery-new.png alt="service discovery new"></p><h3 id=云原生
>云原 [...]
<strong>治理规则:</strong> 服务治理规则在规则体、规则格式方面进行优化,如规则体以 YAML 描述、取消过滤规则对 IP 的直接依赖,定义规则特有的 CRD 资源等。
<strong>服务发现:</strong> 支持 K8S Native Service 的服务发现,包括 DNS、API-Server,支持 xDS 的服务发现
-<strong>Mesh 架构协作:</strong> 构建下一代的基于 HTTP/2 的通信协议,支持 xDS 的标准化的数据下发</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/12/02/dubbo%E6%B5%8B%E8%AF%95%E9%AA%8C%E8%AF%81/ aria-label="上一页 - Dubbo测试验证" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/ aria-label="下一页 - Dubbo-Api-Docs -- Apach [...]
+<strong>Mesh 架构协作:</strong> 构建下一代的基于 HTTP/2 的通信协议,支持 xDS 的标准化的数据下发</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/01/26/%E9%81%87%E8%A7%81dubbo/ aria-label="上一页 - 遇见Dubbo" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2021/01/11/dubbo-go-%E5%9B%9E%E9%A1%BE%E4%B8%8E%E5%B1%95%E6%9C%9B/ aria-label="下一页 - Dubbo Go 回顾与展望" class="btn btn-primary">下一页<span class=ml-1>→</span></a></li></ul></div>< [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2020/05/18/2.7.5-\345\212\237\350\203\275\350\247\243\346\236\220/index.html" "b/zh/blog/2020/05/18/2.7.5-\345\212\237\350\203\275\350\247\243\346\236\220/index.html"
index 80311498ca..b963cece24 100644
--- "a/zh/blog/2020/05/18/2.7.5-\345\212\237\350\203\275\350\247\243\346\236\220/index.html"
+++ "b/zh/blog/2020/05/18/2.7.5-\345\212\237\350\203\275\350\247\243\346\236\220/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/05/18/2.7.5-%E5%8A%9F%E8%83%BD%E8%A7%A3%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="2.7.5 功能解析"><meta itemprop=description conte [...]
-"><meta itemprop=datePublished content="2020-05-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="630"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="2.7.5 功能解析"><meta name=twitter:description content="2.7.5 发布,及其功能解析
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/05/18/2.7.5-%E5%8A%9F%E8%83%BD%E8%A7%A3%E6%9E%90/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="2.7.5 功能解析"><meta itemprop=description conte [...]
+"><meta itemprop=datePublished content="2020-05-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="630"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="2.7.5 功能解析"><meta name=twitter:description content="2.7.5 发布,及其功能解析
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span>option java_multiple_files = <span style=color:#cb4b16>true</span>;
</span></span><span style=display:flex><span>option java_package = <span style=color:#2aa198>"org.apache.dubbo.demo"</span>;
diff --git "a/zh/blog/2020/05/18/\350\277\207\345\276\200\347\211\210\346\234\254/index.html" "b/zh/blog/2020/05/18/\350\277\207\345\276\200\347\211\210\346\234\254/index.html"
index 53a81aec25..516d6657e3 100644
--- "a/zh/blog/2020/05/18/\350\277\207\345\276\200\347\211\210\346\234\254/index.html"
+++ "b/zh/blog/2020/05/18/\350\277\207\345\276\200\347\211\210\346\234\254/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/05/18/%E8%BF%87%E5%BE%80%E7%89%88%E6%9C%AC/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="过往版本"><meta itemprop=description content="本文将向你介绍如 [...]
-"><meta itemprop=datePublished content="2020-05-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="376"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="过往版本"><meta name=twitter:description content="本文将向你介绍如何点击了解各版本详情和升级注意事项。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/05/18/%E8%BF%87%E5%BE%80%E7%89%88%E6%9C%AC/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-05-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="过往版本"><meta itemprop=description content="本文将向你介绍如 [...]
+"><meta itemprop=datePublished content="2020-05-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="376"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="过往版本"><meta name=twitter:description content="本文将向你介绍如何点击了解各版本详情和升级注意事项。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2020/05/18/past-releases/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg- [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<a href=https://www.apache.org/dyn/closer.lua/dubbo/2.7.16/apache-dubbo-2.7.16-src.zip.asc>asc</a> |
<a href=https://www.apache.org/dyn/closer.lua/dubbo/2.7.16/apache-dubbo-2.7.16-src.zip.sha512>sha512</a></li></ul><h3 id=309-2022-06-23>3.0.9 (2022-06-23)</h3><ul><li><a href=https://www.apache.org/dyn/closer.lua/dubbo/3.0.9/apache-dubbo-3.0.9-src.zip>source</a> |
<a href=https://www.apache.org/dyn/closer.lua/dubbo/3.0.9/apache-dubbo-3.0.9-src.zip.asc>asc</a> |
diff --git "a/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo\346\226\207\346\241\243\345\261\225\347\244\272\346\265\213\350\257\225\345\267\245\345\205\267/index.html" "b/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo\346\226\207\346\241\243\345\261\225\347\244\272\346\265\213\350\257\225\345\267\245\345\205\267/index.html"
index 86ae717eb6..46d5a7e0c5 100644
--- "a/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo\346\226\207\346\241\243\345\261\225\347\244\272\346\265\213\350\257\225\345\267\245\345\205\267/index.html"
+++ "b/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo\346\226\207\346\241\243\345\261\225\347\244\272\346\265\213\350\257\225\345\267\245\345\205\267/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-12-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop= [...]
-"><meta itemprop=datePublished content="2020-12-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="553"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo-Api-Docs -- Apache Dubbo文档展示&测试工具"><meta name=twitter:description content="本文将向你介绍Dubbo-Api-Docs
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2020-12-22T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop= [...]
+"><meta itemprop=datePublished content="2020-12-22T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="553"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo-Api-Docs -- Apache Dubbo文档展示&测试工具"><meta name=twitter:description content="本文将向你介绍Dubbo-Api-Docs
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
Swagger 规范也逐渐发展成为了 OpenAPI 规范.</p><p>Springfox 是一个集成了Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的
一些描述接口的注解自动生成Swagger的描述文件, 使 Swagger 能够展示并调用接口.</p><p>相信很多人都听说和使用过Swagger和Springfox, 这里就不再赘述了.</p><p>Dubbo-Admin中有接口测试功能,但是缺少接口描述的文档,所以该测试功能比较适合接口开发人员用于测试接口.而其他人想要使用该功能就必须
先通过接口开发者编写的文档或者其他方式了解清楚接口信息才能使用该功能测试接口.
@@ -89,7 +89,7 @@ Dubbo这边有没有集合文档展示和测试功能,能不用写文档就能
</span></span><span style=display:flex><span>4. 浏览器访问: http://localhost:8080
</span></span><span style=display:flex><span>5. 默认帐号密码都是: root
</span></span></code></pre></div><h3 id=5进入接口文档模块>5.进入"接口文档"模块</h3><ul><li>在"dubbo提供者IP"和"dubbo提供者端口"中分别输入提供者所在机器IP和端口, 点击右侧 " 加载接口列表" 按钮</li><li>左侧接口列表中加载出接口列表,点击任意接口,右边展示出该接口信息及参数表单.</li><li>填入表单内容后,点击最下方测试按钮</li><li>响应部分展示了响应示例及实际响应结果</li></ul><h2 id=源码仓库>源码仓库</h2><p>Dubbo-Api-Docs 根据功能拆分,分别在两个仓库中:</p><h3 id=dubbo-spi-extensions>dubbo-spi-extensions</h3><blockquote><p><a href=https://github.com/apache/dubbo-spi-extensions>dubbo-spi-extensions仓库地址</a></p></blockquote><p>该仓库存放dubbo的一些非核 [...]
-该仓库中包含了 Dubbo-Api-Docs 的文档相关注解、注解扫描能力和使用示例:</p><ul><li>dubbo-api-docs-annotations: 文档生成的相关注解.考虑到实际情况中 dubbo api 的接口类和接口参数会规划为一个单独的jar包, 所以注解也独立为一个jar包.本文后面会对注解做详细说明.</li><li>dubbo-api-docs-core: 负责解析注解,生成文档信息并缓存. 前面提到的Dubbo-Api-Docs相关接口也在该包中</li><li>dubbo-api-docs-examples: 使用示例</li></ul><h3 id=dubbo-admin>Dubbo-Admin</h3><blockquote><p><a href=https://github.com/KeRan213539/dubbo-admin>Dubbo-Admin仓库地址</a></p></blockquote><p>文档的展示及测试放在了 dubbo admin 项目中</p><h2 id=注解说明>注解说明</h2><ul><li>@En [...]
+该仓库中包含了 Dubbo-Api-Docs 的文档相关注解、注解扫描能力和使用示例:</p><ul><li>dubbo-api-docs-annotations: 文档生成的相关注解.考虑到实际情况中 dubbo api 的接口类和接口参数会规划为一个单独的jar包, 所以注解也独立为一个jar包.本文后面会对注解做详细说明.</li><li>dubbo-api-docs-core: 负责解析注解,生成文档信息并缓存. 前面提到的Dubbo-Api-Docs相关接口也在该包中</li><li>dubbo-api-docs-examples: 使用示例</li></ul><h3 id=dubbo-admin>Dubbo-Admin</h3><blockquote><p><a href=https://github.com/KeRan213539/dubbo-admin>Dubbo-Admin仓库地址</a></p></blockquote><p>文档的展示及测试放在了 dubbo admin 项目中</p><h2 id=注解说明>注解说明</h2><ul><li>@En [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/11/dubbo-go-getty-\345\274\200\345\217\221\346\227\245\345\277\227/index.html" "b/zh/blog/2021/01/11/dubbo-go-getty-\345\274\200\345\217\221\346\227\245\345\277\227/index.html"
index 14fba9e1dd..ae3c9a5024 100644
--- "a/zh/blog/2021/01/11/dubbo-go-getty-\345\274\200\345\217\221\346\227\245\345\277\227/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-getty-\345\274\200\345\217\221\346\227\245\345\277\227/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
Server,其命名规范学习了著名的netty。当时这个引擎比较简洁,随着我对这个项目的改进这个网络层引擎也就随之进化了(添加了TCP Client、抽象出了 TCP connection 和 TCP
session),至2016年8月份(又添加了websocket)其与原始实现已经大异其趣了,征得原作者和相关领导同意后就放到了github上。</p><p>将近两年的时间我不间断地对其进行改进,年齿渐增但记忆速衰,觉得有必要记录下一些开发过程中遇到的问题以及解决方法,以备将来回忆之参考。</p><h3 id=1-udp-connection>1 UDP connection</h3><p>2018年3月5日 起给 getty 添加了UDP支持。</p><h4 id=11-udp-connect>1.1 UDP connect</h4><p>UDP自身分为unconnected UDP和connected UDP两种,connected UDP的底层原理见下图。</p><p><img src=/imgs/blog/dubbo-go/connected_udp_socket.gif alt></p><p>当一端的UDP endpoint调用connect之后,os就会在内部的routing table上把udp socket和另一个endpoint的地址关联起来,在发 [...]
endpoint端建立起一个单向的连接四元组:发出的datagram packet只能发往这个endpoint(不管sendto的时候是否指定了地址)且只能接收这个endpoint发来的udp datagram
diff --git "a/zh/blog/2021/01/11/dubbo-go-\344\270\255-metrics-\347\232\204\350\256\276\350\256\241/index.html" "b/zh/blog/2021/01/11/dubbo-go-\344\270\255-metrics-\347\232\204\350\256\276\350\256\241/index.html"
index 87b3aaff5f..586b811543 100644
--- "a/zh/blog/2021/01/11/dubbo-go-\344\270\255-metrics-\347\232\204\350\256\276\350\256\241/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-\344\270\255-metrics-\347\232\204\350\256\276\350\256\241/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
metrics ,见 <a href=https://github.com/flycash/dubbo-go/tree/feature/MetricsFilter>https://github.com/flycash/dubbo-go/tree/feature/MetricsFilter</a> 下 metrics 子目录。</p><p>总体上来说,Dubbo 的 metrics 是一个从设计到实现都非常优秀的模块,理论上来说,大部分的 Java 项目是可以直接使用 metrics 的。但也因为兼顾性能、扩展性等各种非功能特性,所以初看代码会有种无从下手的感觉。</p><p>今天这篇文章将会从比较大的概念和抽象上讨论一下 dubbo-go 中的 metrics 模块的设计——实际上也就是 Dubbo 中的 metrics 的设计。因为我仅仅是将 Dubbo 里面的相关内容在 dubbo-go 中复制一份。</p><p>目前 dubbo-go 的 metrics 刚刚开始起步,第一个 PR 是: <a href=https://github.com/apache/dubb [...]
就会是某个服务。</p><p>这里的设计要点在于,它是从什么角度上去做这些数据的抽象的。</p><p>很多人在开发这种采集数据的相关系统或者功能的时候,最容易陷入的就是从数据内容上做抽象,例如抽象一个接口,里面的方法就是获得服务的调用次数或者平均响应时间等。</p><p>这种抽象并非不可以,尤其是在简单系统里面,还非常好用。唯独在通用性和扩展性上要差很多。</p><h3 id=metricmanager>MetricManager</h3><p>在我们定义了 Metric 之后,很容易就想到,我要有一个东西来管理这些 Metric 。这就是 MetricManager ——对应到 Dubbo 里面的 IMetricManager 接口。</p><p>MetricManager 接口目前在 dubbo-go 里面还很简单:</p><p><img src=/imgs/blog/dubbo-go/metrics/p4.webp alt></p><p>本质上来说,我在前面提到的那些 Metric 的子类,都可以从这个 MetricManager 里面拿到。它是对外的唯一入口。
< [...]
FastCompass 的实例,而后采集这些数据:</p><p><img src=/imgs/blog/dubbo-go/metrics/p5.webp alt></p><h3 id=metricregistry>MetricRegistry</h3><p>MetricRegistry 是一个对 Metric 集合的抽象。 MetricManager 的默认实现里面,就是使用 MetricRegistry 来管理 Metric 的:</p><p><img src=/imgs/blog/dubbo-go/metrics/p6.webp alt></p><p>所以,本质上它就是提供了一些注册 Metric 然后再从里面捞出来的方法。</p><p>于是,这就有一个问题了:为什么我在有了 MetricManager 之后,还有有一个MetricRegistry?似乎这两个功能有些重叠?</p><p>答案大概是两个方面:</p><p>1、除了管理所有的 Metric 之外,还承担着额外的功能,这些功能典型的就是 IsEnabled 。而实际上,在未来我们会赋予它管理生命周期的责任 [...]
diff --git "a/zh/blog/2021/01/11/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\277\234\347\250\213\351\205\215\347\275\256\347\256\241\347\220\206/index.html" "b/zh/blog/2021/01/11/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\277\234\347\250\213\351\205\215\347\275\256\347\256\241\347\220\206/index.html"
index 94f7f5d791..4246fe9079 100644
--- "a/zh/blog/2021/01/11/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\277\234\347\250\213\351\205\215\347\275\256\347\256\241\347\220\206/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\277\234\347\250\213\351\205\215\347\275\256\347\256\241\347\220\206/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<img src=/imgs/blog/dubbo-go/config-center/config-center-class.jpg alt></p><h4 id=configcenterfactory>ConfigCenterFactory</h4><p>使用者加载对应配置中心模块后,在初始化阶段加入各配置中心模块往其中注册其初始化类。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-golang data-lang=golang><span style=display:flex><span><span style=color:#719e07>package</span> extension
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span><span style=color:#719e07>import</span> (
diff --git "a/zh/blog/2021/01/11/dubbo-go-\344\270\255\347\232\204-tps-limit-\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260/index.html" "b/zh/blog/2021/01/11/dubbo-go-\344\270\255\347\232\204-tps-limit-\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260/index.html"
index 201d7ffe25..036fd12636 100644
--- "a/zh/blog/2021/01/11/dubbo-go-\344\270\255\347\232\204-tps-limit-\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-\344\270\255\347\232\204-tps-limit-\350\256\276\350\256\241\344\270\216\345\256\236\347\216\260/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#586e75>// IsAllowable will check whether this invocation should be enabled for further process
</span></span></span><span style=display:flex><span><span style=color:#586e75></span> <span style=color:#268bd2>IsAllowable</span>(<span style=color:#719e07>*</span>common.URL, protocol.Invocation) <span style=color:#dc322f>bool</span>
</span></span><span style=display:flex><span>}
diff --git "a/zh/blog/2021/01/11/dubbo-go-\345\233\236\351\241\276\344\270\216\345\261\225\346\234\233/index.html" "b/zh/blog/2021/01/11/dubbo-go-\345\233\236\351\241\276\344\270\216\345\261\225\346\234\233/index.html"
index b011cda14b..879ea41934 100644
--- "a/zh/blog/2021/01/11/dubbo-go-\345\233\236\351\241\276\344\270\216\345\261\225\346\234\233/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-\345\233\236\351\241\276\344\270\216\345\261\225\346\234\233/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/11/dubbo-go-\345\277\253\351\200\237\345\274\200\345\247\213/index.html" "b/zh/blog/2021/01/11/dubbo-go-\345\277\253\351\200\237\345\274\200\345\247\213/index.html"
index 233caad304..a41edc52cd 100644
--- "a/zh/blog/2021/01/11/dubbo-go-\345\277\253\351\200\237\345\274\200\345\247\213/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-\345\277\253\351\200\237\345\274\200\345\247\213/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> Id <span style=color:#dc322f>string</span>
</span></span><span style=display:flex><span> Name <span style=color:#dc322f>string</span>
</span></span><span style=display:flex><span> Age <span style=color:#dc322f>int32</span>
@@ -88,7 +88,7 @@
</span></span><span style=display:flex><span>}
</span></span></code></pre></div><h3 id=第三步编写配置文件并配置环境变量-1>第三步:编写配置文件并配置环境变量</h3><ol><li>参考 <a href=https://github.com/dubbogo/dubbo-samples/blob/master/golang/helloworld/dubbo/go-client/profiles/release/log.yml>log</a> 和 <a href=https://github.com/dubbogo/dubbo-samples/blob/master/golang/helloworld/dubbo/go-client/profiles/release/client.yml>client</a> 编辑配置文件。</li></ol><p>主要编辑以下部分:</p><ul><li><code>registries</code> 结点下需要配置zk的数量和地址</li><li><code>references</code> 结点下配置服务的具体信息,需要配置 <code [...]
</span></span><span style=display:flex><span><span style=color:#b58900>export</span> <span style=color:#268bd2>APP_LOG_CONF_FILE</span><span style=color:#719e07>=</span><span style=color:#2aa198>"xxx"</span>
-</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2021/01/11/dubbo-go-%E4%B8%AD-metrics-%E7%9A%84%E8%AE%BE%E8%AE%A1/ aria-label="上一页 - Dubbo Go 中 metrics 的设计" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2021/01/11/dubbo-go-%E5%9B%9E%E9%A1%BE%E4%B8%8E%E5%B1%95%E6%9C%9B/ aria-label="下一页 - Dubbo Go 回顾与展望" class="btn btn-primary">下一页<span class=ml-1>→</span></a></li></u [...]
+</span></span></code></pre></div><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2021/01/11/dubbo-go-%E4%B8%AD-metrics-%E7%9A%84%E8%AE%BE%E8%AE%A1/ aria-label="上一页 - Dubbo Go 中 metrics 的设计" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2021/01/11/%E5%86%B2%E4%B8%8A%E4%BA%91%E5%8E%9F%E7%94%9Fdubbo-%E5%8F%91%E5%B8%83-go-%E7%89%88%E6%9C%AC/ aria-label="下一页 - 冲上云原生,Dubbo 发布 Go 版本" class="btn btn-primar [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/11/dubbo-go-\347\232\204\345\211\215\344\270\226\344\273\212\347\224\237/index.html" "b/zh/blog/2021/01/11/dubbo-go-\347\232\204\345\211\215\344\270\226\344\273\212\347\224\237/index.html"
index 9dde6ffef8..5fac5f08de 100644
--- "a/zh/blog/2021/01/11/dubbo-go-\347\232\204\345\211\215\344\270\226\344\273\212\347\224\237/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-\347\232\204\345\211\215\344\270\226\344\273\212\347\224\237/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/11/dubbo-go-\350\270\251\345\235\221\350\256\260/index.html" "b/zh/blog/2021/01/11/dubbo-go-\350\270\251\345\235\221\350\256\260/index.html"
index fb48a70827..db1887d937 100644
--- "a/zh/blog/2021/01/11/dubbo-go-\350\270\251\345\235\221\350\256\260/index.html"
+++ "b/zh/blog/2021/01/11/dubbo-go-\350\270\251\345\235\221\350\256\260/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> _ <span style=color:#2aa198>"github.com/apache/dubbo-go/common/proxy/proxy_factory"</span>
</span></span><span style=display:flex><span> _ <span style=color:#2aa198>"github.com/apache/dubbo-go/registry/protocol"</span>
</span></span><span style=display:flex><span>
diff --git "a/zh/blog/2021/01/11/\345\206\262\344\270\212\344\272\221\345\216\237\347\224\237dubbo-\345\217\221\345\270\203-go-\347\211\210\346\234\254/index.html" "b/zh/blog/2021/01/11/\345\206\262\344\270\212\344\272\221\345\216\237\347\224\237dubbo-\345\217\221\345\270\203-go-\347\211\210\346\234\254/index.html"
index 800b43435b..ce12444290 100644
--- "a/zh/blog/2021/01/11/\345\206\262\344\270\212\344\272\221\345\216\237\347\224\237dubbo-\345\217\221\345\270\203-go-\347\211\210\346\234\254/index.html"
+++ "b/zh/blog/2021/01/11/\345\206\262\344\270\212\344\272\221\345\216\237\347\224\237dubbo-\345\217\221\345\270\203-go-\347\211\210\346\234\254/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/11/\345\234\250dubbo-go\344\270\255\344\275\277\347\224\250sentinel/index.html" "b/zh/blog/2021/01/11/\345\234\250dubbo-go\344\270\255\344\275\277\347\224\250sentinel/index.html"
index 1343e98285..bb0d028274 100644
--- "a/zh/blog/2021/01/11/\345\234\250dubbo-go\344\270\255\344\275\277\347\224\250sentinel/index.html"
+++ "b/zh/blog/2021/01/11/\345\234\250dubbo-go\344\270\255\344\275\277\347\224\250sentinel/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> sentinel <span style=color:#2aa198>"github.com/alibaba/sentinel-golang/api"</span>
</span></span><span style=display:flex><span>)
</span></span><span style=display:flex><span>
@@ -76,7 +76,7 @@
</span></span><span style=display:flex><span><span style=color:#719e07>if</span> err <span style=color:#719e07>!=</span> <span style=color:#cb4b16>nil</span> {
</span></span><span style=display:flex><span> <span style=color:#586e75>// 加载规则失败,进行相关处理
</span></span></span><span style=display:flex><span><span style=color:#586e75></span>}
-</span></span></code></pre></div><h1 id=总结>总结</h1><p>更加具体的实现,我就不详细论述,大家可以去看源码进一步了解。</p><p>最后,欢迎大家持续关注,或者贡献代码,期待dubbo-go在2020年在云原生领域继续突破。</p><p>dubbo-go仓库地址:https://github.com/apache/dubbo-go</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/ aria-label="上一页 - Dubbo-Api-Docs -- Apache Dubbo文档展示&测试工具" class="btn btn-prim [...]
+</span></span></code></pre></div><h1 id=总结>总结</h1><p>更加具体的实现,我就不详细论述,大家可以去看源码进一步了解。</p><p>最后,欢迎大家持续关注,或者贡献代码,期待dubbo-go在2020年在云原生领域继续突破。</p><p>dubbo-go仓库地址:https://github.com/apache/dubbo-go</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a class="btn btn-primary disabled"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2021/01/11/%E6%97%A0%E7%BC%9D%E8%A1%94%E6%8E%A5-grpc-%E4%B8%8E-dubbo-go/ aria-label="下一页 - 无缝衔接 gRPC 与 dubbo-go" class [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/11/\346\227\240\347\274\235\350\241\224\346\216\245-grpc-\344\270\216-dubbo-go/index.html" "b/zh/blog/2021/01/11/\346\227\240\347\274\235\350\241\224\346\216\245-grpc-\344\270\216-dubbo-go/index.html"
index ab3362a14d..9d17a2f41b 100644
--- "a/zh/blog/2021/01/11/\346\227\240\347\274\235\350\241\224\346\216\245-grpc-\344\270\216-dubbo-go/index.html"
+++ "b/zh/blog/2021/01/11/\346\227\240\347\274\235\350\241\224\346\216\245-grpc-\344\270\216-dubbo-go/index.html"
@@ -1,9 +1,9 @@
-<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git a/zh/blog/2021/01/12/dubbo-go-1.4.0/index.html b/zh/blog/2021/01/12/dubbo-go-1.4.0/index.html
index f59a60ed5d..c6ee2d7823 100644
--- a/zh/blog/2021/01/12/dubbo-go-1.4.0/index.html
+++ b/zh/blog/2021/01/12/dubbo-go-1.4.0/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-1.4.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 1.4.0"><meta itemprop=description content="dubbo-go 1.4.0 版本发布, [...]
-"><meta itemprop=datePublished content="2021-01-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="464"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 1.4.0"><meta name=twitter:description content="dubbo-go 1.4.0 版本发布,支持 K8s 注册中心、rest 协议
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-1.4.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 1.4.0"><meta itemprop=description content="dubbo-go 1.4.0 版本发布, [...]
+"><meta itemprop=datePublished content="2021-01-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="464"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 1.4.0"><meta name=twitter:description content="dubbo-go 1.4.0 版本发布,支持 K8s 注册中心、rest 协议
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> Animal
</span></span><span style=display:flex><span> Gender <span style=color:#dc322f>string</span>
</span></span><span style=display:flex><span> DogName <span style=color:#dc322f>string</span> <span style=color:#2aa198>`hessian:"-"`</span>
diff --git "a/zh/blog/2021/01/12/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\267\257\347\224\261\350\247\204\345\210\231\345\212\237\350\203\275/index.html" "b/zh/blog/2021/01/12/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\267\257\347\224\261\350\247\204\345\210\231\345\212\237\350\203\275/index.html"
index 0667271146..46576762d3 100644
--- "a/zh/blog/2021/01/12/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\267\257\347\224\261\350\247\204\345\210\231\345\212\237\350\203\275/index.html"
+++ "b/zh/blog/2021/01/12/dubbo-go-\344\270\255\345\246\202\344\275\225\345\256\236\347\216\260\350\267\257\347\224\261\350\247\204\345\210\231\345\212\237\350\203\275/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99%E5%8A%9F%E8%83%BD/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta i [...]
-"><meta itemprop=datePublished content="2021-01-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="436"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 中如何实现路由规则功能"><meta name=twitter:description content="本文介绍了在 dubbo-go 中路由规则功能的设计与实现
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99%E5%8A%9F%E8%83%BD/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta i [...]
+"><meta itemprop=datePublished content="2021-01-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="436"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 中如何实现路由规则功能"><meta name=twitter:description content="本文介绍了在 dubbo-go 中路由规则功能的设计与实现
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></span><span style=display:flex><span><span style=color:#586e75></span><span style=color:#268bd2>type</span> Router <span style=color:#268bd2>interface</span> {
</span></span><span style=display:flex><span> <span style=color:#586e75>// Route determine the target invoker list.
</span></span></span><span style=display:flex><span><span style=color:#586e75></span> <span style=color:#268bd2>Route</span>([]protocol.Invoker, <span style=color:#719e07>*</span>common.URL, protocol.Invocation) []protocol.Invoker
diff --git "a/zh/blog/2021/01/12/\350\256\260\344\270\200\346\254\241\345\257\271-dubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html" "b/zh/blog/2021/01/12/\350\256\260\344\270\200\346\254\241\345\257\271-dubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html"
index e8d018a05f..525bf70d7f 100644
--- "a/zh/blog/2021/01/12/\350\256\260\344\270\200\346\254\241\345\257\271-dubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html"
+++ "b/zh/blog/2021/01/12/\350\256\260\344\270\200\346\254\241\345\257\271-dubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/12/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%AF%B9-dubbo-go-hessian2-%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop= [...]
-"><meta itemprop=datePublished content="2021-01-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="667"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="记一次对 dubbo-go-hessian2 的性能优化"><meta name=twitter:description content="本文介绍了在 dubbo-go-hessian2 中的一次性能调优
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/12/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%AF%B9-dubbo-go-hessian2-%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-12T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop= [...]
+"><meta itemprop=datePublished content="2021-01-12T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="667"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="记一次对 dubbo-go-hessian2 的性能优化"><meta name=twitter:description content="本文介绍了在 dubbo-go-hessian2 中的一次性能调优
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> A <span style=color:#dc322f>int</span>
</span></span><span style=display:flex><span> B <span style=color:#dc322f>string</span>
</span></span><span style=display:flex><span> CA time.Time
diff --git a/zh/blog/2021/01/14/dubbo-go-1.5.0/index.html b/zh/blog/2021/01/14/dubbo-go-1.5.0/index.html
index 868883d2e9..4de3053724 100644
--- a/zh/blog/2021/01/14/dubbo-go-1.5.0/index.html
+++ b/zh/blog/2021/01/14/dubbo-go-1.5.0/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 1.5.0"><meta itemprop=description content="Dubbo-go 发布 1.5 版,朝云 [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="286"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 1.5.0"><meta name=twitter:description content="Dubbo-go 发布 1.5 版,朝云原生迈出关键一步
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 1.5.0"><meta itemprop=description content="Dubbo-go 发布 1.5 版,朝云 [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="286"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 1.5.0"><meta name=twitter:description content="Dubbo-go 发布 1.5 版,朝云原生迈出关键一步
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git a/zh/blog/2021/01/14/dubbo-go-1.5.1/index.html b/zh/blog/2021/01/14/dubbo-go-1.5.1/index.html
index a8f4d77acc..57cb530f93 100644
--- a/zh/blog/2021/01/14/dubbo-go-1.5.1/index.html
+++ b/zh/blog/2021/01/14/dubbo-go-1.5.1/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 1.5.1"><meta itemprop=description content="Dubbo-go 团队近期发布了 Dub [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="340"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 1.5.1"><meta name=twitter:description content="Dubbo-go 团队近期发布了 Dubbo-go v1.5.1,Dubbo-go 是 Apache Dubbo 项目的 Go 实现。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 1.5.1"><meta itemprop=description content="Dubbo-go 团队近期发布了 Dub [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="340"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 1.5.1"><meta name=twitter:description content="Dubbo-go 团队近期发布了 Dubbo-go v1.5.1,Dubbo-go 是 Apache Dubbo 项目的 Go 实现。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#586e75># tag1包含一个实例 127.0.0.1:20880</span>
</span></span><span style=display:flex><span><span style=color:#586e75># tag2包含一个实例 127.0.0.1:20881</span>
</span></span><span style=display:flex><span>---
diff --git a/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/index.html b/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/index.html
index fa156da4b8..fc93c93f63 100644
--- a/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/index.html
+++ b/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go-hessian2 v1.6.0"><meta itemprop=description content=" [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="187"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go-hessian2 v1.6.0"><meta name=twitter:description content="What's new in Dubbo-go-hessian2 v1.6.0
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go-hessian2 v1.6.0"><meta itemprop=description content=" [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="187"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go-hessian2 v1.6.0"><meta name=twitter:description content="What's new in Dubbo-go-hessian2 v1.6.0
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> Animal
</span></span><span style=display:flex><span> Gender <span style=color:#dc322f>string</span>
</span></span><span style=display:flex><span> DogName <span style=color:#dc322f>string</span> <span style=color:#2aa198>`hessian:"-"`</span>
diff --git a/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/index.html b/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/index.html
index 210e01942c..97902c9a86 100644
--- a/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/index.html
+++ b/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/index.html
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go-hessian2 v1.7.0"><meta itemprop=description content=" [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="539"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go-hessian2 v1.7.0"><meta name=twitter:description content="What's new in Dubbo-go-hessian2 v1.7.0
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go-hessian2 v1.7.0"><meta itemprop=description content=" [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="539"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go-hessian2 v1.7.0"><meta name=twitter:description content="What's new in Dubbo-go-hessian2 v1.7.0
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> e <span style=color:#719e07>:=</span> hessian.<span style=color:#268bd2>NewEncoder</span>()
</span></span><span style=display:flex><span> exception <span style=color:#719e07>:=</span> java_exception.<span style=color:#268bd2>NewException</span>(<span style=color:#2aa198>"java_exception"</span>)
</span></span><span style=display:flex><span> e.<span style=color:#268bd2>Encode</span>(exception)
diff --git "a/zh/blog/2021/01/14/dubbo-go-\344\270\255-rest-\345\215\217\350\256\256\345\256\236\347\216\260/index.html" "b/zh/blog/2021/01/14/dubbo-go-\344\270\255-rest-\345\215\217\350\256\256\345\256\236\347\216\260/index.html"
index 77d2b7a8e1..64d4f75f14 100644
--- "a/zh/blog/2021/01/14/dubbo-go-\344\270\255-rest-\345\215\217\350\256\256\345\256\236\347\216\260/index.html"
+++ "b/zh/blog/2021/01/14/dubbo-go-\344\270\255-rest-\345\215\217\350\256\256\345\256\236\347\216\260/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E4%B8%AD-rest-%E5%8D%8F%E8%AE%AE%E5%AE%9E%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 中 REST 协议实现"><met [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="507"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 中 REST 协议实现"><meta name=twitter:description content="在社区小伙伴们的努力下,Apache/dubbo-go 在 v1.4.0 中支持 REST 协议了。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E4%B8%AD-rest-%E5%8D%8F%E8%AE%AE%E5%AE%9E%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 中 REST 协议实现"><met [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="507"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 中 REST 协议实现"><meta name=twitter:description content="在社区小伙伴们的努力下,Apache/dubbo-go 在 v1.4.0 中支持 REST 协议了。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
协议的通用性和易用性,现在越来越多的 web 服务采用基于 HTTP 协议实现 RESTful 架构。</p><p>在 dubbo-go 中的 REST 协议指的是一种基于 HTTP 协议的远程调用方式。简单的来讲,REST 协议就是把dubbo 服务发布成 RESTful 风格的 HTTP 接口并且能够能像调用 dubbo 接口一样的方式调用 HTTP
接口。</p><h2 id=为什么要支持-rest-协议>为什么要支持 REST 协议</h2><p>在没有 REST 协议之前,小伙伴们是否一直在苦恼这样几个问题:</p><ol><li>传统的 web 服务不能直接调用我们发布的 dubbo 服务</li><li>前端不能直接调用 dubbo 服务</li><li>dubbo 服务不能发布 Open API</li></ol><p>上述问题,就是 REST 协议解决的核心问题。现在我们很多应用场景都是需要与异构的系统进行交互,而 REST 采用的 HTTP 通信协议非常适合用来打通异构系统,如图:</p><p><img src=/imgs/blog/dubbo-go/rest/rest-call.webp alt></p><h2 id=rest-协议没那么简单>REST 协议没那么简单</h2><p>REST 协议核心要解决一个问题:<strong>Go 方法到 HTTP 接口的双向映射</strong>。普通 HTTP 调用 dubbo-go 服务,考虑的是HTTP 到 <strong>Go</strong> 方法 [...]
Go** 方法到 HTTP 接口的映射。</p><p>下面是我们要与 <strong>Go</strong> 方法要做映射的 HTTP 请求协议内容:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>POST /path/{pathParam}?queryParam=1 HTTP/1.1
diff --git "a/zh/blog/2021/01/14/dubbo-go-\344\270\255\345\260\206-kubernets-\345\216\237\344\275\234\344\270\272\346\263\250\345\206\214\344\270\255\347\232\204\350\256\276\350\256\241\345\222\214\345\256\236\347\216\260/index.html" "b/zh/blog/2021/01/14/dubbo-go-\344\270\255\345\260\206-kubernets-\345\216\237\344\275\234\344\270\272\346\263\250\345\206\214\344\270\255\347\232\204\350\256\276\350\256\241\345\222\214\345\256\236\347\216\260/index.html"
index 4e3f075f80..801adbbf59 100644
--- "a/zh/blog/2021/01/14/dubbo-go-\344\270\255\345\260\206-kubernets-\345\216\237\344\275\234\344\270\272\346\263\250\345\206\214\344\270\255\347\232\204\350\256\276\350\256\241\345\222\214\345\256\236\347\216\260/index.html"
+++ "b/zh/blog/2021/01/14/dubbo-go-\344\270\255\345\260\206-kubernets-\345\216\237\344\275\234\344\270\272\346\263\250\345\206\214\344\270\255\347\232\204\350\256\276\350\256\241\345\222\214\345\256\236\347\216\260/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E4%B8%AD%E5%B0%86-kubernets-%E5%8E%9F%E4%BD%9C%E4%B8%BA%E6%B3%A8%E5%86%8C%E4%B8%AD%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%AE%9E%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:sit [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="333"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 中将 Kubernets 原⽣作为注册中⼼的设计和实现"><meta name=twitter:description content="随着云原⽣的推⼴,越来越多的公司或组织将服务容器化,并将容器化后的服务部署在 Kubernetes 集群中。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E4%B8%AD%E5%B0%86-kubernets-%E5%8E%9F%E4%BD%9C%E4%B8%BA%E6%B3%A8%E5%86%8C%E4%B8%AD%E7%9A%84%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%AE%9E%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:sit [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="333"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 中将 Kubernets 原⽣作为注册中⼼的设计和实现"><meta name=twitter:description content="随着云原⽣的推⼴,越来越多的公司或组织将服务容器化,并将容器化后的服务部署在 Kubernetes 集群中。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>kind</span>: Pod
</span></span><span style=display:flex><span><span style=color:#268bd2>metadata</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>annotations</span>:
diff --git "a/zh/blog/2021/01/14/dubbo-go-\345\217\257\344\277\241\350\260\203\347\224\250\345\256\236\347\216\260/index.html" "b/zh/blog/2021/01/14/dubbo-go-\345\217\257\344\277\241\350\260\203\347\224\250\345\256\236\347\216\260/index.html"
index 27e040bfe9..1e5c65e64d 100644
--- "a/zh/blog/2021/01/14/dubbo-go-\345\217\257\344\277\241\350\260\203\347\224\250\345\256\236\347\216\260/index.html"
+++ "b/zh/blog/2021/01/14/dubbo-go-\345\217\257\344\277\241\350\260\203\347\224\250\345\256\236\347\216\260/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E5%8F%AF%E4%BF%A1%E8%B0%83%E7%94%A8%E5%AE%9E%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 可信调用实现"><meta [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="249"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 可信调用实现"><meta name=twitter:description content="本文将讲解如何在 Dubbo/Dubbo-Go 中实现灵活,安全和高效的身份验证和授权方案。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E5%8F%AF%E4%BF%A1%E8%B0%83%E7%94%A8%E5%AE%9E%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 可信调用实现"><meta [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="249"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 可信调用实现"><meta name=twitter:description content="本文将讲解如何在 Dubbo/Dubbo-Go 中实现灵活,安全和高效的身份验证和授权方案。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></span><span style=display:flex><span><span style=color:#586e75></span><span style=color:#268bd2>type</span> Authenticator <span style=color:#268bd2>interface</span> {
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#586e75>// Sign
diff --git "a/zh/blog/2021/01/14/dubbo-go-\346\272\220\347\240\201\347\254\224\350\256\260\344\270\200server-\347\253\257\345\274\200\345\220\257\346\234\215\345\212\241\350\277\207\347\250\213/index.html" "b/zh/blog/2021/01/14/dubbo-go-\346\272\220\347\240\201\347\254\224\350\256\260\344\270\200server-\347\253\257\345\274\200\345\220\257\346\234\215\345\212\241\350\277\207\347\250\213/index.html"
index b53a78733a..8bf6581fd9 100644
--- "a/zh/blog/2021/01/14/dubbo-go-\346\272\220\347\240\201\347\254\224\350\256\260\344\270\200server-\347\253\257\345\274\200\345\220\257\346\234\215\345\212\241\350\277\207\347\250\213/index.html"
+++ "b/zh/blog/2021/01/14/dubbo-go-\346\272\220\347\240\201\347\254\224\350\256\260\344\270\200server-\347\253\257\345\274\200\345\220\257\346\234\215\345\212\241\350\277\207\347\250\213/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E6%BA%90%E7%A0%81%E7%AC%94%E8%AE%B0%E4%B8%80server-%E7%AB%AF%E5%BC%80%E5%90%AF%E6%9C%8D%E5%8A%A1%E8%BF%87%E7%A8%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apach [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1273"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo-go 源码笔记(一)Server 端开启服务过程"><meta name=twitter:description content="随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读 [...]
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E6%BA%90%E7%A0%81%E7%AC%94%E8%AE%B0%E4%B8%80server-%E7%AB%AF%E5%BC%80%E5%90%AF%E6%9C%8D%E5%8A%A1%E8%BF%87%E7%A8%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apach [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1273"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo-go 源码笔记(一)Server 端开启服务过程"><meta name=twitter:description content="随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读 [...]
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></code></pre></div><ul><li>进入 dubbo 目录</li></ul><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>$ <span style=color:#b58900>cd</span> dubbo-samples/golang/helloworld/dubbo
</span></span></code></pre></div><p>进入目录后可看到四个文件夹,分别支持 go 和 java 的 client 以及 server,我们尝试运行一个 go 的 server。进入 app 子文件夹内,可以看到里面保存了 go 文件。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>$ <span style=color:#b58900>cd</span> go-server/app
</span></span></code></pre></div><ul><li>sample 文件结构</li></ul><p>可以在 go-server 里面看到三个文件夹:app、assembly、profiles。</p><p>其中 app 文件夹下保存 go 源码,assembly 文件夹下保存可选的针对特定环境的 build 脚本,profiles 下保存配置文件。对于 dubbo-go 框架,配置文件非常重要,没有文件将导致服务无法启动。</p><ul><li>设置指向配置文件的环境变量</li></ul><p>由于 dubbo-go 框架依赖配置文件启动,让框架定位到配置文件的方式就是通过环境变量来找。对于 server 端需要两个必须配置的环境变量:CONF_PROVIDER_FILE_PATH、APP_LOG_CONF_FILE,分别应该指向服务端配置文件、日志配置文件。</p><p>在 sample 里面,我们可以使用 dev 环境,即 profiles/dev/log.yml 和 profiles/dev/server.yml 两个文件。在 ap [...]
diff --git "a/zh/blog/2021/01/14/dubbo-go\345\272\224\347\224\250\347\273\264\345\272\246\346\263\250\345\206\214\346\250\241\345\236\213/index.html" "b/zh/blog/2021/01/14/dubbo-go\345\272\224\347\224\250\347\273\264\345\272\246\346\263\250\345\206\214\346\250\241\345\236\213/index.html"
index 684e453230..8026794eec 100644
--- "a/zh/blog/2021/01/14/dubbo-go\345\272\224\347\224\250\347\273\264\345\272\246\346\263\250\345\206\214\346\250\241\345\236\213/index.html"
+++ "b/zh/blog/2021/01/14/dubbo-go\345\272\224\347\224\250\347\273\264\345\272\246\346\263\250\345\206\214\346\250\241\345\236\213/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E5%86%8C%E6%A8%A1%E5%9E%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo- [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="256"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo-go应用维度注册模型"><meta name=twitter:description content="Dubbo-go 中的应用维度注册模型
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E5%86%8C%E6%A8%A1%E5%9E%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo- [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="256"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo-go应用维度注册模型"><meta name=twitter:description content="Dubbo-go 中的应用维度注册模型
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> {<span style=color:#268bd2>"name"</span>:<span style=color:#2aa198>"instance1"</span>, <span style=color:#268bd2>"ip"</span>:<span style=color:#2aa198>"127.0.0.1"</span>, <span style=color:#268bd2>"metadata"</span>:{<span style=color:#268bd2>"timeout"</span>:<span style=color:#2aa198>1000</span>}},
</span></span><span style=display:flex><span> {<span style=color:#268bd2>"name"</span>:<span style=color:#2aa198>"instance2"</span>, <span style=color:#268bd2>"ip"</span>:<span style=color:#2aa198>"127.0.0.2"</span>, <span style=color:#268bd2>"metadata"</span>:{<span style=color:#268bd2>"timeout"</span>:<span style=color:#2aa198>2000</span>}},
</span></span><span style=display:flex><span> {<span style=color:#268bd2>"name"</span>:<span style=color:#2aa198>"instance3"</span>, <span style=color:#268bd2>"ip"</span>:<span style=color:#2aa198>"127.0.0.3"</span>, <span style=color:#268bd2>"metadata"</span>:{<span style=color:#268bd2>"timeout"</span>:<span style=color:#2aa198>3000</span>}},
diff --git "a/zh/blog/2021/01/14/go-\347\211\210\346\234\254\345\205\245-dubbo-\347\224\237\346\200\201\344\270\200\345\221\250\345\271\264/index.html" "b/zh/blog/2021/01/14/go-\347\211\210\346\234\254\345\205\245-dubbo-\347\224\237\346\200\201\344\270\200\345\221\250\345\271\264/index.html"
index 70a13f08de..48bb20c96c 100644
--- "a/zh/blog/2021/01/14/go-\347\211\210\346\234\254\345\205\245-dubbo-\347\224\237\346\200\201\344\270\200\345\221\250\345\271\264/index.html"
+++ "b/zh/blog/2021/01/14/go-\347\211\210\346\234\254\345\205\245-dubbo-\347\224\237\346\200\201\344\270\200\345\221\250\345\271\264/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/go-%E7%89%88%E6%9C%AC%E5%85%A5-dubbo-%E7%94%9F%E6%80%81%E4%B8%80%E5%91%A8%E5%B9%B4/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Go 版 [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="695"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Go 版本入 Dubbo 生态一周年"><meta name=twitter:description content="Go 版本入 Dubbo 生态一周年:已和 Spring Cloud、gRPC 互通
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/go-%E7%89%88%E6%9C%AC%E5%85%A5-dubbo-%E7%94%9F%E6%80%81%E4%B8%80%E5%91%A8%E5%B9%B4/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Go 版 [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="695"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Go 版本入 Dubbo 生态一周年"><meta name=twitter:description content="Go 版本入 Dubbo 生态一周年:已和 Spring Cloud、gRPC 互通
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/14/\344\275\277\347\224\250-graalvm-\346\236\204\345\273\272-native-image/index.html" "b/zh/blog/2021/01/14/\344\275\277\347\224\250-graalvm-\346\236\204\345\273\272-native-image/index.html"
index ae882cbdc9..852bcd5bfc 100644
--- "a/zh/blog/2021/01/14/\344\275\277\347\224\250-graalvm-\346\236\204\345\273\272-native-image/index.html"
+++ "b/zh/blog/2021/01/14/\344\275\277\347\224\250-graalvm-\346\236\204\345\273\272-native-image/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E4%BD%BF%E7%94%A8-graalvm-%E6%9E%84%E5%BB%BA-native-image/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="使用 GraalVM 构建 Native Image"> [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="543"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用 GraalVM 构建 Native Image"><meta name=twitter:description content="本文讲解了如何使用 GraavlVM 构建 Dubbo 的 Native Image
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E4%BD%BF%E7%94%A8-graalvm-%E6%9E%84%E5%BB%BA-native-image/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="使用 GraalVM 构建 Native Image"> [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="543"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="使用 GraalVM 构建 Native Image"><meta name=twitter:description content="本文讲解了如何使用 GraavlVM 构建 Dubbo 的 Native Image
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2018/08/14/native-image-using-graalvm/>English</a></div></li></ul></div><div class="navbar-nav [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span></code></pre></div><p> 编译成功可以看到如下输出:</p><p><img src=/imgs/blog/dubbo-graalvm-support/consumer_compiler.png alt><img src=/imgs/blog/dubbo-graalvm-support/provider_compiler.png alt></p><p> 在target目录中可以看到已经生成的二进制文件:</p><p><img src=/imgs/blog/dubbo-graalvm-support/compile_result.png alt></p><p> 查看该二进制文件大小大约在40M左右:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-la [...]
</span></span><span style=display:flex><span>40 demo-native-provider
</span></span></code></pre></div><p>(注:本例子基于zookeeper进行的服务注册和发现,所以用户需要在本地先启动一个zk,再执行二进制启动。)</p><p> 直接运行启动该二进制:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>MacdeMacBook-pro-3:target mac$ ./demo-native-provider
@@ -174,7 +174,7 @@
</span></span><span style=display:flex><span> }
</span></span><span style=display:flex><span> //......
</span></span><span style=display:flex><span>}
-</span></span></code></pre></div><p> 这里由于该service拥有多个接口获取proxy时需要是有序的,原先使用的set不满足需求,这里用ArrayList替代。</p><p> 以上就是为了支持graalvm对dubbo源码的主要改动点。</p><p>分支地址如下:</p><p><a href=https://github.com/apache/dubbo/tree/2.7-native_image>https://github.com/apache/dubbo/tree/2.7-native_image</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2021/01/14/%E9%83%BD%E5%B7%B2%E7%BB%8F%E5%8D%81%E5%B2%81%E7%9A%84-apache-dubbo%E8%BF%98%E8%83%BD%E5%86 [...]
+</span></span></code></pre></div><p> 这里由于该service拥有多个接口获取proxy时需要是有序的,原先使用的set不满足需求,这里用ArrayList替代。</p><p> 以上就是为了支持graalvm对dubbo源码的主要改动点。</p><p>分支地址如下:</p><p><a href=https://github.com/apache/dubbo/tree/2.7-native_image>https://github.com/apache/dubbo/tree/2.7-native_image</a></p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2019/08/11/%E4%BD%BF%E7%94%A8apache-skywalking-incubator-%E5%81%9A%E5%88%86%E5%B8%83%E5%BC%8F%E8%B7%9F [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/14/\345\277\253\351\200\237\344\270\212\346\211\213-dubbo-go/index.html" "b/zh/blog/2021/01/14/\345\277\253\351\200\237\344\270\212\346\211\213-dubbo-go/index.html"
index a6aa5a5cad..d292f812f3 100644
--- "a/zh/blog/2021/01/14/\345\277\253\351\200\237\344\270\212\346\211\213-dubbo-go/index.html"
+++ "b/zh/blog/2021/01/14/\345\277\253\351\200\237\344\270\212\346\211\213-dubbo-go/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B-dubbo-go/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="快速上手 dubbo-go"><meta itemprop=description [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="336"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="快速上手 dubbo-go"><meta name=twitter:description content="今天上手实战一把,告诉你如何快速用 go 上手 dubbo
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B-dubbo-go/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="快速上手 dubbo-go"><meta itemprop=description [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="336"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="快速上手 dubbo-go"><meta name=twitter:description content="今天上手实战一把,告诉你如何快速用 go 上手 dubbo
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2>services</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>zookeeper</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>image</span>: zookeeper
diff --git "a/zh/blog/2021/01/14/\346\266\202\351\270\246\346\231\272\350\203\275-dubbo-go-\344\272\277\347\272\247\346\265\201\351\207\217\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html" "b/zh/blog/2021/01/14/\346\266\202\351\270\246\346\231\272\350\203\275-dubbo-go-\344\272\277\347\272\247\346\265\201\351\207\217\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html"
index 02099c97a9..ef72b07063 100644
--- "a/zh/blog/2021/01/14/\346\266\202\351\270\246\346\231\272\350\203\275-dubbo-go-\344\272\277\347\272\247\346\265\201\351\207\217\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html"
+++ "b/zh/blog/2021/01/14/\346\266\202\351\270\246\346\231\272\350\203\275-dubbo-go-\344\272\277\347\272\247\346\265\201\351\207\217\347\232\204\345\256\236\350\267\265\344\270\216\346\216\242\347\264\242/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E6%B6%82%E9%B8%A6%E6%99%BA%E8%83%BD-dubbo-go-%E4%BA%BF%E7%BA%A7%E6%B5%81%E9%87%8F%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2%E7%B4%A2/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" co [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="692"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="涂鸦智能 dubbo-go 亿级流量的实践与探索"><meta name=twitter:description content="本文分为实践和快速接入两部分,分享在涂鸦智能的 dubbo-go 实战经验
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E6%B6%82%E9%B8%A6%E6%99%BA%E8%83%BD-dubbo-go-%E4%BA%BF%E7%BA%A7%E6%B5%81%E9%87%8F%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2%E7%B4%A2/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" co [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="692"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="涂鸦智能 dubbo-go 亿级流量的实践与探索"><meta name=twitter:description content="本文分为实践和快速接入两部分,分享在涂鸦智能的 dubbo-go 实战经验
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>var</span> appName = <span style=color:#2aa198>"UserProviderGer"</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>var</span> referenceConfig = config.ReferenceConfig{
</span></span><span style=display:flex><span> InterfaceName: <span style=color:#2aa198>"com.ikurento.user.UserProvider"</span>,
diff --git "a/zh/blog/2021/01/14/\350\247\243\346\236\204-dubbo-go-\347\232\204\346\240\270\345\277\203\346\263\250\345\206\214\345\274\225\346\223\216-nacos/index.html" "b/zh/blog/2021/01/14/\350\247\243\346\236\204-dubbo-go-\347\232\204\346\240\270\345\277\203\346\263\250\345\206\214\345\274\225\346\223\216-nacos/index.html"
index 17334e3cb9..96919cba8c 100644
--- "a/zh/blog/2021/01/14/\350\247\243\346\236\204-dubbo-go-\347\232\204\346\240\270\345\277\203\346\263\250\345\206\214\345\274\225\346\223\216-nacos/index.html"
+++ "b/zh/blog/2021/01/14/\350\247\243\346\236\204-dubbo-go-\347\232\204\346\240\270\345\277\203\346\263\250\345\206\214\345\274\225\346\223\216-nacos/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E8%A7%A3%E6%9E%84-dubbo-go-%E7%9A%84%E6%A0%B8%E5%BF%83%E6%B3%A8%E5%86%8C%E5%BC%95%E6%93%8E-nacos/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=nam [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="76"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="解构 Dubbo-go 的核心注册引擎 Nacos"><meta name=twitter:description content="dubbo-go 选择 Nacos 作为注册中心的原因
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E8%A7%A3%E6%9E%84-dubbo-go-%E7%9A%84%E6%A0%B8%E5%BF%83%E6%B3%A8%E5%86%8C%E5%BC%95%E6%93%8E-nacos/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=nam [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="76"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="解构 Dubbo-go 的核心注册引擎 Nacos"><meta name=twitter:description content="dubbo-go 选择 Nacos 作为注册中心的原因
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<img src=/imgs/blog/dubbo-go/nacos/p4.png alt></p><h2 id=服务实例心跳维持>服务实例心跳维持</h2><p>Dubbo-go的Provider在向Nacos注册应用服务实例信息后,需要主动上报心跳,让Nacos服务端感知实例的存活与否,以判断是否将该节点从实例列表中移除。维护心跳的工作是在Nacos-SDK-go完成的,从图5代码中可以看到,当Dubbo-go调用RegisterInstance注册一个服务实例时,SDK除了调用Nacos的Register API之外,还会调用AddBeatInfo,将服务实例信息添加到本地缓存,通过后台协程定期向Nacos发送服务实例信息,保持心跳。当服务下线时,可以通过调用DeRegisterInstance执行反注册,并移除本地的心跳保持任务,Nacos实例列表中也会将该实例移除。</p><p><img src=/imgs/blog/dubbo-go/nacos/p5.png alt></p><h1 id=订阅服务实例变化>订阅服务实例变化</h1><p>Dubbo-go的C [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>nacos</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>address</span>: <span style=color:#2aa198>"console.nacos.io:80"</span>
diff --git "a/zh/blog/2021/01/14/\350\256\260\344\270\200\346\254\241\345\234\250-mosn-\345\257\271-dubbodubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html" "b/zh/blog/2021/01/14/\350\256\260\344\270\200\346\254\241\345\234\250-mosn-\345\257\271-dubbodubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html"
index 830ed76802..160aaa6645 100644
--- "a/zh/blog/2021/01/14/\350\256\260\344\270\200\346\254\241\345\234\250-mosn-\345\257\271-dubbodubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html"
+++ "b/zh/blog/2021/01/14/\350\256\260\344\270\200\346\254\241\345\234\250-mosn-\345\257\271-dubbodubbo-go-hessian2-\347\232\204\346\200\247\350\203\275\344\274\230\345\214\226/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%9C%A8-mosn-%E5%AF%B9-dubbodubbo-go-hessian2-%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Du [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1740"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="记一次在 mosn 对 dubbo、dubbo-go-hessian2 的性能优化"><meta name=twitter:description content="本文介绍在 mosn 对 dubbo、dubbo-go-hessian2 性能优化的全过程
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%9C%A8-mosn-%E5%AF%B9-dubbodubbo-go-hessian2-%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Du [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1740"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="记一次在 mosn 对 dubbo、dubbo-go-hessian2 的性能优化"><meta name=twitter:description content="本文介绍在 mosn 对 dubbo、dubbo-go-hessian2 性能优化的全过程
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#586e75># 会生成类似以下文件,该命令采样cpu 60秒</span>
</span></span><span style=display:flex><span><span style=color:#586e75># pprof.mosn.samples.cpu.001.pb.gz</span>
</span></span></code></pre></div><p>然后继续用 pprof 打开诊断文件,方便在浏览器查看,在图 1-1 给出压测后 profiler 火焰图:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span><span style=color:#586e75># http=:8000代表pprof打开8000端口然后用于web浏览器分析</span>
@@ -264,7 +264,7 @@
</span></span></code></pre></div><h4 id=7-优化昂贵的系统调用>7. 优化昂贵的系统调用</h4><p>mosn 在解码 dubbo 的请求时,会在 header 中塞一份远程 host 的地址,并且在 for 循环中获取 remote IP,系统调用开销比较高。</p><p><strong>优化思路:</strong></p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-go data-lang=go><span style=display:flex><span><span style=color:#2aa198>50</span>ms <span style=color:#2aa198>920</span>ms <span style=color:#2aa198>136</ [...]
</span></span></code></pre></div><p>在获取远程地址时,尽可能在 streamConnection 中 cache 远程 IP 值,不要每次都去调用 RemoteAddr。</p><h4 id=8-优化-slice-和-map-触发扩容和-rehash>8. 优化 slice 和 map 触发扩容和 rehash</h4><p>在 mosn 处理 dubbo 请求时,会根据接口、版本和分组去构建 dataID ,然后匹配 cluster , 会创建默认 slice 和 map 对象,经过性能诊断,导致不断 allocate slice 和 grow map 容量比较费性能。</p><p><strong>优化思路:</strong></p><p>使用 slice 和 map 时,尽可能预估容量大小,使用 make(type, capacity) 去指定初始大小。</p><h4 id=9-优化-trace-日志级别输出>9. 优化 trace 日志级别输出</h4><p>mosn 中不少代码在处理逻辑时,会打很多 trace 级别的日志,并 [...]
</span></span><span style=display:flex><span>/api/v1/downgrade/off
-</span></span></code></pre></div><h4 id=11-优化-route-header-解析>11. 优化 route header 解析</h4><p>mosn 中在做路由前,需要做大量的 header 的 map 访问,比如 IDC、antvip 等逻辑判断,商业版或者开源 mosn 不需要这些逻辑,这些也会占用一些开销。</p><p><strong>优化思路:</strong></p><p>如果是云上逻辑,主站的逻辑都不走。</p><h4 id=12-优化-featuregate-调用>12. 优化 featuregate 调用</h4><p>在 mosn 中处理请求时,为了区分主站和商业版路由逻辑,会通过 featuregate 判断逻辑走哪部分。通过 featuregate 调用开销较大,需要频繁的做类型转换和多层 map 去获取。</p><p><strong>优化思路:</strong></p><p>通过一个 bool 变量记录 featuregate 对应开关,如果没有初始化过,就主动调用一下 featuregate。</p> [...]
+</span></span></code></pre></div><h4 id=11-优化-route-header-解析>11. 优化 route header 解析</h4><p>mosn 中在做路由前,需要做大量的 header 的 map 访问,比如 IDC、antvip 等逻辑判断,商业版或者开源 mosn 不需要这些逻辑,这些也会占用一些开销。</p><p><strong>优化思路:</strong></p><p>如果是云上逻辑,主站的逻辑都不走。</p><h4 id=12-优化-featuregate-调用>12. 优化 featuregate 调用</h4><p>在 mosn 中处理请求时,为了区分主站和商业版路由逻辑,会通过 featuregate 判断逻辑走哪部分。通过 featuregate 调用开销较大,需要频繁的做类型转换和多层 map 去获取。</p><p><strong>优化思路:</strong></p><p>通过一个 bool 变量记录 featuregate 对应开关,如果没有初始化过,就主动调用一下 featuregate。</p> [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/14/\351\203\275\345\267\262\347\273\217\345\215\201\345\262\201\347\232\204-apache-dubbo\350\277\230\350\203\275\345\206\215\344\271\230\351\243\216\347\240\264\346\265\252\345\220\227/index.html" "b/zh/blog/2021/01/14/\351\203\275\345\267\262\347\273\217\345\215\201\345\262\201\347\232\204-apache-dubbo\350\277\230\350\203\275\345\206\215\344\271\230\351\243\216\347\240\264\346\265\252\345\220\227/index.html"
index 513391e7f9..a6128a8bda 100644
--- "a/zh/blog/2021/01/14/\351\203\275\345\267\262\347\273\217\345\215\201\345\262\201\347\232\204-apache-dubbo\350\277\230\350\203\275\345\206\215\344\271\230\351\243\216\347\240\264\346\265\252\345\220\227/index.html"
+++ "b/zh/blog/2021/01/14/\351\203\275\345\267\262\347\273\217\345\215\201\345\262\201\347\232\204-apache-dubbo\350\277\230\350\203\275\345\206\215\344\271\230\351\243\216\347\240\264\346\265\252\345\220\227/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E9%83%BD%E5%B7%B2%E7%BB%8F%E5%8D%81%E5%B2%81%E7%9A%84-apache-dubbo%E8%BF%98%E8%83%BD%E5%86%8D%E4%B9%98%E9%A3%8E%E7%A0%B4%E6%B5%AA%E5%90%97/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" [...]
-"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="651"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="都已经十岁的 Apache Dubbo,还能再乘风破浪吗?"><meta name=twitter:description content="在云原生时代,Apache Dubbo 将如何延续当前光芒?
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/14/%E9%83%BD%E5%B7%B2%E7%BB%8F%E5%8D%81%E5%B2%81%E7%9A%84-apache-dubbo%E8%BF%98%E8%83%BD%E5%86%8D%E4%B9%98%E9%A3%8E%E7%A0%B4%E6%B5%AA%E5%90%97/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-14T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" [...]
+"><meta itemprop=datePublished content="2021-01-14T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="651"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="都已经十岁的 Apache Dubbo,还能再乘风破浪吗?"><meta name=twitter:description content="在云原生时代,Apache Dubbo 将如何延续当前光芒?
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/01/15/dubbo-go\346\272\220\347\240\201\347\254\224\350\256\260\344\272\214\345\256\242\346\210\267\347\253\257\350\260\203\347\224\250\350\277\207\347\250\213/index.html" "b/zh/blog/2021/01/15/dubbo-go\346\272\220\347\240\201\347\254\224\350\256\260\344\272\214\345\256\242\346\210\267\347\253\257\350\260\203\347\224\250\350\277\207\347\250\213/index.html"
index d18bd1566a..4e401e5197 100644
--- "a/zh/blog/2021/01/15/dubbo-go\346\272\220\347\240\201\347\254\224\350\256\260\344\272\214\345\256\242\346\210\267\347\253\257\350\260\203\347\224\250\350\277\207\347\250\213/index.html"
+++ "b/zh/blog/2021/01/15/dubbo-go\346\272\220\347\240\201\347\254\224\350\256\260\344\272\214\345\256\242\346\210\267\347\253\257\350\260\203\347\224\250\350\277\207\347\250\213/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/15/dubbo-go%E6%BA%90%E7%A0%81%E7%AC%94%E8%AE%B0%E4%BA%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%B0%83%E7%94%A8%E8%BF%87%E7%A8%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo" [...]
-"><meta itemprop=datePublished content="2021-01-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1189"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go源码笔记(二)客户端调用过程"><meta name=twitter:description content="随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/15/dubbo-go%E6%BA%90%E7%A0%81%E7%AC%94%E8%AE%B0%E4%BA%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%B0%83%E7%94%A8%E8%BF%87%E7%A8%8B/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo" [...]
+"><meta itemprop=datePublished content="2021-01-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1189"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go源码笔记(二)客户端调用过程"><meta name=twitter:description content="随着微服务架构的流行,许多高性能 rpc 框架应运而生,由阿里开源的 dubbo 框架 go 语言版本的 dubbo-go 也成为了众多开发者不错的选择。本文将介绍 dubbo-go 框架的基本使用方法,以及从 export 调用链的角度进行 server 端源码导读,希望能引导读者进一步认识这款框架。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#2aa198>"demoZk"</span>:
</span></span><span style=display:flex><span> <span style=color:#268bd2>protocol</span>: <span style=color:#2aa198>"zookeeper"</span>
</span></span><span style=display:flex><span> <span style=color:#268bd2>timeout </span>: <span style=color:#2aa198>"3s"</span>
diff --git "a/zh/blog/2021/01/15/dubbogo-3.0\347\211\265\346\211\213-grpc-\350\265\260\345\220\221\344\272\221\345\216\237\347\224\237\346\227\266\344\273\243/index.html" "b/zh/blog/2021/01/15/dubbogo-3.0\347\211\265\346\211\213-grpc-\350\265\260\345\220\221\344\272\221\345\216\237\347\224\237\346\227\266\344\273\243/index.html"
index d882de11f2..afdfd1077e 100644
--- "a/zh/blog/2021/01/15/dubbogo-3.0\347\211\265\346\211\213-grpc-\350\265\260\345\220\221\344\272\221\345\216\237\347\224\237\346\227\266\344\273\243/index.html"
+++ "b/zh/blog/2021/01/15/dubbogo-3.0\347\211\265\346\211\213-grpc-\350\265\260\345\220\221\344\272\221\345\216\237\347\224\237\346\227\266\344\273\243/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/15/dubbogo-3.0%E7%89%B5%E6%89%8B-grpc-%E8%B5%B0%E5%90%91%E4%BA%91%E5%8E%9F%E7%94%9F%E6%97%B6%E4%BB%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=na [...]
-"><meta itemprop=datePublished content="2021-01-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="499"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbogo 3.0:牵手 gRPC 走向云原生时代"><meta name=twitter:description content="本文介绍了 dubbo-go 3.0 对云原生的支持和规划
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/15/dubbogo-3.0%E7%89%B5%E6%89%8B-grpc-%E8%B5%B0%E5%90%91%E4%BA%91%E5%8E%9F%E7%94%9F%E6%97%B6%E4%BB%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=na [...]
+"><meta itemprop=datePublished content="2021-01-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="499"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbogo 3.0:牵手 gRPC 走向云原生时代"><meta name=twitter:description content="本文介绍了 dubbo-go 3.0 对云原生的支持和规划
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n;</li><li>server 收到并检查是否正确;</li><li>client 和 server 互相发送 setting 帧,收到后发送 ACK 确认;</li><li>client 发送 Header 帧,包含 gRPC 协议字段,以 End Headers 作为 Header 结束标志;</li><li>client 紧接着发送 Data 帧,包含 RPC 调用的 request 信息,以 End Stream 作为 Data 结束标志;</li><li>server 调用函数获得结果;</li><li>server 发送 Header 帧,包含 gRPC 协议字段,以 End Headers 作为 Header 结束标志;</li><li>server 紧接着发送 Data 帧,包含 RPC 调用回传的 response 信息;</li><li>server 紧接着再次发送 Header 帧,包含 RPC 状态和 message 信息,以 End Stream 作为本次 RPC 调用结束标志。 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
diff --git "a/zh/blog/2021/01/15/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\346\241\206\346\236\266-seata-golang-\351\200\232\344\277\241\346\250\241\345\236\213\350\257\246\350\247\243/index.html" "b/zh/blog/2021/01/15/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\346\241\206\346\236\266-seata-golang-\351\200\232\344\277\241\346\250\241\345\236\213\350\257\246\350\247\243/index.html"
index 5dc4c35d22..03105d5b7c 100644
--- "a/zh/blog/2021/01/15/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\346\241\206\346\236\266-seata-golang-\351\200\232\344\277\241\346\250\241\345\236\213\350\257\246\350\247\243/index.html"
+++ "b/zh/blog/2021/01/15/\345\210\206\345\270\203\345\274\217\344\272\213\345\212\241\346\241\206\346\236\266-seata-golang-\351\200\232\344\277\241\346\250\241\345\236\213\350\257\246\350\247\243/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/15/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E6%A1%86%E6%9E%B6-seata-golang-%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9E%8B%E8%AF%A6%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content [...]
-"><meta itemprop=datePublished content="2021-01-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1889"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="分布式事务框架 seata-golang 通信模型详解"><meta name=twitter:description content="本文介绍了 seata 的 go 语言客户端通信模型的实现
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/01/15/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E6%A1%86%E6%9E%B6-seata-golang-%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9E%8B%E8%AF%A6%E8%A7%A3/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-01-15T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content [...]
+"><meta itemprop=datePublished content="2021-01-15T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1889"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="分布式事务框架 seata-golang 通信模型详解"><meta name=twitter:description content="本文介绍了 seata 的 go 语言客户端通信模型的实现
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#268bd2>var</span> (
</span></span><span style=display:flex><span> err <span style=color:#dc322f>error</span>
</span></span><span style=display:flex><span> ss Session
diff --git "a/zh/blog/2021/02/20/dubbo-go-\347\231\275\350\257\235\346\226\207/index.html" "b/zh/blog/2021/02/20/dubbo-go-\347\231\275\350\257\235\346\226\207/index.html"
index b90966e843..0bf09220ad 100644
--- "a/zh/blog/2021/02/20/dubbo-go-\347\231\275\350\257\235\346\226\207/index.html"
+++ "b/zh/blog/2021/02/20/dubbo-go-\347\231\275\350\257\235\346\226\207/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/02/20/dubbo-go-%E7%99%BD%E8%AF%9D%E6%96%87/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-02-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 白话文"><meta itemprop=description content=" [...]
-"><meta itemprop=datePublished content="2021-02-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="1524"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 白话文"><meta name=twitter:description content="本文手把手教你使用 dubbogo 调用 dubbogo 或 dubbo 提供的服务提供方
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/02/20/dubbo-go-%E7%99%BD%E8%AF%9D%E6%96%87/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-02-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="dubbo-go 白话文"><meta itemprop=description content=" [...]
+"><meta itemprop=datePublished content="2021-02-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="1524"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="dubbo-go 白话文"><meta name=twitter:description content="本文手把手教你使用 dubbogo 调用 dubbogo 或 dubbo 提供的服务提供方
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> String <span style=color:#268bd2>sayHello</span><span style=color:#719e07>(</span>String name<span style=color:#719e07>);</span>
</span></span><span style=display:flex><span>
@@ -410,7 +410,7 @@
</span></span><span style=display:flex><span>2021/01/11 15:31:41 <span style=color:#719e07>[</span>providerInit<span style=color:#719e07>]</span> application configure<span style=color:#719e07>(</span>provider<span style=color:#719e07>)</span> file name is nil
</span></span></code></pre></div><p>这样是没法正常使用的。如果你是服务提供方,必须要配置 server.yaml 文件,如果你是服务消费方,必须要配置 client.yaml,实际我们的应用应该既是消费者又是提供者,所以往往两个文件都是需要配置的。</p><p>服务提供方正常启动是会有如下输出的:</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>2021-01-11T15:36:55.003+0800 INFO protocol/protocol.go:205 The cached exporter keys is dubbo://:20000/DemoProvide [...]
</span></span><span style=display:flex><span>2021-01-11T15:36:55.003+0800 INFO dubbo/dubbo_protocol.go:86 Export service: dubbo://:20000/DemoProvider?accesslog<span style=color:#719e07>=</span>&app.version<span style=color:#719e07>=</span>1.0.0&<span style=color:#268bd2>application</span><span style=color:#719e07>=</span>Demo+Micro+Service&<span style=color:#268bd2>auth</span><span style=color:#719e07>=</span>&bean.name<span style=color:#719e07>=</span>DemoProv [...]
-</span></span></code></pre></div><h3 id=39-复现代码>3.9 复现代码</h3><ul><li><a href=https://github.com/cityiron/java_study/tree/master/dubbo2.7.7/dg-issue900>https://github.com/cityiron/java_study/tree/master/dubbo2.7.7/dg-issue900</a></li><li><a href=https://github.com/cityiron/golang_study/tree/master/dubbogo/1.5.4/arg-bug>https://github.com/cityiron/golang_study/tree/master/dubbogo/1.5.4/arg-bug</a></li></ul><h2 id=四参考>四、参考</h2><ul><li><a href=https://dubbo.apache.org/zh/docs/v2.7/user/confi [...]
+</span></span></code></pre></div><h3 id=39-复现代码>3.9 复现代码</h3><ul><li><a href=https://github.com/cityiron/java_study/tree/master/dubbo2.7.7/dg-issue900>https://github.com/cityiron/java_study/tree/master/dubbo2.7.7/dg-issue900</a></li><li><a href=https://github.com/cityiron/golang_study/tree/master/dubbogo/1.5.4/arg-bug>https://github.com/cityiron/golang_study/tree/master/dubbogo/1.5.4/arg-bug</a></li></ul><h2 id=四参考>四、参考</h2><ul><li><a href=https://dubbo.apache.org/zh/docs/v2.7/user/confi [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/06/02/dubbo3-\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260/index.html" "b/zh/blog/2021/06/02/dubbo3-\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
index 4853134266..71727eb347 100644
--- "a/zh/blog/2021/06/02/dubbo3-\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
+++ "b/zh/blog/2021/06/02/dubbo3-\345\272\224\347\224\250\347\272\247\346\234\215\345\212\241\345\217\221\347\216\260/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-06-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo3 应用级服务发现"> [...]
-"><meta itemprop=datePublished content="2021-06-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="805"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo3 应用级服务发现"><meta name=twitter:description content="本文介绍了 Dubbo3 应用级服务发现的实现原理
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-06-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="Dubbo3 应用级服务发现"> [...]
+"><meta itemprop=datePublished content="2021-06-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="805"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="Dubbo3 应用级服务发现"><meta name=twitter:description content="本文介绍了 Dubbo3 应用级服务发现的实现原理
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:service</span> interface=<span style=color:#2aa198>"org.apache.dubbo.samples.basic.api.GreetingService"</span> ref=<span style=color:#2aa198>"greetingService"</span><span style=color:#268bd2>/></span>
</span></span></code></pre></div><p>我们示例注册中心实现采用的是 Zookeeper ,启动 192.168.0.103 和 192.168.0.104 两个实例后,以下是两种模式下注册中心的实际数据</p><p><strong>1. “接口粒度” 服务发现</strong></p><p>192.168.0.103 实例注册的数据</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-text data-lang=text><span style=display:flex><span>dubbo://192.168.0.103:20880/org.apache.dubbo.samples.basic.api.DemoService?anyhost=true&application=demo- [...]
</span></span><span style=display:flex><span>
@@ -123,7 +123,7 @@ MetadataService 通过标准的 Dubbo 协议暴露,根据查询条件,会将
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> interface=<span style=color:#2aa198>"RPC Service 2"</span> provided-by=<span style=color:#2aa198>"provider-app-x"</span> <span style=color:#268bd2>/></span>
</span></span><span style=display:flex><span><span style=color:#268bd2><dubbo:reference</span> interface=<span style=color:#2aa198>"RPC Service N"</span> provided-by=<span style=color:#2aa198>"provider-app-y"</span> <span style=color:#268bd2>/></span>
</span></span></code></pre></div><p>以上指定 provider 应用名的方式是 Spring Cloud 当前的做法,需要 consumer 端的开发者显示指定其要消费的 provider 应用。</p><p>以上问题的根源在于注册中心不知道任何 RPC 服务相关的信息,因此只能通过应用名来查询。</p><p>为了使整个开发流程对老的 Dubbo 用户更透明,同时避免指定 provider 对可扩展性带来的影响(参见下方说明),我们设计了一套 <code>RPC 服务到应用名</code>的映射关系,以尝试在 consumer 端自动完成 RPC 服务到 provider 应用名的转换。</p><p><img src=/imgs/blog/service-discovery-11.png alt=img11></p><blockquote><p>Dubbo 之所以选择建立一套“接口-应用”的映射关系,主要是考虑到 service - app 映射关系的不确定性。一个典型的场景即是应用/服务拆分,如上面提到的配置<code><du [...]
-到底是 Dubbo 框架帮助开发者透明的解决这个问题,还是交由开发者自己去解决,当然这只是个策略选择问题,并且 Dubbo 2.7.5+ 版本目前是都提供了的。其实我个人更倾向于交由业务开发者通过组织上的约束来做,这样也可进一步降低 Dubbo 框架的复杂度,提升运行态的稳定性。</p></blockquote><h2 id=5-总结与展望>5 总结与展望</h2><p>应用级服务发现机制是 Dubbo 面向云原生走出的重要一步,它帮 Dubbo 打通了与其他微服务体系之间在地址发现层面的鸿沟,也成为 Dubbo 适配 Kubernetes Native Service 等基础设施的基础。我们期望 Dubbo 在新模型基础上,能继续保留在编程易用性、服务治理能力等方面强大的优势。但是我们也应该看到应用粒度的模型一方面带来了新的复杂性,需要我们继续去优化与增强;另一方面,除了地址存储与推送之外,应用粒度在帮助 Dubbo 选
址层面也有进一步挖掘的潜力。</p><ul class="list-unstyled d-flex justify-content-between a [...]
+到底是 Dubbo 框架帮助开发者透明的解决这个问题,还是交由开发者自己去解决,当然这只是个策略选择问题,并且 Dubbo 2.7.5+ 版本目前是都提供了的。其实我个人更倾向于交由业务开发者通过组织上的约束来做,这样也可进一步降低 Dubbo 框架的复杂度,提升运行态的稳定性。</p></blockquote><h2 id=5-总结与展望>5 总结与展望</h2><p>应用级服务发现机制是 Dubbo 面向云原生走出的重要一步,它帮 Dubbo 打通了与其他微服务体系之间在地址发现层面的鸿沟,也成为 Dubbo 适配 Kubernetes Native Service 等基础设施的基础。我们期望 Dubbo 在新模型基础上,能继续保留在编程易用性、服务治理能力等方面强大的优势。但是我们也应该看到应用粒度的模型一方面带来了新的复杂性,需要我们继续去优化与增强;另一方面,除了地址存储与推送之外,应用粒度在帮助 Dubbo 选
址层面也有进一步挖掘的潜力。</p><ul class="list-unstyled d-flex justify-content-between a [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2021/07/02/3.0.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html" "b/zh/blog/2021/07/02/3.0.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
index 2fa426a5aa..8d7c96362d 100644
--- "a/zh/blog/2021/07/02/3.0.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
+++ "b/zh/blog/2021/07/02/3.0.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/07/02/3.0.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-07-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.1 发版公告"><meta itemprop=description conte [...]
-"><meta itemprop=datePublished content="2021-07-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="46"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.1 发版公告"><meta name=twitter:description content="Apache Dubbo 3.0.1 发版公告
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/07/02/3.0.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-07-02T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.1 发版公告"><meta itemprop=description conte [...]
+"><meta itemprop=datePublished content="2021-07-02T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="46"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.1 发版公告"><meta name=twitter:description content="Apache Dubbo 3.0.1 发版公告
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2021/07/02/3.0.1-release-note/>English</a></div></li></ul></div><div class="navbar-nav d-none [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<a href=https://github.com/apache/dubbo/pull/8044>#8044</a>,
<a href=https://github.com/apache/dubbo/pull/8048>#8048</a>,
<a href=https://github.com/apache/dubbo/pull/8071>#8071</a>,
diff --git "a/zh/blog/2021/08/18/3.0.2-\345\217\221\347\211\210\345\205\254\345\221\212/index.html" "b/zh/blog/2021/08/18/3.0.2-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
index 0f223bcf58..056705a6fb 100644
--- "a/zh/blog/2021/08/18/3.0.2-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
+++ "b/zh/blog/2021/08/18/3.0.2-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/08/18/3.0.2-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2 发版公告"><meta itemprop=description conte [...]
-"><meta itemprop=datePublished content="2021-08-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="297"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2 发版公告"><meta name=twitter:description content="Apache Dubbo 3.0.2 发版公告
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/08/18/3.0.2-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2 发版公告"><meta itemprop=description conte [...]
+"><meta itemprop=datePublished content="2021-08-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="297"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2 发版公告"><meta name=twitter:description content="Apache Dubbo 3.0.2 发版公告
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2021/08/18/3.0.2-release-note/>English</a></div></li></ul></div><div class="navbar-nav d-none [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<a href=https://github.com/apache/dubbo/pull/8147>#8147</a>,
<a href=https://github.com/apache/dubbo/pull/8164>#8164</a>,
<a href=https://github.com/apache/dubbo/pull/8177>#8177</a>,
diff --git "a/zh/blog/2021/08/23/3.0.2.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html" "b/zh/blog/2021/08/23/3.0.2.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
index 037e1261be..ac6dc8cde3 100644
--- "a/zh/blog/2021/08/23/3.0.2.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
+++ "b/zh/blog/2021/08/23/3.0.2.1-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/08/23/3.0.2.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2.1 发版公告"><meta itemprop=description c [...]
-"><meta itemprop=datePublished content="2021-08-23T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="22"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2.1 发版公告"><meta name=twitter:description content="Apache Dubbo 3.0.2.1 发版公告
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/08/23/3.0.2.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-08-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="3.0.2.1 发版公告"><meta itemprop=description c [...]
+"><meta itemprop=datePublished content="2021-08-23T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="22"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="3.0.2.1 发版公告"><meta name=twitter:description content="Apache Dubbo 3.0.2.1 发版公告
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2021/08/23/3.0.2.1-release-note/>English</a></div></li></ul></div><div class="navbar-nav d-non [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
除了以下更改外,与版本 3.0.2 完全相同。</p><h2 id=bug-修复>Bug 修复</h2><ul><li>修复 nacos group 在消费者端不生效的问题 (#8533)</li><li>修复请求超时时序列化检查的 NPE (#8547)</li><li>兼容使用 dubbo-all 时未导入 farbic-io 包的问题 (#8546)</li></ul><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2021/08/18/3.0.2-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/ aria-label="上一页 - 3.0.2 发版公告" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a href=/zh/blog/2021/09/20/2.7.14-%E5%8F%91%E7%89 [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
diff --git "a/zh/blog/2021/09/20/2.7.14-\345\217\221\347\211\210\345\205\254\345\221\212/index.html" "b/zh/blog/2021/09/20/2.7.14-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
index fa2feebc65..737b52ac52 100644
--- "a/zh/blog/2021/09/20/2.7.14-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
+++ "b/zh/blog/2021/09/20/2.7.14-\345\217\221\347\211\210\345\205\254\345\221\212/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/09/20/2.7.14-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-09-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="2.7.14 发版公告"><meta itemprop=description con [...]
-"><meta itemprop=datePublished content="2021-09-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="76"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="2.7.14 发版公告"><meta name=twitter:description content="Apache Dubbo 2.7.14 发版公告
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2021/09/20/2.7.14-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2021-09-20T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><meta itemprop=name content="2.7.14 发版公告"><meta itemprop=description con [...]
+"><meta itemprop=datePublished content="2021-09-20T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="76"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="2.7.14 发版公告"><meta name=twitter:description content="Apache Dubbo 2.7.14 发版公告
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2021/09/20/2.7.14-release-note/>English</a></div></li></ul></div><div class="navbar-nav d-none [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2022/01/18/\344\273\216\345\216\237\347\220\206\345\210\260\346\223\215\344\275\234\350\256\251\344\275\240\345\234\250-apache-apisix-\344\270\255\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241\346\233\264\344\276\277\346\215\267/index.html" "b/zh/blog/2022/01/18/\344\273\216\345\216\237\347\220\206\345\210\260\346\223\215\344\275\234\350\256\251\344\275\240\345\234\250-apache-apisix-\344\270\255\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241\346\233\ [...]
index d142e71cc1..7b33188118 100644
--- "a/zh/blog/2022/01/18/\344\273\216\345\216\237\347\220\206\345\210\260\346\223\215\344\275\234\350\256\251\344\275\240\345\234\250-apache-apisix-\344\270\255\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241\346\233\264\344\276\277\346\215\267/index.html"
+++ "b/zh/blog/2022/01/18/\344\273\216\345\216\237\347\220\206\345\210\260\346\223\215\344\275\234\350\256\251\344\275\240\345\234\250-apache-apisix-\344\270\255\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241\346\233\264\344\276\277\346\215\267/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C%A8-apache-apisix-%E4%B8%AD%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1%E6%9B%B4%E4%BE%BF%E6%8D%B7/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-01-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+ [...]
-"><meta itemprop=datePublished content="2022-01-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="646"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="从原理到操作,让你在 Apache APISIX 中代理 Dubbo 服务更便捷"><meta name=twitter:description content="本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 dubbo-proxy 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链路
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C%A8-apache-apisix-%E4%B8%AD%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1%E6%9B%B4%E4%BE%BF%E6%8D%B7/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-01-18T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+ [...]
+"><meta itemprop=datePublished content="2022-01-18T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="646"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="从原理到操作,让你在 Apache APISIX 中代理 Dubbo 服务更便捷"><meta name=twitter:description content="本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 dubbo-proxy 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链路
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2022/01/18/makes-it-more-convenient-for-you-to-proxy-dubbo-services-in-apache-apisix/>English< [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span>
</span></span><span style=display:flex><span> <span style=color:#586e75>/**
</span></span></span><span style=display:flex><span><span style=color:#586e75> * standard samples dubbo infterace demo
@@ -133,7 +133,7 @@
</span></span></span><span style=display:flex><span><span style=color:#2aa198> }
</span></span></span><span style=display:flex><span><span style=color:#2aa198> ]
</span></span></span><span style=display:flex><span><span style=color:#2aa198>}'</span>
-</span></span></code></pre></div><h2 id=总结>总结</h2><p>本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 <code>dubbo-proxy</code> 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链路。</p><p>希望通过上述操作步骤和用例场景分享,能为大家在相关场景的使用提供借鉴思路。更多关于 <code>dubbo-proxy</code> 插件的介绍与使用可参考<a href=https://apisix.apache.org/docs/apisix/plugins/dubbo-proxy/>官方文档</a>。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E [...]
+</span></span></code></pre></div><h2 id=总结>总结</h2><p>本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 <code>dubbo-proxy</code> 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链路。</p><p>希望通过上述操作步骤和用例场景分享,能为大家在相关场景的使用提供借鉴思路。更多关于 <code>dubbo-proxy</code> 插件的介绍与使用可参考<a href=https://apisix.apache.org/docs/apisix/plugins/dubbo-proxy/>官方文档</a>。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2021/01/14/%E4%BD%BF%E7%94%A8-graalvm-%E6%9E%84%E5%BB%BA [...]
<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
diff --git "a/zh/blog/2022/05/04/\345\246\202\344\275\225\351\200\232\350\277\207-apache-shenyu-\347\275\221\345\205\263\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241/index.html" "b/zh/blog/2022/05/04/\345\246\202\344\275\225\351\200\232\350\277\207-apache-shenyu-\347\275\221\345\205\263\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241/index.html"
index 8ead95c935..3227247aa7 100644
--- "a/zh/blog/2022/05/04/\345\246\202\344\275\225\351\200\232\350\277\207-apache-shenyu-\347\275\221\345\205\263\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241/index.html"
+++ "b/zh/blog/2022/05/04/\345\246\202\344\275\225\351\200\232\350\277\207-apache-shenyu-\347\275\221\345\205\263\344\273\243\347\220\206-dubbo-\346\234\215\345\212\241/index.html"
@@ -1,12 +1,12 @@
<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
-"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-05-04T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T10:43:31+08:00"><meta property="og:site_name" content="Apache Dubbo"><me [...]
-"><meta itemprop=datePublished content="2022-05-04T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T10:43:31+08:00"><meta itemprop=wordCount content="475"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何通过 Apache ShenYu 网关代理 Dubbo 服务"><meta name=twitter:description content="本文介绍了如何通过`Apache ShenYu`网关访问`Dubbo`服务,主要内容包括从简单示例到核心调用流程分析,并对设计原理进行了总结。
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2022/05/04/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87-apache-shenyu-%E7%BD%91%E5%85%B3%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-05-04T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:site_name" content="Apache Dubbo"><me [...]
+"><meta itemprop=datePublished content="2022-05-04T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="475"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="如何通过 Apache ShenYu 网关代理 Dubbo 服务"><meta name=twitter:description content="本文介绍了如何通过`Apache ShenYu`网关访问`Dubbo`服务,主要内容包括从简单示例到核心调用流程分析,并对设计原理进行了总结。
"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
-<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/blog/2022/05/04/how-to-proxy-dubbo-service-in-apache-shenyu-gateway/>English</a></div></li></ul></d [...]
-<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
</span></span><span style=display:flex><span> <span style=color:#719e07><</span>dependency<span style=color:#719e07>></span>
</span></span><span style=display:flex><span> <span style=color:#719e07><</span>groupId<span style=color:#719e07>></span>org<span style=color:#719e07>.</span>apache<span style=color:#719e07>.</span>shenyu<span style=color:#719e07></</span>groupId<span style=color:#719e07>></span>
</span></span><span style=display:flex><span> <span style=color:#719e07><</span>artifactId<span style=color:#719e07>></span>shenyu<span style=color:#719e07>-</span>spring<span style=color:#719e07>-</span>boot<span style=color:#719e07>-</span>starter<span style=color:#719e07>-</span>plugin<span style=color:#719e07>-</span>apache<span style=color:#719e07>-</span>dubbo<span style=color:#719e07></</span>artifactId<span style=color:#719e07>></span>
diff --git "a/zh/blog/2022/06/23/\346\265\205\346\236\220-dubbo-3.0-\344\270\255\346\216\245\345\217\243\347\272\247\345\234\260\345\235\200\346\216\250\351\200\201\346\200\247\350\203\275\347\232\204\344\274\230\345\214\226/index.html" "b/zh/blog/2022/06/23/\346\265\205\346\236\220-dubbo-3.0-\344\270\255\346\216\245\345\217\243\347\272\247\345\234\260\345\235\200\346\216\250\351\200\201\346\200\247\350\203\275\347\232\204\344\274\230\345\214\226/index.html"
new file mode 100644
index 0000000000..59d4a76b6e
--- /dev/null
+++ "b/zh/blog/2022/06/23/\346\265\205\346\236\220-dubbo-3.0-\344\270\255\346\216\245\345\217\243\347\272\247\345\234\260\345\235\200\346\216\250\351\200\201\346\200\247\350\203\275\347\232\204\344\274\230\345\214\226/index.html"
@@ -0,0 +1,102 @@
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type=image/png href=/favicons/favicon-16x16.png sizes=16x16><link rel=icon type=image/png href=/favicons [...]
+"><meta property="og:type" content="article"><meta property="og:url" content="https://dubbo.apache.org/zh/blog/2022/06/23/%E6%B5%85%E6%9E%90-dubbo-3.0-%E4%B8%AD%E6%8E%A5%E5%8F%A3%E7%BA%A7%E5%9C%B0%E5%9D%80%E6%8E%A8%E9%80%81%E6%80%A7%E8%83%BD%E7%9A%84%E4%BC%98%E5%8C%96/"><meta property="article:section" content="blog"><meta property="article:published_time" content="2022-06-23T00:00:00+00:00"><meta property="article:modified_time" content="2022-07-08T11:00:55+08:00"><meta property="og:sit [...]
+"><meta itemprop=datePublished content="2022-06-23T00:00:00+00:00"><meta itemprop=dateModified content="2022-07-08T11:00:55+08:00"><meta itemprop=wordCount content="486"><meta itemprop=keywords content><meta name=twitter:card content="summary"><meta name=twitter:title content="浅析 Dubbo 3.0 中接口级地址推送性能的优化"><meta name=twitter:description content="Dubbo URL 的基本工作原理以及在地址推送链路的优化过程。
+"><script type=application/javascript>var doNotTrack=!1;doNotTrack||(window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-112489517-1","auto"),ga("send","pageview"))</script><script async src=https://www.google-analytics.com/analytics.js></script>
+<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
+<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-page td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.11V7 [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+</span></span></code></pre></div><p><strong>一些典型 URL</strong></p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>http://www.facebook.com/friends?param1=value1&amp;param2=value2
+</span></span><span style=display:flex><span>https://username:password@10.20.130.230:8080/list?version=1.0.0
+</span></span><span style=display:flex><span>ftp://username:password@192.168.1.7:21/1/read.txt
+</span></span></code></pre></div><p>当然,也有一些<strong>不太符合常规的 URL</strong>,也被归类到了 URL 之中</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-fallback data-lang=fallback><span style=display:flex><span>192.168.1.3:20880
+</span></span><span style=display:flex><span>url protocol = null, url host = 192.168.1.3, port = 20880, url path = null
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>file:///home/user1/router.js?type=script
+</span></span><span style=display:flex><span>url protocol = file, url host = null, url path = home/user1/router.js
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>file://home/user1/router.js?type=script<br>
+</span></span><span style=display:flex><span>url protocol = file, url host = home, url path = user1/router.js
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>file:///D:/1/router.js?type=script
+</span></span><span style=display:flex><span>url protocol = file, url host = null, url path = D:/1/router.js
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>file:/D:/1/router.js?type=script
+</span></span><span style=display:flex><span>同上 file:///D:/1/router.js?type=script
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>/home/user1/router.js?type=script
+</span></span><span style=display:flex><span>url protocol = null, url host = null, url path = home/user1/router.js
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>home/user1/router.js?type=script
+</span></span><span style=display:flex><span>url protocol = null, url host = home, url path = user1/router.js
+</span></span></code></pre></div><h3 id=dubbo-中的-url>Dubbo 中的 URL</h3><p>在 dubbo 中,也使用了类似的 URL,主要用于在各个扩展点之间传递数据,组成此 URL 对象的具体参数如下:</p><ul><li><p>protocol:一般是 dubbo 中的各种协议 如:dubbo thrift http zk</p></li><li><p>username/password:用户名/密码</p></li><li><p>host/port:主机/端口</p></li><li><p>path:接口名称</p></li><li><p>parameters:参数键值对</p><p><strong>一些典型的 Dubbo URL</strong></p></li></ul><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-si [...]
+</span></span><span style=display:flex><span>描述一个 dubbo 协议的服务
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>zookeeper://127.0.0.1:2181/org.apache.dubbo.registry.RegistryService?application=demo-consumer&dubbo=2.0.2&interface=org.apache.dubbo.registry.RegistryService&pid=1214&qos.port=33333&timestamp=1545721981946
+</span></span><span style=display:flex><span>描述一个 zookeeper 注册中心
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span>consumer://30.5.120.217/org.apache.dubbo.demo.DemoService?application=demo-consumer&category=consumers&check=false&dubbo=2.0.2&interface=org.apache.dubbo.demo.DemoService&methods=sayHello&pid=1209&qos.port=33333&side=consumer&timestamp=1545721827784
+</span></span><span style=display:flex><span>描述一个消费者
+</span></span></code></pre></div><p>可以说,任意的一个领域中的一个实现都可以认为是一类 URL,dubbo 使用 URL 来统一描述了元数据,配置信息,贯穿在整个框架之中。</p><h2 id=dubbo-27>Dubbo 2.7</h2><h3 id=url-结构>URL 结构</h3><p>在 Dubbo 2.7 中,URL 的结构非常简单,一个类就涵盖了所有内容,如下图所示。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684355065-047f2b60-0d02-41fb-8f57-ef7c89d625a5.png#clientId=u77103d46-bf79-4&from=ui&id=ub3498039&margin=%5Bobject%20Object%5D&name=Dubbo2%20URL%E7%B1%BB%E5%9B%BE.png&originHeight=212&originWidth=201&originalType=binary&ratio=1&size=14586&status=done&style=none&taskId=u4e81299b-9890-41ff-b1e5-0f430096690" alt="Dubbo2 URL类图.png"></p><h3 id=地址推送模型>地址推送模型</h3><p>接下来我们再来看看 Dubbo 2.7 中的地址推送模型方案,主要性能问题由下列过程引起。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684380374-8c7f1087-5251-44ab-b1ef-36d3350dbc67.png#clientId=u77103d46-bf79-4&from=ui&id=ufea40a0b&margin=%5Bobject%20Object%5D&name=Dubbo2%20%E5%9C%B0%E5%9D%80%E6%8E%A8%E9%80%81%E6%A8%A1%E5%9E%8B.png&originHeight=629&originWidth=654&originalType=binary&ratio=1&size=50785&status=done&style=none&taskId=u6ef56cee-840d-48fb-bf06-85c9ee3d8bd" alt="Dubbo2 地址推送模型.png"></p><p>上图中主要的流程为
+1、用户新增/删除DemoService的某个具体Provider实例(常见于扩容缩容、网络波动等原因)
+2、ZooKeeper将DemoService下所有实例推送给Consumer端
+3、Consumer端根据Zookeeper推送的数据重新全量生成URL
+根据该方案可以看出在Provider实例数量较小时,Consumer端的影响比较小,但当某个接口有大量Provider实例时,便会有大量不必要的URL创建过程。
+而Dubbo 3.0中则主要针对上述推送流程进行了一系列的优化,接下来我们便对其进行具体的讲解。</p><h2 id=dubbo-30>Dubbo 3.0</h2><h3 id=url-结构-1>URL 结构</h3><p>当然,地址推送模型的优化依然离不开 URL 的优化,下图是Dubbo 3.0中优化地址推送模型的过程中使用的新的URL结构。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684404347-633f5a87-0e12-4760-b38b-374e1b4c85a0.png#clientId=u77103d46-bf79-4&from=ui&id=u59706a31&margin=%5Bobject%20Object%5D&name=Dubbo3%20URL%E7%B1%BB%E5%9B%BE.png&originHeight=329&originWidth=1221&originalType=binary&ratio=1&size=54053&status=done&style=none&taskId=uba60500c-0a03-46f7-a85b-2eb574777b2" alt="Dubbo3 URL类图.png">
+根据上图我们可以看出,在 Dubbo 2.7 的 URL 中的几个重要属性在 Dubbo 3.0 中已经不存在了,取而代之的是 URLAddress 和 URLParam 两个类。原来的 parameters 属性被移动到了 URLParam 中的 params,其他的属性则移动到了 URLAddress 及其子类中。
+再来介绍 URL 新增的 3 个子类,其中 InstanceAddressURL 属于应用级接口地址,本篇章中不做介绍。
+而 ServiceConfigURL 及 ServiceAddressURL 主要的差别就是,ServiceConfigURL 是程序读取配置文件时生成的 URL。而 ServiceAddressURL 则是注册中心推送一些信息(如 providers)过来时生成的 URL。
+在这里我们顺便提一下为什么会有 DubboServiceAddressURL 这个子类,按照目前的结构来看,ServiceAddressURL 只有这一个子类,所以完全可以将他们两个的属性全都放到 ServiceAddressURL 中,那么为什么还要有这个子类呢?其实是 Dubbo 3.0 为了兼容 HSF 框架所设计的,抽象出了一个 ServiceAddressURL,而 HSF 框架则可以继承这个类,使用 HSFServiceAddressURL,当然,这个类目前没有体现出来,所以此处我们简单一提,不过多讲解。
+那么,我们接下来就讨论一下 Dubbo 3.0 为什么要改为此种数据结构,并且该结构和地址推送模型的优化有何关联性吧!</p><h3 id=地址推送模型的优化>地址推送模型的优化</h3><h4 id=url-结构上的优化>URL 结构上的优化</h4><p>我们在上小节中的类图里看到虽然原来的属性都被移到了 URLAddress 和 URLParam 里,但是 URL 的子类依然多了几个属性,这几个属性自然也是为了优化而新增的,那么这里就讲讲这几个属性的作用。
+<strong>ServiceConfigURL</strong>:这个子类中新增了 attribute 这个属性,这个属性主要是针对 URLParam 的 params 做了冗余,仅仅只是将 value 的类型从 String 改为了 Object,减少了代码中每次获取 parameters 的格式转换消耗。
+<strong>ServiceAddressURL</strong>:这个子类及其对应的其他子类中则新增了 overrideURL 和 consumerURL 属性。其中 consumerURL 是针对 consumer 端的配置信息,overrideURL 则是在 Dubbo Admin 上进行动态配置时写入的值,当我们调用 URL 的 getParameter() 方法时,优先级为 <code>overrideURL > consumerURL > urlParam</code>。在 Dubbo 2.7 时,动态配置属性会替换 URL 中的属性,及当你有大量 URL 时消耗也是不可忽视的,而此处的 overrideURL 则避免了这种消耗,因为所有 URL 都会共同使用同一个对象。</p><h4 id=多级缓存>多级缓存</h4><p>缓存是 Dubbo 3.0 在 URL 上做的优化的重点,同时这部分也是直接针对地址推送模型所做的优化,那么接下来我们就开始来介绍一下多级缓存的具体实现。
+首先,多级缓存主要体现在 CacheableFailbackRegistry 这个类之中,它直接继承于 FailbackRegistry,以 Zookeeper 为例,我们看看 Dubbo 2.7 和 Dubbo 3.0 继承结构的区别。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684433702-091378b5-5f80-4ac7-b755-5dab707051da.png#clientId=u77103d46-bf79-4&from=ui&id=u9118b5a9&margin=%5Bobject%20Object%5D&name=Dubbo3%20CacheableFailbackRegistry%E7%BC%93%E5%AD%98.png&originHeight=361&originWidth=751&originalType=binary&ratio=1&size=32461&status=done&style=none&taskId=ub04aaa61-0d89-457e-a555-47edd7e39a0" alt="Dubbo3 CacheableFailbackRegistry缓存.png">
+可以看到在 CacheableFailbackRegistry 缓存中,我们新增了 3 个缓存属性 <code>stringAddress</code>,<code>stringParam</code> 和 <code>stringUrls</code>。我们通过下图来描述这 3 个缓存的具体使用场景。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684457488-ccb22d6c-3ade-4aec-a21a-c71c381a9734.png#clientId=u77103d46-bf79-4&from=ui&id=ue0c6b8dc&margin=%5Bobject%20Object%5D&name=%E5%A4%9A%E7%BA%A7%E7%BC%93%E5%AD%98.png&originHeight=622&originWidth=926&originalType=binary&ratio=1&size=73539&status=done&style=none&taskId=u47ede71a-33bd-4405-bd98-30d40e1b32c" alt=多级缓存.png>
+在该方案下,我们使用了 3 个纬度的缓存数据(URL 字符串缓存、URL 地址缓存、URL 参数缓存),这样一来,在大部分情况下都能有效利用到缓存中的数据,减少了 Zookeeper 重复通知的消耗。</p><h4 id=延迟通知>延迟通知</h4><p>除了上面提到的优化之外,其实另外还有两个小小的优化。
+第一个是解析 URL 时可以直接使用编码后的 URL 字符串字节进行解析,而在 Dubbo 2.7 中,所有编码后的 URL 字符串都需要经过解码才可以正常解析为 URL 对象。该方式也直接减少了 URL 解码过程的开销。
+第二个则是 URL 变更后的通知机制增加了延迟,下图以Zookeeper为例讲解了实现细节。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684474208-db533419-6352-4d25-bcbe-21e473673828.png#clientId=u77103d46-bf79-4&from=ui&id=u9d0b8bd3&margin=%5Bobject%20Object%5D&name=%E5%BB%B6%E8%BF%9F%E9%80%9A%E7%9F%A5.png&originHeight=402&originWidth=352&originalType=binary&ratio=1&size=30489&status=done&style=none&taskId=u14d9d5be-4b1c-448a-8452-c975f3e8679" alt=延迟通知.png>
+在该方案中,当 Consumer 接收 Zookeeper 的变更通知后会主动休眠一段时间,而这段时间内的变更在休眠结束后只会保留最后一次变更,Consumer 便会使用最后一次变更来进行监听实例的更新,以此方法来减少大量 URL 的创建开销。</p><h4 id=字符串重用>字符串重用</h4><p>在旧版本实现中,不同的 URL 中属性相同的字符串会存储在堆内不同的地址中,如 protocol、path 等,当有大量 provider 的情况下,Consumer 端的堆内会存在大量的重复字符串,导致内存利用率低下,所以此处提供了另一个优化方式,即字符串重用。
+而它的实现方式也非常的简单,让我们来看看对应的代码片段。</p><div class=highlight><pre tabindex=0 style=color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-java data-lang=java><span style=display:flex><span><span style=color:#268bd2>public</span> <span style=color:#268bd2>class</span> <span style=color:#268bd2>URLItemCache</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> <span style=color:#268bd2>private</span> <span style=color:#268bd2>static</span> <span style=color:#268bd2>final</span> Map<span style=color:#719e07><</span>String<span style=color:#719e07>,</span> String<span style=color:#719e07>></span> PATH_CACHE <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> LRUCache<span style=color:#719e07><>(</span>10000<span style=color:#719e07>);</span>
+</span></span><span style=display:flex><span> <span style=color:#268bd2>private</span> <span style=color:#268bd2>static</span> <span style=color:#268bd2>final</span> Map<span style=color:#719e07><</span>String<span style=color:#719e07>,</span> String<span style=color:#719e07>></span> PROTOCOL_CACHE <span style=color:#719e07>=</span> <span style=color:#719e07>new</span> ConcurrentHashMap<span style=color:#719e07><>();</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span style=color:#586e75>// 省略无关代码片段
+</span></span></span><span style=display:flex><span><span style=color:#586e75></span>
+</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> <span style=color:#268bd2>static</span> String <span style=color:#268bd2>checkProtocol</span><span style=color:#719e07>(</span>String _protocol<span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>if</span> <span style=color:#719e07>(</span>_protocol <span style=color:#719e07>==</span> <span style=color:#cb4b16>null</span><span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> _protocol<span style=color:#719e07>;</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span> String cachedProtocol <span style=color:#719e07>=</span> PROTOCOL_CACHE<span style=color:#719e07>.</span>putIfAbsent<span style=color:#719e07>(</span>_protocol<span style=color:#719e07>,</span> _protocol<span style=color:#719e07>);</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>if</span> <span style=color:#719e07>(</span>cachedProtocol <span style=color:#719e07>!=</span> <span style=color:#cb4b16>null</span><span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> cachedProtocol<span style=color:#719e07>;</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> _protocol<span style=color:#719e07>;</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span>
+</span></span><span style=display:flex><span> <span style=color:#268bd2>public</span> <span style=color:#268bd2>static</span> String <span style=color:#268bd2>checkPath</span><span style=color:#719e07>(</span>String _path<span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>if</span> <span style=color:#719e07>(</span>_path <span style=color:#719e07>==</span> <span style=color:#cb4b16>null</span><span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> _path<span style=color:#719e07>;</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span> String cachedPath <span style=color:#719e07>=</span> PATH_CACHE<span style=color:#719e07>.</span>putIfAbsent<span style=color:#719e07>(</span>_path<span style=color:#719e07>,</span> _path<span style=color:#719e07>);</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>if</span> <span style=color:#719e07>(</span>cachedPath <span style=color:#719e07>!=</span> <span style=color:#cb4b16>null</span><span style=color:#719e07>)</span> <span style=color:#719e07>{</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> cachedPath<span style=color:#719e07>;</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>return</span> _path<span style=color:#719e07>;</span>
+</span></span><span style=display:flex><span> <span style=color:#719e07>}</span>
+</span></span><span style=display:flex><span><span style=color:#719e07>}</span>
+</span></span></code></pre></div><p>由如上代码片段可以得知,字符串重用即为简单地使用了 Map 来存储对应的缓存值,当你使用了相同的字符串时,便会从 Map 中获取早已存在的对象返回给调用方,由此便可以减少堆内存中重复的字符串数以达到优化的效果。</p><h3 id=优化结果>优化结果</h3><p>这里优化结果我引用了<a href=https://zhuanlan.zhihu.com/p/345626851>《Dubbo 3.0 前瞻:服务发现支持百万集群,带来可伸缩微服务架构》</a>这篇文章中的两副图来说明,下图模拟了在<strong>220万</strong>个 Provider 接口的情况下,接口数据不断变更导致的 Consumer 端的消耗,我们看到整个 Consumer 端几乎被 Full GC 占满了,严重影响了性能。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684502762-bbe06025-ec68-460f-9169-d8fcd5d9589c.png#clientId=u77103d46-bf79-4&from=ui&id=u627fbc4e&margin=%5Bobject%20Object%5D&name=Dubbo2%20%E6%8E%A5%E5%8F%A3%E7%BA%A7%E5%9C%B0%E5%9D%80%E6%A8%A1%E5%9E%8B.png&originHeight=829&originWidth=1440&originalType=binary&ratio=1&size=163554&status=done&style=none&taskId=ucce3e68c-f033-455b-9944-eba82ef078c" alt="Dubbo2 接口级地址模型.png">
+那么我们再来看看 Dubbo 3.0 中对 URL 进行优化后同一个环境下的压测结果,如下图所示。
+<img src="https://cdn.nlark.com/yuque/0/2021/png/1921386/1626684517859-7c42871f-5f98-48c2-8815-bf8f5e992efb.png#clientId=u77103d46-bf79-4&from=ui&id=ua17678af&margin=%5Bobject%20Object%5D&name=Dubbo3%20%E6%8E%A5%E5%8F%A3%E7%BA%A7%E5%9C%B0%E5%9D%80%E6%A8%A1%E5%9E%8B.png&originHeight=690&originWidth=1440&originalType=binary&ratio=1&size=185862&status=done&style=none&taskId=u137b18a8-0c04-48ca-bb14-f6e1c9e8f7a" alt="Dubbo3 接口级地址模型.png">
+我们明显可以看到 Full GC 的频率减少到了只有 3 次,大大提升了性能。当然,该文章中还有其他方面的对比,此处便不一一引用了,感兴趣的读者可以自行去阅读该文章。</p><ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"><li><a href=/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/ aria-label="上一页 - Dubbo3 应用级服务发现" class="btn btn-primary"><span class=mr-1>←</span>上一页</a></li><a class="btn btn-primary disabled">下一页<span class=ml-1>→</span></a></li></ul></div></main></div></div><footer class="bg [...]
+<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
+<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
+<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
+<script>docsearch({apiKey:"38eff7758162fbf70f2b8484932e62ae",indexName:"apache_dubbo",inputSelector:".td-search-input",debug:!1})</script></body></html>
\ No newline at end of file
diff --git a/zh/blog/golang/index.html b/zh/blog/golang/index.html
new file mode 100644
index 0000000000..1cefe5a69b
--- /dev/null
+++ b/zh/blog/golang/index.html
@@ -0,0 +1,25 @@
+<!doctype html><html lang=zh class=no-js><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=generator content="Hugo 0.101.0"><meta name=ROBOTS content="INDEX, FOLLOW"><link rel=alternate type=application/rss+xml href=https://dubbo.apache.org/zh/blog/golang/index.xml><link rel="shortcut icon" href=/favicons/favicon.ico><link rel=apple-touch-icon href=/favicons/apple-touch-icon-180x180.png sizes=180x180><link rel=icon type [...]
+<link rel=preload href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css as=style><link href=/scss/main.min.25bc90d3c4b63f71af420b5a5418d33082916253cd20656c3ceed0ca59752f0f.css rel=stylesheet integrity><script src=/js/jquery-3.5.1.min.js integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin=anonymous></script>
+<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css></head><body class="td-section td-blog"><header><nav class="js-navbar-scroll navbar navbar-expand navbar-dark flex-column flex-md-row td-navbar"><a class=navbar-brand href=/zh/><span class=navbar-logo><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 321.39 78.54"><title id="title19">DUBBO LOGO</title><path class="cls-1" d="M68.46 50.38c0 14.06 11.39 22.11 25.45 22.11s25.45-8.05 25.45-22.1 [...]
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docsv2.7/>v2.x</a>
+<a class=dropdown-item href=https://dubbo.apache.org/zh/docs3-building/docs>v3.0(building)</a></div></li><li class="nav-item dropdown mr-4 d-none d-lg-block"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=true aria-expanded=false>中文</a><div class=dropdown-menu aria-labelledby=navbarDropdownMenuLink><a class=dropdown-item href=/en/>English</a></div></li></ul></div><div class="navbar-nav d-none d-lg-block"><input type=search clas [...]
+<button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type=button data-toggle=collapse data-target=#td-section-nav aria-controls=td-docs-nav aria-expanded=false aria-label="Toggle section navigation"></button></form></div><div id=content-desktop></div><nav class="collapse td-sidebar-nav" id=td-section-nav><div class="nav-item dropdown d-block d-lg-none"><a class="nav-link dropdown-toggle" href=# id=navbarDropdown role=button data-toggle=dropdown aria-haspopup=tru [...]
+最近开始参与 dubbogo 的一些开发测试,之前都是直接拿 samples 的例子验证功能,而这次为了复现一个功能问题,打算从零开始搭建一个 dubbo-go 和 dubbo 调用的工程,踩到了一些新人使用 dubbogo 的坑,把这个过程记录下供大家参考。
+通过本文你可以了解到:
+如何常规配置 dubbogo 消费方去调用 dubbo 和 dubbogo 服务提供方 通过一个实际的 BUG 介绍解决问题的思路 二、解决问题 2.1 …</p><p class=pt-0><a href=/zh/blog/2021/02/20/dubbo-go-%E7%99%BD%E8%AF%9D%E6%96%87/ aria-label="更多 - dubbo-go 白话文">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/15/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E6%A1%86%E6%9E%B6-seata-golang-%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9E%8B%E8%AF%A6%E8%A7%A3/>分布式事务框架 seata-golang 通信模型详解</a></h5><p class="mb-2 [...]
+18 年的时候, …</p><p class=pt-0><a href=/zh/blog/2021/01/15/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E6%A1%86%E6%9E%B6-seata-golang-%E9%80%9A%E4%BF%A1%E6%A8%A1%E5%9E%8B%E8%AF%A6%E8%A7%A3/ aria-label="更多 - 分布式事务框架 seata-golang 通信模型详解">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/15/dubbogo-3.0%E7%89%B5%E6%89%8B-grpc-%E8%B5%B0%E5%90%91%E4%BA%91%E5%8E%9F%E7%94%9F%E6%97%B6%E4%BB%A3/>dubbogo 3.0:牵手 gRPC 走向云原生时代</a></h5><p cl [...]
+不过这世界变化快,自从以 docker 为代表的的容器技术和以 K8s 为代表的容器编排技术登上舞台之后,云原生时代到来了。在云原生时代,不可变的基础设施给原有的中间件带来了不可变的中间件基础设施:gRPC 统一了底层通信层;protobuf …</p><p class=pt-0><a href=/zh/blog/2021/01/15/dubbogo-3.0%E7%89%B5%E6%89%8B-grpc-%E8%B5%B0%E5%90%91%E4%BA%91%E5%8E%9F%E7%94%9F%E6%97%B6%E4%BB%A3/ aria-label="更多 - dubbogo 3.0:牵手 gRPC 走向云原生时代">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/15/dubbo-go%E6%BA%90%E7%A0%81%E7%AC%94%E8%AE%B0%E4%BA%8C%E5%AE%A [...]
+1. 配置文件和客户端源码 1.1 client配置文件 helloworld提供 …</p><p class=pt-0><a href=/zh/blog/2021/01/15/dubbo-go%E6%BA%90%E7%A0%81%E7%AC%94%E8%AE%B0%E4%BA%8C%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%B0%83%E7%94%A8%E8%BF%87%E7%A8%8B/ aria-label="更多 - dubbo-go源码笔记(二)客户端调用过程">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/14/%E6%B6%82%E9%B8%A6%E6%99%BA%E8%83%BD-dubbo-go-%E4%BA%BF%E7%BA%A7%E6%B5%81%E9%87%8F%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2% [...]
+另外,文中的测试代码基于 dubbo-go版本 v1.4.0。
+dubbo-go …</p><p class=pt-0><a href=/zh/blog/2021/01/14/%E6%B6%82%E9%B8%A6%E6%99%BA%E8%83%BD-dubbo-go-%E4%BA%BF%E7%BA%A7%E6%B5%81%E9%87%8F%E7%9A%84%E5%AE%9E%E8%B7%B5%E4%B8%8E%E6%8E%A2%E7%B4%A2/ aria-label="更多 - 涂鸦智能 dubbo-go 亿级流量的实践与探索">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/14/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B-dubbo-go/>快速上手 dubbo-go</a></h5><p class="mb-2 mb-md-3"><small class=text-muted>Thursday, January 14, [...]
+最近需要调研使用 dubbo,之前完全是 0 基础,对于 dubbo 只存在于听说,今天上手实战一把,告诉你如何快速用 go 上手 dubbo
+PS:以下的学习方式适用于很多新技术
+基本概念 首先学习一个技术首先要看看它的整体架构和基本概念,每个技术都有着自己的名词解释和实现方式,如果文档齐全就简单很多。 …</p><p class=pt-0><a href=/zh/blog/2021/01/14/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B-dubbo-go/ aria-label="更多 - 快速上手 dubbo-go">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/14/%E8%A7%A3%E6%9E%84-dubbo-go-%E7%9A%84%E6%A0%B8%E5%BF%83%E6%B3%A8%E5%86%8C%E5%BC%95%E6%93%8E-nacos/>解构 Dubbo-go 的核心注册引擎 Nacos</a></h5><p class="mb-2 mb-md-3"><small class=text-muted>Thursd [...]
+根据上表的对比我们可以从以下几个维度得出结论: …</p><p class=pt-0><a href=/zh/blog/2021/01/14/%E8%A7%A3%E6%9E%84-dubbo-go-%E7%9A%84%E6%A0%B8%E5%BF%83%E6%B3%A8%E5%86%8C%E5%BC%95%E6%93%8E-nacos/ aria-label="更多 - 解构 Dubbo-go 的核心注册引擎 Nacos">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/14/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%9C%A8-mosn-%E5%AF%B9-dubbodubbo-go-hessian2-%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/>记一次在 mosn 对 dubbo、dubbo-go-hessian2 的性能优 [...]
+经过一年的发展, Dubbo-go 在技术和社区运营方面都已经有了不错的成绩。Dubbo-go 是 Dubbo 的完整 Go 语言实现,在功能实现和技术路径上与 Dubbo 有不同程度的对标,项目团队预计很快便可以追平 Java 版的功能。当然,也是因为基于 Go 语言开发,Dubbo-go 更易上手, …</p><p class=pt-0><a href=/zh/blog/2021/01/14/go-%E7%89%88%E6%9C%AC%E5%85%A5-dubbo-%E7%94%9F%E6%80%81%E4%B8%80%E5%91%A8%E5%B9%B4/ aria-label="更多 - Go 版本入 Dubbo 生态一周年">更多</a></p></div></li><li class="media mb-4"><div class=media-body><h5 class="mt-0 mb-1"><a href=/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E [...]
+Dubbo-go 作为 Dubbo 的 Go 语言版本,因跨语言之故,二者针对同一模型的实现必然有较大差异,故本文注重讨论 Dubbo-go 社区自身对该模型的理解和实现,以及其与 Dubbo 之间的差异。
+1 …</p><p class=pt-0><a href=/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E5%86%8C%E6%A8%A1%E5%9E%8B/ aria-label="更多 - Dubbo-go应用维度注册模型">更多</a></p></div></li></ul></div></div><div class="row pl-2 pt-2"><div class=col><ul class="pagination pagination-default"><li class="page-item disabled"><a aria-disabled=true aria-label=First class=page-link role=button tabindex=-1><span aria-hidden=true>««</span></a></li><li class="page-item disabled"><a aria-disa [...]
+<script src=/js/bootstrap.min.js integrity=sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy crossorigin=anonymous></script>
+<script src=/js/main.min.9f304eb79b67eb331e2b22923c361575b563af25c0fd56279cf20f3a2417cff4.js integrity="sha256-nzBOt5tn6zMeKyKSPDYVdbVjryXA/VYnnPIPOiQXz/Q=" crossorigin=anonymous></script>
+<script src=https://cdn.jsdelivr.net/npm/docsearch.js@2.6.3/dist/cdn/docsearch.min.js></script>
+<script>docsearch({apiKey:"38eff7758162fbf70f2b8484932e62ae",indexName:"apache_dubbo",inputSelector:".td-search-input",debug:!1})</script></body></html>
\ No newline at end of file
diff --git a/zh/index.xml b/zh/blog/golang/index.xml
similarity index 57%
copy from zh/index.xml
copy to zh/blog/golang/index.xml
index d2737f1413..0fcb7316f6 100644
--- a/zh/index.xml
+++ b/zh/blog/golang/index.xml
@@ -1,915 +1,4 @@
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Dubbo – Apache Dubbo</title><link>https://dubbo.apache.org/zh/</link><description>Recent content on Apache Dubbo</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://dubbo.apache.org/zh/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: 如何通过 Apache ShenYu 网关代理 Dubbo 服务</title><link>https://dubbo.apache.org/zh/blog/2022/05/04/%E5%A6%82%E4% [...]
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/ApacheShenYu-Dubbo-zh.png" alt=""></p>
-<h2 id="1-介绍">1. 介绍</h2>
-<ul>
-<li>Apache ShenYu</li>
-</ul>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/shenyu.png" alt=""></p>
-<p><a href="https://shenyu.apache.org/zh/docs/index">Apache ShenYu(Incubating)</a> 是一个异步的,高性能的,跨语言的,响应式的 <code>API</code> 网关。兼容各种主流框架体系,支持热插拔,用户可以定制化开发,满足用户各种场景的现状和未来需求,经历过大规模场景的锤炼。</p>
-<p>2021年5月,<code>ShenYu</code>捐献给 <code>Apache</code> 软件基金会,Apache 基金会全票通过,顺利进入孵化器。</p>
-<ul>
-<li>Apache Dubbo</li>
-</ul>
-<p><code>Apache Dubbo</code> 是一款微服务开发框架,它提供了 <code>RPC</code> 通信 与 微服务治理 两大关键能力。这意味着,使用 <code>Dubbo</code> 开发的微服务,将具备相互之间的远程发现与通信能力, 同时利用 Dubbo 提供的丰富服务治理能力,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。同时 <code>Dubbo</code> 是高度可扩展的,用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。</p>
-<h2 id="2-dubbo快速开始">2. Dubbo快速开始</h2>
-<p>本小节介绍如何将<code>Dubbo</code>服务接入到<code>ShenYu</code>网关,您可以直接在工程下找到本小节的<a href="https://github.com/apache/incubator-shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service">示例代码</a> 。</p>
-<h3 id="21-启动shenyu-admin">2.1 启动shenyu-admin</h3>
-<p><code>shenyu-admin</code>是<code>Apache ShenYu</code>后台管理系统, 启动的方式有多种,本文通过 <a href="https://shenyu.apache.org/zh/docs/deployment/deployment-local">本地部署</a> 的方式启动。启动成功后,需要在基础配置<code>-&gt;</code>插件管理中,把<code>dubbo</code> 插件设置为开启,并设置你的注册地址,请确保注册中心已经开启。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/dubbo-enable-zh.png" alt=""></p>
-<h3 id="22-启动shenyu网关">2.2 启动shenyu网关</h3>
-<p>在这里通过 <a href="https://github.com/apache/incubator-shenyu/tree/master/shenyu-bootstrap">源码</a> 的方式启动,直接运行<code>shenyu-bootstrap</code>中的<code>ShenyuBootstrapApplication</code>。</p>
-<p>在启动前,请确保网关已经引入相关依赖。如果客户端是<code>apache dubbo</code>,注册中心使用<code>zookeeper</code>,请参考如下配置:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span> <span style="color:#719e07">&lt;!--</span> apache shenyu apache dubbo plugin start<span style="color:#719e07">--&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>groupId<span style="color:#719e07">&gt;</span>org<span style="color:#719e07">.</span>apache<span style="color:#719e07">.</span>shenyu<span style="color:#719e07">&lt;/</span>groupId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>artifactId<span style="color:#719e07">&gt;</span>shenyu<span style="color:#719e07">-</span>spring<span style="color:#719e07">-</span>boot<span style="color:#719e07">-</span>starter<span style="color:#719e07">-</span>plugin<span style="color:#719e07">-</span>apache<span style="color:#719e07">-</span>dubbo<span style="color:#719e07"> [...]
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>version<span style="color:#719e07">&gt;</span>$<span style="color:#719e07">{</span>project<span style="color:#719e07">.</span>version<span style="color:#719e07">}&lt;/</span>version<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;/</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>groupId<span style="color:#719e07">&gt;</span>org<span style="color:#719e07">.</span>apache<span style="color:#719e07">.</span>dubbo<span style="color:#719e07">&lt;/</span>groupId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>artifactId<span style="color:#719e07">&gt;</span>dubbo<span style="color:#719e07">&lt;/</span>artifactId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>version<span style="color:#719e07">&gt;</span>2<span style="color:#719e07">.</span>7<span style="color:#719e07">.</span>5<span style="color:#719e07">&lt;/</span>version<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;/</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;!--</span> Dubbo zookeeper registry dependency start <span style="color:#719e07">--&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>groupId<span style="color:#719e07">&gt;</span>org<span style="color:#719e07">.</span>apache<span style="color:#719e07">.</span>curator<span style="color:#719e07">&lt;/</span>groupId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>artifactId<span style="color:#719e07">&gt;</span>curator<span style="color:#719e07">-</span>client<span style="color:#719e07">&lt;/</span>artifactId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>version<span style="color:#719e07">&gt;</span>4<span style="color:#719e07">.</span>0<span style="color:#719e07">.</span>1<span style="color:#719e07">&lt;/</span>version<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>exclusions<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>exclusion<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>artifactId<span style="color:#719e07">&gt;</span>log4j<span style="color:#719e07">&lt;/</span>artifactId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>groupId<span style="color:#719e07">&gt;</span>log4j<span style="color:#719e07">&lt;/</span>groupId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;/</span>exclusion<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;/</span>exclusions<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;/</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>groupId<span style="color:#719e07">&gt;</span>org<span style="color:#719e07">.</span>apache<span style="color:#719e07">.</span>curator<span style="color:#719e07">&lt;/</span>groupId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>artifactId<span style="color:#719e07">&gt;</span>curator<span style="color:#719e07">-</span>framework<span style="color:#719e07">&lt;/</span>artifactId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>version<span style="color:#719e07">&gt;</span>4<span style="color:#719e07">.</span>0<span style="color:#719e07">.</span>1<span style="color:#719e07">&lt;/</span>version<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;/</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>groupId<span style="color:#719e07">&gt;</span>org<span style="color:#719e07">.</span>apache<span style="color:#719e07">.</span>curator<span style="color:#719e07">&lt;/</span>groupId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>artifactId<span style="color:#719e07">&gt;</span>curator<span style="color:#719e07">-</span>recipes<span style="color:#719e07">&lt;/</span>artifactId<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;</span>version<span style="color:#719e07">&gt;</span>4<span style="color:#719e07">.</span>0<span style="color:#719e07">.</span>1<span style="color:#719e07">&lt;/</span>version<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;/</span>dependency<span style="color:#719e07">&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;!--</span> Dubbo zookeeper registry dependency end <span style="color:#719e07">--&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">&lt;!--</span> apache dubbo plugin end<span style="color:#719e07">--&gt;</span>
-</span></span></code></pre></div><h3 id="23-启动shenyu-examples-dubbo">2.3 启动shenyu-examples-dubbo</h3>
-<p>以官网提供的例子为例 <a href="https://github.com/apache/incubator-shenyu/tree/master/shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service">shenyu-examples-dubbo</a> 。 假如<code>dubbo</code>服务定义如下:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#268bd2">&lt;beans</span> /* ...... * <span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:application</span> name=<span style="color:#2aa198">&#34;test-dubbo-service&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:registry</span> address=<span style="color:#2aa198">&#34;${dubbo.registry.address}&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:protocol</span> name=<span style="color:#2aa198">&#34;dubbo&#34;</span> port=<span style="color:#2aa198">&#34;20888&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;dubbo:service</span> timeout=<span style="color:#2aa198">&#34;10000&#34;</span> interface=<span style="color:#2aa198">&#34;org.apache.shenyu.examples.dubbo.api.service.DubboTestService&#34;</span> ref=<span style="color:#2aa198">&#34;dubboTestService&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;/beans&gt;</span>
-</span></span></code></pre></div><p>声明应用服务名称,注册中心地址,使用<code>dubbo</code>协议,声明服务接口,对应接口实现类:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#586e75">/**
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> * DubboTestServiceImpl.
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> */</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">@Service</span><span style="color:#719e07">(</span><span style="color:#2aa198">&#34;dubboTestService&#34;</span><span style="color:#719e07">)</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">DubboTestServiceImpl</span> <span style="color:#268bd2">implements</span> DubboTestService <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@Override</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@ShenyuDubboClient</span><span style="color:#719e07">(</span>path <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;/findById&#34;</span><span style="color:#719e07">,</span> desc <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;Query by Id&#34;</span><span style="color:#719e07">)</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">public</span> DubboTest <span style="color:#268bd2">findById</span><span style="color:#719e07">(</span><span style="color:#268bd2">final</span> String id<span style="color:#719e07">)</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> <span style="color:#719e07">new</span> DubboTest<span style="color:#719e07">(</span>id<span style="color:#719e07">,</span> <span style="color:#2aa198">&#34;hello world shenyu Apache, findById&#34;</span><span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#586e75">//......
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>在接口实现类中,使用注解<code>@ShenyuDubboClient</code>向<code>shenyu-admin</code>注册服务。</p>
-<p>在配置文件<code>application.yml</code>中的配置信息:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#268bd2">server</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">port</span>: <span style="color:#2aa198">8011</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">address</span>: <span style="color:#2aa198">0.0.0.0</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">servlet</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">context-path</span>: /
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">spring</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">main</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">allow-bean-definition-overriding</span>: <span style="color:#cb4b16">true</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">dubbo</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">registry</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">address</span>: zookeeper://localhost:2181 <span style="color:#586e75"># dubbo使用的注册中心</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">shenyu</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">register</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">registerType</span>: http <span style="color:#586e75">#注册方式</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">serverLists</span>: http://localhost:9095 <span style="color:#586e75">#注册地址</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">props</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">username</span>: admin
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">password</span>: <span style="color:#2aa198">123456</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">client</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">dubbo</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">props</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">contextPath</span>: /dubbo
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">appName</span>: dubbo
-</span></span></code></pre></div><p>在配置文件中,声明<code>dubbo</code>使用的注册中心地址,<code>dubbo</code>服务向<code>shenyu-admin</code>注册,使用的方式是<code>http</code>,注册地址是<code>http://localhost:9095</code>。</p>
-<p>关于注册方式的使用,请参考 <a href="https://shenyu.apache.org/docs/design/register-center-design/">应用客户端接入</a> 。</p>
-<h3 id="24-调用dubbo服务">2.4 调用dubbo服务</h3>
-<p><code>shenyu-examples-dubbo</code>项目成功启动之后会自动把加 <code>@ShenyuDubboClient</code> 注解的接口方法注册到网关。</p>
-<p>打开 <code>插件列表 -&gt; Proxy -&gt; dubbo</code> 可以看到插件规则配置列表:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/dubbo-service-list-zh.png" alt=""></p>
-<p>注册成功的选择器信息:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/dubbo-selector-zh.png" alt=""></p>
-<p>注册成功的规则信息:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/dubbo-rule-zh.png" alt=""></p>
-<blockquote>
-<p>选择器和规则是 <code>Apache ShenYu</code> 网关中最灵魂的东西。掌握好它,你可以对任何流量进行管理。对应为选择器与规则里面的匹配条件(conditions),根据不同的流量筛选规则,我们可以处理各种复杂的场景。流量筛选可以从<code>Header</code>, <code>URI</code>, <code>Query</code>, <code>Cookie</code> 等等Http请求获取数据。</p>
-<p>然后可以采用 <code>Match</code>,<code>=</code>,<code>Regex</code>,<code>Groovy</code>,<code>Exclude</code>等匹配方式,匹配出你所预想的数据。多组匹配添加可以使用<code>And/Or</code>的匹配策略。</p>
-<p>具体的介绍与使用请看: <a href="https://shenyu.apache.org/zh/docs/design/user-guide/admin-usage/selector-and-rule">选择器与规则管理</a> 。</p>
-</blockquote>
-<p>发起<code>GET</code>请求,通过<code>ShenYu</code>网关调用<code>dubbo</code>服务:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>GET http://localhost:9195/dubbo/findById?id=100
-</span></span><span style="display:flex;"><span>Accept: application/json
-</span></span></code></pre></div><p>成功响应之后,结果如下:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>{
-</span></span><span style="display:flex;"><span> &#34;name&#34;: &#34;hello world shenyu Apache, findById&#34;,
-</span></span><span style="display:flex;"><span> &#34;id&#34;: &#34;100&#34;
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>至此,就成功的通过<code>http</code>请求访问<code>dubbo</code>服务了,<code>ShenYu</code>网关通过<code>shenyu-plugin-dubbo</code>模块将<code>http</code>协议转成了<code>dubbo</code>协议。</p>
-<h2 id="3-深入理解dubbo插件">3. 深入理解Dubbo插件</h2>
-<p>在运行上述<code>demo</code>的过程中,是否存在一些疑问:</p>
-<ul>
-<li><code>dubbo</code>服务是如何注册到<code>shenyu-admin</code>?</li>
-<li><code>shenyu-admin</code>是如何将数据同步到<code>ShenYu</code>网关?</li>
-<li><code>DubboPlugin</code>是如何将<code>http</code>协议转换到到dubbo协议?</li>
-</ul>
-<p>带着这些疑问,来深入理解<code>dubbo</code>插件。</p>
-<h3 id="31-应用客户端接入">3.1 应用客户端接入</h3>
-<p>应用客户端接入是指将微服务接入到<code>Apache ShenYu</code>网关,当前支持<code>Http</code>、 <code>Dubbo</code>、 <code>Spring Cloud</code>、 <code>gRPC</code>、 <code>Motan</code>、 <code>Sofa</code>、 <code>Tars</code>等协议的接入。</p>
-<p>将应用客户端接入到<code>Apache ShenYu</code>网关是通过注册中心来实现的,涉及到客户端注册和服务端同步数据。注册中心支持<code>Http</code>、<code>Zookeeper</code>、<code>Etcd</code>、<code>Consul</code>和<code>Nacos</code>。默认是通过<code>Http</code>方式注册。</p>
-<p>客户端接入的相关配置请参考 <a href="https://shenyu.apache.org/zh/docs/user-guide/register-center-access">客户端接入配置</a> 。</p>
-<h4 id="311-客户端注册">3.1.1 客户端注册</h4>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/register-client.png" alt=""></p>
-<p>在你的微服务配置中声明注册中心客户端类型,如<code>Http</code>或<code>Zookeeper</code>。
-应用程序启动时使用<code>SPI</code>方式加载并初始化对应注册中心客户端,通过实现<code>Spring Bean</code>相关的后置处理器接口,在其中获取需要进行注册的服务接口信息,将获取的信息放入<code>Disruptor</code>中。</p>
-<p>注册中心客户端从<code>Disruptor</code>中读取数据,并将接口信息注册到<code>shenyu-admin</code>,<code>Disruptor</code>在其中起数据与操作解耦的作用,利于扩展。</p>
-<h4 id="312-服务端注册">3.1.2 服务端注册</h4>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/register-server.png" alt=""></p>
-<p>在<code>shenyu-admin</code>配置中声明注册中心服务端类型,如<code>Http</code>或<code>Zookeeper</code>。当<code>shenyu-admin</code>启动时,读取配置类型,加载并初始化对应的注册中心服务端,注册中心服务端收到<code>shenyu-client</code>注册的接口信息后,将其放入<code>Disruptor</code>中,然后会触发注册处理逻辑,将服务接口信息更新并发布同步事件。</p>
-<p><code>Disruptor</code>在其中起到数据与操作解耦,利于扩展。如果注册请求过多,导致注册异常,也有数据缓冲作用。</p>
-<h3 id="32-数据同步原理">3.2 数据同步原理</h3>
-<p>数据同步是指在 <code>shenyu-admin</code> 后台操作数据以后,使用何种策略将数据同步到 <code>Apache ShenYu</code> 网关。<code>Apache ShenYu</code> 网关当前支持<code>ZooKeeper</code>、<code>WebSocket</code>、<code>Http长轮询</code>、<code>Nacos</code> 、<code>Etcd</code> 和 <code>Consul</code> 进行数据同步。默认是通过<code>WebSocket</code>进行数据同步。</p>
-<p>数据同步的相关配置请参考 <a href="https://shenyu.apache.org/zh/docs/user-guide/use-data-sync">数据同步配置</a> 。</p>
-<h4 id="321-数据同步的意义">3.2.1 数据同步的意义</h4>
-<p>网关是流量请求的入口,在微服务架构中承担了非常重要的角色,网关高可用的重要性不言而喻。在使用网关的过程中,为了满足业务诉求,经常需要变更配置,比如流控规则、路由规则等等。因此,网关动态配置是保障网关高可用的重要因素。</p>
-<p>当前数据同步特性如下:</p>
-<ul>
-<li>所有的配置都缓存在 <code>Apache ShenYu</code> 网关内存中,每次请求都使用本地缓存,速度非常快。</li>
-<li>用户可以在 <code>shenyu-admin</code> 后台任意修改数据,并马上同步到网关内存。</li>
-<li>支持 <code>Apache ShenYu</code> 的插件、选择器、规则数据、元数据、签名数据等数据同步。</li>
-<li>所有插件的选择器,规则都是动态配置,立即生效,不需要重启服务。</li>
-<li>数据同步方式支持 <code>Zookeeper</code>、<code>Http 长轮询</code>、<code>Websocket</code>、<code>Nacos</code>、<code>Etcd</code> 和 <code>Consul</code>。</li>
-</ul>
-<h4 id="322-数据同步原理分析">3.2.2 数据同步原理分析</h4>
-<p>下图展示了 <code>Apache ShenYu</code> 数据同步的流程,<code>Apache ShenYu</code> 网关在启动时,会从配置服务同步配置数据,并且支持推拉模式获取配置变更信息,然后更新本地缓存。管理员可以在管理后台(<code>shenyu-admin</code>),变更用户权限、规则、插件、流量配置,通过推拉模式将变更信息同步给 <code>Apache ShenYu</code> 网关,具体是 <code>push</code> 模式,还是 <code>pull</code> 模式取决于使用哪种同步方式。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/data-sync.png" alt=""></p>
-<p>在最初的版本中,配置服务依赖 <code>Zookeeper</code> 实现,管理后台将变更信息 <code>push</code> 给网关。而现在可以支持 <code>WebSocket</code>、<code>Http长轮询</code>、<code>Zookeeper</code>、<code>Nacos</code>、<code>Etcd</code> 和 <code>Consul</code>,通过在配置文件中设置 <code>shenyu.sync.${strategy}</code> 指定对应的同步策略,默认使用 <code>webosocket</code> 同步策略,可以做到秒级数据同步。但是,有一点需要注意的是,<code>Apache ShenYu</code>网关 和 <code>shenyu-admin</code> 必须使用相同的同步策略。</p>
-<p>如下图所示,<code>shenyu-admin</code> 在用户发生配置变更之后,会通过 <code>EventPublisher</code> 发出配置变更通知,由 <code>EventDispatcher</code> 处理该变更通知,然后根据配置的同步策略(<code>http、weboscket、zookeeper、naocs、etcd、consul</code>),将配置发送给对应的事件处理器。</p>
-<ul>
-<li>如果是 <code>websocket</code> 同步策略,则将变更后的数据主动推送给 <code>shenyu-web</code>,并且在网关层,会有对应的 <code>WebsocketDataHandler</code> 处理器来处理 <code>shenyu-admin</code> 的数据推送。</li>
-<li>如果是 <code>zookeeper</code> 同步策略,将变更数据更新到 <code>zookeeper</code>,而 <code>ZookeeperSyncCache</code> 会监听到 <code>zookeeper</code> 的数据变更,并予以处理。</li>
-<li>如果是 <code>http</code> 同步策略,由网关主动发起长轮询请求,默认有 <code>90s</code> 超时时间,如果 <code>shenyu-admin</code> 没有数据变更,则会阻塞 <code>http</code> 请求,如果有数据发生变更则响应变更的数据信息,如果超过 <code>60s</code> 仍然没有数据变更则响应空数据,网关层接到响应后,继续发起 <code>http</code> 请求,反复同样的请求。</li>
-</ul>
-<h3 id="33-流程分析">3.3 流程分析</h3>
-<p>流程分析是从源码的角度,展示服务注册流程,数据同步流程和服务调用流程。</p>
-<h4 id="331-服务注册流程">3.3.1 服务注册流程</h4>
-<ul>
-<li>读取dubbo服务</li>
-</ul>
-<p>使用注解<code>@ShenyuDubboClient</code>标记需要注册到网关的<code>dubbo</code>服务。</p>
-<p>注解扫描通过<code>ApacheDubboServiceBeanListener</code>完成,它实现了<code>ApplicationListener&lt;ContextRefreshedEvent&gt;</code>接口,在<code>Spring</code>容器启动过程中,发生上下文刷新事件时,开始执行事件处理方法<code>onApplicationEvent()</code>。在重写的方法逻辑中,读取<code>Dubbo</code>服务<code>ServiceBean</code>,构建元数据对象和<code>URI</code>对象,并向<code>shenyu-admin</code>注册。</p>
-<p>具体的注册逻辑由注册中心实现,请参考 <a href="https://shenyu.apache.org/zh/docs/design/register-center-design/">客户端接入原理</a> 。</p>
-<ul>
-<li>处理注册信息</li>
-</ul>
-<p>客户端通过注册中心注册的元数据和<code>URI</code>数据,在<code>shenyu-admin</code>端进行处理,负责存储到数据库和同步给<code>shenyu</code>网关。<code>Dubbo</code>插件的客户端注册处理逻辑在<code>ShenyuClientRegisterDubboServiceImpl</code>中。继承关系如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/ShenyuClientRegisterDubboServiceImpl.png" alt=""></p>
-<ul>
-<li>ShenyuClientRegisterService:客户端注册服务,顶层接口;</li>
-<li>FallbackShenyuClientRegisterService:注册失败,提供重试操作;</li>
-<li>AbstractShenyuClientRegisterServiceImpl:抽象类,实现部分公共注册逻辑;</li>
-<li>ShenyuClientRegisterDubboServiceImpl:实现<code>Dubbo</code>插件的注册;</li>
-</ul>
-<p>注册信息包括选择器,规则和元数据。</p>
-<p>整体的<code>dubbo</code>服务注册流程如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/dubbo-register-zh.png" alt=""></p>
-<h4 id="332-数据同步流程">3.3.2 数据同步流程</h4>
-<ul>
-<li>admin更新数据</li>
-</ul>
-<p>假设在在后台管理系统中,新增一条选择器数据,请求会进入<code>SelectorController</code>类中的<code>createSelector()</code>方法,它负责数据的校验,添加或更新数据,返回结果信息。</p>
-<p>在<code>SelectorServiceImpl</code>类中通过<code>createOrUpdate()</code>方法完成数据的转换,保存到数据库,发布事件,更新<code>upstream</code>。</p>
-<p>在<code>Service</code>类完成数据的持久化操作,即保存数据到数据库。发布变更数据通过<code>eventPublisher.publishEvent()</code>完成,这个<code>eventPublisher</code>对象是一个<code>ApplicationEventPublisher</code>类,这个类的全限定名是<code>org.springframework.context.ApplicationEventPublisher</code>,发布数据的功能正是是通过<code>Spring</code>相关的功能来完成的。</p>
-<p>当事件发布完成后,会自动进入到<code>DataChangedEventDispatcher</code>类中的<code>onApplicationEvent()</code>方法,根据不同数据类型和数据同步方式进行事件处理。</p>
-<ul>
-<li>网关数据同步</li>
-</ul>
-<p>网关在启动时,根据指定的数据同步方式加载不同的配置类,初始化数据同步相关类。</p>
-<p>在接收到数据后,进行反序列化操作,读取数据类型和操作类型。不同的数据类型,有不同的数据处理方式,所以有不同的实现类。但是它们之间也有相同的处理逻辑,所以可以通过模板方法设计模式来实现。相同的逻辑放在抽象类<code>AbstractDataHandler</code>中的<code>handle()</code>方法中,不同逻辑就交给各自的实现类。</p>
-<p>新增一条选择器数据,是新增操作,会进入到<code>SelectorDataHandler.doUpdate()</code>具体的数据处理逻辑中。</p>
-<p>在通用插件数据订阅者<code>CommonPluginDataSubscriber</code>,负责处理所有插件、选择器和规则信息</p>
-<p>将数据保存到网关的内存中,<code>BaseDataCache</code>是最终缓存数据的类,通过单例模式实现。选择器数据就存到了<code>SELECTOR_MAP</code>这个<code>Map</code>中。在后续使用的时候,也是从这里拿数据。</p>
-<p>上述逻辑用流程图表示如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/data-sync-seq-zh.png" alt=""></p>
-<h4 id="333-服务调用流程">3.3.3 服务调用流程</h4>
-<p>在<code>Dubbo</code>插件体系中,类继承关系如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/ApacheDubboPlugin.png" alt=""></p>
-<blockquote>
-<p>ShenyuPlugin:顶层接口,定义接口方法;</p>
-<p>AbstractShenyuPlugin:抽象类,实现插件共有逻辑;</p>
-<p>AbstractDubboPlugin:dubbo插件抽象类,实现<code>dubbo</code>共有逻辑(ShenYu网关支持ApacheDubbo和AlibabaDubbo);</p>
-<p>ApacheDubboPlugin:ApacheDubbo插件。</p>
-</blockquote>
-<ul>
-<li>org.apache.shenyu.web.handler.ShenyuWebHandler.DefaultShenyuPluginChain#execute()</li>
-</ul>
-<p>通过<code>ShenYu</code>网关代理后,请求入口是<code>ShenyuWebHandler</code>,它实现了<code>org.springframework.web.server.WebHandler</code>接口,通过责任链设计模式将所有插件连接起来。</p>
-<ul>
-<li>org.apache.shenyu.plugin.base.AbstractShenyuPlugin#execute()</li>
-</ul>
-<p>当请求到网关时,判断某个插件是否执行,是通过指定的匹配逻辑来完成。在<code>execute()</code>方法中执行选择器和规则的匹配逻辑。</p>
-<ul>
-<li>org.apache.shenyu.plugin.global.GlobalPlugin#execute()</li>
-</ul>
-<p>最先被执行的是<code>GlobalPlugin</code> ,它是一个全局插件,在<code>execute()</code>方法中构建上下文信息。</p>
-<ul>
-<li>org.apache.shenyu.plugin.base.RpcParamTransformPlugin#execute()</li>
-</ul>
-<p>接着被执行的是<code>RpcParamTransformPlugin</code> , 它负责从<code>http</code>请求中读取参数,保存到<code>exchange</code>中,传递给<code>rpc</code>服务。在<code>execute()</code>方法中,执行该插件的核心逻辑:从<code>exchange</code>中获取请求信息,根据请求传入的内容形式处理参数。</p>
-<ul>
-<li>org.apache.shenyu.plugin.dubbo.common.AbstractDubboPlugin</li>
-</ul>
-<p>然后被执行的是<code>DubboPlugin</code> 。在<code>doExecute()</code>方法中,主要是检查元数据和参数。在<code>doDubboInvoker()</code>方法中设置特殊的上下文信息,然后开始<code>dubbo</code>的泛化调用。</p>
-<p>在<code>genericInvoker()</code>方法中:</p>
-<ul>
-<li>获取<code>ReferenceConfig</code>对象;</li>
-<li>获取泛化服务<code>GenericService</code>对象;</li>
-<li>构造请求参数<code>pair</code>对象;</li>
-<li>发起异步的泛化调用。</li>
-</ul>
-<p>通过泛化调用就可以实现在网关调用<code>dubbo</code>服务了。</p>
-<p><code>ReferenceConfig</code>对象是支持泛化调用的关键对象 ,它的初始化操作是在数据同步的时候完成的。</p>
-<ul>
-<li>org.apache.shenyu.plugin.response.ResponsePlugin#execute()</li>
-</ul>
-<p>最后被执行的是<code>ResponsePlugin</code> ,它统一处理网关的响应结果信息。处理类型由<code>MessageWriter</code>决定,类继承关系如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/MessageWriter.png" alt=""></p>
-<blockquote>
-<p>MessageWriter:接口,定义消息处理方法;</p>
-<p>NettyClientMessageWriter:处理<code>Netty</code>调用结果;</p>
-<p>RPCMessageWriter:处理<code>RPC</code>调用结果;</p>
-<p>WebClientMessageWriter:处理<code>WebClient</code>调用结果;</p>
-</blockquote>
-<p><code>Dubbo</code>服务调用,处理结果是<code>RPCMessageWriter</code>。</p>
-<ul>
-<li>org.apache.shenyu.plugin.response.strategy.RPCMessageWriter#writeWith()</li>
-</ul>
-<p>在<code>writeWith()</code>方法中处理响应结果,获取结果或处理异常。</p>
-<p>分析至此,关于<code>Dubbo</code>插件的源码分析就完成了,分析流程图如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/shenyu-dubbo/dubbo-execute-zh.png" alt=""></p>
-<h2 id="4-小结">4. 小结</h2>
-<p>本文从实际案例出发,由浅入深分析了<code>ShenYu</code>网关对Dubbo服务的代理过程。涉及到的主要知识点如下:</p>
-<ul>
-<li>通过责任链设计模式执行插件;</li>
-<li>使用模板方法设计模式实现<code>AbstractShenyuPlugin</code>,处理通用的操作类型;</li>
-<li>使用单例设计模式实现缓存数据类<code>BaseDataCache</code>;</li>
-<li>通过<code>springboot starter</code>即可引入不同的注册中心和数同步方式,扩展性很好;</li>
-<li>通过<code>admin</code>支持规则热更新,方便流量管控;</li>
-<li><code>Disruptor</code>队列是为了数据与操作解耦,以及数据缓冲。</li>
-</ul></description></item><item><title>Blog: 从原理到操作,让你在 Apache APISIX 中代理 Dubbo 服务更便捷</title><link>https://dubbo.apache.org/zh/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9%E4%BD%A0%E5%9C%A8-apache-apisix-%E4%B8%AD%E4%BB%A3%E7%90%86-dubbo-%E6%9C%8D%E5%8A%A1%E6%9B%B4%E4%BE%BF%E6%8D%B7/</link><pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2022/01/18/%E4%BB%8E%E5%8E%9F%E7%90%86%E5%88%B0%E6%93%8D%E4%BD%9C%E8%AE%A9 [...]
-<h2 id="背景">背景</h2>
-<p><a href="https://dubbo.apache.org/zh/">Apache Dubbo</a> 是由阿里巴巴开源并捐赠给 Apache 的微服务开发框架,它提供了 RPC 通信与微服务治理两大关键能力。不仅经过了阿里电商场景中海量流量的验证,也在国内的技术公司中被广泛落地。</p>
-<p>在实际应用场景中,Apache Dubbo 一般会作为后端系统间 RPC 调用的实现框架,当需要提供 HTTP 接口给到前端时,会通过一个「胶水层」将 Dubbo Service 包装成 HTTP 接口,再交付到前端系统。</p>
-<p><a href="https://apisix.apache.org/">Apache APISIX</a> 是 Apache 软件基金会的顶级开源项目,也是当前最活跃的开源网关项目。作为一个动态、实时、高性能的开源 API 网关,Apache APISIX 提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。</p>
-<p>得益于 Apache Dubbo 的应用场景优势,Apache APISIX 基于开源项目 tengine/mod_dubbo 模块为 Apache Dubbo 服务配备了HTTP 网关能力。通过 dubbo-proxy 插件,可以轻松地将 Dubbo Service 发布为 HTTP 服务。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/apisix-plugin/1.png" alt="架构图"></p>
-<h2 id="如何使用">如何使用</h2>
-<h3 id="入门篇安装使用">入门篇:安装使用</h3>
-<blockquote>
-<p>这里我们建议使用 Apache APISIX 2.11 版本镜像进行安装。该版本的 APISIX-Base 中已默认编译了 Dubbo 模块,可直接使用 <code>dubbo-proxy</code> 插件。</p>
-</blockquote>
-<p>在接下来的操作中,我们将使用 <a href="https://github.com/apache/dubbo-samples"><code>dubbo-samples</code></a> 项目进行部分展示。该项目是一些使用 Apache Dubbo 实现的 Demo 应用,本文中我们采用其中的一个子模块作为 Dubbo Provider。</p>
-<p>在进入正式操作前,我们先简单看下 Dubbo 接口的定义、配置以及相关实现。</p>
-<h4 id="接口实现一览">接口实现一览</h4>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">interface</span> <span style="color:#268bd2">DemoService</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#586e75">/**
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> * standard samples dubbo infterace demo
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> * @param context pass http infos
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> * @return Map&lt;String, Object&gt;&lt;/&gt; pass to response http
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> **/</span>
-</span></span><span style="display:flex;"><span> Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> <span style="color:#268bd2">apisixDubbo</span><span style="color:#719e07">(</span>Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> httpRequestContext<s [...]
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>如上所示,Dubbo 接口的定义是固定的。即方法参数中 <code>Map</code> 表示 APISIX 传递给 Dubbo Provider 关于 HTTP request 的一些信息(如:header、body&hellip;)。而方法返回值的 <code>Map</code> 表示 Dubbo Provider 传递给 APISIX 要如何返回 HTTP response 的一些信息。</p>
-<p>接口信息配置好之后可通过 XML 配置方式发布 DemoService。</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#586e75">&lt;!-- service implementation, as same as regular local bean --&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;bean</span> id=<span style="color:#2aa198">&#34;demoService&#34;</span> class=<span style="color:#2aa198">&#34;org.apache.dubbo.samples.provider.DemoServiceImpl&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#586e75">&lt;!-- declare the service interface to be exported --&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:service</span> interface=<span style="color:#2aa198">&#34;org.apache.dubbo.samples.apisix.DemoService&#34;</span> ref=<span style="color:#2aa198">&#34;demoService&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div><p>通过上述配置后,Consumer 可通过 <code>org.apache.dubbo.samples.apisix.DemoService</code> 访问其中的<code>apisixDubbo</code> 方法。具体接口实现如下:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">DemoServiceImpl</span> <span style="color:#268bd2">implements</span> DemoService <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@Override</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">public</span> Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> <span style="color:#268bd2">apisixDubbo</span><span style="color:#719e07">(</span>Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#71 [...]
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">for</span> <span style="color:#719e07">(</span>Map<span style="color:#719e07">.</span>Entry<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> entry <span style="color:#719e07">:</span> httpRequestContext<span style="color:#719e07">.</span>entrySet<span style="color:# [...]
-</span></span><span style="display:flex;"><span> System<span style="color:#719e07">.</span>out<span style="color:#719e07">.</span>println<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;Key = &#34;</span> <span style="color:#719e07">+</span> entry<span style="color:#719e07">.</span>getKey<span style="color:#719e07">()</span> <span style="color:#719e07">+</span> <span style="color:#2aa198">&#34; [...]
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> ret <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> HashMap<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;();</span>
-</span></span><span style="display:flex;"><span> ret<span style="color:#719e07">.</span>put<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;body&#34;</span><span style="color:#719e07">,</span> <span style="color:#2aa198">&#34;dubbo success\n&#34;</span><span style="color:#719e07">);</span> <span style="color:#586e75">// http response body
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span> ret<span style="color:#719e07">.</span>put<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;status&#34;</span><span style="color:#719e07">,</span> <span style="color:#2aa198">&#34;200&#34;</span><span style="color:#719e07">);</span> <span style="color:#586e75">// http response status
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span> ret<span style="color:#719e07">.</span>put<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;test&#34;</span><span style="color:#719e07">,</span> <span style="color:#2aa198">&#34;123&#34;</span><span style="color:#719e07">);</span> <span style="color:#586e75">// http response header
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> ret<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>上述代码中,<code>DemoServiceImpl</code> 会打印接收到的 <code>httpRequestContext</code>,并通过返回包含有指定 Key 的 Map 对象去描述该 Dubbo 请求的 HTTP 响应。</p>
-<h4 id="操作步骤">操作步骤</h4>
-<ol>
-<li>启动 <a href="https://github.com/apache/dubbo-samples/tree/master/dubbo-samples-tengine#install-dubbo"><code>dubbo-samples</code></a>。</li>
-<li>在 <code>config.yaml</code> 文件中进行 <code>dubbo-proxy</code> 插件启用。</li>
-</ol>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#586e75"># Add this in config.yaml</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">plugins</span>:
-</span></span><span style="display:flex;"><span> - ... <span style="color:#586e75"># plugin you need</span>
-</span></span><span style="display:flex;"><span> - dubbo-proxy
-</span></span></code></pre></div><ol start="3">
-<li>创建指向 Dubbo Provider 的 Upstream。</li>
-</ol>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>curl http://127.0.0.1:9180/apisix/admin/upstreams/1 -H <span style="color:#2aa198">&#39;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#39;</span> -X PUT -d <span style="color:#2aa198">&#39;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">{
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;nodes&#34;: {
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;127.0.0.1:20880&#34;: 1
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> },
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;type&#34;: &#34;roundrobin&#34;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">}&#39;</span>
-</span></span></code></pre></div><ol start="4">
-<li>为 DemoService 暴露一个 HTTP 路由。</li>
-</ol>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>curl http://127.0.0.1:9180/apisix/admin/routes/1 -H <span style="color:#2aa198">&#39;X-API-KEY: edd1c9f034335f136f87ad84b625c8f1&#39;</span> -X PUT -d <span style="color:#2aa198">&#39;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">{
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;host&#34;: &#34;example.org&#34;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;uris&#34;: [
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;/demo&#34;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> ],
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;plugins&#34;: {
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;dubbo-proxy&#34;: {
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;service_name&#34;: &#34;org.apache.dubbo.samples.apisix.DemoService&#34;,
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;service_version&#34;: &#34;0.0.0&#34;,
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;method&#34;: &#34;apisixDubbo&#34;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> }
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> },
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;upstream_id&#34;: 1
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">}&#39;</span>
-</span></span></code></pre></div><ol start="5">
-<li>使用 curl 命令请求 Apache APISIX,并查看返回结果。</li>
-</ol>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>curl http://127.0.0.1:9080/demo -H <span style="color:#2aa198">&#34;Host: example.org&#34;</span> -X POST --data <span style="color:#2aa198">&#39;{&#34;name&#34;: &#34;hello&#34;}&#39;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>&lt; HTTP/1.1 <span style="color:#2aa198">200</span> OK
-</span></span><span style="display:flex;"><span>&lt; Date: Sun, <span style="color:#2aa198">26</span> Dec <span style="color:#2aa198">2021</span> 11:33:27 GMT
-</span></span><span style="display:flex;"><span>&lt; Content-Type: text/plain; <span style="color:#268bd2">charset</span><span style="color:#719e07">=</span>utf-8
-</span></span><span style="display:flex;"><span>&lt; Content-Length: <span style="color:#2aa198">14</span>
-</span></span><span style="display:flex;"><span>&lt; Connection: keep-alive
-</span></span><span style="display:flex;"><span>&lt; test: <span style="color:#2aa198">123</span>
-</span></span><span style="display:flex;"><span>&lt; Server: APISIX/2.11.0
-</span></span><span style="display:flex;"><span>&lt;
-</span></span><span style="display:flex;"><span>dubbo success
-</span></span></code></pre></div><p>:::note 说明
-上述代码返回中包含了 <code>test: 123</code> Header,以及 <code>dubbo success</code> 字符串作为 Body 体。这与我们在 <code>DemoServiceImpl</code> 编码的预期效果一致。
-:::</p>
-<ol start="6">
-<li>查看 Dubbo Provider 的日志。</li>
-</ol>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>Key = content-length, Value = 17
-</span></span><span style="display:flex;"><span>Key = host, Value = example.org
-</span></span><span style="display:flex;"><span>Key = content-type, Value = application/x-www-form-urlencoded
-</span></span><span style="display:flex;"><span>Key = body, Value = [B@70754265
-</span></span><span style="display:flex;"><span>Key = accept, Value = */*
-</span></span><span style="display:flex;"><span>Key = user-agent, Value = curl/7.80.0
-</span></span></code></pre></div><p>:::note 说明
-通过 <code>httpRequestContext</code> 可以拿到 HTTP 请求的 Header 和 Body。其中 Header 会作为 Map 元素,而 Body 中 Key 值是固定的字符串&quot;body&quot;,Value 则代表 Byte 数组。
-:::</p>
-<h3 id="进阶篇复杂场景示例">进阶篇:复杂场景示例</h3>
-<p>在上述的简单用例中可以看出,我们确实通过 Apache APISIX 将 Dubbo Service 发布为一个 HTTP 服务,但是在使用过程中的限制也非常明显。比如:接口的参数和返回值都必须要是 <code>Map&lt;String, Object&gt;</code>。</p>
-<p>那么,如果项目中出现已经定义好、但又不符合上述限制的接口,该如何通过 Apache APISIX 来暴露 HTTP 服务呢?</p>
-<h4 id="操作步骤-1">操作步骤</h4>
-<p>针对上述场景,我们可以通过 HTTP Request Body 描述要调用的 Service 和 Method 以及对应参数,再利用 Java 的反射机制实现目标方法的调用。最后将返回值序列化为 JSON,并写入到 HTTP Response Body 中。</p>
-<p>这样就可以将 Apache APISIX 的 「HTTP to Dubbo」 能力进一步加强,并应用到所有已存在的 Dubbo Service 中。具体操作可参考下方:</p>
-<ol>
-<li>为已有项目增加一个 Dubbo Service 用来统一处理 HTTP to Dubbo 的转化。</li>
-</ol>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">DubboInvocationParameter</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> String type<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> String value<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">DubboInvocation</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> String service<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> String method<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> DubboInvocationParameter<span style="color:#719e07">[]</span> parameters<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">interface</span> <span style="color:#268bd2">HTTP2DubboService</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> <span style="color:#268bd2">invoke</span><span style="color:#719e07">(</span>Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> context<span style="color [...]
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">@Component</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">HTTP2DubboServiceImpl</span> <span style="color:#268bd2">implements</span> HTTP2DubboService <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@Autowired</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> ApplicationContext appContext<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@Override</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">public</span> Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> <span style="color:#268bd2">invoke</span><span style="color:#719e07">(</span>Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07" [...]
-</span></span><span style="display:flex;"><span> DubboInvocation invocation <span style="color:#719e07">=</span> JSONObject<span style="color:#719e07">.</span>parseObject<span style="color:#719e07">((</span><span style="color:#dc322f">byte</span><span style="color:#719e07">[])</span> context<span style="color:#719e07">.</span>get<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;body&#34;</span><span [...]
-</span></span><span style="display:flex;"><span> Object<span style="color:#719e07">[]</span> args <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> Object<span style="color:#719e07">[</span>invocation<span style="color:#719e07">.</span>getParameters<span style="color:#719e07">().</span>size<span style="color:#719e07">()];</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">for</span> <span style="color:#719e07">(</span><span style="color:#dc322f">int</span> i <span style="color:#719e07">=</span> 0<span style="color:#719e07">;</span> i <span style="color:#719e07">&lt;</span> args<span style="color:#719e07">.</span>length<span style="color:#719e07">;</span> i<span style="color:#719e07">++)</span> <span style="c [...]
-</span></span><span style="display:flex;"><span> DubboInvocationParameter parameter <span style="color:#719e07">=</span> invocation<span style="color:#719e07">.</span>getParameters<span style="color:#719e07">().</span>get<span style="color:#719e07">(</span>i<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> args<span style="color:#719e07">[</span>i<span style="color:#719e07">]</span> <span style="color:#719e07">=</span> JSONObject<span style="color:#719e07">.</span>parseObject<span style="color:#719e07">(</span>parameter<span style="color:#719e07">.</span>getValue<span style="color:#719e07">(),</span> Class<span style="color:#719e07">.</span>forName<span style="color:#719e07">(< [...]
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> Object svc <span style="color:#719e07">=</span> appContext<span style="color:#719e07">.</span>getBean<span style="color:#719e07">(</span>Class<span style="color:#719e07">.</span>forName<span style="color:#719e07">(</span>invocation<span style="color:#719e07">.</span>getService<span style="color:#719e07">()));</span>
-</span></span><span style="display:flex;"><span> Object result <span style="color:#719e07">=</span> svc<span style="color:#719e07">.</span>getClass<span style="color:#719e07">().</span>getMethod<span style="color:#719e07">(</span>invocation<span style="color:#719e07">.</span>getMethod<span style="color:#719e07">()).</span>invoke<span style="color:#719e07">(</span>args<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> Map<span style="color:#719e07">&lt;</span>String<span style="color:#719e07">,</span> Object<span style="color:#719e07">&gt;</span> httpResponse <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> HashMap<span style="color:#719e07">&lt;&gt;();</span>
-</span></span><span style="display:flex;"><span> httpResponse<span style="color:#719e07">.</span>put<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;status&#34;</span><span style="color:#719e07">,</span> 200<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> httpResponse<span style="color:#719e07">.</span>put<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;body&#34;</span><span style="color:#719e07">,</span> JSONObject<span style="color:#719e07">.</span>toJSONString<span style="color:#719e07">(</span>result<span style="color:#719e07">));</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> httpResponse<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><ol start="2">
-<li>通过如下命令请求来发起相关调用。</li>
-</ol>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-shell" data-lang="shell"><span style="display:flex;"><span>curl http://127.0.0.1:9080/demo -H <span style="color:#2aa198">&#34;Host: example.org&#34;</span> -X POST --data <span style="color:#2aa198">&#39;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">{
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;service&#34;: &#34;org.apache.dubbo.samples.apisix.DemoService&#34;,
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;method&#34;: &#34;createUser&#34;,
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;parameters&#34;: [
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> {
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;type&#34;: &#34;org.apache.dubbo.samples.apisix.User&#34;,
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> &#34;value&#34;: &#34;{&#39;</span>name<span style="color:#2aa198">&#39;: &#39;</span>hello<span style="color:#2aa198">&#39;}&#34;
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> }
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198"> ]
-</span></span></span><span style="display:flex;"><span><span style="color:#2aa198">}&#39;</span>
-</span></span></code></pre></div><h2 id="总结">总结</h2>
-<p>本文为大家介绍了如何借助 Apache APISIX 实现 Dubbo Service 的代理,通过引入 <code>dubbo-proxy</code> 插件便可为 Dubbo 框架的后端系统构建更简单更高效的流量链路。</p>
-<p>希望通过上述操作步骤和用例场景分享,能为大家在相关场景的使用提供借鉴思路。更多关于 <code>dubbo-proxy</code> 插件的介绍与使用可参考<a href="https://apisix.apache.org/docs/apisix/plugins/dubbo-proxy/">官方文档</a>。</p></description></item><item><title>Blog: 2.7.14 发版公告</title><link>https://dubbo.apache.org/zh/blog/2021/09/20/2.7.14-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</link><pubDate>Mon, 20 Sep 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/09/20/2.7.14-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</guid> [...]
-<h2 id="变动项">变动项</h2>
-<ul>
-<li>为 ServiceDiscovery 增加动态配置中心的覆盖规则。(#8389)</li>
-<li>修复当 mock 参数中包含 &lsquo;:&rsquo; 或者 &lsquo;=&rsquo; 符号时无法正常使用的问题。(#8379)</li>
-<li>修复 zone 参数对 ZoneAwareClusterInvoker 配置无法生效的问题。(#8521)</li>
-<li>为序列化白名单检查增加开关,默认为 true。(#8537)</li>
-<li>修复当请求超时时序列化检查的空指针异常。(#8587)</li>
-<li>修复 NetUtils.ignoreNetworkInterface 无法处理网卡中包含 &lsquo;(&rsquo; 符号的问题。(#8629)</li>
-<li>统一获取本地地址的方式。(#8679)</li>
-<li>修复当重试参数为0,依旧会重试1次的问题。(#8743)</li>
-<li>当清除未使用的 invoker 时,立即关闭客户端。(#8756)</li>
-<li>修复 destroy 方法以及 doOverrideIfNecessary 中的异常。(#8683)</li>
-<li>DefaultFuture.closeChannel 根据日志级别选择是否打印请求的详细数据。(#8778)</li>
-<li>使用 MapUtils 替换 AttachmentsAdapter(#8772)</li>
-</ul>
-<h2 id="maven依赖变化">Maven依赖变化</h2>
-<ul>
-<li>netty4: 4.1.51.Final -&gt; 4.1.66.Final</li>
-<li>netty4_ssl: 2.0.39.Final -&gt; 2.0.40.Final</li>
-<li>http_client: 4.5.3 -&gt; 4.5.13</li>
-<li>jetty: 9.4.11.v20180605 -&gt; 9.4.43.v20210629</li>
-<li>apollo_client: 1.1.1 -&gt; 1.8.0</li>
-<li>tomcat_embed: 8.5.31-&gt; 9.0.48</li>
-<li>commons_io: 2.6 -&gt; 2.7</li>
-<li>curator: 5.0.0 -&gt; 5.1.0</li>
-<li>hessian_lite: 3.2.8 -&gt; 3.2.11</li>
-</ul></description></item><item><title>Blog: 3.0.2.1 发版公告</title><link>https://dubbo.apache.org/zh/blog/2021/08/23/3.0.2.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</link><pubDate>Mon, 23 Aug 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/08/23/3.0.2.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</guid><description>
-<p>这是 3.0.2 的错误修正版本。
-除了以下更改外,与版本 3.0.2 完全相同。</p>
-<h2 id="bug-修复">Bug 修复</h2>
-<ul>
-<li>修复 nacos group 在消费者端不生效的问题 (#8533)</li>
-<li>修复请求超时时序列化检查的 NPE (#8547)</li>
-<li>兼容使用 dubbo-all 时未导入 farbic-io 包的问题 (#8546)</li>
-</ul></description></item><item><title>Blog: 3.0.2 发版公告</title><link>https://dubbo.apache.org/zh/blog/2021/08/18/3.0.2-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</link><pubDate>Wed, 18 Aug 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/08/18/3.0.2-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</guid><description>
-<h2 id="新特性">新特性</h2>
-<ul>
-<li>支持通过 @DubboService 注解暴露泛化服务</li>
-<li>元数据中心xml格式的配置支持 protocol 和 port 属性</li>
-<li>兼容 curator5 以上的版本</li>
-<li>点对点调用支持*通配符进行匹配, 一个提供者地址可对应多个接口</li>
-<li>为应用级别的服务发现增加动态配置去进行规则覆盖</li>
-<li>对提供者测的动态配置覆盖规则提供开关,可以使提供者无视动态配置,不重新暴露</li>
-<li>支持 native image</li>
-<li>提供取消执行 shutdown hook 的开关</li>
-<li>支持 Kubernetes Mesh 的服务治理规则</li>
-<li>Netty 连接支持 SSL 配置</li>
-</ul>
-<h2 id="bug-修复">Bug 修复</h2>
-<ul>
-<li>DubboBootStrap start 重复调用后,动态配置被覆盖</li>
-<li>动态配置规则被删除后,依然生效</li>
-<li>triple 协议在暴露时会抛出空指针异常</li>
-<li>ConfigCenterConfig.setAddress 方法会覆盖掉 username 属性</li>
-<li>DefaultFuture.closeChannel 会销毁掉消费端测的线程池</li>
-<li>TripleClientHandler.writeRequest 抛出空指针异常</li>
-<li>解析3.0迁移规则异常时会抛出空指针异常</li>
-<li>Activated Extensions 的顺序性问题</li>
-<li>URLAddress.parse 方法在解析 ipv6 地址时存在问题</li>
-<li>用户自定义的参数在 properties 配置中不生效</li>
-<li>同时使用 API 模式和 Spring 模式配置时属性,Config Id 存在覆盖问题</li>
-<li>应用级别服务发现在启动时不生效</li>
-<li>Nacos 注册中心无法动态感知提供者的数量变化</li>
-<li>${dubbo.application} 在 xml 文件中无法被 spring 的 placeholder 规则给解析替换</li>
-<li>获取实例参数的顺序问题,先去获取了实例级别参数,再去获取接口级别参数</li>
-<li>当 DubboConfigBeanInitializer 不存在时,注册应用启动监听器会抛出异常</li>
-<li>Mock 时 参数中包含 &lsquo;:&rsquo; 或者 &lsquo;=&rsquo; 字符时,不生效</li>
-<li>删除 Mesh 规则时空指针异常</li>
-</ul>
-<h2 id="优化">优化</h2>
-<ul>
-<li>抓住 RemovalTask 的异常,保证信号量能够释放</li>
-<li>通过 唯一 service name 检查 ReferenceConfig/ServiceConfig 是否重复</li>
-<li>优化生成随机数的性能</li>
-<li>如果用户使用接口级别去做服务发现,不发布应用与接口的映射数据到元数据中心</li>
-<li>使用 StringBuilder#append(Char) 提升性能</li>
-<li>保证 GRPC 编译的类文件中接口的顺序</li>
-<li>优化 reference bean 的占位符解析</li>
-<li>MergeableClusterInvoker 中使用 CompletableFuture#get(long, TimeUnit) 去提升性能</li>
-<li>内置服务 MetadataService 不延迟暴露</li>
-<li>优化 ConfigBean 和 Bootstrap 的启动逻辑</li>
-<li>优化 Config 检查是否重复的逻辑</li>
-<li>使用 Ring 数据结构去进行注册通知</li>
-<li>优化动态配置的初始化逻辑</li>
-<li>ConfigManager 使用 ConcurrentHashMap 去移除锁逻辑,提升 equals 和 toString 性能</li>
-<li>优化 MetadataInfo equals 方法 以及 Instance Listener</li>
-<li>优化异步 export/refer 逻辑</li>
-<li>使用 TreeSet 数据结构保证应用级别服务发现时应用名称的顺序一致</li>
-<li>RegistryNotifier 的第一个十次通知不延迟</li>
-<li>dubbo-compile 编译使用新的格式生成 stub</li>
-<li>Mesh 服务治理规则在动态配置中心的分组和其他规则分组统一,由 DEFAULT_GROUP 改成 dubbo</li>
-<li>使用 nacos 用作注册中心时,可以在注册中心地址中使用参数来改变在 nacos 中的分组</li>
-<li>计算 ServiceInfo 的 reversion 时,移除运行时参数,避免生成多个 reversion</li>
-<li>Nacos 注册中心抛出异常时,将异常封装称 RpcException 抛出</li>
-<li>禁止动态配置中心对一些权限参数进行动态修改</li>
-<li>优化 Config Bean 的初始化流程,并兼容 spring 3.x/4.1.x</li>
-<li>Bootstrap.start 方法可重入,暴露或引用新的服务</li>
-<li>将 org.apache.dubbo 包中的类默认添加到白名单中</li>
-<li>保证生成的 Config 的 Id 唯一,并检查 Config 是否之前存在</li>
-<li>Javaassist 兼容改变 override 声明字段</li>
-<li>重构解码时的检查逻辑,当找不到 path, version 对应的提供者是,抛出异常</li>
-<li>当 ApplicationModel 为 null 时,兼容 adaptive extensions</li>
-</ul>
-<h2 id="代码质量提升">代码质量提升</h2>
-<p>感谢以下提高 Apache Dubbo 的稳定性的贡献。</p>
-<p><a href="https://github.com/apache/dubbo/pull/8111">#8111</a>,
-<a href="https://github.com/apache/dubbo/pull/8147">#8147</a>,
-<a href="https://github.com/apache/dubbo/pull/8164">#8164</a>,
-<a href="https://github.com/apache/dubbo/pull/8177">#8177</a>,
-<a href="https://github.com/apache/dubbo/pull/8180">#8180</a>,
-<a href="https://github.com/apache/dubbo/pull/8161">#8161</a>,
-<a href="https://github.com/apache/dubbo/pull/8183">#8183</a>,
-<a href="https://github.com/apache/dubbo/pull/8205">#8205</a>,
-<a href="https://github.com/apache/dubbo/pull/8215">#8215</a>,
-<a href="https://github.com/apache/dubbo/pull/8173">#8173</a>,
-<a href="https://github.com/apache/dubbo/pull/8219">#8219</a>,
-<a href="https://github.com/apache/dubbo/pull/8228">#8228</a>,
-<a href="https://github.com/apache/dubbo/pull/8232">#8232</a>,
-<a href="https://github.com/apache/dubbo/pull/8230">#8230</a>,
-<a href="https://github.com/apache/dubbo/pull/8236">#8236</a>,
-<a href="https://github.com/apache/dubbo/pull/8260">#8260</a>,
-<a href="https://github.com/apache/dubbo/pull/8262">#8262</a>,
-<a href="https://github.com/apache/dubbo/pull/8252">#8252</a>,
-<a href="https://github.com/apache/dubbo/pull/8246">#8246</a>,
-<a href="https://github.com/apache/dubbo/pull/8208">#8208</a>,
-<a href="https://github.com/apache/dubbo/pull/8278">#8278</a>,
-<a href="https://github.com/apache/dubbo/pull/8267">#8267</a>,
-<a href="https://github.com/apache/dubbo/pull/8277">#8277</a>,
-<a href="https://github.com/apache/dubbo/pull/8291">#8291</a>,
-<a href="https://github.com/apache/dubbo/pull/8296">#8296</a>,
-<a href="https://github.com/apache/dubbo/pull/8302">#8302</a>,
-<a href="https://github.com/apache/dubbo/pull/8175">#8175</a>,
-<a href="https://github.com/apache/dubbo/pull/8319">#8319</a>,
-<a href="https://github.com/apache/dubbo/pull/8309">#8309</a>,
-<a href="https://github.com/apache/dubbo/pull/8336">#8336</a>,
-<a href="https://github.com/apache/dubbo/pull/8332">#8332</a>,
-<a href="https://github.com/apache/dubbo/pull/8328">#8328</a>,
-<a href="https://github.com/apache/dubbo/pull/8355">#8355</a>,
-<a href="https://github.com/apache/dubbo/pull/8396">#8396</a>,
-<a href="https://github.com/apache/dubbo/pull/8401">#8401</a>,
-<a href="https://github.com/apache/dubbo/pull/8395">#8395</a>,
-<a href="https://github.com/apache/dubbo/pull/8415">#8415</a>,
-<a href="https://github.com/apache/dubbo/pull/8406">#8406</a>,
-<a href="https://github.com/apache/dubbo/pull/8411">#8411</a>,
-<a href="https://github.com/apache/dubbo/pull/8418">#8418</a>,
-<a href="https://github.com/apache/dubbo/pull/8439">#8439</a>,
-<a href="https://github.com/apache/dubbo/pull/8404">#8404</a>,
-<a href="https://github.com/apache/dubbo/pull/8443">#8443</a></p>
-<h2 id="maven依赖变化">Maven依赖变化</h2>
-<ul>
-<li>移除依赖: org.eclipse.collections:eclipse-collections</li>
-<li>移除依赖: com.google.guava:guava</li>
-<li>jetty: 9.4.11.v20180605 -&gt; 9.4.43.v20210629</li>
-<li>apollo client: 1.1.1 -&gt; 1.8.0</li>
-<li>snakeyaml: 1.20 -&gt; 1.29</li>
-<li>tomcat embed: 8.5.31 -&gt; 8.5.69</li>
-<li>nacos client: 2.0.0 -&gt; 2.0.2</li>
-<li>swagger: 1.5.19 -&gt; 1.5.24</li>
-<li>hessian_lite: 3.2.8 -&gt; 3.2.11</li>
-</ul></description></item><item><title>Blog: 3.0.1 发版公告</title><link>https://dubbo.apache.org/zh/blog/2021/07/02/3.0.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</link><pubDate>Fri, 02 Jul 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/07/02/3.0.1-%E5%8F%91%E7%89%88%E5%85%AC%E5%91%8A/</guid><description>
-<h2 id="优化">优化</h2>
-<ul>
-<li>重构服务自省映射关系,支持地址迁移时直接配置上游应用名</li>
-<li>为 Spring 扫描添加缓存</li>
-<li>优化配置覆盖逻辑</li>
-<li>支持 Servlet 环境下控制 Dubbo 生命周期</li>
-<li>添加 ServiceListener 用于监听 ServiceConfig</li>
-<li>优化方法回调参数设置</li>
-</ul>
-<h2 id="bug-修复">Bug 修复</h2>
-<ul>
-<li>启用强制校验</li>
-<li>更正多注册中心情况下,一个注册中心启动时无地址就销毁的逻辑</li>
-<li>移除冗余的日志输出</li>
-<li>忽略无效的 MetadataReportConfig</li>
-<li>修复消费端启动时 NPE 的情况</li>
-<li>修复若干和低版本兼容问题</li>
-<li>修复若干应用级服务发现逻辑存在的问题</li>
-<li>优化地址迁移规则,支持应用级地址重订阅</li>
-<li>修复 MetadataInfo 存在 NPE 的情况</li>
-<li>修复应用级注册到注册中心的实例信息被错误覆盖的问题</li>
-</ul>
-<h2 id="代码质量提升">代码质量提升</h2>
-<p>感谢以下提高 Apache Dubbo 的稳定性的贡献。</p>
-<p><a href="https://github.com/apache/dubbo/pull/8043">#8043</a>,
-<a href="https://github.com/apache/dubbo/pull/8044">#8044</a>,
-<a href="https://github.com/apache/dubbo/pull/8048">#8048</a>,
-<a href="https://github.com/apache/dubbo/pull/8071">#8071</a>,
-<a href="https://github.com/apache/dubbo/pull/8119">#8119</a>,
-<a href="https://github.com/apache/dubbo/pull/8132">#8132</a></p></description></item><item><title>Blog: Dubbo3 应用级服务发现</title><link>https://dubbo.apache.org/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/</link><pubDate>Wed, 02 Jun 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/</guid><description>
-<h2 id="1-服务发现service-discovery-概述">1 服务发现(Service Discovery) 概述</h2>
-<p>从 Internet 刚开始兴起,如何动态感知后端服务的地址变化就是一个必须要面对的问题,为此人们定义了 DNS 协议,基于此协议,调用方只需要记住由固定字符串组成的域名,就能轻松完成对后端服务的访问,而不用担心流量最终会访问到哪些机器 IP,因为有代理组件会基于 DNS 地址解析后的地址列表,将流量透明的、均匀的分发到不同的后端机器上。</p>
-<p>在使用微服务构建复杂的分布式系统时,如何感知 backend 服务实例的动态上下线,也是微服务框架最需要关心并解决的问题之一。业界将这个问题称之为 - 微服务的地址发现(Service Discovery),业界比较有代表性的微服务框架如 SpringCloud、Dubbo 等都抽象了强大的动态地址发现能力,并且为了满足微服务业务场景的需求,绝大多数框架的地址发现都是基于自己设计的一套机制来实现,因此在能力、灵活性上都要比传统 DNS 丰富得多。如 SpringCloud 中常用的 Eureka, Dubbo 中常用的 Zookeeper、Nacos 等,这些注册中心实现不止能够传递地址(IP + Port),还包括一些微服务的 Metadata 信息,如实例序列化类型、实例方法列表、各个方法级的定制化配置等。</p>
-<p>下图是微服务中 Service Discovery 的基本工作原理图,微服务体系中的实例大概可分为三种角色:服务提供者(Provider)、服务消费者(Consumer)和注册中心(Registry)。而不同框架实现间最主要的区别就体现在注册中心数据的组织:地址如何组织、以什么粒度组织、除地址外还同步哪些数据?</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-1.png" alt="img1"></p>
-<p>我们今天这篇文章就是围绕这三个角色展开,重点看下 Dubbo 中对于服务发现方案的设计,包括之前老的服务发现方案的优势和缺点,以及 Dubbo 3.0 中正在设计、开发中的全新的<strong>面向应用粒度的地址发现方案</strong>,我们期待这个新的方案能做到:</p>
-<ul>
-<li><strong>支持几十万/上百万级集群实例的地址发现</strong></li>
-<li><strong>与不同的微服务体系(如 Spring Cloud)实现在地址发现层面的互通</strong></li>
-</ul>
-<h2 id="2-dubbo-地址发现机制解析">2 Dubbo 地址发现机制解析</h2>
-<p>我们先以一个 DEMO 应用为例,来快速的看一下 Dubbo “接口粒度”服务发现与“应用粒度”服务发现体现出来的区别。这里我们重点关注 Provider 实例是如何向注册中心注册的,并且,为了体现注册中心数据量变化,我们观察的是两个 Provider 实例的场景。</p>
-<p><strong>应用 DEMO 提供的服务列表如下:</strong></p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:service</span> interface=<span style="color:#2aa198">&#34;org.apache.dubbo.samples.basic.api.DemoService&#34;</span> ref=<span style="color:#2aa198">&#34;demoService&#34;</span><span style="c [...]
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:service</span> interface=<span style="color:#2aa198">&#34;org.apache.dubbo.samples.basic.api.GreetingService&#34;</span> ref=<span style="color:#2aa198">&#34;greetingService&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div><p>我们示例注册中心实现采用的是 Zookeeper ,启动 192.168.0.103 和 192.168.0.104 两个实例后,以下是两种模式下注册中心的实际数据</p>
-<p><strong>1. “接口粒度” 服务发现</strong></p>
-<p>192.168.0.103 实例注册的数据</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>dubbo://192.168.0.103:20880/org.apache.dubbo.samples.basic.api.DemoService?anyhost=true&amp;application=demo-provider&amp;default=true&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=true&amp;generic=false&amp;interface=org.apache.dubbo.sa [...]
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>dubbo://192.168.0.103:20880/org.apache.dubbo.samples.basic.api.GreetingService?anyhost=true&amp;application=demo-provider&amp;default=true&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=true&amp;generic=false&amp;interface=org.apache.dubbo.samples.basic.api.GreetingService&amp;methods=greeting&amp;pid=995&amp;release=2.7.7&amp;side=provider&amp;timestamp=1596988170816
-</span></span></code></pre></div><p>192.168.0.104 实例注册的数据</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>dubbo://192.168.0.104:20880/org.apache.dubbo.samples.basic.api.DemoService?anyhost=true&amp;application=demo-provider&amp;default=true&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=true&amp;generic=false&amp;interface=org.apache.dubbo.sa [...]
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>dubbo://192.168.0.104:20880/org.apache.dubbo.samples.basic.api.GreetingService?anyhost=true&amp;application=demo-provider&amp;default=true&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=true&amp;generic=false&amp;interface=org.apache.dubbo.samples.basic.api.GreetingService&amp;methods=greeting&amp;pid=995&amp;release=2.7.7&amp;side=provider&amp;timestamp=1596988170816
-</span></span></code></pre></div><p><strong>2. “应用粒度” 服务发现</strong></p>
-<p>192.168.0.103 与 192.168.0.104 两个实例共享一份注册中心数据,如下:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;name&#34;</span>: <span style="color:#2aa198">&#34;demo-provider&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;id&#34;</span>: <span style="color:#2aa198">&#34;192.168.0.103:20880&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;address&#34;</span>: <span style="color:#2aa198">&#34;192.168.0.103&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;port&#34;</span>: <span style="color:#2aa198">20880</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;metadata&#34;</span>: {
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;dubbo.endpoints&#34;</span>: <span style="color:#2aa198">&#34;[{\&#34;port\&#34;:20880,\&#34;protocol\&#34;:\&#34;dubbo\&#34;}]&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;dubbo.metadata.storage-type&#34;</span>: <span style="color:#2aa198">&#34;local&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;dubbo.revision&#34;</span>: <span style="color:#2aa198">&#34;6785535733750099598&#34;</span>
-</span></span><span style="display:flex;"><span> },
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;time&#34;</span>: <span style="color:#2aa198">1583461240877</span>
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;name&#34;</span>: <span style="color:#2aa198">&#34;demo-provider&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;id&#34;</span>: <span style="color:#2aa198">&#34;192.168.0.104:20880&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;address&#34;</span>: <span style="color:#2aa198">&#34;192.168.0.104&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;port&#34;</span>: <span style="color:#2aa198">20880</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;metadata&#34;</span>: {
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;dubbo.endpoints&#34;</span>: <span style="color:#2aa198">&#34;[{\&#34;port\&#34;:20880,\&#34;protocol\&#34;:\&#34;dubbo\&#34;}]&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;dubbo.metadata.storage-type&#34;</span>: <span style="color:#2aa198">&#34;local&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;dubbo.revision&#34;</span>: <span style="color:#2aa198">&#34;7829635812370099387&#34;</span>
-</span></span><span style="display:flex;"><span> },
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;time&#34;</span>: <span style="color:#2aa198">1583461240877</span>
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>对比以上两种不同粒度的服务发现模式,从 “接口粒度” 升级到 “应用粒度” 后我们可以总结出最大的区别是:注册中心数据量不再与接口数成正比,不论应用提供有多少接口,注册中心只有一条实例数据。</p>
-<p>那么接下来我们详细看下这个变化给 Dubbo 带来了哪些好处。</p>
-<h2 id="3-dubbo-应用级服务发现的意义">3 Dubbo 应用级服务发现的意义</h2>
-<p>我们先说结论,应用级服务发现给 Dubbo 带来以下优势:</p>
-<ol>
-<li>与业界主流微服务模型对齐,比如 SpringCloud、Kubernetes Native Service等。</li>
-<li>提升性能与可伸缩性。注册中心数据的重新组织(减少),能最大幅度的减轻注册中心的存储、推送压力,进而减少 Dubbo Consumer 侧的地址计算压力;集群规模也开始变得可预测、可评估(与 RPC 接口数量无关,只与实例部署规模相关)。</li>
-</ol>
-<h3 id="31-对齐主流微服务模型">3.1 对齐主流微服务模型</h3>
-<p>自动、透明的实例地址发现(负载均衡)是所有微服务框架需要解决的事情,这能让后端的部署结构对上游微服务透明,上游服务只需要从收到的地址列表中选取一个,发起调用就可以了。要实现以上目标,涉及两个关键点的自动同步:</p>
-<ul>
-<li>实例地址,服务消费方需要知道地址以建立连接</li>
-<li>RPC 方法定义,服务消费方需要知道 RPC 服务的具体定义,不论服务类型是 rest 或 rmi 等。</li>
-</ul>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-2.png" alt="img2"></p>
-<p>对于 RPC 实例间借助注册中心的数据同步,REST 定义了一套非常有意思的成熟度模型,感兴趣的朋友可以参考这里的链接 <a href="https://www.martinfowler.com/articles/richardsonMaturityModel.html">https://www.martinfowler.com/articles/richardsonMaturityModel.html</a>, 按照文章中的 4 级成熟度定义,Dubbo 当前基于接口粒度的模型可以对应到 L4 级别。</p>
-<p>接下来,我们看看 Dubbo、SpringCloud 以及 Kubernetes 分别是怎么围绕自动化的实例地址发现这个目标设计的。</p>
-<p><strong>1. Spring Cloud</strong></p>
-<p>Spring Cloud 通过注册中心只同步了应用与实例地址,消费方可以基于实例地址与服务提供方建立连接,但是消费方对于如何发起 http 调用(SpringCloud 基于 rest 通信)一无所知,比如对方有哪些 http endpoint,需要传入哪些参数等。</p>
-<p>RPC 服务这部分信息目前都是通过线下约定或离线的管理系统来协商的。这种架构的优缺点总结如下。
-优势:部署结构清晰、地址推送量小;
-缺点:地址订阅需要指定应用名, provider 应用变更(拆分)需消费端感知;RPC 调用无法全自动同步。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-3.png" alt="img3"></p>
-<p><strong>2. Dubbo</strong></p>
-<p>Dubbo 通过注册中心同时同步了实例地址和 RPC 方法,因此其能实现 RPC 过程的自动同步,面向 RPC 编程、面向 RPC 治理,对后端应用的拆分消费端无感知,其缺点则是地址推送数量变大,和 RPC 方法成正比。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-4.png" alt="img4"></p>
-<p><strong>3. Dubbo + Kubernetes</strong></p>
-<p>Dubbo 要支持 Kubernetes native service,相比之前自建注册中心的服务发现体系来说,在工作机制上主要有两点变化:</p>
-<ul>
-<li>服务注册由平台接管,provider 不再需要关心服务注册</li>
-<li>consumer 端服务发现将是 Dubbo 关注的重点,通过对接平台层的 API-Server、DNS 等,Dubbo client 可以通过一个 <a href="https://kubernetes.io/docs/concepts/services-networking/service/">Service Name</a>(通常对应到 Application Name)查询到一组 <a href="">Endpoints</a>(一组运行 provider 的 pod),通过将 Endpoints 映射到 Dubbo 内部地址列表,以驱动 Dubbo 内置的负载均衡机制工作。</li>
-</ul>
-<blockquote>
-<p>Kubernetes Service 作为一个抽象概念,怎么映射到 Dubbo 是一个值得讨论的点</p>
-<ul>
-<li>Service Name - &gt; Application Name,Dubbo 应用和 Kubernetes 服务一一对应,对于微服务运维和建设环节透明,与开发阶段解耦。</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#268bd2">apiVersion</span>: v1
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">kind</span>: Service
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">metadata</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">name</span>: provider-app-name
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">spec</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">selector</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">app</span>: provider-app-name
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">ports</span>:
-</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">protocol</span>: TCP
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">port</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">targetPort</span>: <span style="color:#2aa198">9376</span>
-</span></span></code></pre></div><ul>
-<li>Service Name - &gt; Dubbo RPC Service,Kubernetes 要维护调度的服务与应用内建 RPC 服务绑定,维护的服务数量变多。</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span>---
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">apiVersion</span>: v1
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">kind</span>: Service
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">metadata</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">name</span>: rpc-service-1
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">spec</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">selector</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">app</span>: provider-app-name
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">ports</span>: <span style="color:#586e75">##</span>
-</span></span><span style="display:flex;"><span>...
-</span></span><span style="display:flex;"><span>---
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">apiVersion</span>: v1
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">kind</span>: Service
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">metadata</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">name</span>: rpc-service-2
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">spec</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">selector</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">app</span>: provider-app-name
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">ports</span>: <span style="color:#586e75">##</span>
-</span></span><span style="display:flex;"><span>...
-</span></span><span style="display:flex;"><span>---
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">apiVersion</span>: v1
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">kind</span>: Service
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">metadata</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">name</span>: rpc-service-N
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">spec</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">selector</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">app</span>: provider-app-name
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">ports</span>: <span style="color:#586e75">##</span>
-</span></span><span style="display:flex;"><span>...
-</span></span></code></pre></div></blockquote>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-5.png" alt="img5"></p>
-<p>结合以上几种不同微服务框架模型的分析,我们可以发现,Dubbo 与 SpringCloud、Kubernetes 等不同产品在微服务的抽象定义上还是存在很大不同的。SpringCloud 和 Kubernetes 在微服务的模型抽象上还是比较接近的,两者基本都只关心实例地址的同步,如果我们去关心其他的一些服务框架产品,会发现它们绝大多数也是这么设计的;</p>
-<blockquote>
-<p>即 REST 成熟度模型中的 L3 级别。</p>
-</blockquote>
-<p>对比起来 Dubbo 则相对是比较特殊的存在,更多的是从 RPC 服务的粒度去设计的。</p>
-<blockquote>
-<p>对应 REST 成熟度模型中的 L4 级别。</p>
-</blockquote>
-<p>如我们上面针对每种模型做了详细的分析,每种模型都有其优势和不足。而我们最初决定 Dubbo 要做出改变,往其他的微服务发现模型上的对齐,是我们最早在确定 Dubbo 的云原生方案时,我们发现要让 Dubbo 去支持 Kubernetes Native Service,模型对齐是一个基础条件;另一点是来自用户侧对 Dubbo 场景化的一些工程实践的需求,得益于 Dubbo 对多注册、多协议能力的支持,使得 Dubbo 联通不同的微服务体系成为可能,而服务发现模型的不一致成为其中的一个障碍,这部分的场景描述请参见以下文章:<a href="https://developer.aliyun.com/article/740260">Dubbo 如何成为连接异构微服务体系的最佳服务开发框架</a></p>
-<h3 id="32-更大规模的微服务集群---解决性能瓶颈">3.2 更大规模的微服务集群 - 解决性能瓶颈</h3>
-<p>这部分涉及到和注册中心、配置中心的交互,关于不同模型下注册中心数据的变化,之前原理部分我们简单分析过。为更直观的对比服务模型变更带来的推送效率提升,我们来通过一个示例看一下不同模型注册中心的对比:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-6.png" alt="img6"></p>
-<p>图中左边是微服务框架的一个典型工作流程,Provider 和 Consumer 通过注册中心实现自动化的地址通知。其中,Provider 实例的信息如图中表格所示:
-应用 DEMO 包含三个接口 DemoService 1 2 3,当前实例的 ip 地址为 10.210.134.30。</p>
-<ul>
-<li>对于 Spring Cloud 和 Kubernetes 模型,注册中心只会存储一条 <code>DEMO - 10.210.134.30+metadata</code> 的数据;</li>
-<li>对于老的 Dubbo 模型,注册中心存储了三条接口粒度的数据,分别对应三个接口 DemoService 1 2 3,并且很多的址数据都是重复的;</li>
-</ul>
-<p>可以总结出,基于应用粒度的模型所存储和推送的数据量是和应用、实例数成正比的,只有当我们的应用数增多或应用的实例数增长时,地址推送压力才会上涨。
-而对于基于接口粒度的模型,数据量是和接口数量正相关的,鉴于一个应用通常发布多个接口的现状,这个数量级本身比应用粒度是要乘以倍数的;另外一个关键点在于,接口粒度导致的集群规模评估的不透明,相对于实例、应用增长都通常是在运维侧的规划之中,接口的定义更多的是业务侧的内部行为,往往可以绕过评估给集群带来压力。</p>
-<p>以 Consumer 端服务订阅举例,根据我对社区部分 Dubbo 中大规模头部用户的粗略统计,根据受统计公司的实际场景,一个 Consumer 应用要消费(订阅)的 Provier 应用数量往往要超过 10 个,而具体到其要消费(订阅)的的接口数量则通常要达到 30 个,平均情况下 Consumer 订阅的 3 个接口来自同一个 Provider 应用,如此计算下来,如果以应用粒度为地址通知和选址基本单位,则平均地址推送和计算量将下降 60% 还要多,
-而在极端情况下,也就是当 Consumer 端消费的接口更多的来自同一个应用时,这个地址推送与内存消耗的占用将会进一步得到降低,甚至可以超过 80% 以上。</p>
-<p>一个典型的极端场景即是 Dubbo 体系中的网关型应用,有些网关应用消费(订阅)达 100+ 应用,而消费(订阅)的服务有 1000+ ,平均有 10 个接口来自同一个应用,如果我们把地址推送和计算的粒度改为应用,则地址推送量从原来的 n * 1000 变为 n * 100,地址数量降低可达近 90%。</p>
-<h2 id="4-应用级服务发现工作原理">4 应用级服务发现工作原理</h2>
-<h3 id="41-设计原则">4.1 设计原则</h3>
-<p>上面一节我们从<strong>服务模型</strong>及<strong>支撑大规模集群</strong>的角度分别给出了 Dubbo 往应用级服务发现靠拢的好处和原因,但这么做的同时接口粒度的服务治理能力还是要继续保留,这是 Dubbo 框架编程模型易用性、服务治理能力优势的基础。
-以下是我认为我们做服务模型迁移仍要坚持的设计原则</p>
-<ul>
-<li>新的服务发现模型要实现对原有 Dubbo 消费端开发者的无感知迁移,即 Dubbo 继续面向 RPC 服务编程、面向 RPC 服务治理,做到对用户侧完全无感知。</li>
-<li>建立 Consumer 与 Provider 间的自动化 RPC 服务元数据协调机制,解决传统微服务模型无法同步 RPC 级接口配置的缺点。</li>
-</ul>
-<h3 id="42-基本原理详解">4.2 基本原理详解</h3>
-<p>应用级服务发现作为一种新的服务发现机制,和以前 Dubbo 基于 RPC 服务粒度的服务发现在核心流程上基本上是一致的:即服务提供者往注册中心注册地址信息,服务消费者从注册中心拉取&amp;订阅地址信息。</p>
-<p>这里主要的不同有以下两点:</p>
-<h4 id="421-注册中心数据以应用---实例列表格式组织不再包含-rpc-服务信息">4.2.1 注册中心数据以“应用 - 实例列表”格式组织,不再包含 RPC 服务信息</h4>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-7.png" alt="img7"></p>
-<p>以下是每个 Instance metadata 的示例数据,总的原则是 metadata 只包含当前 instance 节点相关的信息,不涉及 RPC 服务粒度的信息。</p>
-<p>总体信息概括如下:实例地址、实例各种环境标、metadata service 元数据、其他少量必要属性。</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;name&#34;</span>: <span style="color:#2aa198">&#34;provider-app-name&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;id&#34;</span>: <span style="color:#2aa198">&#34;192.168.0.102:20880&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;address&#34;</span>: <span style="color:#2aa198">&#34;192.168.0.102&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;port&#34;</span>: <span style="color:#2aa198">20880</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;sslPort&#34;</span>: <span style="color:#cb4b16">null</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;payload&#34;</span>: {
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;id&#34;</span>: <span style="color:#cb4b16">null</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;name&#34;</span>: <span style="color:#2aa198">&#34;provider-app-name&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;metadata&#34;</span>: {
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;metadataService&#34;</span>: <span style="color:#2aa198">&#34;{\&#34;dubbo\&#34;:{\&#34;version\&#34;:\&#34;1.0.0\&#34;,\&#34;dubbo\&#34;:\&#34;2.0.2\&#34;,\&#34;release\&#34;:\&#34;2.7.5\&#34;,\&#34;port\&#34;:\&#34;20881\&#34;}}&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;endpoints&#34;</span>: <span style="color:#2aa198">&#34;[{\&#34;port\&#34;:20880,\&#34;protocol\&#34;:\&#34;dubbo\&#34;}]&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;storage-type&#34;</span>: <span style="color:#2aa198">&#34;local&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;revision&#34;</span>: <span style="color:#2aa198">&#34;6785535733750099598&#34;</span>,
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> },
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;registrationTimeUTC&#34;</span>: <span style="color:#2aa198">1583461240877</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;serviceType&#34;</span>: <span style="color:#2aa198">&#34;DYNAMIC&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&#34;uriSpec&#34;</span>: <span style="color:#cb4b16">null</span>
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><h4 id="422-client--server-自行协商-rpc-方法信息">4.2.2 Client – Server 自行协商 RPC 方法信息</h4>
-<p>在注册中心不再同步 RPC 服务信息后,服务自省在服务消费端和提供端之间建立了一条内置的 RPC 服务信息协商机制,这也是“服务自省”这个名字的由来。服务端实例会暴露一个预定义的 MetadataService RPC 服务,消费端通过调用 MetadataService 获取每个实例 RPC 方法相关的配置信息。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-8.png" alt="img8"></p>
-<p>当前 MetadataService 返回的数据格式如下,</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>[
-</span></span><span style="display:flex;"><span> <span style="color:#2aa198">&#34;dubbo://192.168.0.102:20880/org.apache.dubbo.demo.DemoService?anyhost=true&amp;application=demo-provider&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=true&amp;generic=false&amp;interface=org.apache.dubbo.demo.DemoService&amp;methods=sayHello&amp;pid=9585&amp;release=2.7.5&amp;side=provider&amp;timestamp=1583469714314&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#2aa198">&#34;dubbo://192.168.0.102:20880/org.apache.dubbo.demo.HelloService?anyhost=true&amp;application=demo-provider&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=true&amp;generic=false&amp;interface=org.apache.dubbo.demo.DemoService&amp;methods=sayHello&amp;pid=9585&amp;release=2.7.5&amp;side=provider&amp;timestamp=1583469714314&#34;</span>,
-</span></span><span style="display:flex;"><span> <span style="color:#2aa198">&#34;dubbo://192.168.0.102:20880/org.apache.dubbo.demo.WorldService?anyhost=true&amp;application=demo-provider&amp;deprecated=false&amp;dubbo=2.0.2&amp;dynamic=true&amp;generic=false&amp;interface=org.apache.dubbo.demo.DemoService&amp;methods=sayHello&amp;pid=9585&amp;release=2.7.5&amp;side=provider&amp;timestamp=1583469714314&#34;</span>
-</span></span><span style="display:flex;"><span>]
-</span></span></code></pre></div><blockquote>
-<p>熟悉 Dubbo 基于 RPC 服务粒度的服务发现模型的开发者应该能看出来,服务自省机制机制将以前注册中心传递的 URL 一拆为二:</p>
-<ul>
-<li>一部分和实例相关的数据继续保留在注册中心,如 ip、port、机器标识等。</li>
-<li>另一部分和 RPC 方法相关的数据从注册中心移除,转而通过 MetadataService 暴露给消费端。</li>
-</ul>
-<p><strong>理想情况下是能达到数据按照实例、RPC 服务严格区分开来,但明显可以看到以上实现版本还存在一些数据冗余,有些数据也还未合理划分。尤其是 MetadataService 部分,其返回的数据还只是简单的 URL 列表组装,这些 URL其实是包含了全量的数据。</strong></p>
-</blockquote>
-<p>以下是服务自省的一个完整工作流程图,详细描述了服务注册、服务发现、MetadataService、RPC 调用间的协作流程。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-9.png" alt="img9"></p>
-<ul>
-<li>服务提供者启动,首先解析应用定义的“普通服务”并依次注册为 RPC 服务,紧接着注册内建的 MetadataService 服务,最后打开 TCP 监听端口。</li>
-<li>启动完成后,将实例信息注册到注册中心(仅限 ip、port 等实例相关数据),提供者启动完成。</li>
-<li>服务消费者启动,首先依据其要“消费的 provider 应用名”到注册中心查询地址列表,并完成订阅(以实现后续地址变更自动通知)。</li>
-<li>消费端拿到地址列表后,紧接着对 MetadataService 发起调用,返回结果中包含了所有应用定义的“普通服务”及其相关配置信息。</li>
-<li>至此,消费者可以接收外部流量,并对提供者发起 Dubbo RPC 调用</li>
-</ul>
-<blockquote>
-<p>在以上流程中,我们只考虑了一切顺利的情况,但在更详细的设计或编码实现中,我们还需要严格约定一些异常场景下的框架行为。比如,如果消费者 MetadataService 调用失败,则在重试知道成功之前,消费者将不可以接收外部流量。</p>
-</blockquote>
-<h3 id="43-服务自省中的关键机制">4.3 服务自省中的关键机制</h3>
-<h4 id="431-元数据同步机制">4.3.1 元数据同步机制</h4>
-<p>Client 与 Server 间在收到地址推送后的配置同步是服务自省的关键环节,目前针对元数据同步有两种具体的可选方案,分别是:</p>
-<ul>
-<li>内建 MetadataService。</li>
-<li>独立的元数据中心,通过中心化的元数据集群协调数据。</li>
-</ul>
-<p><strong>1. 内建 MetadataService</strong>
-MetadataService 通过标准的 Dubbo 协议暴露,根据查询条件,会将内存中符合条件的“普通服务”配置返回给消费者。这一步发生在消费端选址和调用前。</p>
-<p><strong>2. 元数据中心</strong>
-复用 2.7 版本中引入的元数据中心,provider 实例启动后,会尝试将内部的 RPC 服务组织成元数据的格式同步到元数据中心,而 consumer 则在每次收到注册中心推送更新后,主动查询元数据中心。</p>
-<blockquote>
-<p>注意 consumer 端查询元数据中心的时机,是等到注册中心的地址更新通知之后。也就是通过注册中心下发的数据,我们能明确的知道何时某个实例的元数据被更新了,此时才需要去查元数据中心。</p>
-</blockquote>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-10.png" alt="img10"></p>
-<h4 id="432-rpc-服务-----应用映射关系">4.3.2 RPC 服务 &lt; - &gt; 应用映射关系</h4>
-<p>回顾上文讲到的注册中心关于“应用 - 实例列表”结构的数据组织形式,这个变动目前对开发者并不是完全透明的,业务开发侧会感知到查询/订阅地址列表的机制的变化。具体来说,相比以往我们基于 RPC 服务来检索地址,现在 consumer 需要通过指定 provider 应用名才能实现地址查询或订阅。</p>
-<p>老的 Consumer 开发与配置示例:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#586e75">&lt;!-- 框架直接通过 RPC Service 1/2/N 去注册中心查询或订阅地址列表 --&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:registry</span> address=<span style="color:#2aa198">&#34;zookeeper://127.0.0.1:2181&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:reference</span> interface=<span style="color:#2aa198">&#34;RPC Service 1&#34;</span> <span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:reference</span> interface=<span style="color:#2aa198">&#34;RPC Service 2&#34;</span> <span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:reference</span> interface=<span style="color:#2aa198">&#34;RPC Service N&#34;</span> <span style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div><p>新的 Consumer 开发与配置示例:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#586e75">&lt;!-- 框架需要通过额外的 provided-by=&#34;provider-app-x&#34; 才能在注册中心查询或订阅到地址列表 --&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:registry</span> address=<span style="color:#2aa198">&#34;zookeeper://127.0.0.1:2181?registry-type=service&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:reference</span> interface=<span style="color:#2aa198">&#34;RPC Service 1&#34;</span> provided-by=<span style="color:#2aa198">&#34;provider-app-x&#34;</span><span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:reference</span> interface=<span style="color:#2aa198">&#34;RPC Service 2&#34;</span> provided-by=<span style="color:#2aa198">&#34;provider-app-x&#34;</span> <span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:reference</span> interface=<span style="color:#2aa198">&#34;RPC Service N&#34;</span> provided-by=<span style="color:#2aa198">&#34;provider-app-y&#34;</span> <span style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div><p>以上指定 provider 应用名的方式是 Spring Cloud 当前的做法,需要 consumer 端的开发者显示指定其要消费的 provider 应用。</p>
-<p>以上问题的根源在于注册中心不知道任何 RPC 服务相关的信息,因此只能通过应用名来查询。</p>
-<p>为了使整个开发流程对老的 Dubbo 用户更透明,同时避免指定 provider 对可扩展性带来的影响(参见下方说明),我们设计了一套 <code>RPC 服务到应用名</code>的映射关系,以尝试在 consumer 端自动完成 RPC 服务到 provider 应用名的转换。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/service-discovery-11.png" alt="img11"></p>
-<blockquote>
-<p>Dubbo 之所以选择建立一套“接口-应用”的映射关系,主要是考虑到 service - app 映射关系的不确定性。一个典型的场景即是应用/服务拆分,如上面提到的配置<code>&lt;dubbo:reference interface=&quot;RPC Service 2&quot; provided-by=&quot;provider-app-x&quot; /&gt;</code>,PC Service 2 是定义于 provider-app-x 中的一个服务,未来它随时可能会被开发者分拆到另外一个新的应用如 provider-app-x-1 中,这个拆分要被所有的 PC Service 2 消费方感知到,并对应用进行修改升级,如改为<code>&lt;dubbo:reference interface=&quot;RPC Service 2&quot; provided-by=&quot;provider-app-x-1&quot; /&am [...]
-到底是 Dubbo 框架帮助开发者透明的解决这个问题,还是交由开发者自己去解决,当然这只是个策略选择问题,并且 Dubbo 2.7.5+ 版本目前是都提供了的。其实我个人更倾向于交由业务开发者通过组织上的约束来做,这样也可进一步降低 Dubbo 框架的复杂度,提升运行态的稳定性。</p>
-</blockquote>
-<h2 id="5-总结与展望">5 总结与展望</h2>
-<p>应用级服务发现机制是 Dubbo 面向云原生走出的重要一步,它帮 Dubbo 打通了与其他微服务体系之间在地址发现层面的鸿沟,也成为 Dubbo 适配 Kubernetes Native Service 等基础设施的基础。我们期望 Dubbo 在新模型基础上,能继续保留在编程易用性、服务治理能力等方面强大的优势。但是我们也应该看到应用粒度的模型一方面带来了新的复杂性,需要我们继续去优化与增强;另一方面,除了地址存储与推送之外,应用粒度在帮助 Dubbo 选址层面也有进一步挖掘的潜力。</p></description></item><item><title>Blog: dubbo-go 白话文</title><link>https://dubbo.apache.org/zh/blog/2021/02/20/dubbo-go-%E7%99%BD%E8%AF%9D%E6%96%87/</link><pubDate>Sat, 20 Feb 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/ [...]
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Apache Dubbo – Golang</title><link>https://dubbo.apache.org/zh/blog/golang/</link><description>Recent content in Golang on Apache Dubbo</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><atom:link href="https://dubbo.apache.org/zh/blog/golang/index.xml" rel="self" type="application/rss+xml"/><item><title>Blog: dubbo-go 白话文</title><link>https://dubbo.apache.org/zh/blog/2021/02/20/dubbo [...]
<h2 id="一前言">一、前言</h2>
<blockquote>
<p>本文基于 dubbogo <a href="https://github.com/apache/dubbo-go/releases/tag/v1.5.4">1.5.4</a> 版本</p>
@@ -2506,218 +1595,7 @@ PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n;</li>
<p>作者简介</p>
<p><strong>刘晓敏</strong> (GitHubID dk-lockdown),目前就职于 h3c 成都分公司,擅长使用 Java/Go 语言,在云原生和微服务相关技术方向均有涉猎,目前专攻分布式事务。
<strong>于雨</strong>((github @AlexStocks),dubbo-go 项目和社区负责人,一个有十多年服务端基础架构研发一线工作经验的程序员,陆续参与改进过 Muduo/Pika/Dubbo/Sentinel-go 等知名项目,目前在蚂蚁金服可信原生部从事容器编排和 service mesh 工作。</p>
-</blockquote></description></item><item><title>Blog: dubbo-go 1.5.0</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.0/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.0/</guid><description>
-<h2 id="引语">引语</h2>
-<p>计算机技术浪潮每 10 年都有一次技术颠覆,相关知识体系最迟每 5 年都会革新一次,大概每两年贬值一半,在应用服务通信框架领域亦然。凡是有长期生命的通信框架,大概有 5 年的成长期和 5 年的稳定成熟期。每个时代都有其匹配的应用通信框架,在 20 年前的 2G 时代,强跨语言跨平台而弱性能的 gRPC 是不会被采用的。</p>
-<p>每个通信框架,不同的人从不同角度看出不同的结论:初学者看重易用易学,性能测评者注重性能,应用架构师考虑其维护成本,老板则考虑则综合成本。一个应用通信框架的性能固然重要,其稳定性和进化能力更重要,得到有效维护的框架可在长时间单位内降低其综合成本:学习成本、维护成本、升级成本和更换成本。</p>
-<p>什么是 Dubbo-go?第一,它是 Dubbo 的 Go 语言版本,全面兼容 Dubbo 是其第一要义。第二,它是一个 Go 语言应用通信框架,会充分利用作为云原生时代第一语言&mdash;Go 语言的优势,扩展 dubbo 的能力。</p>
-<p>2008 年诞生的 Dubbo 已有十多年历史,依靠阿里和其社区,历久弥新。2016 年发布的 Dubbo-go 也已进入第五个年头,如今全面兼容 Dubbo v2.7.x 的 Dubbo-go v1.5 终于发布了。</p>
-<p>回首过往,Dubbo-go 已经具备如下能力:</p>
-<ul>
-<li>互联互通:打通了 gRPC 和 Spring Cloud 生态;</li>
-<li>可观测性:基于 OpenTracing 和 Prometheus,使得其在 Logging、Tracing 和 Metrics 方面有了长足进步;</li>
-<li>云原生:Dubbo-go 实现了基于 Kubernetes API Server 为注册中心的通信能力,做到了升级成本最低。</li>
-</ul>
-<p>毋庸讳言,相较于现有成绩,发展阶段的 Dubbo-go 对未来有更多的期待之处:</p>
-<ul>
-<li>易用性:Dubbo-go 的入门成本并不低,把很多感兴趣者挡在了门外。但好消息是,随着 Dubbo-go 在阿里内部的逐步推开,阿里中间件团队对其进行了进一步的封装,经生产环境检验后会开放给社区使用。</li>
-<li>云原生:目前的 Dubbo-go 的基于 kubernetes 的方案,从技术分层角度来看, Kubernetes API Server 终究是系统的运维态组件,不应该暴露给应用层,否则会造成 APIServer 自身通信压力过大,且系统整体风险很高:应用层使用不当,或者框架自身的流量方面的 bug,可能会把 APIServer 打垮,后果就是造成整体后端服务能力的瘫痪!所以应用层需要感知的是 kubernetes 提供给应用层的 Operator,不断进化的 Dubbo-go 计划在 v1.6 版本中发布 Dubbo-go Operator。</li>
-</ul>
-<p>雄关漫道真如铁,而今迈步从头越。Dubbo-go 社区【钉钉群 23331795】与 Dubbo-go 同在。</p>
-<h2 id="应用维度注册模型">应用维度注册模型</h2>
-<p>经过一段时间的努力之后,我们终于完成了应用维度的服务注册与发现。和原本已有的接口维度的注册模型比起来,新的注册模型有两个突出特点:</p>
-<ol>
-<li>和主流的注册模型保持一致。目前的主流做法都是按照应用为基本单位来进行注册的,如Spring Cloud。在支持应用维度注册之后,对于接下来的云原生支持,奠定了基础;</li>
-<li>大幅度减轻对注册中心的压力。在该模型之下,从注册中心的视角看过去,集群规模只和实例数量成正比,而不是现有的和服务数量成正比;</li>
-</ol>
-<p>当然,我们在设计的时候就考虑到了用户的迁移成本。要迁移到新的注册模型,只需要将现有使用的注册中心换成新的 <code>ServiceDiscoveryRegistry</code> 就可以。</p>
-<p><code>ServiceDiscoveryRegistry</code> 是支持多种实现的。目前来说,我们支持:</p>
-<ol>
-<li>nacos;</li>
-<li>etcd;</li>
-<li>zookeeper;</li>
-</ol>
-<p>我们提倡新上线的业务尽量使用 nacos 和 etcd 这种更可靠稳定的注册中心。</p>
-<h2 id="metadata-report-元数据中心">Metadata Report 元数据中心</h2>
-<p>v1.5 版本在支持应用维度注册模型时,有很重要的一个问题需要解决,即接口维度的元数据存储。服务维度的注册模型和应用维度的注册模型,本质的区别是往注册中心注册的数据维度的不一致。虽然我们在应用维度注册模型中,将接口维度的数据从注册中心中剔除了,但是在rpc的框架中,一个 consumer 要想真正找到想要调用的服务地址,就必须得到 provider 端开放的服务信息。这部分数据,在 v1.5 版本中,我们将它们存储到了元数据中心中。</p>
-<p>元数据中心,是一个接口定义。泛指一块存储区域,可以对接口级别的元数据进行存储、读取,provider 端调用存储,consumer 端调用读取。元数据中心中的数据需要保持准确性、实时性。</p>
-<p>目前元数据中心,有两个父类(Go 中没有继承,此处说的父子类,单纯指子类对父类的组合关系)实现,一个是 local 实现,一个是 remote 实现。local 实现是将 provider 的内存作为虚拟元数据中心,remote 实现是指依赖 ZooKeeper、etcd、nacos 等注册中心作为元数据中心。目前 remote 有 zookeeper、nacos、etcd 和 consul 的子类实现。即用户可以将元数据信息,通过以上的第三方注册中心进行数据存储和分发。</p>
-<h2 id="invocation-接口支持-attribute-属性">Invocation 接口支持 attribute 属性</h2>
-<p>invocation 结构中新增 attribute 属性支持,用于流程内部的属性存储。和 attachment 不同点在于,attachment会从 consumer 传递到 provider,但 attribute 属性不会。</p>
-<h2 id="k8s注册中心">k8s注册中心</h2>
-<p>在 v1.5 版本之前,k8s 注册中心的实现是通过直接使用 <a href="https://github.com/kubernetes/client-go">k8s client</a> 中Pod对象的 List&amp;&amp;Watch 接口。在本次迭代中引入了 k8s informer。这样做的原因在于两点,首先一定的程度上来讲 dubbo-go 的 k8s 注册中心也是一个 k8s controller,使用 informer 的模式更加 k8s native。更重要的是社区计划后续向 CRD+Operator 的模式演进,informer 模式是对后续的演进的探索。除了这个铺垫之外,本次迭代还对跨 namespace 的服务发现做了支持。再有就是为了减少对 kube-apiserver List&amp;&amp;Watch 的压力,对 provider 和 consumer 的行为进行了区分,provider 不再进行 Watch 而仅对 kube-apiserver 进行写操作。</p>
-<h1 id="优化路由模型">优化路由模型</h1>
-<p>在 1.5 版本之前,Router 模型中属性是包含:优先级与路由属性,Router Chain 只包含路由属性。从中能识别出其实 Router Chain 也是一种特殊 Router。1.5 版本之后,使 Router 更抽象,分离出其优先级属性,新增 Priority Router、Chain 继承 Router 使其变为特殊的 Router,使关系上看起来更加清晰。如下图:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.5/router.png" alt=""></p>
-<h1 id="回顾与展望">回顾与展望</h1>
-<p>Dubbo-go 处于一个比较稳定成熟的状态。目前新版本正处于往云原生方向的尝试,应用服务维度注册是首先推出的功能,这是一个和之前模型完全不一样的新注册模型。该版本是我们朝云原生迈进新一步的关键版本。除此之外,包含在该版本也有一些之前提到的优化。</p>
-<p>下一个版本 v1.5.1,虽然仍是以兼容 Dubbo 2.7.x 为主要任务,但在分布式能力的增强上,也是我们关注的重点。</p>
-<p>在<strong>分布式事务</strong>方面,有一个重要的基于 Seata 扩展实现。通过增加过滤器,在服务端接收 xid 并结合 seata-golang<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> 达到支持分布式事务的目的。 从而使 Dubbo-go 在分布式场景下,让用户有更多的选择,能适应更多的个性化场景。</p>
-<p>与此同时,在<strong>传输链路安全性</strong>上,TLS 安全传输链路是该版本重要功能之一。通过提供统一入口,未来能引入更多的与传输链路安全性相关的功能,适应用户不一样的使用场景。</p>
-<p><strong>注册中心模型</strong>上,支持多注册中心集群负载均衡。业务部署假设是双注册中心(图 1 ),从原来双注册中心中所有 Provider 一起选址。优化成选址时的多了一层注册中心集群间的负载均衡(图 2 )。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.5/multi-registry.png" alt=""></p>
-<p>(图 1 )</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.5/loadbalance.png" alt=""></p>
-<p>(图 2 )</p>
-<p>以前的 dubbo-go RPC 层直接复用了 getty 框架 的 RPC[<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>(https://github.com/AlexStocks/getty/tree/master/rpc)],未能实现协议和应用通信地址的隔离。阿里中间件展图同学重构了 dubbo-go RPC 层,实现了连接复用:可以实现 consumer 与 provider 端的同一个 TCP 连接上进行多协议通信。相关 PR 业已合并,会在 dubbo-go v1.5.1 中发布。</p>
-<p>目前下一个版本正在紧锣密鼓的开发中,具体规划及任务清单<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> ,都已经在 Github 上体现。</p>
-<div class="footnotes" role="doc-endnotes">
-<hr>
-<ol>
-<li id="fn:1">
-<p><a href="https://github.com/seata-golang/seata-golang">https://github.com/seata-golang/seata-golang</a>&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-<li id="fn:2">
-<p><a href="https://github.com/AlexStocks/getty/tree/master/rpc">https://github.com/AlexStocks/getty/tree/master/rpc</a>&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-<li id="fn:3">
-<p><a href="https://github.com/apache/dubbo-go/projects/8">https://github.com/apache/dubbo-go/projects/8</a>&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-</ol>
-</div></description></item><item><title>Blog: dubbo-go 1.5.1</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.1/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-1.5.1/</guid><description>
-<p>近期我们发布了 dubbo-go v1.5.1,虽然是 v1.5 的一个子版本,但相比于 v1.5.0, 社区还是投入了很大人力添加了如下重大改进。</p>
-<h2 id="1-应用维度注册模型">1 应用维度注册模型</h2>
-<p>在新模型 release 后,我们发现 Provider 每个 URL 发布元数据都会注册 ServiceInstance,影响性能需要优化。</p>
-<p>我们的优化方案是:</p>
-<p>去除 ServiceDiscoveryRegistry 中注册 ServiceInstance 的代码,在 config_loader 中的loadProviderConfig 方法的最后注册 ServiceInstance</p>
-<p>具体步骤:</p>
-<ol>
-<li>获取所有注册的 Registry,过滤出 ServiceDiscoveryRegistry,拿取所有 ServiceDiscovery。</li>
-<li>创建 ServiceInstance。</li>
-<li>每个 ServiceDiscovery 注册 ServiceInstance。</li>
-</ol>
-<p>保证 Provider 在注册成功之后,才暴露元数据信息。</p>
-<h2 id="2-支持基于-seata-的事务">2 支持基于 Seata 的事务</h2>
-<p>基于 Seata 扩展实现。通过增加过滤器,在服务端接收 xid 并结合 <a href="https://github.com/seata-golang/seata-golang">seata-golang</a> 达到支持分布式事务的目的。 从而使 Dubbo-go 在分布式场景下,让用户有更多的选择,能适应更多的个性化场景。</p>
-<p>我们在 dubbo-samples 中给出了 <a href="https://github.com/apache/dubbo-samples/tree/master/golang/seata">事务测试用例</a> 。</p>
-<h2 id="3-多注册中心集群负载均衡">3 多注册中心集群负载均衡</h2>
-<p>对于多注册中心订阅的场景,选址时的多了一层注册中心集群间的负载均衡:</p>
-<p>在 Cluster Invoker 这一级,我们支持的选址策略有:</p>
-<ul>
-<li>指定优先级</li>
-<li>同 zone 优先</li>
-<li>权重轮询</li>
-</ul>
-<h2 id="4-传输链路安全性">4 传输链路安全性</h2>
-<p>该版本在传输链路的安全性上做了尝试,对于内置的 Dubbo getty Server 提供了基于 TLS 的安全链路传输机制。</p>
-<p>为尽可能保证应用启动的灵活性,TLS Cert 的指定通过配置文件方式,具体请参见 Dubbo-go 配置读取规则与 TLS 示例:</p>
-<h2 id="5-路由功能增强">5 路由功能增强</h2>
-<p>本次路由功能重点支持了 动态标签路由 和 应用/服务级条件路由。</p>
-<h3 id="51-动态标签路由">5.1 动态标签路由</h3>
-<p>标签路由通过将某一个或多个服务的提供者划分到同一个分组,约束流量只在指定分组中流转,从而实现流量隔离的目的,可以作为蓝绿发布、灰度发布等场景的能力基础。</p>
-<p>标签主要是指对 Provider 端应用实例的分组,目前有两种方式可以完成实例分组,分别是<code>动态规则打标</code>和<code>静态规则打标</code>,其中动态规则相较于静态规则优先级更高,而当两种规则同时存在且出现冲突时,将以动态规则为准。</p>
-<h4 id="511-动态规则打标">5.1.1 动态规则打标</h4>
-<p>可随时在<a href="http://dubbo.apache.org/zh-cn/docs/user/demos/routing-rule.html">服务治理控制台</a>下发标签归组规则</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#586e75"># governance-tagrouter-provider应用增加了两个标签分组tag1和tag2</span>
-</span></span><span style="display:flex;"><span><span style="color:#586e75"># tag1包含一个实例 127.0.0.1:20880</span>
-</span></span><span style="display:flex;"><span><span style="color:#586e75"># tag2包含一个实例 127.0.0.1:20881</span>
-</span></span><span style="display:flex;"><span>---
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">force</span>: <span style="color:#cb4b16">false</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">runtime</span>: <span style="color:#cb4b16">true</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">enabled</span>: <span style="color:#cb4b16">true</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">key</span>: governance-tagrouter-provider
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">tags</span>:
-</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">name</span>: tag1
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">addresses</span>: [<span style="color:#2aa198">&#34;127.0.0.1:20880&#34;</span>]
-</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">name</span>: tag2
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">addresses</span>: [<span style="color:#2aa198">&#34;127.0.0.1:20881&#34;</span>]
-</span></span><span style="display:flex;"><span> ...
-</span></span></code></pre></div><h4 id="512-静态规则打标">5.1.2 静态规则打标</h4>
-<p>可以在 server 配置文件的 tag 字段里设置</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#268bd2">services</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#2aa198">&#34;UserProvider&#34;</span>:
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">registry</span>: <span style="color:#2aa198">&#34;hangzhouzk&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">protocol </span>: <span style="color:#2aa198">&#34;dubbo&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">interface </span>: <span style="color:#2aa198">&#34;com.ikurento.user.UserProvider&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">loadbalance</span>: <span style="color:#2aa198">&#34;random&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">warmup</span>: <span style="color:#2aa198">&#34;100&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">tag</span>: <span style="color:#2aa198">&#34;beijing&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">cluster</span>: <span style="color:#2aa198">&#34;failover&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">methods</span>:
-</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">name</span>: <span style="color:#2aa198">&#34;GetUser&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">retries</span>: <span style="color:#2aa198">1</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">loadbalance</span>: <span style="color:#2aa198">&#34;random&#34;</span>
-</span></span></code></pre></div><p>consumer 添加 tag 至 attachment 即可</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span>ctx <span style="color:#719e07">:=</span> context.<span style="color:#268bd2">Background</span>()
-</span></span><span style="display:flex;"><span>attachment <span style="color:#719e07">:=</span> <span style="color:#b58900">make</span>(<span style="color:#268bd2">map</span>[<span style="color:#dc322f">string</span>]<span style="color:#dc322f">string</span>)
-</span></span><span style="display:flex;"><span>attachment[<span style="color:#2aa198">&#34;dubbo.tag&#34;</span>] = <span style="color:#2aa198">&#34;beijing&#34;</span>
-</span></span><span style="display:flex;"><span>ctx = context.<span style="color:#268bd2">WithValue</span>(ctx, constant.AttachmentKey, attachment)
-</span></span><span style="display:flex;"><span>err <span style="color:#719e07">:=</span> userProvider.<span style="color:#268bd2">GetUser</span>(ctx, []<span style="color:#268bd2">interface</span>{}{<span style="color:#2aa198">&#34;A001&#34;</span>}, user)
-</span></span></code></pre></div><p>请求标签的作用域为每一次 invocation,使用 attachment 来传递请求标签,注意保存在 attachment 中的值将会在一次完整的远程调用中持续传递,得益于这样的特性,我们只需要在起始调用时,通过一行代码的设置,达到标签的持续传递。</p>
-<h4 id="513-规则详解">5.1.3 规则详解</h4>
-<h5 id="格式">格式</h5>
-<ul>
-<li><code>Key</code>明确规则体作用到哪个应用。<strong>必填</strong>。</li>
-<li><code>enabled=true</code> 当前路由规则是否生效,可不填,缺省生效。</li>
-<li><code>force=false</code> 当路由结果为空时,是否强制执行,如果不强制执行,路由结果为空的路由规则将自动失效,可不填,缺省为 <code>false</code>。</li>
-<li><code>runtime=false</code> 是否在每次调用时执行路由规则,否则只在提供者地址列表变更时预先执行并缓存结果,调用时直接从缓存中获取路由结果。如果用了参数路由,必须设为 <code>true</code>,需要注意设置会影响调用的性能,可不填,缺省为 <code>false</code>。</li>
-<li><code>priority=1</code> 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 <code>0</code>。</li>
-<li><code>tags</code> 定义具体的标签分组内容,可定义任意n(n&gt;=1)个标签并为每个标签指定实例列表。<strong>必填</strong></li>
-<li>
-<ul>
-<li>name, 标签名称</li>
-</ul>
-</li>
-<li>addresses, 当前标签包含的实例列表</li>
-</ul>
-<h5 id="降级约定">降级约定</h5>
-<ol>
-<li><code>dubbo.tag=tag1</code> 时优先选择 标记了 <code>tag=tag1</code> 的 provider。若集群中不存在与请求标记对应的服务,默认将降级请求 tag 为空的 provider;如果要改变这种默认行为,即找不到匹配 tag1 的 provider 返回异常,需设置<code>dubbo.force.tag=true</code>。</li>
-<li><code>dubbo.tag</code> 未设置时,只会匹配 tag 为空的 provider。即使集群中存在可用的服务,若 tag 不匹配也就无法调用,这与约定 1 不同,携带标签的请求可以降级访问到无标签的服务,但不携带标签/携带其他种类标签的请求永远无法访问到其他标签的服务。</li>
-</ol>
-<h3 id="52-应用服务级条件路由">5.2 应用/服务级条件路由</h3>
-<p>您可以在路由规则配置中配置多个条件路由及其粒度</p>
-<p>Sample:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#586e75"># dubbo router yaml configure file</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">routerRules</span>:
-</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">scope</span>: application
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">key</span>: BDTService
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">priority</span>: <span style="color:#2aa198">1</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">enable</span>: <span style="color:#cb4b16">false</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">force</span>: <span style="color:#cb4b16">true</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">conditions </span>: [<span style="color:#2aa198">&#34;host = 192.168.199.208 =&gt; host = 192.168.199.208 &#34;</span>]
-</span></span><span style="display:flex;"><span> - <span style="color:#268bd2">scope</span>: service
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">key</span>: com.ikurento.user.UserProvider
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">priority</span>: <span style="color:#2aa198">1</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">force</span>: <span style="color:#cb4b16">true</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">conditions </span>: [<span style="color:#2aa198">&#34;host = 192.168.199.208 =&gt; host = 192.168.199.208 &#34;</span>]
-</span></span></code></pre></div><h4 id="521-规则详解">5.2.1 规则详解</h4>
-<h5 id="各字段含义">各字段含义</h5>
-<ul>
-<li>scope表示路由规则的作用粒度,scope的取值会决定key的取值。必填。</li>
-<li>
-<ul>
-<li>service 服务粒度</li>
-</ul>
-</li>
-<li>application 应用粒度</li>
-<li>Key明确规则体作用在哪个服务或应用。必填。</li>
-<li>
-<ul>
-<li>scope=service时,key取值为[{group}/]{service}[:{version}]的组合</li>
-</ul>
-</li>
-<li>scope=application时,key取值为application名称</li>
-<li>enabled=true 当前路由规则是否生效,可不填,缺省生效。</li>
-<li>force=false 当路由结果为空时,是否强制执行,如果不强制执行,路由结果为空的路由规则将自动失效,可不填,缺省为 false。</li>
-<li>runtime=false 是否在每次调用时执行路由规则,否则只在提供者地址列表变更时预先执行并缓存结果,调用时直接从缓存中获取路由结果。如果用了参数路由,必须设为 true,需要注意设置会影响调用的性能,可不填,缺省为 false。</li>
-<li>priority=1 路由规则的优先级,用于排序,优先级越大越靠前执行,可不填,缺省为 0。</li>
-<li>conditions 定义具体的路由规则内容。必填。</li>
-</ul>
-<h2 id="6-回顾与展望">6 回顾与展望</h2>
-<p>Dubbo-go 处于一个比较稳定成熟的状态。目前新版本正处于往云原生方向的尝试,应用服务维度注册是首先推出的功能,这是一个和之前模型完全不一样的新注册模型。该版本是我们朝云原生迈进新一步的关键版本。除此之外,包含在该版本也有一些之前提到的优化。</p>
-<p>下一个版本 v1.5.2,本次的关注重点以通信模型改进为主,除此之外,与 2.7.x 的兼容性、易用性及质量保证也是本次关注的信息。</p>
-<p>在<strong>服务发现</strong>,会支持更加多的方式,如:文件、Consul。 从而使 Dubbo-go 在服务发现场景下,让用户有更多的选择,能适应更多的个性化场景。</p>
-<p>另外 <strong>易用性及质量保证</strong>,主要关注的是 samples 与自动化构建部分。可降低用户上手 Dubbo-go 的难度,提高代码质量。</p>
-<p>目前下一个版本正在紧锣密鼓的开发中,具体规划及任务清单<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> ,都已经在 Github 上体现。</p>
-<div class="footnotes" role="doc-endnotes">
-<hr>
-<ol>
-<li id="fn:1">
-<p><a href="https://github.com/apache/dubbo-go/projects/10">https://github.com/apache/dubbo-go/projects/10</a>&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-</ol>
-</div></description></item><item><title>Blog: dubbo-go 可信调用实现</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E5%8F%AF%E4%BF%A1%E8%B0%83%E7%94%A8%E5%AE%9E%E7%8E%B0/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E5%8F%AF%E4%BF%A1%E8%B0%83%E7%94%A8%E5%AE%9E%E7%8E%B0/</guid><description>
+</blockquote></description></item><item><title>Blog: dubbo-go 可信调用实现</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E5%8F%AF%E4%BF%A1%E8%B0%83%E7%94%A8%E5%AE%9E%E7%8E%B0/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-%E5%8F%AF%E4%BF%A1%E8%B0%83%E7%94%A8%E5%AE%9E%E7%8E%B0/</guid><description>
<p>Apache Dubbo/Dubbo-Go 作为阿里巴巴开源的一款服务治理框架,因其适应 Java/Go 开发者面向接口的编程习惯、完全透明的调用方式、优越的性能以及强大的扩展性等优点,在国内使用非常广泛。除此之外,Dubbo 开源版本原生集成了很多开箱即用的服务治理功能,包括链路追踪,路由、负载均衡、服务注册发现、监控、认证等。</p>
<p>本文将讲解如何在 Dubbo/Dubbo-Go 中实现灵活,安全和高效的身份验证和授权方案。</p>
<h2 id="可信的目的">可信的目的</h2>
@@ -3513,203 +2391,7 @@ HTTP 协议与 dubbo 协议之间的映射关系。</p>
<p>dubbo-go 社区钉钉群 :23331795 ,欢迎你的加入。</p>
<blockquote>
<p>作者信息: 王翔,GithubID: sxllwx,就职于成都达闼科技有限公司,golang开发工程师。</p>
-</blockquote></description></item><item><title>Blog: dubbo-go-hessian2 v1.6.0</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.6.0/</guid><description>
-<h2 id="1-增加缓存优化">1. 增加缓存优化</h2>
-<p>dubbo-go-hessian2 在解析数据的数据大量使用到了 struct 的结构信息,这部分信息可以缓存起来反复利用,使得性能提升了一倍。优化过程记录可以详细阅读<a href="https://mp.weixin.qq.com/s/ouVxldQAt0_4BET7srjJ6Q">《记一次对 dubbo-go-hessian2 的性能优化》</a>.</p>
-<p>对应 pr <a href="https://github.com/apache/dubbo-go-hessian2/pull/179">#179</a>,作者 <a href="https://github.com/micln">micln</a>。</p>
-<h2 id="2-string-解析性能优化">2. string 解析性能优化</h2>
-<p>由于 hessian ( dubbo 序列化协议,下称:hessian )对 string 的定义是16 bit 的 unicode 的 UTF-8 表示形式,字符长度表示是16 bit 的字符数。这是仅针对 java 制定的规范,java 中一个字符是16 bit,对应到 UTF-16. hessian 库也是对每一个字符进行转码序列化。但 golang 里面字符是和 UTF-8 对应的,dubbo-go-hessian2 里面的 rune 是 32bit,和 unicode一一映射。对于 U+10000 ~ U+10FFFF 的字符,需按照 UTF16 的规范,将字符转换为 2 个字节的代理字符,再做转换,才能和 java 的序列化方式对应起来。</p>
-<p>原来不管是编码还是解析都是一个字符一个字符处理,特别是解析的时候,从流里面一个字节一个字节读取并组装成 rune,然后再转换为 string,这样效率特别低。我们的优化方案是,批次读取字节流到 buffer 中,对 buffer 进行解析转为 UTF-8 数组,并统计字符数量。其中需要对代理对字符将其转换为标准 UTF-8 子节数组。如果统计的字符数量不足,再进一步读取流种的数据进行解析。通过此方式提升一倍的解析效率。</p>
-<p>对应 pr <a href="https://github.com/apache/dubbo-go-hessian2/pull/188">#188</a>,作者 <a href="https://github.com/zonghaishang">zonghaishang</a>。</p>
-<h2 id="3-解析忽略不存在的字段">3. 解析忽略不存在的字段</h2>
-<p>hessian 库在解析数据的时候,对于一个 class 字段,如果不存在,则直接忽略掉。但 v1.6.0 版本之前 dubbo-go-hessian2 解析数据,如果遇到不存在的字段,会返回 error。从 v1.6.0 开始,与 hessian 一样,忽略不存在的字段。<strong>因为这是一个特性的变更,所以升级的同学一定要注意了。</strong></p>
-<p>对应 pr <a href="https://github.com/apache/dubbo-go-hessian2/pull/201">#201</a>,作者 <a href="https://github.com/micln">micln</a> &amp; <a href="https://github.com/fangyincheng">fangyincheng</a>。</p>
-<h2 id="4-解决浮点数精度丢失问题">4. 解决浮点数精度丢失问题</h2>
-<p>在对 float32 类型进行序列化时,我们一律强制转换为 float64 再进行序列化操作。由于浮点数的精度问题,在这个转换过程中可能出现小数点后出现多余的尾数,例如 (float32)99.8&ndash;&gt;(float64)99.80000305175781。</p>
-<p>1.6.0 版本对 float32 的序列化进行了优化:</p>
-<ul>
-<li>如果小数尾数小于 3 位,根据 hessian2 协议序列化为 double 32-bit 格式</li>
-<li>否则先转换为 string 类型,再转换为 float64 类型,这样做可以避免由于浮点数精度问题产生多余的尾数,最后对 float64 进行序列化。</li>
-</ul>
-<p>虽然对 float32 类型进行了优化,但是依然建议使用浮点数的时候优先使用 float64 类型。</p>
-<p>对应 pr <a href="https://github.com/apache/dubbo-go-hessian2/pull/196">#196</a>,作者 <a href="https://github.com/willson-chen">willson-chen</a>。</p>
-<h2 id="5-解决-attachment-空值丢失问题">5. 解决 attachment 空值丢失问题</h2>
-<p>dubbo 请求中包含 attachment 信息,之前如果 attachment 里面含有如 <code>&quot;key1&quot;:&quot;&quot;</code>,这种 value 为空的情况,解析出来的结果会直接丢失这个属性 key1 ,v1.6.0 修复了此问题,现在解析出来的 attachment 会正确解析出空 value 的属性。</p>
-<p>对应 pr <a href="https://github.com/apache/dubbo-go-hessian2/pull/191">#191</a>,作者 <a href="https://github.com/champly">champly</a>。</p>
-<h2 id="6-支持-继承-和忽略冗余字段">6. 支持 ‘继承’ 和忽略冗余字段</h2>
-<p>由于 go 没有继承的概念,所以在之前的版本,Java 父类的字段不被 dubbo-go-hessian2 所支持。新版本中,dubbo-go-hessian2 将Java来自父类的字段用匿名结构体对应,如:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">type</span> Dog <span style="color:#268bd2">struct</span> {
-</span></span><span style="display:flex;"><span> Animal
-</span></span><span style="display:flex;"><span> Gender <span style="color:#dc322f">string</span>
-</span></span><span style="display:flex;"><span> DogName <span style="color:#dc322f">string</span> <span style="color:#2aa198">`hessian:&#34;-&#34;`</span>
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>同时,就像 json 编码中通过 immediately 可以在序列化中忽略该字段,同理,通过 hessian:&quot;-&quot; 用户也可以让冗余字段不参与 hessian 序列化。</p>
-<p>对应pr <a href="https://github.com/apache/dubbo-go-hessian2/pull/154">#154</a>,作者 <a href="https://github.com/micln">micln</a></p></description></item><item><title>Blog: dubbo-go-hessian2 v1.7.0</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go-hessian2-v1.7.0/</guid><description>
-<p>Dubbo-go-hessian2 v1.7.0已发布,详见 <a href="https://github.com/apache/dubbo-go-hessian2/releases/tag/v1.7.0">https://github.com/apache/dubbo-go-hessian2/releases/tag/v1.7.0</a>, 以下对这次更新内容进行详细整理。</p>
-<p>另外v1.6.3 将 attachment 类型由 map[string]stiring 改为map[string]interface{} 导致版本不兼容问题,这部分已还原,后续的计划是将dubbo协议的request/response对象整体迁移到dubbogo项目中进行迭代修改, hessian2中将不再改动到request/response对象。</p>
-<h2 id="1-new-features">1. New Features</h2>
-<h3 id="11-add-getstacktrace-method-into-throwabler-and-its-implements-207httpsgithubcomapachedubbo-go-hessian2pull207">1.1 add GetStackTrace method into Throwabler and its implements. <a href="https://github.com/apache/dubbo-go-hessian2/pull/207">#207</a></h3>
-<p>go语言client请求java语言服务时,如果java语言抛出了异常,异常对应的堆栈信息是被保存在StackTraceElement中。</p>
-<p>这个异常信息在日志中最好能被打印出来,以方便客户端排查问题,所以在Throwabler和对应子类中增加了StackTraceElement的获取。</p>
-<p>注:其实还有一种更好的方法,所有的具体的异常类型都包含java_exception/exception.go的Throwable struct。这样只需要在Throwable中增加GetStackTrace方法就可以了。但是这种方式需要更多的测试验证,改动的逻辑相对会复杂一些。但是代码会更整洁。 这里先不用这种方法。</p>
-<h3 id="12-catch-user-defined-exceptions-208httpsgithubcomapachedubbo-go-hessian2pull208">1.2 catch user defined exceptions. <a href="https://github.com/apache/dubbo-go-hessian2/pull/208">#208</a></h3>
-<p>golang中增加一个java中Exception对象的序列化输出方法:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">func</span> <span style="color:#268bd2">JavaException</span>() []<span style="color:#dc322f">byte</span> {
-</span></span><span style="display:flex;"><span> e <span style="color:#719e07">:=</span> hessian.<span style="color:#268bd2">NewEncoder</span>()
-</span></span><span style="display:flex;"><span> exception <span style="color:#719e07">:=</span> java_exception.<span style="color:#268bd2">NewException</span>(<span style="color:#2aa198">&#34;java_exception&#34;</span>)
-</span></span><span style="display:flex;"><span> e.<span style="color:#268bd2">Encode</span>(exception)
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> e.<span style="color:#268bd2">Buffer</span>()
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>在output/output.go 提供调用入口:添加如下函数初始化声明</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">func</span> <span style="color:#268bd2">init</span>() {
-</span></span><span style="display:flex;"><span> funcMap[<span style="color:#2aa198">&#34;JavaException&#34;</span>] = testfuncs.JavaException
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>java代码中增加调用go方法序列化结果:</p>
-<p><strong>说明</strong>: Assert.assertEquals 不能直接比较Exception对象是否相等</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span> <span style="color:#586e75">/**
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> * test java java.lang.Exception object and go java_exception Exception struct
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> */</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@Test</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">public</span> <span style="color:#dc322f">void</span> <span style="color:#268bd2">testException</span><span style="color:#719e07">()</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> Exception exception <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> Exception<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;java_exception&#34;</span><span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> Object javaException <span style="color:#719e07">=</span> GoTestUtil<span style="color:#719e07">.</span>readGoObject<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;JavaException&#34;</span><span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">if</span> <span style="color:#719e07">(</span>javaException <span style="color:#719e07">instanceof</span> Exception<span style="color:#719e07">)</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> Assert<span style="color:#719e07">.</span>assertEquals<span style="color:#719e07">(</span>exception<span style="color:#719e07">.</span>getMessage<span style="color:#719e07">(),</span> <span style="color:#719e07">((</span>Exception<span style="color:#719e07">)</span> javaException<span style="color:#719e07">).</span>getMessage<span style="color:#719e07">());</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span></code></pre></div><h3 id="13-support-java8-time-object-212httpsgithubcomapachedubbo-go-hessian2pull212-221httpsgithubcomapachedubbo-go-hessian2pull221">1.3 support java8 time object. <a href="https://github.com/apache/dubbo-go-hessian2/pull/212">#212</a>, <a href="https://github.com/apache/dubbo-go-hessian2/pull/221">#221</a></h3>
-<p>golang中增加一个java8对象的序列化输出方法:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#586e75">// test java8 java.time.Year
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#268bd2">func</span> <span style="color:#268bd2">Java8TimeYear</span>() []<span style="color:#dc322f">byte</span> {
-</span></span><span style="display:flex;"><span> e <span style="color:#719e07">:=</span> hessian.<span style="color:#268bd2">NewEncoder</span>()
-</span></span><span style="display:flex;"><span> year <span style="color:#719e07">:=</span> java8_time.Year{Year: <span style="color:#2aa198">2020</span>}
-</span></span><span style="display:flex;"><span> e.<span style="color:#268bd2">Encode</span>(year)
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> e.<span style="color:#268bd2">Buffer</span>()
-</span></span><span style="display:flex;"><span>}
-</span></span><span style="display:flex;"><span><span style="color:#586e75">// test java8 java.time.LocalDate
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#268bd2">func</span> <span style="color:#268bd2">Java8LocalDate</span>() []<span style="color:#dc322f">byte</span> {
-</span></span><span style="display:flex;"><span> e <span style="color:#719e07">:=</span> hessian.<span style="color:#268bd2">NewEncoder</span>()
-</span></span><span style="display:flex;"><span> date <span style="color:#719e07">:=</span> java8_time.LocalDate{Year: <span style="color:#2aa198">2020</span>, Month: <span style="color:#2aa198">9</span>, Day: <span style="color:#2aa198">12</span>}
-</span></span><span style="display:flex;"><span> e.<span style="color:#268bd2">Encode</span>(date)
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> e.<span style="color:#268bd2">Buffer</span>()
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>在output/output.go 提供调用入口:添加函数初始化声明</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">func</span> <span style="color:#268bd2">init</span>() {
-</span></span><span style="display:flex;"><span> funcMap[<span style="color:#2aa198">&#34;Java8TimeYear&#34;</span>] = testfuncs.Java8TimeYear
-</span></span><span style="display:flex;"><span> funcMap[<span style="color:#2aa198">&#34;Java8LocalDate&#34;</span>] = testfuncs.Java8LocalDate
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>java代码中增加调用go方法序列化结果:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#586e75">/**
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> * test java8 java.time.* object and go java8_time/* struct
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"> */</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">@Test</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#dc322f">void</span> <span style="color:#268bd2">testJava8Year</span><span style="color:#719e07">()</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> Year year <span style="color:#719e07">=</span> Year<span style="color:#719e07">.</span>of<span style="color:#719e07">(</span>2020<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> Assert<span style="color:#719e07">.</span>assertEquals<span style="color:#719e07">(</span>year
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">,</span> GoTestUtil<span style="color:#719e07">.</span>readGoObject<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;Java8TimeYear&#34;</span><span style="color:#719e07">));</span>
-</span></span><span style="display:flex;"><span> LocalDate localDate <span style="color:#719e07">=</span> LocalDate<span style="color:#719e07">.</span>of<span style="color:#719e07">(</span>2020<span style="color:#719e07">,</span> 9<span style="color:#719e07">,</span> 12<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> Assert<span style="color:#719e07">.</span>assertEquals<span style="color:#719e07">(</span>localDate<span style="color:#719e07">,</span> GoTestUtil<span style="color:#719e07">.</span>readGoObject<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;Java8LocalDate&#34;</span><span style="color:#719e07">));</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><h3 id="14-support-test-golang-encoding-data-in-java-213httpsgithubcomapachedubbo-go-hessian2pull213">1.4 support test golang encoding data in java. <a href="https://github.com/apache/dubbo-go-hessian2/pull/213">#213</a></h3>
-<p>为了更好的测试验证hessian库,原来已经支持在golang中测试java的序列化数据,现在增加在java中测试golang的序列化数据,实现双向测试验证。</p>
-<p>golang中增加序列化输出方法:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">func</span> <span style="color:#268bd2">HelloWorldString</span>() []<span style="color:#dc322f">byte</span> {
-</span></span><span style="display:flex;"><span> e <span style="color:#719e07">:=</span> hessian.<span style="color:#268bd2">NewEncoder</span>()
-</span></span><span style="display:flex;"><span> e.<span style="color:#268bd2">Encode</span>(<span style="color:#2aa198">&#34;hello world&#34;</span>)
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> e.<span style="color:#268bd2">Buffer</span>()
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>将该方法注册到output/output.go中</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span> <span style="color:#586e75">// add all output func here
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span> <span style="color:#268bd2">func</span> <span style="color:#268bd2">init</span>() {
-</span></span><span style="display:flex;"><span> funcMap[<span style="color:#2aa198">&#34;HelloWorldString&#34;</span>] = testfuncs.HelloWorldString
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>output/output.go 提供调用入口:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">func</span> <span style="color:#268bd2">main</span>() {
-</span></span><span style="display:flex;"><span> flag.<span style="color:#268bd2">Parse</span>()
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">if</span> <span style="color:#719e07">*</span>funcName <span style="color:#719e07">==</span> <span style="color:#2aa198">&#34;&#34;</span> {
-</span></span><span style="display:flex;"><span> _, _ = fmt.<span style="color:#268bd2">Fprintln</span>(os.Stderr, <span style="color:#2aa198">&#34;func name required&#34;</span>)
-</span></span><span style="display:flex;"><span> os.<span style="color:#268bd2">Exit</span>(<span style="color:#2aa198">1</span>)
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> f, exist <span style="color:#719e07">:=</span> funcMap[<span style="color:#719e07">*</span>funcName]
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">if</span> !exist {
-</span></span><span style="display:flex;"><span> _, _ = fmt.<span style="color:#268bd2">Fprintln</span>(os.Stderr, <span style="color:#2aa198">&#34;func name not exist: &#34;</span>, <span style="color:#719e07">*</span>funcName)
-</span></span><span style="display:flex;"><span> os.<span style="color:#268bd2">Exit</span>(<span style="color:#2aa198">1</span>)
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">defer</span> <span style="color:#268bd2">func</span>() {
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">if</span> err <span style="color:#719e07">:=</span> <span style="color:#b58900">recover</span>(); err <span style="color:#719e07">!=</span> <span style="color:#cb4b16">nil</span> {
-</span></span><span style="display:flex;"><span> _, _ = fmt.<span style="color:#268bd2">Fprintln</span>(os.Stderr, <span style="color:#2aa198">&#34;error: &#34;</span>, err)
-</span></span><span style="display:flex;"><span> os.<span style="color:#268bd2">Exit</span>(<span style="color:#2aa198">1</span>)
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> }()
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">if</span> _, err <span style="color:#719e07">:=</span> os.Stdout.<span style="color:#268bd2">Write</span>(<span style="color:#268bd2">f</span>()); err <span style="color:#719e07">!=</span> <span style="color:#cb4b16">nil</span> {
-</span></span><span style="display:flex;"><span> _, _ = fmt.<span style="color:#268bd2">Fprintln</span>(os.Stderr, <span style="color:#2aa198">&#34;call error: &#34;</span>, err)
-</span></span><span style="display:flex;"><span> os.<span style="color:#268bd2">Exit</span>(<span style="color:#2aa198">1</span>)
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> os.<span style="color:#268bd2">Exit</span>(<span style="color:#2aa198">0</span>)
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>java代码中增加调用go方法序列化结果:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">GoTestUtil</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">public</span> <span style="color:#268bd2">static</span> Object <span style="color:#268bd2">readGoObject</span><span style="color:#719e07">(</span>String func<span style="color:#719e07">)</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> System<span style="color:#719e07">.</span>out<span style="color:#719e07">.</span>println<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;read go data: &#34;</span> <span style="color:#719e07">+</span> func<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">try</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> Process process <span style="color:#719e07">=</span> Runtime<span style="color:#719e07">.</span>getRuntime<span style="color:#719e07">()</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">.</span>exec<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;go run output/output.go -func_name=&#34;</span> <span style="color:#719e07">+</span> func<span style="color:#719e07">,</span>
-</span></span><span style="display:flex;"><span> <span style="color:#cb4b16">null</span><span style="color:#719e07">,</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">new</span> File<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;..&#34;</span><span style="color:#719e07">));</span>
-</span></span><span style="display:flex;"><span> <span style="color:#dc322f">int</span> exitValue <span style="color:#719e07">=</span> process<span style="color:#719e07">.</span>waitFor<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">if</span> <span style="color:#719e07">(</span>exitValue <span style="color:#719e07">!=</span> 0<span style="color:#719e07">)</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> Assert<span style="color:#719e07">.</span>fail<span style="color:#719e07">(</span>readString<span style="color:#719e07">(</span>process<span style="color:#719e07">.</span>getErrorStream<span style="color:#719e07">()));</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> <span style="color:#cb4b16">null</span><span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span> InputStream is <span style="color:#719e07">=</span> process<span style="color:#719e07">.</span>getInputStream<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span> Hessian2Input input <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> Hessian2Input<span style="color:#719e07">(</span>is<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> input<span style="color:#719e07">.</span>readObject<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span> <span style="color:#719e07">catch</span> <span style="color:#719e07">(</span>Exception e<span style="color:#719e07">)</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> e<span style="color:#719e07">.</span>printStackTrace<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> <span style="color:#cb4b16">null</span><span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> <span style="color:#268bd2">static</span> String <span style="color:#268bd2">readString</span><span style="color:#719e07">(</span>InputStream in<span style="color:#719e07">)</span> <span style="color:#268bd2">throws</span> IOException <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> StringBuilder out <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> StringBuilder<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span> InputStreamReader reader <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> InputStreamReader<span style="color:#719e07">(</span>in<span style="color:#719e07">,</span> StandardCharsets<span style="color:#719e07">.</span>UTF_8<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> <span style="color:#dc322f">char</span><span style="color:#719e07">[]</span> buffer <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> <span style="color:#dc322f">char</span><span style="color:#719e07">[</span>4096<span style="color:#719e07">];</span>
-</span></span><span style="display:flex;"><span> <span style="color:#dc322f">int</span> bytesRead<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">while</span> <span style="color:#719e07">((</span>bytesRead <span style="color:#719e07">=</span> reader<span style="color:#719e07">.</span>read<span style="color:#719e07">(</span>buffer<span style="color:#719e07">))</span> <span style="color:#719e07">!=</span> <span style="color:#719e07">-</span>1<span style="color:#719e07">)</span> <span style [...]
-</span></span><span style="display:flex;"><span> out<span style="color:#719e07">.</span>append<span style="color:#719e07">(</span>buffer<span style="color:#719e07">,</span> 0<span style="color:#719e07">,</span> bytesRead<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> out<span style="color:#719e07">.</span>toString<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>增加java测试代码:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">@Test</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#dc322f">void</span> <span style="color:#268bd2">testHelloWordString</span><span style="color:#719e07">()</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> Assert<span style="color:#719e07">.</span>assertEquals<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;hello world&#34;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">,</span> GoTestUtil<span style="color:#719e07">.</span>readGoObject<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;HelloWorldString&#34;</span><span style="color:#719e07">));</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><h3 id="15-support-javasqltime--javasqldate-219httpsgithubcomapachedubbo-go-hessian2pull219">1.5 support java.sql.Time &amp; java.sql.Date. <a href="https://github.com/apache/dubbo-go-hessian2/pull/219">#219</a></h3>
-<p>增加了 java 类 java.sql.Time, java.sql.Date 支持,分别对应到hessian.Time 和 hessian.Date, 详见 <a href="https://github.com/apache/dubbo-go-hessian2/pull/219/files">https://github.com/apache/dubbo-go-hessian2/pull/219/files</a>。</p>
-<h2 id="2-enhancement">2. Enhancement</h2>
-<h3 id="21-export-function-encnull-225httpsgithubcomapachedubbo-go-hessian2pull225">2.1 Export function EncNull. <a href="https://github.com/apache/dubbo-go-hessian2/pull/225">#225</a></h3>
-<p>开放 hessian.EncNull 方法,以便用户特定情况下使用。</p>
-<h2 id="3-bugfixes">3. Bugfixes</h2>
-<h3 id="31-fix-enum-encode-error-in-request-203httpsgithubcomapachedubbo-go-hessian2pull203">3.1 fix enum encode error in request. <a href="https://github.com/apache/dubbo-go-hessian2/pull/203">#203</a></h3>
-<p>原来在 dubbo request 对象中没有判断 enum 类型的情况,此pr增加了判断是不是POJOEnum类型。详见 <a href="https://github.com/apache/dubbo-go-hessian2/pull/203/files">https://github.com/apache/dubbo-go-hessian2/pull/203/files</a></p>
-<h3 id="32-fix-byte-field-decoding-issue-216httpsgithubcomapachedubbo-go-hessian2pull216">3.2 fix []byte field decoding issue. <a href="https://github.com/apache/dubbo-go-hessian2/pull/216">#216</a></h3>
-<p>v1.7.0 之前如果 struct中包含[]byte字段时无法反序列化, 报错“error list tag: 0x29”,主要原因是被当做list进行处理,对于这种情况应该按照binary数据进行处理即可。</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">type</span> Circular <span style="color:#268bd2">struct</span> {
-</span></span><span style="display:flex;"><span> Num <span style="color:#dc322f">int</span>
-</span></span><span style="display:flex;"><span> Previous <span style="color:#719e07">*</span>Circular
-</span></span><span style="display:flex;"><span> Next <span style="color:#719e07">*</span>Circular
-</span></span><span style="display:flex;"><span> ResponseDataBytes []<span style="color:#dc322f">byte</span> <span style="color:#586e75">// &lt;----
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span>}
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">func</span> (Circular) <span style="color:#268bd2">JavaClassName</span>() <span style="color:#dc322f">string</span> {
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> <span style="color:#2aa198">&#34;com.company.Circular&#34;</span>
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><h3 id="33-fix-decoding-error-for-map-in-map-229httpsgithubcomapachedubbo-go-hessian2pull229">3.3 fix decoding error for map in map. <a href="https://github.com/apache/dubbo-go-hessian2/pull/229">#229</a></h3>
-<p>v1.7.0 之前嵌套map无法正确解析,主要原因是对应的map对象被当做一个数据类型却未被自动加到类引用列表中,而嵌套map类信息是同一类型的引用,去类引用列表找,找不到就报错了。 解决这个问题的方法就是遇到map类对象,也将其加入到类引用列表中即可。 问题详细参考 <a href="https://github.com/apache/dubbo-go-hessian2/issues/119">#119</a>.</p>
-<h3 id="34-fix-fields-name-mismatch-in-duration-class-234httpsgithubcomapachedubbo-go-hessian2pull234">3.4 fix fields name mismatch in Duration class. <a href="https://github.com/apache/dubbo-go-hessian2/pull/234">#234</a></h3>
-<p>这个 PR 解决了Duration对象中字段错误定义,原来是&quot;second/nano&quot;, 应该是&quot;seconds/nanos&quot;。</p>
-<p>同时改善了测试验证数据。之前使用0作为int字段的测试数据,这是不准确的,因为int类型默认值就是0.</p></description></item><item><title>Blog: Dubbo-go应用维度注册模型</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E5%86%8C%E6%A8%A1%E5%9E%8B/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E5%86%8C%E6%A8%A1%E5%9E%8B/</guid><description>
+</blockquote></description></item><item><title>Blog: Dubbo-go应用维度注册模型</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E5%86%8C%E6%A8%A1%E5%9E%8B/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/dubbo-go%E5%BA%94%E7%94%A8%E7%BB%B4%E5%BA%A6%E6%B3%A8%E5%86%8C%E6%A8%A1%E5%9E%8B/</guid><description>
<p>Dubbo 3.0 将至。其最重要的一点就是服务自省,其基础即是应用维度的注册模型,作为目前与 Dubbo 在功能上完全对齐的 Dubbo-go,已于 本年【2020 年】7 月份发布了其 v1.5.0 版本,实现了该模型,为年底实现与 Dubbo 3.0 对齐的新版本奠定了基础。</p>
<p>Dubbo-go 作为 Dubbo 的 Go 语言版本,因跨语言之故,二者针对同一模型的实现必然有较大差异,故本文注重讨论 Dubbo-go 社区自身对该模型的理解和实现,以及其与 Dubbo 之间的差异。</p>
<h2 id="1-引语">1 引语</h2>
@@ -3872,407 +2554,20 @@ HTTP 协议与 dubbo 协议之间的映射关系。</p>
<p><strong>Dubbo-go 邓明:</strong></p>
<p>说起来挺有意思的,就是我本身是业务开发,并不是传统意义上的中间件开发或者基础架构开发。我目前在 eBay 做支付业务的开发。eBay 是一个 WLB 的公司,也就是在 eBay 我才有了足够的业余时间,开始投入到了开源社区中。</p>
<p>Dubbo-go 是我第一个深入参与的开源项目,也是我第一次尝试将个人对分布式系统和微服务治理的理解付诸实践的项目。它是我的第一个“孩子”。</p>
-<p>因为工作的关系,我算是 Dubbo-go 社区投入时间最多的人之一,为 Dubbo-go 开发了一些很有意思的特性,也因此成了 Apache committer。另外我还扮演了编辑的角色,帮社区小伙伴写的博客文章把把关,润润色。我也算是 Dubbo-go 的主要管理人员了,比如说 v1.5 这个版本就是主要由我推进的——这大概还是因为我时间比较多。</p></description></item><item><title>Blog: 使用 GraalVM 构建 Native Image</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/%E4%BD%BF%E7%94%A8-graalvm-%E6%9E%84%E5%BB%BA-native-image/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/14/%E4%BD%BF%E7%9 [...]
-<h1 id="dubbo项目支持native-image">dubbo项目支持native-image</h1>
-<h2 id="概述">概述</h2>
-<p> 本文档将介绍将dubbo项目接入GraalVM,进行native-image编译为二进制的方式,以及我们为了达到这个目的做了哪些工作。</p>
-<p> GraalVM的核心就是Graal编译器,一款优秀的JIT编译器。它即可以当作JIT编译器使用,也可以用作提前编译的静态编译器。它将完成编译的主要工作。</p>
-<p> 关于GraalVm的更多信息可以阅读 <a href="https://www.graalvm.org/docs/getting-started/container-images/">https://www.graalvm.org/docs/getting-started/container-images/</a> 此文档。</p>
-<h2 id="准备工作">准备工作</h2>
-<p> 在编译我们的dubbo项目之前,需要确保我们正基于graalVm的环境。</p>
-<p> 安装GraalVM的工作这里不做介绍,可以进入https://www.graalvm.org/ 官网选取最新版本安装,安装完成后查看本地jdk可以看到如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-graalvm-support/graalvm_env.png" alt=""></p>
-<p> 这里我们使用的基于jdk1.8版本的GraalVM。</p>
-<h2 id="快速上手">快速上手</h2>
-<p> 为了便于用户快速上手,我们在本分支,即<a href="https://github.com/apache/dubbo/tree/2.7-native_image">apache:2.7-native_image</a>分支中,提供了如下demo。</p>
-<p> 模块名dubbo-demo-native,该模块中提供了简易版本的dubbo的provider以及consumer:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-graalvm-support/demo_path.png" alt=""></p>
-<p> 我们在其中使用了native-image的maven插件,并定制了一些native-image的启动参数,用户只需要对应在provider以及consumer模块下执行maven的编译打包命令:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span>mvn <span style="color:#719e07">-</span>U clean <span style="color:#719e07">package</span> <span style="color:#719e07">-</span>Dmaven.test.skip=<span style="color:#cb4b16">true</span>
-</span></span></code></pre></div><p> 编译成功可以看到如下输出:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-graalvm-support/consumer_compiler.png" alt=""><img src="https://dubbo.apache.org/imgs/blog/dubbo-graalvm-support/provider_compiler.png" alt=""></p>
-<p> 在target目录中可以看到已经生成的二进制文件:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-graalvm-support/compile_result.png" alt=""></p>
-<p> 查看该二进制文件大小大约在40M左右:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>MacdeMacBook-pro-3:target mac$ du -m demo-native-provider
-</span></span><span style="display:flex;"><span>40 demo-native-provider
-</span></span></code></pre></div><p>(注:本例子基于zookeeper进行的服务注册和发现,所以用户需要在本地先启动一个zk,再执行二进制启动。)</p>
-<p> 直接运行启动该二进制:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>MacdeMacBook-pro-3:target mac$ ./demo-native-provider
-</span></span><span style="display:flex;"><span>......
-</span></span><span style="display:flex;"><span>INFO: [DUBBO] DubboBootstrap is ready., dubbo version: 2.7.12-SNAPSHOT, current host: 10.220.186.228
-</span></span><span style="display:flex;"><span>Jun 15, 2021 2:29:14 PM org.apache.dubbo.common.logger.jdk.JdkLogger info
-</span></span><span style="display:flex;"><span>INFO: [DUBBO] DubboBootstrap has started., dubbo version: 2.7.12-SNAPSHOT, current host: 10.220.186.228
-</span></span><span style="display:flex;"><span>Jun 15, 2021 2:29:14 PM org.apache.dubbo.common.logger.jdk.JdkLogger info
-</span></span><span style="display:flex;"><span>INFO: [DUBBO] DubboBootstrap awaiting ..., dubbo version: 2.7.12-SNAPSHOT, current host: 10.220.186.228
-</span></span></code></pre></div><p> 再进入consumer的target目录,执行该二进制:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>MacdeMacBook-pro-3:target mac$ ./demo-native-consumer
-</span></span><span style="display:flex;"><span>Hello dubbo, response from provider: 10.220.186.228:20880
-</span></span></code></pre></div><p> 以上启动以及调用均在零点几秒内完成。</p>
-<h2 id="我们做了哪些工作">我们做了哪些工作</h2>
-<h3 id="项目中的准备">项目中的准备</h3>
-<h4 id="类初始化的辅助配置">类初始化的辅助配置</h4>
-<p>由于native-image是在runtime之前构建的,它的构建依赖于对哪些代码可访问的静态分析。但是,这种分析不能总是完全预测 Java 本地接口 (JNI)、Java 反射、动态代理对象或类路径资源的所有用法。需要以native-image配置文件的形式向工具提供这些动态功能未被检测到的用法。</p>
-<p>这里我们在jvm参数中加入:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>-agentlib:native-image-agent=config-output-dir=/path/to/config-dir/
-</span></span></code></pre></div><p>以上参数将引入agent,再将项目已常规方式运行,agent将与JVM交互,拦截所有查找类、方法、字段、资源或请求代理访问的调用。然后,agent将在指定的目录中生成文件一下文件:</p>
-<p>jni-config.json,reflect-config.json,proxy-config.json以及resource-config.json&hellip;&hellip;</p>
-<p>将以上文件拷入项目的 resource/META-INF/native-image文件夹下,native-image编译时对于jni、反射、动态代理以及资源相关的操作将从这些json文件中找到类的信息进行加载。</p>
-<p>(注:实际上由于该agent是在运行时检测以上几类操作,而运行时势必无法走遍所有逻辑分支,所以会有些类的json信息无法生成。然而native-image编译时会对所有类进行编译,所以会导致一些预料不到的错误发生,目前只能是在发生错误时进行判断确实的类信息,手动补充到json文件中。)</p>
-<h4 id="native-image插件引入">native-image插件引入</h4>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>&lt;plugin&gt;
-</span></span><span style="display:flex;"><span> &lt;groupId&gt;org.graalvm.nativeimage&lt;/groupId&gt;
-</span></span><span style="display:flex;"><span> &lt;artifactId&gt;native-image-maven-plugin&lt;/artifactId&gt;
-</span></span><span style="display:flex;"><span> &lt;version&gt;21.0.0.2&lt;/version&gt;
-</span></span><span style="display:flex;"><span> &lt;executions&gt;
-</span></span><span style="display:flex;"><span> &lt;execution&gt;
-</span></span><span style="display:flex;"><span> &lt;goals&gt;
-</span></span><span style="display:flex;"><span> &lt;goal&gt;native-image&lt;/goal&gt;
-</span></span><span style="display:flex;"><span> &lt;/goals&gt;
-</span></span><span style="display:flex;"><span> &lt;phase&gt;package&lt;/phase&gt;
-</span></span><span style="display:flex;"><span> &lt;/execution&gt;
-</span></span><span style="display:flex;"><span> &lt;/executions&gt;
-</span></span><span style="display:flex;"><span> &lt;configuration&gt;
-</span></span><span style="display:flex;"><span> &lt;skip&gt;false&lt;/skip&gt;
-</span></span><span style="display:flex;"><span> &lt;imageName&gt;demo-native-provider&lt;/imageName&gt;
-</span></span><span style="display:flex;"><span> &lt;mainClass&gt;org.apache.dubbo.demo.graalvm.provider.Application&lt;/mainClass&gt;
-</span></span><span style="display:flex;"><span> &lt;buildArgs&gt;
-</span></span><span style="display:flex;"><span> --no-fallback
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.slf4j.MDC
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.slf4j.LoggerFactory
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.slf4j.impl.StaticLoggerBinder
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.apache.log4j.helpers.Loader
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.apache.log4j.Logger
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.apache.log4j.helpers.LogLog
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.apache.log4j.LogManager
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.apache.log4j.spi.LoggingEvent
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.slf4j.impl.Log4jLoggerFactory
-</span></span><span style="display:flex;"><span> --initialize-at-build-time=org.slf4j.impl.Log4jLoggerAdapter
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.epoll.Epoll
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.epoll.Native
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.epoll.EpollEventLoop
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.epoll.EpollEventArray
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.DefaultFileRegion
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.kqueue.KQueueEventArray
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.kqueue.KQueueEventLoop
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.kqueue.Native
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.unix.Errors
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.unix.IovArray
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.unix.Limits
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.util.internal.logging.Log4JLogger
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.unix.Socket
-</span></span><span style="display:flex;"><span> --initialize-at-run-time=io.netty.channel.ChannelHandlerMask
-</span></span><span style="display:flex;"><span> --report-unsupported-elements-at-runtime
-</span></span><span style="display:flex;"><span> --allow-incomplete-classpath
-</span></span><span style="display:flex;"><span> --enable-url-protocols=http
-</span></span><span style="display:flex;"><span> -H:+ReportExceptionStackTraces
-</span></span><span style="display:flex;"><span> &lt;/buildArgs&gt;
-</span></span><span style="display:flex;"><span> &lt;/configuration&gt;
-</span></span><span style="display:flex;"><span>&lt;/plugin&gt;
-</span></span></code></pre></div><p> 引入该插件后执行maven的打包等命令时就能自动执行native-image的命令。</p>
-<h4 id="引入生成的spi代码依赖包">引入生成的SPI代码依赖包</h4>
-<p> 由于dubbo项目基于SPI的模式开放了极高的可扩展性,而该模式依赖了一些扩展适配的生成代码,在常规模式下运行的项目是没有问题的,但编译为二进制的映像无法支持动态生成编译代码,这里我们是这么解决的:</p>
-<ul>
-<li>将生成的源码导出:</li>
-</ul>
-<p>(注:这里我们一定程度上改动了dubbo-common中compiler的代码,后续会细说)</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>public Class&lt;?&gt; doCompile(String name, String source) throws Throwable {
-</span></span><span style="display:flex;"><span> System.*out*.println(&#34;---&gt;write code:&#34; + name);
-</span></span><span style="display:flex;"><span> Files.*write*(Paths.*get*(&#34;/tmp/sources/&#34; + name), source.getBytes());
-</span></span><span style="display:flex;"><span> ......
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><ul>
-<li>将导出的源码拷入dubbo-graalvm模块中:</li>
-</ul>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-graalvm-support/graalvm.png" alt=""></p>
-<ul>
-<li>
-<p>在新项目中引入该模块:</p>
-<p>pom依赖如下:</p>
-</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>&lt;dependency&gt;
-</span></span><span style="display:flex;"><span> &lt;groupId&gt;org.apache.dubbo&lt;/groupId&gt;
-</span></span><span style="display:flex;"><span> &lt;artifactId&gt;dubbo-graalvm&lt;/artifactId&gt;
-</span></span><span style="display:flex;"><span> &lt;version&gt;2.7.12-SNAPSHOT&lt;/version&gt;
-</span></span><span style="display:flex;"><span>&lt;/dependency&gt;
-</span></span></code></pre></div><ul>
-<li>
-<p>(注:基于本分支版本的dubbo可以直接依赖该包,后续其他版本若有新增SPI的话需要再导出一遍源码进行更新)</p>
-<p>引入该依赖后,在doCompiler的过程中我们便能够通过类名直接找到该class,无需再动态生成:</p>
-</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>@Override
-</span></span><span style="display:flex;"><span>public Class&lt;?&gt; doCompile(String name, String sourceCode) throws Throwable {
-</span></span><span style="display:flex;"><span> try {
-</span></span><span style="display:flex;"><span> Class&lt;?&gt; res = Class.*forName*(name);
-</span></span><span style="display:flex;"><span> return res;
-</span></span><span style="display:flex;"><span> } catch (Throwable ex) {
-</span></span><span style="display:flex;"><span> //ignore
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p> 到这里项目关于native-image编译所需的依赖就配置完成了,直接打包即可生成二进制文件。</p>
-<h2 id="对dubbo源码的改动">对dubbo源码的改动</h2>
-<p> 本分支名为:native_dubbo_0611,基于tag <a href="https://github.com/apache/dubbo/releases/tag/dubbo-2.7.12">dubbo-2.7.12</a>版本进行修改。这里对我们进行的主要的改动做一些说明。</p>
-<ul>
-<li>规避动态生成代码</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>//dubbo-common/src/main/java/org/apache/dubbo/common/compiler/support/JavassistCompiler.java
-</span></span><span style="display:flex;"><span>@Override
-</span></span><span style="display:flex;"><span>public Class&lt;?&gt; doCompile(String name, String source) throws Throwable {
-</span></span><span style="display:flex;"><span> try {
-</span></span><span style="display:flex;"><span> Class&lt;?&gt; res = Class.*forName*(name);
-</span></span><span style="display:flex;"><span> return res;
-</span></span><span style="display:flex;"><span> } catch (Throwable ex) {
-</span></span><span style="display:flex;"><span> //ignore
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> CtClassBuilder builder = new CtClassBuilder();
-</span></span><span style="display:flex;"><span> builder.setClassName(name)
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span><span style="display:flex;"><span>//dubbo-common/src/main/java/org/apache/dubbo/common/compiler/support/JdkCompiler.java
-</span></span><span style="display:flex;"><span>@Override
-</span></span><span style="display:flex;"><span>public Class&lt;?&gt; doCompile(String name, String sourceCode) throws Throwable {
-</span></span><span style="display:flex;"><span> try {
-</span></span><span style="display:flex;"><span> Class&lt;?&gt; res = Class.*forName*(name);
-</span></span><span style="display:flex;"><span> return res;
-</span></span><span style="display:flex;"><span> } catch (Throwable ex) {
-</span></span><span style="display:flex;"><span> //ignore
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> int i = name.lastIndexOf(&#39;.&#39;);
-</span></span><span style="display:flex;"><span> String packageName = i &lt; 0 ? &#34;&#34; : name.substring(0, i);
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p> 这里针对dubbo中的两类代码编译方式都做了修改,需要编译源码时先根据全类名反射查找本地是否已经加载了该类,实际上也就是我们引入的dubbo-graalvm中包含的生成代码,引入该包后这里将直接返回加载好的Class,无需动态进行编译。</p>
+<p>因为工作的关系,我算是 Dubbo-go 社区投入时间最多的人之一,为 Dubbo-go 开发了一些很有意思的特性,也因此成了 Apache committer。另外我还扮演了编辑的角色,帮社区小伙伴写的博客文章把把关,润润色。我也算是 Dubbo-go 的主要管理人员了,比如说 v1.5 这个版本就是主要由我推进的——这大概还是因为我时间比较多。</p></description></item><item><title>Blog: 记一次在 mosn 对 dubbo、dubbo-go-hessian2 的性能优化</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%9C%A8-mosn-%E5%AF%B9-dubbodubbo-go-hessian2-%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0 [...]
+<h3 id="背景">背景</h3>
+<p>蚂蚁内部对 Service Mesh 的稳定性和性能要求是比较高的,内部 mosn 广泛用于生产环境。在云上和开源社区,RPC 领域 dubbo 和 spring cloud 同样广泛用于生产环境,我们在 mosn 基础上,支持了 dubbo 和 spring cloud 流量代理。我们发现在支持 dubbo 协议过程中,经过 Mesh 流量代理后,性能有非常大的性能损耗,在大商户落地 Mesh 中也对性能有较高要求,因此本文会重点描述在基于 Go 语言库 <a href="https://github.com/apache/dubbo-go-hessian2">dubbo-go-hessian2</a> 、dubbo 协议中对 <a href="https://github.com/mosn/mosn">mosn</a> 所做的性能优化。</p>
+<h3 id="性能优化概述">性能优化概述</h3>
+<p>根据实际业务部署场景,并没有选用高性能机器,使用普通 linux 机器,配置和压测参数如下:</p>
<ul>
-<li>替换ExtensionLoader中的代码生成</li>
+<li>Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz 4 核 16G 。</li>
+<li>pod 配置 <code>2c、1g</code>,JVM 参数 <code>-server -Xms1024m -Xmx1024m</code>。</li>
+<li>网络延迟 0.23 ms, 2 台 linux 机器,分别部署 server + mosn, 压测程序 <a href="https://github.com/zonghaishang/rpc-performance">rpc-perfomance</a>。</li>
</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>//dubbo-common/src/main/java/org/apache/dubbo/common/extension/ExtensionLoader.java
-</span></span><span style="display:flex;"><span>private Class&lt;?&gt; createAdaptiveExtensionClass() {
-</span></span><span style="display:flex;"><span> try {
-</span></span><span style="display:flex;"><span> Class c = Class.*forName*(generatePackageInfo() + &#34;.&#34; + type.getSimpleName() + &#34;$Adaptive&#34;);
-</span></span><span style="display:flex;"><span> return c;
-</span></span><span style="display:flex;"><span> } catch (Throwable e) {
-</span></span><span style="display:flex;"><span> //ignore
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> String code = new AdaptiveClassCodeGenerator(type,cachedDefaultName).generate();
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span><span style="display:flex;"><span>private static final String *CODE_PACKAGE* = &#34;%s&#34;;
-</span></span><span style="display:flex;"><span>private String generatePackageInfo() {
-</span></span><span style="display:flex;"><span> return String.*format*(*CODE_PACKAGE*, type.getPackage().getName());
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p> ExtensionLoader是整个扩展机制的主要逻辑类,在这个类里面实现了配置的加载、扩展类缓存、自适应对象生成等所有工作。</p>
-<p> 在getAdaptiveExtension()方法中,会为扩展点接口自动生成实现类字符串。而这里同第一个变更一样,由于我们直接引入了生成好的SPI代码包,这里边不再需要进行代码生成,直接根据类名获取本地的Class即可,这里注意生成的扩展类名都以 $Adaptive 为后缀,查找类时需要拼接。找到实现类直接返回。</p>
+<p>经过 3 轮性能优化后,使用优化版本 mosn 将会获得以下性能收益(框架随机 512 和 1k 字节压测):</p>
<ul>
-<li>Reference/ServiceConfig中替换Wrapper的用法</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>//dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
-</span></span><span style="display:flex;"><span>// String[] methods = Wrapper.getWrapper(interfaceClass).getMethodNames();
-</span></span><span style="display:flex;"><span> String[] methods = Arrays.*stream*(interfaceClass.getMethods()).map(it-&gt;it.getName()).toArray(String[]::new);
-</span></span><span style="display:flex;"><span> if (methods.length == 0) {
-</span></span><span style="display:flex;"><span> l*ogger*.warn(&#34;No method found in service interface &#34; + interfaceClass.getName());
-</span></span><span style="display:flex;"><span> map.put(*METHODS_KEY*, *ANY_VALUE*);
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span><span style="display:flex;"><span>//dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
-</span></span><span style="display:flex;"><span>// String[] methods = Wrapper.getWrapper(interfaceClass).getMethodNames();
-</span></span><span style="display:flex;"><span> String[] methods = Arrays.*stream*(interfaceClass.getMethods()).map(it-&gt;it.getName()).toArray(String[]::new);
-</span></span><span style="display:flex;"><span> if (methods.length == 0) {
-</span></span><span style="display:flex;"><span> l*ogger*.warn(&#34;No method found in service interface &#34; + interfaceClass.getName());
-</span></span><span style="display:flex;"><span> map.put(*METHODS_KEY*, *ANY_VALUE*);
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p> 这里由于Wrapper的getWrapper需要进行动态的代码生成,所以直接换成反射的getMethods。</p>
-<ul>
-<li>
-<p>加入dubbo-graalvm模块</p>
-<p>该模块用处上面已经说明。</p>
-</li>
-<li>
-<p>替换fastjson为gson</p>
-</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>//dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java
-</span></span><span style="display:flex;"><span>@Override
-</span></span><span style="display:flex;"><span>public void publishServiceDefinition(URL providerUrl) {
-</span></span><span style="display:flex;"><span> try {
-</span></span><span style="display:flex;"><span> if (!ProtocolUtils.*isGeneric*(providerUrl.getParameter(*GENERIC_KEY*))) {
-</span></span><span style="display:flex;"><span> String interfaceName = providerUrl.getParameter(*INTERFACE_KEY*);
-</span></span><span style="display:flex;"><span> if (StringUtils.*isNotEmpty*(interfaceName)) {
-</span></span><span style="display:flex;"><span> Class interfaceClass = Class.*forName*(interfaceName);
-</span></span><span style="display:flex;"><span> ServiceDefinition serviceDefinition = ServiceDefinitionBuilder.*build*(interfaceClass);
-</span></span><span style="display:flex;"><span> String data = new Gson().toJson(serviceDefinition);
-</span></span><span style="display:flex;"><span> serviceDefinitions.put(providerUrl.getServiceKey(), data);
-</span></span><span style="display:flex;"><span> return;
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p> 由于fastjson中使用要了cglib进行动态代理,而native-image编译目前还不支持cglib,所以这里换成gson。</p>
-<ul>
-<li>多接口proxy调用替换set为list</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fallback" data-lang="fallback"><span style="display:flex;"><span>//dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/proxy/AbstractProxyFactory.java
-</span></span><span style="display:flex;"><span>@Override
-</span></span><span style="display:flex;"><span>public &lt;T&gt; T getProxy(Invoker&lt;T&gt; invoker, boolean generic) throws RpcException {
-</span></span><span style="display:flex;"><span> List&lt;Class&lt;?&gt;&gt; interfaces = new ArrayList&lt;&gt;();
-</span></span><span style="display:flex;"><span> String config = invoker.getUrl().getParameter(*INTERFACES*);
-</span></span><span style="display:flex;"><span> if (config != null &amp;&amp; config.length() &gt; 0) {
-</span></span><span style="display:flex;"><span> String[] types = *COMMA_SPLIT_PATTERN*.split(config);
-</span></span><span style="display:flex;"><span> for (String type : types) {
-</span></span><span style="display:flex;"><span> // *TODO can we load successfully for a different classloader?.*
-</span></span><span style="display:flex;"><span> interfaces.add(ReflectUtils.*forName*(type));
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> }
-</span></span><span style="display:flex;"><span> //......
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p> 这里由于该service拥有多个接口获取proxy时需要是有序的,原先使用的set不满足需求,这里用ArrayList替代。</p>
-<p> 以上就是为了支持graalvm对dubbo源码的主要改动点。</p>
-<p>分支地址如下:</p>
-<p><a href="https://github.com/apache/dubbo/tree/2.7-native_image">https://github.com/apache/dubbo/tree/2.7-native_image</a></p></description></item><item><title>Blog: 都已经十岁的 Apache Dubbo,还能再乘风破浪吗?</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/%E9%83%BD%E5%B7%B2%E7%BB%8F%E5%8D%81%E5%B2%81%E7%9A%84-apache-dubbo%E8%BF%98%E8%83%BD%E5%86%8D%E4%B9%98%E9%A3%8E%E7%A0%B4%E6%B5%AA%E5%90%97/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.o [...]
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/10years/dubbo-home.png" alt=""></p>
-<p>纵观中国开源历史,你真的没法找到第二个像 Dubbo 一样自带争议和讨论热度的开源项目。</p>
-<p>一方面,2011 年,它的开源填补了当时生产环境使用的 RPC 框架的空白,一发布就被广泛采用;另一方面,它经历了停止维护、重启维护后捐献给 Apache 基金会、接着又以顶级项目的身份毕业。</p>
-<p>面对多疑的开发者,在云原生时代,Apache Dubbo 将如何延续当前光芒?</p>
-<p>今年是 Dubbo 从 Apache 基金会毕业的一周年,同时也是推进 Dubbo 3.0,即全面拥抱云原生的重要一年。开源中国与 Apaceh Dubbo 共同策划**【Dubbo 云原生之路】**系列文章,和大家一起回顾 Apache Dubbo 社区的发展。系列文章主要涵盖 Dubbo 技术解读、社区、应用案例解析三大部分,之后每周都会和大家见面。</p>
-<p><strong>在【阿里巴巴云原生公众号】留言说出与 Apache Dubbo 的故事</strong>,点赞排名前十的同学可领取 Dubbo 送出的专属奖品杯子一只;另外由Apache Dubbo PMC @Chickenlj 随机抽取一名幸运读者,赠送价值 260 元护眼灯一台。下周三开奖。</p>
-<p><strong>作者简介</strong></p>
-<p><strong>刘军</strong>,花名陆龟,GitHub 账号 Chickenlj,Apache Dubbo PMC,项目核心开发,见证了 Dubbo 重启开源,到从 Apache 基金会毕业的整个过程。现任职阿里云云原生应用平台团队,参与服务框架、微服务相关工作,目前主要在推动 Dubbo 3.0 - Dubbo 云原生。</p>
-<h1 id="系列开篇30-全面铺开asf-毕业一周年">系列开篇:3.0 全面铺开、ASF 毕业一周年</h1>
-<p>从 2019 年到现在,在 Dubbo 毕业的这一年时间里,Dubbo 社区和产品都取得长足进步,同时 Dubbo 云原生版本 - Dubbo 3.0 的开发工作也已经全面铺开。</p>
-<p>社区方面。需要重点提及的有两点:一个是落地与贡献的企业用户进一步增加,主动与社区取得联系的中、大规模公司达 200 多家,如携程、工商银行、瓜子二手车、网联清算、中通等;另一个是<a href="http://mp.weixin.qq.com/s?__biz=MjM5NzM0MjcyMQ==&amp;mid=2650091639&amp;idx=1&amp;sn=9733d57fd9babe53826bc93c2a466adf&amp;chksm=bedaeb1989ad620f99abfee5902d69dc6c7544d1d70803d854f20ea7a1a44c1d0c4ba82f8d3a&amp;scene=21#wechat_redirect"><strong>以 Dubbo-go 为代表的子社区</strong></a>蓬勃发展。</p>
-<p>产品技术演进方面。Dubbo Java 版发布 10 个版本,在多语言、协议、性能、服务治理模型等方面都有深度探索。Dubbo go 发布超过 8 个版本,在功能基本对齐 Java 版本的基础上,一些方向上也已经走在了 Java 版本前面。</p>
-<p>值得一提的是,阿里巴巴内部也正在积极推动 Dubbo 社区版本在内部的落地,从今年开始逐步实现<strong>以 Dubbo 替换其内部的 HSF 框架</strong>。这一方面有利于阿里将其在 HSF 上的丰富服务治理经验回馈输出到社区,另一方面阿里官方的落地也将直接加速 Dubbo 云原生的发展。</p>
-<p>在云原生大潮下,<strong>3.0 已被正式列为今年 Dubbo 产品建设的核心目标</strong>,涉及下一代 RPC 协议、服务治理模型、云原生基础设施适配等多方面的内容。其中,很多方面已经在当前的 2.7 版本中做了前置性探索,如近期发布的基于 HTTP/2 的协议支持、应用级服务发现等,后续工作将以此为基础展开。系列文章也会有对 Dubbo 3.0 Roadmap 及技术方案的详细解析。</p>
-<h2 id="dubbo-毕业一周年回顾">Dubbo 毕业一周年回顾</h2>
-<p>2017 年 7 月,Dubbo 开源项目被重新激活,2018 年捐献到 Apache 基金会,2019 年 5 月,Dubbo 正式从 Apache 基金会孵化毕业,成为 Apache 顶级项目。接下来,文章分别从社区、子社区、产品三方面介绍 Dubbo 过去一年的成绩。</p>
-<h3 id="社区一年发布-24-个版本贡献者已超-300">社区一年发布 24 个版本,贡献者已超 300</h3>
-<p>如果说最开始重新激活是以阿里巴巴为主导的项目维护投入,那自 Dubbo 加入 Apache 起,它就已经开始成为一个社区主导、社区贡献为主的完全开放的基金会项目。</p>
-<p>到今天,这一趋势正变得更明显。包括阿里巴巴、携程、工商银行、瓜子二手车、网联清算、中通等在内的互联网、传统企业公司,在 Dubbo 的使用与社区代码贡献上都有投入。Dubbo 社区正变得非常活跃和多样化。</p>
-<p>过去一年,Dubbo 社区项目总共发布 24 个版本,发展 Committer/PMC 27 人,其中有 20% 的贡献者是来自于阿里巴巴,80% 以上来自不同组织的开发者或爱好者。</p>
-<p>Dubbo 社区组织了超过 10 场线下 meetup 活动,基本覆盖了国内开发者聚集的城市。通过线下或线上直播活动,分享超过 100 个 topic 的演讲,深度讲解 Dubbo 社区最新动态、功能模块开发和近期规划等。主题演讲大多是社区采集方式,由 Dubbo 的深度企业分享实践经验,其中典型的代表包括携程、工商银行、考拉、信用算力等。</p>
-<p>从 GitHub 统计数据来看,Dubbo Star 数取得新的里程碑,已超过 3 万,相比重启开源时增长了近 5 倍;贡献者由最初的几十个增长到现在的 300 多个,而这其中有 60 多人已经被提名为 committer,不论是贡献者数量还是 committer 比例都得到很大的提升;Dubbo Java 发布的有 65 个。</p>
-<p>上述主要是对 Dubbo Java 项目社区发展的总结,下面将介绍 Dubbo Java 产品方面的进展。</p>
-<h3 id="dubbo-java-迭代目前主要维护-3-个大版本">Dubbo Java 迭代,目前主要维护 3 个大版本</h3>
-<p>当前社区维护的 Dubbo Java 大版本主要有 3 个,分别是 2.5.x、2.6.x 和 2.7.x。</p>
-<ul>
-<li>2.7.x 是社区的主要开发版本,在过去的一年共发布了 8 个版本(2.7.0 - 2.7.7),每个版本都有一些值得关注的特性或功能升级,涵盖从编程模型、服务治理、性能到协议的多个方面的增强;</li>
-<li>2.6.x 版本则定位为 bugfix 版本,过去一年共发布了 3 个版本,主要以修复问题和安全漏洞为主,并没有增加太多新的 feature;</li>
-<li>2.5.x 版本从 2019 年初开始已宣布 EOF,只做安全修复;而到了下半年已经完全停止了维护。</li>
-</ul>
-<p>下面通过一个简要分层模块图,回顾过去一段时间 Dubbo 的技术架构演进,从编程模型、服务治理、传输协议、性能优化等角度切入:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/10years/dubbo-layer.png" alt=""></p>
-<p>以上很多功能都已被各大厂商落地,用于解决具体的业务问题。我们也期待,接下来这些厂商带来更多关于 Dubbo 实践经验的深度总结。</p>
-<h3 id="dubbo-go-发展的第五年正与-dubbo-齐头并进">Dubbo-go 发展的第五年,正与 Dubbo 齐头并进</h3>
-<p>除 Dubbo Java 之外,Dubbo 周边也发展出了很多优秀的子项目(子社区),其中包括 Dubbo-spring-boot-project、Dubbo-go 等,这里先着重介绍 Dubbo-go 子社区。</p>
-<p>Dubbo-go 项目最早由于雨在 2016 年 5 月构建,同年 9 月发布并开源,如下时间轴图清晰记录了 Dubbo-go 的前世今生。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/10years/dubbo-go-events.png" alt=""></p>
-<p>秉承 &ldquo;bridge the gap between Java and Go&rdquo; 天然使命的 Dubbo-go,已经进入第五个年头,也走出了自己独特的发展路径:</p>
-<ul>
-<li>当前的 v1.4.0 版本已对齐 2.6.x 版本,即将发布的版本将与 v2.7.x【对标 v2.7.5】对齐,而后将会发布对标 Dubbo 3.x 的 v1.6.0版本;</li>
-<li>独立维护从底层的 hessian2 协议库 Dubbo-go-hessian2、网络库 getty 到上层对标 Dubbo 的 Dubbo-go 的全套实现;</li>
-<li>独立的 TCP + Protobuf 和 gRPC + JSON 通信方案也已开发完成【将包含着在版本 v1.5.0 中】;</li>
-<li>已与 Dubbo/gRPC/<a href="https://mp.weixin.qq.com/s?__biz=MzA4ODg0NDkzOA==&amp;mid=2247487916&amp;idx=1&amp;sn=894316507590793285d0e15734db0bde&amp;scene=21#wechat_redirect">Spring Boot</a> 实现互联互通;</li>
-<li>通过接入 <a href="https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&amp;mid=2247488596&amp;idx=2&amp;sn=4d554d32fdd167b6b74fc792c78fb341&amp;scene=21#wechat_redirect">Opentracing</a> 和 Promethus,Dubbo-go 在可观测性等微服务方向的进行了自己独特的探索;</li>
-<li>已实现了基于 HTTPS 的<a href="https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&amp;mid=2247489539&amp;idx=3&amp;sn=379514cac71b91d57643e6f3d2701cdf&amp;scene=21#wechat_redirect">可信 RPC 调用</a>;</li>
-<li>已经实现了自己独特的<a href="https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&amp;mid=2247489465&amp;idx=3&amp;sn=514144ef1a217a50b9f5a640ca122ac8&amp;scene=21#wechat_redirect">把 Kubernetes 作为注册中心的微服务方案</a>;</li>
-</ul>
-<p>Dubbo-go 从最开始 Dubbo 的 Go 语言实现,已发展成为目前 Dubbo 多语言版本中功能最强大者,它的发展离不开背后强大的 Dubbo-go 社区。除了上述 Dubbo-go 的自身特性外,通过跨社区合作,取得了如下成绩:</p>
-<ul>
-<li>通过与 MOSN 社区合作,已经实现 Dubbo/Dubbo-go 应用可以零成本接入基于 MOSN 实现 Dubbo Mesh,实现微服务和云原生共存的 <strong>“双模微服务”</strong>;</li>
-<li>与 sentinel 社区合作,在 Dubbo/Dubbo-go 完整接入 sentinel 的降级和限流方案;</li>
-<li>与 Apollo 社区合作,在 Dubbo-go 中实现远程配置下发;</li>
-<li>与 Nacos 社区合作,实现基于 Nacos 的服务发现;</li>
-</ul>
-<p>Dubbo-go 社区 2020 年 Q2 主要目标有:</p>
-<ul>
-<li>发布完全对齐 Dubbo 2.7.x 的 v1.5.0 版本;</li>
-<li>发布对标 Dubbo 3.0 的 v1.6.0版本;</li>
-<li>在云原生方面继续自己的探索;</li>
-<li>继续与兄弟社区保持合作共进态势,扩大自身使用范围;</li>
-<li>生产实践上推进在阿里集团,以及更多厂家的落地。</li>
-</ul>
-<p>项目(包括子项目)目前已先后在携程、涂鸦智能和蚂蚁金服等公司生产落地。</p>
-<p>今年阿里集团完成 HSF 和 Dubbo 的融合后,项目也将在阿里集团双十一战场经受考验。</p>
-<h2 id="云原生-dubbo---dubbo-30">云原生 Dubbo - Dubbo 3.0</h2>
-<p>3.0 是下一代 Dubbo 架构的代号。一年前,最开始探索 Reactive Stream 之时,社区也曾有过对 Dubbo 3.0的广泛讨论。而这一次,在云原生大背景下,3.0 代表了更全面的 Dubbo 架构升级,涉及到下一代 RPC 协议、全新的服务治理模型和云原生基础设施适配等。</p>
-<p>阿里巴巴是参与 Dubbo 3.0 开发建设的主要力量之一,这款始于阿里的开源项目正重新回归阿里内部落地。</p>
-<p>去年开始,阿里巴巴就已经在逐步推动以 Dubbo 替换其内部的 HSF 框架的工作,通过将 Dubbo 与 HSF 两个框架融为一体,并在此基础上发展出适应云原生架构的 Dubbo 版本。Dubbo 重回阿里巴巴的落地是拥抱社区、拥抱云原生、拥抱标准化的一次很好的实践。</p>
-<p>阿里巴巴内部 Dubbo 3.0 的落地,对社区也是一个重大利好,这一方面有利于阿里巴巴将其在 HSF 上的丰富服务治理经验回馈输出到社区,另一方面也将直接推动 Dubbo 云原生架构的快速演进。除了阿里巴巴之外,包括斗鱼、工商银行、爱奇艺等厂商也都在参与下一代 Dubbo 3.0 的建设。</p>
-<p>下面列出了 Dubbo 3.0 中的三个重要方向,具体的 Roadmap 将在接下来文章中单独说明:</p>
-<ul>
-<li>下一代 RPC 协议。新协议将提供更丰富的如 Stream、Flow Control 等内置语义,同时将具有更好的扩展性、网关的友好性等;</li>
-<li>基于应用粒度的服务发现机制。在兼顾 Dubbo 面向接口的易用性与功能性的基础上,解决与 Kubernetes Native Service 适配问题,解决大规模集群下的地址推送性能瓶颈问题;</li>
-<li>适配云原生基础设施的解决方案。这涉及到 Dubbo 服务与基础设施生命周期对接、Kubernetes Native Service 适配、适应基础设施调度的服务治理规则、适配 Service Mesh 架构的解决方案等;</li>
-</ul>
-<p>接下来沿着这三个方面简要展开。</p>
-<h3 id="下一代-rpc-协议">下一代 RPC 协议</h3>
-<p>专注在协议自身来说,下一代的协议主要聚焦在 HTTP/2、Reactive Stream、Flow Control 等方面:</p>
-<ul>
-<li><strong>Reactive Stream:</strong> Reactive Stream 引入 RPC,带来更丰富的通信语义和 API 编程模型支持,如 Request-Stream、Bi-Stream 等;</li>
-<li><strong>HTTP/2:</strong> 微服务云原生场景下,基于 HTTP/2 构建的通信协议具有更好的通用性和穿透性;</li>
-<li><strong>Flow Control:</strong> 协议内置流控机制,支持类似 Reqctive Stream 的 Request (n) 流控机制。</li>
-</ul>
-<p>从解决的业务场景问题上来说,基于新的协议 Dubbo 在框架层面要支持智能决策的负载均衡算法、对 Mesh 和网关更友好、更容易提供多语言实现与互通等。</p>
-<ul>
-<li><strong>Mesh:</strong> 协议对穿透 Mesh 更友好,区分协议头 Metadata 与 RPC Payload,方便完成与 Mesh 的协作,包括流量控制机制、应用层配置协商等;</li>
-<li><strong>协议通用性:</strong> 兼顾通用性与性能,支持协议能在各种设备上运行;</li>
-<li><strong>多语言支持:</strong> 如通过支持 Protobuf 提供了更完善的 跨语言服务定义 与 序列化传输的支持。</li>
-</ul>
-<h3 id="应用级服务治理">应用级服务治理</h3>
-<p>面向接口一直以来都是 Dubbo 框架的优势。一方面它的易用性,为开发者屏蔽了远程调用的存在;另一方面面向接口的地址发现、服务治理带来了更强大的能力,使得整个 Dubbo 治理体系非常强大与灵活。</p>
-<p>既然面向接口有如此多的好处,那为什么我们还要探索面向应用的服务治理模式呢?</p>
-<p>听起来似乎有些矛盾。其实到底是面向接口,还是面向应用,只是从不同的角度看 Dubbo。我们所聊的“面向接口 -&gt; 面向应用”的改造,主要体现在服务注册、发现层面:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/10years/dubbo-triangle.png" alt=""></p>
-<p>而我们说的面向应用的新模型,主要对第 2 点,即注册中心的数据组织转变为 “面向应用/实例” 粒度。这为我们解决两个问题:</p>
-<ul>
-<li>在服务发现层面与 Kubernetes Service 等微服务模型对齐;</li>
-<li>服务发现的数据量将有一个量级的下降,从 “接口数 * 实例数 ”下降到 “应用数 * 实例数”。</li>
-</ul>
-<p>具体可以参见文章《<a href="https://mp.weixin.qq.com/s?__biz=MzU4NzU0MDIzOQ==&amp;mid=2247489653&amp;idx=1&amp;sn=445692c491f68aed3f649730d3d9ba96&amp;scene=21#wechat_redirect">Dubbo 迈出云原生重要一步 - 应用级服务发现解析</a>》,本系列文章后续也会有对这部分机制和实现的更深度解析。</p>
-<h3 id="云原生基础设施">云原生基础设施</h3>
-<p>云原生带来了底层基础设施,应用开发、部署和运维等全方位的变化:</p>
-<p><strong>基础设施</strong></p>
-<ul>
-<li>基础设施调度机制变化,带来运维(生命周期)、服务治理等方面的变化;</li>
-<li>服务发现能力下沉, Kubernetes 抽象了 Native Service Discovery。</li>
-</ul>
-<p><strong>Service Mesh - 云原生微服务解决方案</strong></p>
-<ul>
-<li>Mesh 为跨语言、sdk 升级等提供了解决方案,Dubbo sdk 要与 Mesh 协作,做到功能、协议、服务治理等多方便的适配;</li>
-<li>Mesh 尚未大规模铺开,且其更适合对流量管控更关注的应用,传统 SDK 的性能优势仍旧存在,两者混部迁移场景可能会长期存在。</li>
-</ul>
-<p>从应用场景上,Dubbo 可能的部署环境包括:</p>
-<ol>
-<li>不使用 Kubernetes Native Service,Kubernetes 只作为容器编排调度设施,继续使用 Dubbo 自建的服务注册、发现机制;</li>
-<li>复用 Kubernetes Native Service,Dubbo 不再关心服务注册,Dubbo Client 负责服务发现与流量分配;</li>
-<li>Dubbo sdk 往 Mesh 迁移,一方面要做到适应 Mesh 架构,成为 Mesh 体系下的 RPC 编程和通信方案;另一方面要做到 Dubbo 与 Mesh 架构长期共存,互相打通服务发现和治理体系;</li>
-<li>Kubernetes 上与云下混合部署的平滑迁移支持,包括服务发现的统一与网络通信方案的打通。</li>
-</ol>
-<p>从 Dubbo 功能划分上,将着重从以下方面提供对云原生基础设施的支持:</p>
-<ul>
-<li><strong>生命周期</strong>:Dubbo 与 Kubernetes 调度机制绑定,保持服务生命周期与 Pod 容器等生命周期的自动对齐;</li>
-<li><strong>治理规则</strong>:服务治理规则在规则体、规则格式方面进行优化,如规则体以 YAML 描述、取消过滤规则对 IP 的直接依赖,定义规则特有的 CRD 资源等;</li>
-<li><strong>服务发现</strong>:支持 K8S Native Service 的服务发现,包括 DNS、API-Server,支持 xDS 的服务发现;</li>
-<li><strong>Mesh 架构协作</strong>:构建下一代的基于 HTTP/2的通信协议,支持 xDS 的标准化的数据下发。</li>
-</ul>
-<p>新一代的 RPC 协议和应用级服务发现模型将会是这一部分的前置基础。</p>
-<h1 id="总结与展望">总结与展望</h1>
-<p>作为系列文章开篇,我们在这里对 Dubbo 过去一年的成绩做了简要的总结与回顾,包括 Dubbo 社区、产品迭代的发展。接下来我们会看到更多来自深度 Dubbo 用户的落地经验分享,Dubbo-go 子社区的发展故事等。更重要的,我们也对下一代云原生 Dubbo - Dubbo 3.0 做了展望,后续关于 Dubbo 3.0 Roadmap、方案设计与进展解析等也将在此系列中发布。</p></description></item><item><title>Blog: 记一次在 mosn 对 dubbo、dubbo-go-hessian2 的性能优化</title><link>https://dubbo.apache.org/zh/blog/2021/01/14/%E8%AE%B0%E4%B8%80%E6%AC%A1%E5%9C%A8-mosn-%E5%AF%B9-dubbodubbo-go-hessian2-%E7%9A%84%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/</link><pubDate>Thu, 14 Jan [...]
-<h3 id="背景">背景</h3>
-<p>蚂蚁内部对 Service Mesh 的稳定性和性能要求是比较高的,内部 mosn 广泛用于生产环境。在云上和开源社区,RPC 领域 dubbo 和 spring cloud 同样广泛用于生产环境,我们在 mosn 基础上,支持了 dubbo 和 spring cloud 流量代理。我们发现在支持 dubbo 协议过程中,经过 Mesh 流量代理后,性能有非常大的性能损耗,在大商户落地 Mesh 中也对性能有较高要求,因此本文会重点描述在基于 Go 语言库 <a href="https://github.com/apache/dubbo-go-hessian2">dubbo-go-hessian2</a> 、dubbo 协议中对 <a href="https://github.com/mosn/mosn">mosn</a> 所做的性能优化。</p>
-<h3 id="性能优化概述">性能优化概述</h3>
-<p>根据实际业务部署场景,并没有选用高性能机器,使用普通 linux 机器,配置和压测参数如下:</p>
-<ul>
-<li>Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz 4 核 16G 。</li>
-<li>pod 配置 <code>2c、1g</code>,JVM 参数 <code>-server -Xms1024m -Xmx1024m</code>。</li>
-<li>网络延迟 0.23 ms, 2 台 linux 机器,分别部署 server + mosn, 压测程序 <a href="https://github.com/zonghaishang/rpc-performance">rpc-perfomance</a>。</li>
-</ul>
-<p>经过 3 轮性能优化后,使用优化版本 mosn 将会获得以下性能收益(框架随机 512 和 1k 字节压测):</p>
-<ul>
-<li>512 字节数据:mosn + dubbo 服务调用 TPS 整体提升 55-82.8%,RT 降低 45% 左右,内存占用 40M,</li>
-<li>1k 数据:mosn + dubbo 服务调用 TPS 整体提升 51.1-69.3%,RT 降低 41% 左右, 内存占用 41M。</li>
+<li>512 字节数据:mosn + dubbo 服务调用 TPS 整体提升 55-82.8%,RT 降低 45% 左右,内存占用 40M,</li>
+<li>1k 数据:mosn + dubbo 服务调用 TPS 整体提升 51.1-69.3%,RT 降低 41% 左右, 内存占用 41M。</li>
</ul>
<h3 id="性能优化工具-pprof">性能优化工具 pprof</h3>
<p>磨刀不误砍柴工,在性能优化前首先要找到性能卡点,找到性能卡点后,另一个难点就是如何用高效代码优化替代 slow code。因为蚂蚁 Service Mesh 是基于 go 语言实现的,我们首选 go 自带的 pprof 性能工具,我们简要介绍这个工具如何使用。如果我们 go 库自带 http.Server 时并且在 main 头部导入<code>import _ &quot;net/http/pprof&quot;</code>,go 会帮我们挂载对应的 handler , 详细可以参考 <a href="https://pkg.go.dev/net/http/pprof?tab=doc">godoc</a> 。</p>
@@ -5078,95 +3373,7 @@ HTTP 协议与 dubbo 协议之间的映射关系。</p>
<p>有任何 dubbo-go 相关的问题,可以加我们的钉钉群 23331795 询问探讨,我们一定第一时间给出反馈。</p>
<blockquote>
<p>本文作者 潘天颖,Github ID @pantianying,开源爱好者,就职于涂鸦智能。</p>
-</blockquote></description></item><item><title>Blog: dubbo-go 1.4.0</title><link>https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-1.4.0/</link><pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-1.4.0/</guid><description>
-<p>得益于社区活跃的支持,2020 年 3 月 25 日 我们发布了一个让人兴奋的版本——dubbo-go v1.4.0。除了继续支持已有的 Dubbo 的一些特性外, dubbo-go 开始了一些自己的创新尝试。</p>
-<p>这个版本,最大的意义在于,做了一些支持云原生的准备工作。比如说,社区在探讨了很久的 k8s 落地之后,终于拿出来了使用 k8s 作为注册中心的解决方案。</p>
-<p>其次一个比较大的改进是&ndash;我们在可观测性上也迈出了重要的一步。在这之前,dubbo-go只提供了日志这么一个单一手段,内部的信息比较不透明,这个版本将有很大的改善。</p>
-<p>最后一个令人心动的改进是,我们支持了 REST 协议。</p>
-<h2 id="1-k8s-注册中心">1. K8s 注册中心</h2>
-<p>dubbo-go 注册中心的本质为K/V型的数据存储。当前版本实现了以 Endpoint 为维度在 k8s API Server 进行服务注册和发现的方案【下文简称 Endpoint 方案】,架构图如下。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.4/k8s.png" alt=""></p>
-<p>Endpoint 方案,首先将每个 dubbo-go 进程自身服务信息序列化后,通过 Kubernetes 提供的 Patch 的接口写入在自身 Pod 对象的 Annotation 中。其次,通过 Kubernetes 的 Watch 接口观察集群中本 Namespace 内带有某些固定lable [见上图] Pod 的Annotation 信息的更新,处理服务健康检查、服务上下线等情况并实时更新本地缓存。整体流程仅使用 Kubernetes 原生 API 完成将 Kubernetes 作为注册中心的功能特性。</p>
-<p>这个方案非常简洁,不需要实现额外的第三方模块,也不需要对 Dubbo 业务作出改动,仅仅把 k8s 当做部署平台,依赖其容器管理能力,没有使用其 label selector 和 service 等服务治理特性。如果站在 k8s Operator 的角度来看,Operator 方案的优点即 Endpoint 方案的缺点,Endpoint 方案无法使用 k8s 的健康检查能力,亦没有使用 k8s service 的事件监听能力,每个 consumer 冗余监听一些不必要监听的事件,当 Endpoint 过多时会加大 API Server 的网络压力。</p>
-<p>目前 dubbo-go 社区其实已经有了 operator 版本注册中心的技术方案, 后续版本【计划版本是 v1.6】的 dubbo-go 会给出其实现。相比当前实现,operator 方案开发和线上维护成本当然上升很多。二者如同硬币的两面,社区会让两种方式会共存,以满足不同 level 的使用者。</p>
-<p>注意: 因 Pod 被调度而 IP 发生变化时,当前版本的 configuration 以及 router config 模块暂时无法动态更新。这有待于我们进一步解决。</p>
-<p>参考范例<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>.</p>
-<h2 id="2-tracing-和-metric">2. tracing 和 metric</h2>
-<p>可观测性是微服务重要的一环,也是我们1.4版本着力支持的部分。在1.4版本中,我们主要在 tracing 和 metric 两个方向提供了支持。</p>
-<p>为了支持 tracing 和 metric,关键的一点是支持context在整个调用过程中传递。为此我们解决了context跨端传递的问题。目前用户可以在接口中声明 context 并且设置值,dubbo-go 在底层完成 context 内容从 client 传递到 server 的任务。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.4/context.png" alt=""></p>
-<p>在 metric 方面,dubbo-go 开始支持 Prometheus 采集数据了。目前支持 Prometheus中 的 Histogram 和 Summary。用户也可以通过扩展 Reporter 接口来自定义数据采集。</p>
-<p>在 tracing 方面,目前 dubbo-go 的设计是采用 opentracing 作为统一的 API,在该 API 的基础上,通过在 client 和 server 之中传递 context,从而将整个链路串起来。用户可以采用任何支持 opentracing API 的监控框架来作为实现,例如 zipkin,jaeger 等。</p>
-<h2 id="3-rest协议支持">3. rest协议支持</h2>
-<p>Dubbo 生态的应用与其他生态的应用互联互通,一直是 dubbo-go 社区追求的目标。dubbo-go v1.3 版本已经实现了 dubbo-go 与 grpc 生态应用的互联互通,若想与其他生态如 Spring 生态互联互通,借助 rest 协议无疑是一个很好的技术手段。</p>
-<p>Rest 协议是一个很强大并且社区呼声很高的特性,它能够有效解决 open API,前端通信,异构系统通信等问题。比如,如果你的公司里面有一些陈年代码是通过 http 接口来提供服务的,那么使用我们的 rest 协议就可以无缝集成了。</p>
-<p>通过在 dubbo-go 中发布 RESTful 的接口的应用可以调用任意的 RESTful 的接口,也可以被任何客户端以 http 的形式调用,框架图如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.4/rest.png" alt=""></p>
-<p>在设计过程中,考虑到不同的公司内部使用的 web 框架并不相同,所以我们允许用户扩展自己 rest server ( web 框架在 dubbo-go的封装)的实现,当然,与 rest server 相关的,诸如 filter 等,都可以在自己的 rest server 实现内部扩展。</p>
-<h2 id="4-路由功能增强">4. 路由功能增强</h2>
-<p>路由规则在发起一次 RPC 调用前起到过滤目标服务器地址的作用,过滤后的地址列表,将作为消费端最终发起 RPC 调用的备选地址。v1.4 版本的 dubbo-go 实现了 Condition Router 和 Health Instance First Router,将在后面版本中陆续给出诸如 Tag Router 等剩余 Router 的实现。</p>
-<h3 id="41-条件路由">4.1 条件路由</h3>
-<p>条件路由,是 dubbo-go 中第一个支持的路由规则,允许用户通过配置文件及远端配置中心管理路由规则。</p>
-<p>与之相似的一个概念是 dubbo-go 里面的 group 概念,但是条件路由提供了更加细粒度的控制手段和更加丰富的表达语义。比较典型的使用场景是黑白名单设置,灰度以及测试等。</p>
-<p>参考范例<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>。</p>
-<h3 id="42-健康实例优先路由">4.2 健康实例优先路由</h3>
-<p>在 RPC 调用中,我们希望尽可能地将请求命中到那些处理能力快、处于健康状态的实例,该路由的功能就是通过某种策略断定某个实例不健康,并将其排除在候选调用列表,优先调用那些健康的实例。这里的&quot;健康&quot;可以是我们自己定义的状态,默认实现即当错误比例到达某一个阈值时或者请求活跃数大于上限则认为其不健康,允许用户扩展健康检测策略。</p>
-<p>在我们服务治理里面,核心的问题其实就在于如何判断一个实例是否可用。无论是负载均衡、</p>
-<p>熔断还是限流,都是对这个问题的解答。所以,这个 feature 是一个很好的尝试。因为我们接下来计划提供的特性,基于规则的限流以及动态限流,都是要解决“如何断定一个实例是否可用”这么一个问题。</p>
-<p>所以欢迎大家使用这个特性,并向社区反馈各自设定的健康指标。这对我们接下来的工作会有很大的帮助。</p>
-<h2 id="5-hessian-协议增强">5. hessian 协议增强</h2>
-<p>相较于 dubbo 的 Java 语言以及其他多语言版本,dubbo-go 社区比较自豪的地方之一就是:无论底层网络引擎还是原生使用的 hessian2 协议,以及整体服务治理框架,都由 dubbo-go 社区从零开发并维护。v1.4 版本的 dubbo-go 对 hessian2 协议又带来了诸多新 feature。</p>
-<h3 id="51-支持-dubbo-协议的-attachments">5.1 支持 dubbo 协议的 attachments</h3>
-<p>在 dubbo-go中,attachments 机制用于传递业务参数之外的附加信息,是在客户端和服务端之间传递非业务参数信息的重要方式。</p>
-<p>hessian 编码协议将之编码在 body 内容的后面进行传输,dubbo-go-hessian2 之前并不支持读/写 attachments,在多个使用方【如蚂蚁金服】的要求下,dubbo-go-hessian2 以兼容已有的使用方式为前提,支持了 attachments 的读/写。</p>
-<p>Request 和 Response 的 struct 中定义了 attachments 的 map,当需要使用 attachments,需要由使用方构造这两种类型的参数或者返回对象。否则,将无法在hessian的传输流中获取和写入attachments。</p>
-<p>另外,利用 dubbo-go 调用链中传输 context 的功能,用户已经可以在服务方法中通过 context 添加 attachments了。</p>
-<h3 id="52-支持忽略非注册-pojo-的解析方式">5.2 支持忽略非注册 pojo 的解析方式</h3>
-<p>由于 hessian 编码协议与 Java 的类型高度耦合,在 golang 的实现中会相对比较麻烦,需要有指明的对应类型。dubbo-go-hessian2 的实现方式是:定义 POJO 接口,要求实现 JavaClassName 方法来供程序获取 Java 对应的类名。这导致了接收到包含未注册类的请求时,将会无法解析而报错,这个问题以前是无法解决的。</p>
-<p>但是,有一些使用场景如网关或者 service mesh 的 sidecar,需要在不关心 Java 类的具体定义的情况下,像 http读取 header 信息一样仅仅读取 dubbo 请求的附加信息,将 dubbo/dubbo-go 请求转发。通过该 feature,网关/sidecar 并不关注请求的具体内容,可以在解析请求的数据流时跳过无法解析的具体类型,直接读取 attachments 的内容。</p>
-<p>该实现通过在 Decoder 中添加的 skip 字段,对每一个 object 做出特殊处理。</p>
-<h3 id="53-支持-javamathbiginteger-和-javamathbigdecimal">5.3 支持 java.math.BigInteger 和 java.math.BigDecimal</h3>
-<p>在 Java 服务中,java.math.BigInteger 和 java.math.BigDecimal 是被频繁使用的数字类型,hessian 库将它们映射为 github.com/dubbogo/gost/math/big 下的对应类型。</p>
-<h3 id="54-支持-继承-和忽略冗余字段">5.4 支持 ‘继承’ 和忽略冗余字段</h3>
-<p>由于 go 没有继承的概念,所以在之前的版本,Java 父类的字段不被 dubbo-go-hessian2 所支持。新版本中,dubbo-go-hessian2 将Java来自父类的字段用匿名结构体对应,如:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span><span style="color:#268bd2">type</span> Dog <span style="color:#268bd2">struct</span> {
-</span></span><span style="display:flex;"><span> Animal
-</span></span><span style="display:flex;"><span> Gender <span style="color:#dc322f">string</span>
-</span></span><span style="display:flex;"><span> DogName <span style="color:#dc322f">string</span> <span style="color:#2aa198">`hessian:&#34;-&#34;`</span>
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><p>同时,就像 json 编码中通过 <code>immediately</code> 可以在序列化中忽略该字段,同理,通过 <code>hessian:&quot;-&quot;</code> 用户也可以让冗余字段不参与 hessian 序列化。</p>
-<p>目前,上述四个特性已被某 Go 版本的 sidecar 集成到其商业版本中提供商业服务。</p>
-<h2 id="6-nacos-配置中心">6. Nacos 配置中心</h2>
-<p>配置中心是现代微服务架构里面的核心组件,现在 dubbo-go 提供了对配置中心的支持。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.4/config-center.png" alt=""></p>
-<p>Nacos 作为一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台,在该版本终于作为配置中心而得到了支持。</p>
-<p>参考范例<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>.</p>
-<h2 id="7-接口级签名认证">7. 接口级签名认证</h2>
-<p>Dubbo 鉴权认证是为了避免敏感接口被匿名用户调用而在 SDK 层面提供的额外保障。用户可以在接口级别进行定义是否允许匿名调用,并对调用方进行验签操作,对于验签不通过的消费端,禁止调用。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/1.4/acl.png" alt=""></p>
-<p>如上图,总体实现基于 AK/SK 机制,应用通过 HTTPS 通信,启动时向鉴权服务拉取,定期更新。且允许用户自定义获取 AK/SK 的源,在 RPC 层面保障安全性。</p>
-<h2 id="8-回顾与展望">8. 回顾与展望</h2>
-<p>目前 dubbo-go 已经到了一个比较稳定成熟的状态。在接下来的版本里面,我们将集中精力在云原生上。下一个版本,我们将首先实现应用维度的服务注册,这是一个和现有注册模型完全不同的新的注册模型。也是我们朝着云原生努力的一个关键版本。</p>
-<p>在可观测性上,我们计划在整个 dubbo-go 的框架内,引入更多的埋点,收集更加多的内部状态。这需要实际生产环境用户的使用反馈,从而知道该如何埋点,收集何种数据。</p>
-<p>在限流和熔断上,可以进一步扩展。当下的限流算法,是一种静态的算法&ndash;限流参数并没有实时根据当前服务器的状态来推断是否应该限流,它可能仅仅是用户的经验值。其缺点在于,用户难以把握应该如何配置,例如 TPS 究竟应该设置在多大。所以计划引入一种基于规则的限流和熔断。这种基于规则的限流和熔断,将允许用户设置一些系统状态的状态,如 CPU 使用率,磁盘 IO,网络 IO 等。当系统状态符合用户规则时,将触发熔断。</p>
-<p>目前这些规划的 任务清单<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>,都已经放入在 dubbo-go 项目的 issue 里面,欢迎感兴趣的朋友认领参与开发。dubbo-go 社区在 <strong>钉钉群 23331795</strong> 欢迎你的加入。</p>
-<div class="footnotes" role="doc-endnotes">
-<hr>
-<ol>
-<li id="fn:1">
-<p><a href="https://github.com/apache/dubbo-samples/tree/master/golang/registry/kubernetes">https://github.com/apache/dubbo-samples/tree/master/golang/registry/kubernetes</a>&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-<li id="fn:2">
-<p><a href="https://github.com/dubbogo/dubbo-samples/tree/master/golang/router/condition">https://github.com/dubbogo/dubbo-samples/tree/master/golang/router/condition</a>&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-<li id="fn:3">
-<p><a href="https://github.com/dubbogo/dubbo-samples/tree/master/golang/configcenter/nacos">https://github.com/dubbogo/dubbo-samples/tree/master/golang/configcenter/nacos</a>&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-<li id="fn:4">
-<p><a href="https://github.com/apache/dubbo-go/milestone/1">https://github.com/apache/dubbo-go/milestone/1</a>&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
-</li>
-</ol>
-</div></description></item><item><title>Blog: dubbo-go 中如何实现路由规则功能</title><link>https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99%E5%8A%9F%E8%83%BD/</link><pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99%E5%8A%9F%E8%83%BD/</guid><description>
+</blockquote></description></item><item><title>Blog: dubbo-go 中如何实现路由规则功能</title><link>https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99%E5%8A%9F%E8%83%BD/</link><pubDate>Tue, 12 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/12/dubbo-go-%E4%B8%AD%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0%E8%B7%AF%E7%94%B1%E8%A7%84%E5%88%99%E5%8A%9F%E8%83%BD/</guid><description>
<h2 id="lets-go">Let‘s Go!</h2>
<p>最近在 Apache/dubbo-go(以下简称 dubbo-go )社区中,路由规则突然成了呼声最高的功能之一。那到底为什么需要路由规则?</p>
<p>先路由规则需要实现的功能:</p>
@@ -5813,117 +4020,7 @@ HTTP 协议与 dubbo 协议之间的映射关系。</p>
<p>CPU 性能换成比较高的配置如 Intel Core i9 2.9GHz,qps 可以到达 2 万左右。</p>
<p>我们后面会对 Hessian2 库和 Getty 库进行持续性能优化,以给广大使用者节约资源。</p>
<h4 id="采访嘉宾介绍">采访嘉宾介绍</h4>
-<p><strong>何鑫铭</strong>,携程基础中台研发部技术专家,dubbo-go 主要作者。目前专注于 Golang &amp; Java、中台架构、中间件与区块链等技术。</p></description></item><item><title>Blog: Dubbo Go 回顾与展望</title><link>https://dubbo.apache.org/zh/blog/2021/01/11/dubbo-go-%E5%9B%9E%E9%A1%BE%E4%B8%8E%E5%B1%95%E6%9C%9B/</link><pubDate>Mon, 11 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/11/dubbo-go-%E5%9B%9E%E9%A1%BE%E4%B8%8E%E5%B1%95%E6%9C%9B/</guid><description>
-<p>Dubbo 是阿里于 2011 年开源的一款高性能 RPC 框架,在 Java 生态中具有不小的影响力。2019年5月21日,Dubbo 从 Apache 软件基金会毕业,成为 Apache 顶级项目。目前,毕业后的 Dubbo 项目的生态中已经正式官宣引入了 Go 语言,发布了 Dubbogo 项目。本文即是对 Dubbogo 这一项目的完整回顾与真实展望。由蚂蚁金服中间件技术专家于雨和携程基础中台研发部工程师方银城合作完成。</p>
-<h2 id="一-dubbogo-整体框架">一 Dubbogo 整体框架</h2>
-<p>先介绍一下 dubbogo 的缘起,先看下面这幅图:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p1.jpeg" alt=""></p>
-<p>最右边的 service0 和 service1 是 Dubbo 的服务端,左边的 gateway 是网关,HTTP 请求从网关进来,必须转化成 Dubbo 的协议才能到后面的服务,所以中间加了一层proxy 完成相关功能。基本上每个 service 都需要一个 proxy 去转化协议和请求,所以这个时候 dubbogo 的项目需求就出来了。最初的实现就是以 Dubbo 的 Go 版本作为目标,实现与 Java 版本 Dubbo 的互调。</p>
-<h3 id="dubbogo-目标">Dubbogo 目标</h3>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p2.jpeg" alt=""></p>
-<p>然后这个图是 dubbogo 的现在达到的目标:用一份 Go 客户端的代码能够在没有任何代理和其他中间件的情况下直接调用其他语言端,主要是Java 服务端的服务和 Go 服务端的服务,而 Go 作为服务端的时候,Java 客户端也可以直接调用 Go 服务端的服务。</p>
-<h3 id="dubbogo-发展历程">Dubbogo 发展历程</h3>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p3.jpeg" alt=""></p>
-<p>下面介绍 dubbogo 的整个发展历程,在2016年8月份的时候是于雨构建了 dubbogo 项目,那个时候的 dubbogo 只支持通过 jsonrpc 2.0 协议 进行 HTTP 通信,到 2018 年2 月份支持 hessian2 协议进行 TCP 通信,到 2018 年 5 月项目被 dubbo 官方关注后开始从零重构,于雨 2018 年 8 月份初步重构出一个 0.1 版本。由于我们携程这边的一些需求,2019 年初我和我的同事何鑫铭也开始参与了 dubbogo 项目的重构,同时和于雨一起开始组建社区,在 2019 年 6 月份的时候 dubbogo1.0 版本上线,这个版本的重构是参照了 Dubbo 的整体设计,主体功能都在这个版本里面有呈现,同期该项目进入了 Apache 组织。今年 8 月份由社区同学望哥负责的 Dubbo-go-hessian2 的项目也进了 Apache 组织。到目前为止我们社区有些工作已经和 dubbo 齐头并进,例如对 grpc 和 k8s 的支持,相关代码正在 review 中,年底
发布的 v1.3 版本会包含 [...]
-<h3 id="dubbogo-整体设计">Dubbogo 整体设计</h3>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p4.jpeg" alt=""></p>
-<p>这个图大家是不是看着很熟悉,是 Dubbo 的整个分层设计图,但是少了 Dubbo 里面的很多东西,因为我们是借鉴了 Dubbo 的分层设计和易拓展性的思想,但是由于 Go 语言和 Java 语言的本质差别决定了我们项目设计不可能完全照搬它,有一些东西就给它简化了,特别是协议层这一块。比如说 Dubbo 里面 SPI 的拓展,在 Go 里面我们是借用了 Go 的非侵入式接口的方式去实现的,由于 Go 禁止 package 循环引用,所以 dubbogo 在代码的分包分层上面也是有严格的规定,这正好跟它的易拓展性的特性结合了起来。</p>
-<p>关于代理部分,因为 Java 有动态代理,Go 的反射就没有 Java 的反射那么强大,所以我们这边代理的实现方式也跟它是不一样的。</p>
-<h3 id="dubbogo-能力大图">Dubbogo 能力大图</h3>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p5.jpeg" alt=""></p>
-<p>上面的图是我们当前 dubbogo 项目实现的能力大图,最上层是当前实现的一些注册中心有 zk、etcd、nacos、consul,现在与 k8s 关联的功能正在开发中。配置中心目前是支持 Apollo 和 zookeeper。左边是消费端,消费端这边实现的是有 cluster 的,策略上基本上实现了 dubbo 支持的所有策略。然后还有负载均衡策略,fillter 主要是有一个 tps 的限流还有泛化调用,这两个后面会讲到。编码层现在就是 jsonrpc 2.0 和 hessian2,protobuf v3 正在加紧 review 中。目前社区正在开发中的支持,包括 trace、grpc、k8s注册中心,以及对 restful 的支持。</p>
-<h3 id="关键项目">关键项目</h3>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p6.jpeg" alt=""></p>
-<p>目前 dubbogo 项目整体由 4 个组成部分。第一个是 getty,一个异步网络 IO 库,是实现 tcp 通信协议最坚实的基础;第二个是 dubbo-go-hessian2,这个是与当前 java hessian2 高度兼容的项目;第三个是 gost,是 dubbogo 的 基础库;最后是 dubbogo 的示例库,目前已经迁移到 <a href="https://github.com/apache/dubbo-samples">https://github.com/apache/dubbo-samples</a>,和 Java 示例合并了。这些都是当前 dubbogo 主要的组成项目。</p>
-<h2 id="二-协议实现">二 协议实现</h2>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p7.jpeg" alt=""></p>
-<p>接下来讲一些具体的实现和部分的功能,上图是 dubbo-go-hessian2 实现,列出来是一些主要的功能列表,第一个是 Java 的 JDK Exceptions 的实现,里面实现了 40 多种的 Java JDK 主要的异常,可以与 Java 的 hessian2 版本互相解编码的支持,支持自动扩展自己实现 exceptions,或者是不常见的 Exceptions;第二个是支持字段名的联名,Go 可序列化的字段是大写字母开头,但是 Java 默认是小写开头的,所以有编码的字段名不一致的问题,这就有别名识别和支持自定义命名。</p>
-<p>go-hessian2 还支持 Java 的 bigdecimal、Date、Time、基本类型的包装类型、Generic Invocation、Dubbo Attachements,甚至支持 emoji 表情。</p>
-<p>go-hessian2 里面如果要解码和编码用户自定义类型,用户需要自己把它注册进去,前提是支持 go-hessian2 的 POJO interface,才能跟 JAVA 对应类互相解编码。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p8.jpeg" alt=""></p>
-<p>上面是 go-hessian2 的类型对应表,需要特别点出的是 int,go 这边的 int 类型在不同字长系统下是有不同的大小,可能是 32 位也可能 64位的,而 Java 的 int 是 32 位的,所以我们以 go 语言的 int32 类型对应 Java int 类型。</p>
-<p>刚才提到了 Java 的 Class 和 go struct 的对应。上图有一个 go-hessian2 的 POJO 接口定义,每个 Java class 对应到 go struct,则 struct 需要给出 Java ClassName。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p9.jpeg" alt=""></p>
-<p>你也可以加 hessian 标签,解析的时候会把这个字段名用别名写进去,实现自定义 fieldName。默认情况下,go-hessian2 中会自动把 struct field 首字母变成小写作为其 fieldName。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p10.jpeg" alt=""></p>
-<p>泛化引用,是 dubbogo 里面比较重要的功能。社区一位同学需要基于 dubbogo 实现网关,收集外部的请求,然后通过泛化引用的形式调用其他 Dubbo 服务,最后自己动手把它实现了。使用时,首先需要在项目里内置一个 GenericService 服务,调用Load,然后就像正常的调用服务一样直接调用,跟 Java 是类似的,Go 客户端可以不知道 Java 的接口定义和类定义,把方法名、参数类型、参数数组以一个 map 的形式传输到 Java 服务端,Java 服务端收到请求后进行识别,把它转换成 POJO 类。</p>
-<p>以上是 go-hessian2 一些细节。上文讲到的泛化引用,是把网关作为整个内网 Dubbo 服务的公共消费端,使用的时候只需要知道请求的方法、参数类别,然后就能够调用 Dubbo 的服务。后面主要分享三部分内容:首先是网络引擎、底层网络库这块;其次是服务治理方面的内容,其中包含以 k8s 作为注册中心的一个初步的解决方案;第三部分是互联互通,主要是和 grpc 打通。最后给出一个展望,包含 dubbogo 社区明年的工作内容。</p>
-<h2 id="三-网络引擎">三 网络引擎</h2>
-<p>dubbogo 的网络引擎里面分为三层, 如下图所示:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p11.jpeg" alt=""></p>
-<p>最底层 streaming 处理二进制流,第二层 codec层,进行协议的序列化和反序列化,第三层是 Eventlistener,提供应用使用接口。streaming 层能支持 websocket、TCP、UDP 三种网络通讯协议,这层具有一定的灵活性,今年年初上海有一个同学今年把 KCP 也加进去了,当时说要开源贡献出来,我还在期待中。codec 层可以适用不同协议,用户自定义即可。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p12.jpeg" alt=""></p>
-<p>EventListener 对上层暴露了 4 个回调接口。第一个是 OnOpen,网络连接初建成功时被调用,应用层如果判定其为正常连接,则可以把连接 session 存储下来,如果用户判断当前连接过多则返回一个非空的 error,则这个连接会被 dubbogo 关闭。其次是 OnError 事件,当网络连接出错,就会回调到这个接口,在 dubbogo 关闭这个连接之前允许用户做相应处理,如把网络连接 session 从应用层的 session 池中删除。第三个是 OnCron,处理定时任务,如心跳,dubbogo 针对 websocket 协议在底层直接把心跳热任务处理了,针对 tcp 和 udp 协议需要用户在这个回调函数中自己实现。第四个接口是 OnMessage,用作处理一个完整的网络包。可以看到整个回调接口风格跟 websocket 的接口很像。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p13.jpeg" alt=""></p>
-<h3 id="协程池">协程池</h3>
-<p>dubbogo 的 goroutine pool 里有 worker channel 【数量为 M】和逻辑处理 goroutine 【数量为 N】和网络任务【网络包】三种角色,网络解包后把把包按照某种规则放入某个 worker pool,然后逻辑处理 goroutine 从 channel 中读取数据包并执行逻辑处理,其目的是是为了把网络 I/O 与逻辑处理分开。不同的 goroutine pool 设计中,有的 N 大小会变化,有的不变,分别可称之为可伸缩 goroutine pool 和不可伸缩 goroutine pool,可伸缩 goroutine pool 可以对机器资源的使用不可预计。dubbogo 采用了不可伸缩 goroutine pool,其考量是限定其网络资源使用的上限。</p>
-<p>另外,dubbogo 的 goroutine pool 不考虑收包后的处理顺序。譬如,dubbogo 服务端收到了 A 和 B 两个网络包,dubbogo 有可能先处理网络包 B,后处理网络包 A。如果客户端的每次请求都是独立的,没有前后顺序关系,则带有不考虑网络包处理顺序是没有问题的。如果有强顺序要求,譬如上层用户关注 A 和 B 请求处理的前后顺序,则可以把 A 和 B 两个请求合并为一个请求,或者把 dubbogo 的 goroutine pool 特性关闭。</p>
-<p>一般情况下,不建议大家自己写 goroutine pool,因为 Go 语言对 goroutine 资源的管理已经非常先进,比如释放一个协程,Go 不会马上销毁掉相关的资源,一旦有创建 goroutine 的需要,马上就可复用这个成本是很低的。什么情况下使用 Goroutine Pool 呢?个人觉得像网络库逻辑处理这类场景下执行同样类型任务场景下确定 goroutine 会被迅速重复使用时可以尝试使用,但是怎么用好还是需要仔细考量,即需要仔细考量 M 与 N 的比例关系。</p>
-<p>假设处理某种网络任务请求,有的请求1秒就处理完了,有的可能10毫秒处理完了,设置 M 与 N 比例为 1:1,这样 1 对 1 造成的后果可能是饥饿,就是有一些队列处理的很快,有的处理很慢,整体负载不均衡,这种情况下就不推荐你用协成池了。</p>
-<p>还有一个比例模型是是1:N的,一写多读,比如说所有的请求都交给一个队列,所有逻辑处理 goroutine pool 都消费这个队列,造成的结果是什么呢?因为你只有一个生产者,那你就只有一个队列,多个消费者消费这一个队列,造成的结果是什么呢?因为 go channel 的低效率【整体使用一个 mutex lock】造成消费者 goroutine hang 在锁竞争上,当然其网络包处理顺序更无从保证。</p>
-<p>比较均衡的效果就是 M 和 N 都大于 1,dubbogo 的的 goroutine pool 模型中 M 和 N 的取值可以自行配置,其效果是每个 channel 被 N/M 个 goroutine 消费,这种模型类似于 kafka 的 consumer group,其优点是兼顾处理效率和锁压力平衡,可以做到总体层面的任务处理均衡。</p>
-<h3 id="优化改进">优化改进</h3>
-<p>优化改进主要从三个方面入手, 如下图所示:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p14.jpeg" alt=""></p>
-<ol>
-<li>内存池。goroutine pool 是管理对 CPU 资源的分配,内存池就是管理内存资源的分配。我个人反对纯粹为了炫技没有目的地写内存池,其实 Go 的内存管理这块目前优化的很好了。Go 语言初始版本的内存管理使用了谷歌自家的 tcmalloc 库,这个库把应用释放的内存自己先缓存住,待失效期后才释放,那这样造成的结果是什么呢?就是早期的 Go 程序的内存成本很高。假设程序一个 sidecar 程序的资源限制是内存2G,CPU 核数是 2 核,用这样一个内存管理库,内存用完不释放给操作系统,那么没人敢用这个项目,当然最新的 Go 内存管理器是经过完全重构的,虽然也区分不同大小 span 的内存在 P 级别和全局级别进行缓存,但是基本上不用考虑这种内存膨胀不可控的问题了。那么什么情况下使用内存池呢?你确定你的业务有一些对象是频繁的复用则可以尝试使
用。 目前大部分内存池技术底层依赖的底座都是 sync.Pool,自己写一个也不难。而且 Go 1.13 之后的 sync.Pool 已经可以做到跨 GC span 不释放缓存对象,非常之好。</li>
-<li>定时器。Go 语言早期定时器因为整体使用一把大锁的缘故效率极差,当然最新的就相当好了,通过每个 CPU 核下一个定时器的方法【类似于分片锁】分散了竞争压力,但是很多情况下还是有竞争压力,如果对时间精度要求不高个人建议在自己的应用中自己写一个简单的时间轮实现一个定时器,释放 CPU 压力。</li>
-<li>网络写 buffer 合并。写 buffer 合并一般采用 writev,但是 Go 语言的 writev 有内存泄露问题,我这边一个负责 MOSN 开发的同事元总发现的。他先给 Go 语言官方提交了 PR,然后在 MOSN 中把 writev 扔掉自己写了一个简单好用的写 buffer 合并发送实现:通过 for 循环 10 次从发送 channel 中把网络包读取出来然后合并发送,当然循环中间网络发送 channel 没有足够的网络包就通过 <code>select-default</code> 分支立即退出循环。</li>
-</ol>
-<h3 id="channel-使用">channel 使用</h3>
-<p>Go 语言是一个适合处理 IO 密集型任务的语言,不擅长处理 CPU 密集型任务,其内存通信的基础就是 channel。channel 整体的内存基础是一个 ring buffer 数组和一个 lock,外加其他一些读写通知队列等,也是因为一把大锁的缘故,则 buffer 型 channel 如果使用不当则效率不会很高,如每个 channel element 的内存使用过大。channel 还有一个 closed 字段,用于判定 channel 的写是否被关闭掉,Go 语言对其操作是以原子锁方式进行的,很多人以这个字段为基础进行信号通知,如果使用不当很可能造成 for 循环 CPU 100% 的问题,所以在 for-select 循环中特别要谨慎使用,dubbogo 在这方面踩过坑。</p>
-<h2 id="四-服务治理">四 服务治理</h2>
-<p>下面为大家讲一下服务治理,说到服务治理,其实最重要的还是服务发现和服务注册,这块逻辑跟 Dubbo 类似,这次不作展开。下面主要包含两方面的内容,分别是限流算法和优雅退出。</p>
-<h3 id="限流算法">限流算法</h3>
-<p>限流算法首先需要考虑限流的对象,dubbogo 需要考虑 interface 和 method。其次是限流方法,首先需要考虑的是单机限流还是集群限流,单机限流算法很多,譬如常用的固定窗口算法和滑动窗口算法,以及更进一步的自适应限流。限流时一个重要问题就是限流参数是很难配的,譬如线上服务到底需要使用多少机器资源合理,限流窗口的时间窗口时长应该多长合适,其 qps 值设置多少合适呢?这都是 dubbogo 需要解决的问题。先进如谷歌的 BBR 算法,可以在当前的网络环境恶化前不断尝试改进相关参数,直到尝试出一段时间内的最佳参数。还有一些业务形态下的限流,如针对会员和非会员分别设计不同的限流链路。</p>
-<p>Dubbo 的限流接口源码如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p15.jpeg" alt=""></p>
-<p>这个接口抽象是非常漂亮的,第一个是限流 url,第二个服务调用。下面是 Dubbo 的固定窗口限流源码:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p16.jpeg" alt=""></p>
-<p>上面的代码很明显,&ldquo;private final&rdquo; 决定了 Dubbo 使用者只能使用期给定的固定窗口限流限算法,无法扩展。</p>
-<p>以下是 dubbogo 的限流接口:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p17.jpeg" alt=""></p>
-<p>TpsLimiter 是限流对象,TpsLimitStrategy 是限流算法,RejectedExecutionHandle 是限流动作。</p>
-<p>接下来是一个固定窗口算法实现:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p18.jpeg" alt=""></p>
-<p>上图是 dubbogo 的固定窗口算法实现,其非线程安全,大家看一下代码就可以了,不推荐大家用。下图是 dubbogo 的滑动窗口算法实现:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p19.jpeg" alt=""></p>
-<p>其基本原理是用一个队列存储一段时间内的请求,然后根据队列长度判定即可。</p>
-<p>不管是固定窗口还是滑动窗口,其判定算法简单,麻烦的是其参数设置,如下图:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p20.png" alt=""></p>
-<p>固定窗口时长精度很难控制。比如说限流一秒 QPS 值 1000,前 100 毫秒来了一千个请求,然后判定算法把请求放过了,而其后 900 毫秒 任何请求都无法处理。一般的处理方法是把时间粒度更精细一些,dubbogo 的时间窗口最小单位是一毫秒,则用户可以把时间窗口设定为 100 毫秒,总体来说一段时间内是很平稳的。下面这个图是我们社区的 commiter 邓明写完博客发出来,行业大佬微信评论如下:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p21.png" alt=""></p>
-<p>图中第一个问题是 qps 和 tps 每个请求成本不同,这个问题怎么处理呢?个人觉得这是一个分级限流问题,在同一个服务下针对不同的请求做不同的分级处理。第二个问题 ”配置了 qps 1000,但是请求过来是10万你还是死“,这个就需要更上层的运维能力进行应对,譬如判定为恶意流量攻击就应该在网关层拦截掉,如果是服务能力不行就扩容。</p>
-<p>针对分级限流,dubbogo 目前尚无法在同一个进程内完成,这需要 dubbogo 的配置中心更完善以后进行处理,用户可以通过搭建不同的服务链路处理之。譬如会员/非会员分级,同一个服务针对不同的会员等级搭建相应的链路,在网关层就判定一个 userID 是否是会员,然后发送不同的链路。</p>
-<p>dubbogo 的单机熔断是基于 hystrix-go 实现的,其判定参数有最大并发请求数、超时时间、错误率;其次是保护窗口,是熔断时长,熔断多久后进行服务恢复;第三个是保护性动作,就是在保护时间窗口之内执行什么样的动作,具体实现用户自定义。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p22.jpeg" alt=""></p>
-<h3 id="优雅退出">优雅退出</h3>
-<p>优雅退出也是邓明同学的大作,可以在网络上搜到相关博客。实现优雅退出的步骤有:</p>
-<ol>
-<li>告知注册中心,服务即将关闭,此时等待并处理请求;</li>
-<li>注册中心通知别的客户端,别的客户端停止发送新请求,等待已发请求的响应;</li>
-<li>节点处理完所有接收到的请求并且返回响应后,释放作为服务端相关的组件和资源;</li>
-<li>节点释放作为客户端的组件和资源。</li>
-</ol>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p23.jpeg" alt=""></p>
-<p>所以每一步基本上都要给程序一定的时间进行等待,所以等的时间窗口是多少呢?dubbogo 默认每个步骤大概花2秒,总体一个时间窗口是10秒。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p24.jpeg" alt=""></p>
-<p>基本上在别的 RPC 框架里面,可能不太常见到这种处理。</p>
-<h2 id="五-dubbogo-上云">五 Dubbogo 上云</h2>
-<p>dubbogo 作为微服务框架如何适配 k8s,如何部署?dubbogo 本身是一个 RPC 框架,但是其又有了服务治理能力,这部分能力与 k8s 的部分能力有些重合,不可能为了适配 k8s 就彻底抛弃。目前 Dubbo 官方也没有很好的解决方案供我们参考,所以这里我们 dubbogo 先给出一个简单的常识性的实践方案。下面先分析下 dubbogo 的 interface/service 和 k8s service 两者直接的差别。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p25.jpeg" alt=""></p>
-<p>k8s service 是许多具有相同服务能力 pod 资源的聚合,它自己的负载均衡算法以及健康检查等功能。而 Dubbo 里面的 interface/service 仅仅是服务 provider 集合,服务治理能力依赖 dubbo 的 directory、router 和 loadbalace 等额外的功能模块。并且Dubbo 服务区分 group/version,还有 provider、consumer 角色等等。Dubbo interface/service 无法与 k8s service 对标,Dubbo interface/service 和其整体服务治理能力才能对标成 k8s service。二者差异这么大,如何将 dubbo 集成到 k8s 中呢?</p>
-<p>k8s 提供了 pod/endpoint/service 三层维度的资源。简单的做法,可以通过监听pod/endpoint/service 三层维度资源的事件,作出合理的处理以达到服务治理的目的。目前我们社区成员王翔提交了一个基于监听 pod 事件来实现服务治理的 pr,优点就是不需要引入额外组件,通过监听 k8s 中最细粒度资源 pod 的事件,通过 k8s apiserver 获取 pod 列表,只是通过 apiserver 使用 etcd 的服务注册和服务通知能力,其他继续使用 Dubbo 的服务治理能力。其优点是模型简单,不需要实现额外的模块,几乎不需要对 Dubbo 作出改动,缺点就是其实无法使用 k8s 自己的健康检查能力,需要自己监听很细粒度的 pod 事件来综合处理服务健康、服务上下线等情况,而且还存在没有使用 k8s service 的事件监听能力,每个 consumer 冗余监听一些不必要监听的事件,加大 apiserver 的网络压力。所以
其实现目前来看可能还不是最优解,与 k8s 建议的operator 方式也有一定的背离。社区目前还 [...]
-<h2 id="六-互融互通">六 互融互通</h2>
-<p>关于互融互通,Dubbo 明年有个三个重要目标,其中一个目标是与外面的微服务生态进行互联互通,比如说跟 grpc 互通。目前 dubbo 的 grpc 的解决方案已经开放出来,dubbogo 与 grpc 互通的开发工作也几近完成。</p>
-<p>下面左边 dubbogo 的代码生成器工具根据 grpc 的 pb 服务定义文件自动生成的适配 dubbogo 的代码,右边是对应的使用示例。不同于 k8s service 的复杂性,grpc 整体仅仅具有 rpc 能力,没有服务治理能力,所以原始的 grpc 就可以很好的嵌入到 dubbogo 里面,grpc server 的 methodhandler 对我们 dubbogo 来说就是 dubbo invoker,grpc 的一些相关的接口直接跟我们的接口嵌套起来,两个生态就对接起来了。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p26.jpeg" alt=""></p>
-<h2 id="七-展望未来">七 展望未来</h2>
-<p>最后就是展望未来,也就是明年的规划。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/dubbo-go/gochina/p27.jpeg" alt=""></p>
-<p>明年我们将会很快实现 dubbo router。社区在 8月份已经实现了 router 功能需要的底层的算法模块,但是当时配置中心下发相关的参数的能力还不是很强,所以没有最终完成。最近服务治理配置刚刚支持了 zookeeper 和 apollo,预计很快就可以将 router 的参数通过配置中心下发的形式支持掉。另外,还有 tracing,我们将会引入社区主流的 tracing 方案,以 opentracing 为标准,去集成 opentracing 开源生态的相关能力。第三个是 kubernetes operator,这个就是刚才说的 K8s 的服务调用,我们会基于 operator 的方案做一版新的基于 k8s 的注册中心实现。最后就是云原生生态的融入,即与 istio 的集成,dubbogo 将会成为 dubbo 在 service mesh 生态中的重要角色。</p>
-<p>目前 dubbogo 项目,今年是能 run 起来,质量方面还有很多工作要做,功能基本上到明年可与 dubbo 2.7 补齐,目前已经基本够用。目前落地实践的是 3 个比较典型的公司,一个是携程,还有一个是涂鸦智能。</p>
-<p>dubbogo 本身是一个 go 语言项目,也期待与其他 go 社区的指正或者需求,一起成长。</p></description></item><item><title>Blog: Dubbo Go 快速开始</title><link>https://dubbo.apache.org/zh/blog/2021/01/11/dubbo-go-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/</link><pubDate>Mon, 11 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/11/dubbo-go-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/</guid><description>
+<p><strong>何鑫铭</strong>,携程基础中台研发部技术专家,dubbo-go 主要作者。目前专注于 Golang &amp; Java、中台架构、中间件与区块链等技术。</p></description></item><item><title>Blog: Dubbo Go 快速开始</title><link>https://dubbo.apache.org/zh/blog/2021/01/11/dubbo-go-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/</link><pubDate>Mon, 11 Jan 2021 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2021/01/11/dubbo-go-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B/</guid><description>
<h2 id="环境">环境</h2>
<ul>
<li>Go编程环境</li>
@@ -6839,1892 +4936,4 @@ Task 派发采用 RoundRobin 方式。</p>
</span></span></code></pre></div><h1 id="总结">总结</h1>
<p>更加具体的实现,我就不详细论述,大家可以去看源码进一步了解。</p>
<p>最后,欢迎大家持续关注,或者贡献代码,期待dubbo-go在2020年在云原生领域继续突破。</p>
-<p>dubbo-go仓库地址:https://github.com/apache/dubbo-go</p></description></item><item><title>Blog: Dubbo-Api-Docs -- Apache Dubbo文档展示&测试工具</title><link>https://dubbo.apache.org/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/</link><pubDate>Tue, 22 Dec 2020 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2020/12/22/dubbo-api-docs--apache-dubbo%E6%96%87%E6%A1%A3%E5%B1%95%E7%A4%BA%E6%B5%8B%E8%AF%95% [...]
-<h1 id="dubbo-api-docs">Dubbo-Api-Docs</h1>
-<h2 id="背景">背景</h2>
-<p>Swagger 是一个规范和完整的前端框架,用于生成,描述,调用和可视化 RESTful 风格的 Web 服务.
-Swagger 规范也逐渐发展成为了 OpenAPI 规范.</p>
-<p>Springfox 是一个集成了Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的
-一些描述接口的注解自动生成Swagger的描述文件, 使 Swagger 能够展示并调用接口.</p>
-<p>相信很多人都听说和使用过Swagger和Springfox, 这里就不再赘述了.</p>
-<p>Dubbo-Admin中有接口测试功能,但是缺少接口描述的文档,所以该测试功能比较适合接口开发人员用于测试接口.而其他人想要使用该功能就必须
-先通过接口开发者编写的文档或者其他方式了解清楚接口信息才能使用该功能测试接口.
-Dubbo这边有没有集合文档展示和测试功能,能不用写文档就能把接口直接给调用方,类似Swagger/Springfox的工具呢?
-之前做过一些调研,找到一些类似的工具:</p>
-<ul>
-<li>有些是基于Springfox做的,直接一个文本域放JSON, 与目前Admin中的测试功能大同小异</li>
-<li>有些是直接基于Swagger的Java版OpenApi规范生成工具做的,能把一些基础数据类型的简单参数作为表单项展示</li>
-</ul>
-<p>它们都有一个共同点: 会把你的提供者变为Web项目. 当然有些提供者是通过web容器加载启动的,甚至也有和web工程在一起的,那就无所谓了.
-但也有非web的提供者. 为了文档我得把它变为web项目吗?(还要引入一堆Web框架的依赖?比如Spring MVC)或者说生产环境打包时删除它的引用
-和代码里的相关注解? 有没有简单点的方式呢?</p>
-<p>OpenAPI中没有RPC的规范,Swagger是OpenAPI的实现,所以也不支持RPC相关调用.Springfox是通过Swagger实现的 RESTful API的工具,
-而RESTful又是基于Web的,Dubbo没法直接使用.我们最终选择了自己实现:</p>
-<ul>
-<li>提供一些描述接口信息的简单注解</li>
-<li>在提供者启动时解析注解并缓存解析结果</li>
-<li>在提供者增加几个Dubbo-Api-Docs使用的获取接口信息的接口</li>
-<li>在Dubbo Admin侧通过Dubbo泛化调用实现Http方式调用Dubbo接口的网关</li>
-<li>在Dubbo Admin侧实现接口信息展示和调用接口功能</li>
-<li>下列情况中的参数直接展示为表单项,其他的展示为JSON:
-<ul>
-<li>方法参数为基础数据类型的</li>
-<li>方法参数为一个Bean,Bena中属性为基础数据类型的</li>
-</ul>
-</li>
-<li>很少的第三方依赖,甚至大部分都是你项目里本身就使用的</li>
-<li>可以通过profile决定是否加载, 打包时简单的修改profile就能区分生产和测试,甚至profile你本来就使用了</li>
-</ul>
-<blockquote>
-<p>今天,我很高兴的宣布: Dubbo 用户也可以享受类似Swagger的体验了 &ndash; Dubbo-Api-Docs发布了.</p>
-</blockquote>
-<h2 id="简介">简介</h2>
-<p>Dubbo-Api-Docs 是一个展示dubbo接口文档,测试接口的工具.</p>
-<p>使用 Dubbo-Api-Docs 分为两个主要步骤:</p>
-<ol>
-<li>在dubbo项目引入Dubbo-Api-Docs 相关jar包,并增加类似Swagger的注解.</li>
-<li>在 Dubbo-Admin 中查看接口描述并测试.</li>
-</ol>
-<p>通过以上两个步骤即可享受类似Swagger的体验, 并且可以在生产环境中关闭Dubbo-Api-Docs的扫描.</p>
-<p>Dubbo-Api-Docs 目前通过直连服务节点的方式获取该服务的接口列表. 测试接口时可以直连也可以通过注册中心.未来会增加通过注册中心获取服务列表的方式.并根据Dubbo的升级规划增加新的功能支持.也会根据社区的需求增加功能.</p>
-<p>Dubbo-Api-Docs 会在服务提供者启动完毕后扫描docs相关注解并将处理结果缓存.并增加一些Dubbo-Api-Docs相关的Dubbo提供者接口. 缓存的数据在将来可能会放到Dubbo元数据中心中.</p>
-<h2 id="当前版本-2781">当前版本: 2.7.8.1</h2>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#268bd2">&lt;dependency&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;groupId&gt;</span>org.apache.dubbo<span style="color:#268bd2">&lt;/groupId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;artifactId&gt;</span>dubbo-api-docs-annotations<span style="color:#268bd2">&lt;/artifactId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;version&gt;</span>${dubbo-version}<span style="color:#268bd2">&lt;/version&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;/dependency&gt;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dependency&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;groupId&gt;</span>org.apache.dubbo<span style="color:#268bd2">&lt;/groupId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;artifactId&gt;</span>dubbo-api-docs-core<span style="color:#268bd2">&lt;/artifactId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;version&gt;</span>${dubbo-version}<span style="color:#268bd2">&lt;/version&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;/dependency&gt;</span>
-</span></span></code></pre></div><h2 id="快速入门">快速入门</h2>
-<h3 id="1dubbo提供者项目的方法参数中加上-dubbo-api-docs-注解">1.dubbo提供者项目的方法参数中加上 Dubbo-Api-Docs 注解</h3>
-<ul>
-<li>如果 dubbo提供者的接口和方法参数在一个单独的jar项目中,则在该项目中引入: dubbo-api-docs-annotations</li>
-<li>dubbo提供者项目引入 dubbo-api-docs-core</li>
-<li>在提供者项目的项目启动类(标注了@SpringBootApplication的类)或者配制类(标注了@Configuration的类)中增加注解 @EnableDubboApiDocs 以启用Dubbo Api Docs功能</li>
-</ul>
-<blockquote>
-<p>为避免增加生产环境中的资源占用, 建议单独创建一个配制类用于启用Dubbo-Api-Docs, 并配合 @Profile(&ldquo;dev&rdquo;) 注解使用
-当然, Dubbo-Api-Docs 仅在项目启动时多消耗了点CPU资源, 并使用了一点点内存用于缓存, 将来会考虑将缓存中的内容放到元数据中心.</p>
-</blockquote>
-<h4 id="下面以dubbo-api-docs-exampleshttpsgithubcomapachedubbo-spi-extensionstree27xdubbo-api-docsdubbo-api-docs-examples项目中的部分服务接口为例">下面以<a href="https://github.com/apache/dubbo-spi-extensions/tree/2.7.x/dubbo-api-docs/dubbo-api-docs-examples">dubbo-api-docs-examples</a>项目中的部分服务接口为例:</h4>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone -b 2.7.x https://github.com/apache/dubbo-spi-extensions.git
-</span></span></code></pre></div><p>进入 dubbo-spi-extensions/dubbo-api-docs/dubbo-api-docs-examples 目录</p>
-<p>dubbo-api-docs-examples 中有两个子模块:</p>
-<ul>
-<li>examples-api: 一个jar包项目,其中包含服务的接口和接口参数Bean</li>
-<li>examples-provider: 提供者服务端,包含spring boot启动器和服务的实现</li>
-</ul>
-<p>下面我们在这两个子模块中增加Dubbo-Api-Docs</p>
-<blockquote>
-<p>examples-api:</p>
-</blockquote>
-<p>maven引入:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#268bd2">&lt;dependency&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;groupId&gt;</span>org.apache.dubbo<span style="color:#268bd2">&lt;/groupId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;artifactId&gt;</span>dubbo-api-docs-annotations<span style="color:#268bd2">&lt;/artifactId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;version&gt;</span>2.7.8<span style="color:#268bd2">&lt;/version&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;/dependency&gt;</span>
-</span></span></code></pre></div><p>org.apache.dubbo.apidocs.examples.params 中有两个Bean,我们来为它们添加docs注解</p>
-<ul>
-<li>QuickStartRequestBean 作为参数Bean, 添加 @RequestParam</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">QuickStartRequestBean</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@RequestParam</span><span style="color:#719e07">(</span>value <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;You name&#34;</span><span style="color:#719e07">,</span> required <span style="color:#719e07">=</span> <span style="color:#cb4b16">true</span><span style="color:#719e07">,</span> description <span style="color:#7 [...]
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> String name<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@RequestParam</span><span style="color:#719e07">(</span>value <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;You age&#34;</span><span style="color:#719e07">,</span> defaultValue <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;18&#34;</span><span style="color:#719e07">)</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> <span style="color:#dc322f">int</span> age<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@RequestParam</span><span style="color:#719e07">(</span><span style="color:#2aa198">&#34;Are you a main?&#34;</span><span style="color:#719e07">)</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> <span style="color:#dc322f">boolean</span> man<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#586e75">// getter/setter略...
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><ul>
-<li>QuickStartRespBean 作为响应Bean,添加 @ResponseProperty</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">QuickStartRespBean</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@ResponseProperty</span><span style="color:#719e07">(</span>value <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;Response code&#34;</span><span style="color:#719e07">,</span> example <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;500&#34;</span><span style="color:#719e07">)</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> <span style="color:#dc322f">int</span> code<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@ResponseProperty</span><span style="color:#719e07">(</span><span style="color:#2aa198">&#34;Response message&#34;</span><span style="color:#719e07">)</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">private</span> String msg<span style="color:#719e07">;</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#586e75">// getter/setter略...
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>由于我们只挑选了部分接口作为演示,到此这些接口涉及的docs注解添加完毕</p>
-<blockquote>
-<p>examples-provider:</p>
-</blockquote>
-<p>maven引入:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#268bd2">&lt;dependency&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;groupId&gt;</span>org.apache.dubbo<span style="color:#268bd2">&lt;/groupId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;artifactId&gt;</span>dubbo-api-docs-core<span style="color:#268bd2">&lt;/artifactId&gt;</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">&lt;version&gt;</span>2.7.8<span style="color:#268bd2">&lt;/version&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;/dependency&gt;</span>
-</span></span></code></pre></div><p>我们挑选一个接口作为演示:</p>
-<p>org.apache.dubbo.apidocs.examples.api.impl.QuickStartDemoImpl 中的 quickStart 方法</p>
-<p>QuickStartDemoImpl 实现了 api包中的 org.apache.dubbo.apidocs.examples.api.IQuickStartDemo 接口</p>
-<ul>
-<li>在 QuickStartDemoImpl 中:</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">@DubboService</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">@ApiModule</span><span style="color:#719e07">(</span>value <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;quick start demo&#34;</span><span style="color:#719e07">,</span> apiInterface <span style="color:#719e07">=</span> IQuickStartDemo<span style="color:#719e07">.</span>class<span style="color:#719e07">,</span> version < [...]
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">QuickStartDemoImpl</span> <span style="color:#268bd2">implements</span> IQuickStartDemo <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@ApiDoc</span><span style="color:#719e07">(</span>value <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;quick start demo&#34;</span><span style="color:#719e07">,</span> version <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;v0.1&#34;</span><span style="color:#719e07">,</span> description <s [...]
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">@Override</span>
-</span></span><span style="display:flex;"><span> <span style="color:#268bd2">public</span> QuickStartRespBean <span style="color:#268bd2">quickStart</span><span style="color:#719e07">(</span><span style="color:#268bd2">@RequestParam</span><span style="color:#719e07">(</span>value <span style="color:#719e07">=</span> <span style="color:#2aa198">&#34;strParam&#34;</span><span style="color:#719e07">,</span> required <spa [...]
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">return</span> <span style="color:#719e07">new</span> QuickStartRespBean<span style="color:#719e07">(</span>200<span style="color:#719e07">,</span> <span style="color:#2aa198">&#34;hello &#34;</span> <span style="color:#719e07">+</span> beanParam<span style="color:#719e07">.</span>getName<span style="color:#719e07">()</span> <span style="color [...]
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>到此docs相关注解已添加完毕,下面我们来开启 Dubbo-Api-Docs. 新增一个配制类,位置任意,只要能被spring boot扫描到就行.</p>
-<p>我们在 org.apache.dubbo.apidocs.examples.cfg 包中新增一个配制类 DubboDocConfig :</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#268bd2">@Configuration</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">@Profile</span><span style="color:#719e07">(</span><span style="color:#2aa198">&#34;dev&#34;</span><span style="color:#719e07">)</span> <span style="color:#586e75">// 配合 Profile 一起使用, 在 profile 为 dev 时才会加载该配制类
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#268bd2">@EnableDubboApiDocs</span> <span style="color:#586e75">// 开启 Dubbo-Api-Docs
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#268bd2">public</span> <span style="color:#268bd2">class</span> <span style="color:#268bd2">DubboDocConfig</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>到此 Dubbo-Api-Docs 相关的东西已经添加完毕.
-<a href="https://github.com/apache/dubbo-spi-extensions/tree/2.7.x/dubbo-api-docs/dubbo-api-docs-examples">dubbo-api-docs-examples</a>
-中有更多更为详尽的例子.下文中有注解的详细说明.下面我们来看一下增加 Dubbo-Api-Docs 后的效果图.</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/api-docs/quickStart.png" alt="demoApi2"></p>
-<h3 id="2启动提供者项目">2.启动提供者项目</h3>
-<ul>
-<li>示例使用nacos作为注册中心,<a href="https://nacos.io">下载并启动nacos</a></li>
-<li>在上面的例子中,我们启动 examples-provider 项目中的 org.apache.dubbo.apidocs.examples.ExampleApplication.
-在examples-provider目录中:</li>
-</ul>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>mvn spring-boot:run
-</span></span></code></pre></div><h3 id="3下载-dubbo-admin">3.下载 dubbo-admin</h3>
-<p><a href="https://github.com/apache/dubbo-admin">dubbo-admin仓库</a></p>
-<blockquote>
-<p>dubbo-admin 需要下载 develop 分支源码启动</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone -b develop https://github.com/apache/dubbo-admin.git
-</span></span></code></pre></div></blockquote>
-<h3 id="4启动访问-dubbo-admin">4.启动访问 dubbo-admin</h3>
-<p>参考 dubbo-admin 里的说明启动:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>1. 在 dubbo-admin-server/src/main/resources/application.properties 中修改注册中心地址
-</span></span><span style="display:flex;"><span>2. 编译 mvn clean package
-</span></span><span style="display:flex;"><span>3. 启动:
-</span></span><span style="display:flex;"><span>mvn --projects dubbo-admin-server spring-boot:run
-</span></span><span style="display:flex;"><span>或者
-</span></span><span style="display:flex;"><span>cd dubbo-admin-distribution/target; java -jar dubbo-admin-0.1.jar
-</span></span><span style="display:flex;"><span>4. 浏览器访问: http://localhost:8080
-</span></span><span style="display:flex;"><span>5. 默认帐号密码都是: root
-</span></span></code></pre></div><h3 id="5进入接口文档模块">5.进入&quot;接口文档&quot;模块</h3>
-<ul>
-<li>在&quot;dubbo提供者IP&quot;和&quot;dubbo提供者端口&quot;中分别输入提供者所在机器IP和端口, 点击右侧 &quot; 加载接口列表&quot; 按钮</li>
-<li>左侧接口列表中加载出接口列表,点击任意接口,右边展示出该接口信息及参数表单.</li>
-<li>填入表单内容后,点击最下方测试按钮</li>
-<li>响应部分展示了响应示例及实际响应结果</li>
-</ul>
-<h2 id="源码仓库">源码仓库</h2>
-<p>Dubbo-Api-Docs 根据功能拆分,分别在两个仓库中:</p>
-<h3 id="dubbo-spi-extensions">dubbo-spi-extensions</h3>
-<blockquote>
-<p><a href="https://github.com/apache/dubbo-spi-extensions">dubbo-spi-extensions仓库地址</a></p>
-</blockquote>
-<p>该仓库存放dubbo的一些非核心功能的扩展, Dubbo-Api-Docs 作为该仓库中的一个子模块,由于该仓库属于Dubbo 3.0中规划的一部分,而Dubbo-Api-Docs是基于Dubbo 2.7.x 开发的,所以在该仓库中增加了<a href="https://github.com/apache/dubbo-spi-extensions/tree/2.7.x/dubbo-api-docs">2.7.x分支,Dubbo-Api-Docs就在该分支下</a>.
-该仓库中包含了 Dubbo-Api-Docs 的文档相关注解、注解扫描能力和使用示例:</p>
-<ul>
-<li>dubbo-api-docs-annotations: 文档生成的相关注解.考虑到实际情况中 dubbo api 的接口类和接口参数会规划为一个单独的jar包, 所以注解也独立为一个jar包.本文后面会对注解做详细说明.</li>
-<li>dubbo-api-docs-core: 负责解析注解,生成文档信息并缓存. 前面提到的Dubbo-Api-Docs相关接口也在该包中</li>
-<li>dubbo-api-docs-examples: 使用示例</li>
-</ul>
-<h3 id="dubbo-admin">Dubbo-Admin</h3>
-<blockquote>
-<p><a href="https://github.com/KeRan213539/dubbo-admin">Dubbo-Admin仓库地址</a></p>
-</blockquote>
-<p>文档的展示及测试放在了 dubbo admin 项目中</p>
-<h2 id="注解说明">注解说明</h2>
-<ul>
-<li>@EnableDubboApiDocs: 配制注解, 启用 dubbo api docs 功能</li>
-<li>@ApiModule: 类注解, dubbo接口模块信息,用于标注一个接口类模块的用途
-<ul>
-<li>value: 模块名称</li>
-<li>apiInterface: 提供者实现的接口</li>
-<li>version: 模块版本</li>
-</ul>
-</li>
-<li>@ApiDoc: 方法注解, dubbo 接口信息,用于标注一个接口的用途
-<ul>
-<li>value: 接口名称</li>
-<li>description: 接口描述(可使用html标签)</li>
-<li>version: 接口版本</li>
-<li>responseClassDescription: 响应的数据的描述</li>
-</ul>
-</li>
-<li>@RequestParam: 类属性/方法参数注解,标注请求参数
-<ul>
-<li>value: 参数名</li>
-<li>required: 是否必传参数</li>
-<li>description: 参数描述</li>
-<li>example: 参数示例</li>
-<li>defaultValue: 参数默认值</li>
-<li>allowableValues: 允许的值,设置该属性后界面上将对参数生成下拉列表
-<ul>
-<li>注:使用该属性后将生成下拉选择框</li>
-<li>boolean 类型的参数不用设置该属性,将默认生成 true/false 的下拉列表</li>
-<li>枚举类型的参数会自动生成下拉列表,如果不想开放全部的枚举值,可以单独设置此属性.</li>
-</ul>
-</li>
-</ul>
-</li>
-<li>@ResponseProperty: 类属性注解, 标注响应参数
-<ul>
-<li>value: 参数名</li>
-<li>example: 示例</li>
-</ul>
-</li>
-</ul>
-<h2 id="使用注意">使用注意</h2>
-<ul>
-<li>响应bean(接口的返回类型)支持自定义泛型, 但只支持一个泛型占位符</li>
-<li>关于Map的使用:Map的key只能用基本数据类型.如果Map的key不是基础数据类型,生成的 就不是标准json格式,会出异常</li>
-<li>接口的同步/异步取自 org.apache.dubbo.config.annotation.Service#async / org.apache.dubbo.config.annotation.DubboService#async</li>
-</ul>
-<h2 id="示例说明">示例说明</h2>
-<p><a href="https://github.com/apache/dubbo-spi-extensions/tree/2.7.x/dubbo-api-docs">dubbo-spi-extensions / Dubbo-Api-Docs</a> 中的 dubbo-api-docs-examples 目录中为示例工程:</p>
-<ul>
-<li>examples-api: jar包项目,包含服务提供者的接口类及参数Bean</li>
-<li>examples-provider: 使用 dubbo-spring-boot-starter 的提供者项目, 注册中心使用 nacos</li>
-<li>examples-provider-sca: 使用 spring-cloud-starter-dubbo 的提供者项目, 注册中心使用 nacos</li>
-</ul>
-<h3 id="示例使用步骤">示例使用步骤</h3>
-<ol>
-<li>示例使用nacos作为注册中心,<a href="https://nacos.io">下载并启动nacos</a></li>
-<li>任意启动 examples-provider 和 examples-provider-sca 中的任意一个,当然也可以两个都启动. examples-provider 使用 20881端口 examples-provider-sca 使用20882端口.两个项目都是spring boot项目,启动类在 org.apache.dubbo.apidocs.examples 包下.</li>
-<li>启动 <a href="https://github.com/KeRan213539/dubbo-admin">Dubbo-Admin</a>, 浏览器访问: http://localhost:8080</li>
-<li>进入 dubbo-admin 中的 &ldquo;接口文档&quot;模块</li>
-<li>在&quot;dubbo提供者IP&quot;和&quot;dubbo提供者端口&quot;中分别输入提供者所在机器IP和端口, 点击右侧 &quot; 加载接口列表&rdquo; 按钮</li>
-<li>左侧接口列表中加载出接口列表,点击任意接口,右边展示出该接口信息及参数表单.</li>
-<li>填入表单内容后,点击最下方测试按钮</li>
-<li>响应部分展示了响应示例及实际响应结果</li>
-</ol></description></item><item><title>Blog: 2.7.5 功能解析</title><link>https://dubbo.apache.org/zh/blog/2020/05/18/2.7.5-%E5%8A%9F%E8%83%BD%E8%A7%A3%E6%9E%90/</link><pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2020/05/18/2.7.5-%E5%8A%9F%E8%83%BD%E8%A7%A3%E6%9E%90/</guid><description>
-<p>近日,备受瞩目的 Dubbo 2.7.5 版本正式发布,在 2.7.5 版本中,Dubbo 引入了很多新的特性、对现有的很多功能做了增强、同时在性能上也有了非常大的提升,这个版本无论对 Dubbo 社区亦或是开发者来说,都将是一个里程碑式的版本。</p>
-<ul>
-<li>应用粒度服务注册【beta】</li>
-<li>HTTP/2 (gRPC) 协议支持</li>
-<li>Protobuf 支持</li>
-<li>性能优化,调用链路性能提升 30%</li>
-<li>支持 TLS 安全传输链路</li>
-<li>优化的消费端线程模型</li>
-<li>新增更适应多集群部署场景的负载均衡策略</li>
-<li>全新的应用开发 API (兼容老版本应用)【beta】</li>
-<li>其他一些功能增强与 bugfix</li>
-</ul>
-<p>首先,从服务发现上,新版本突破以往基于接口粒度的模型,引入了全新的基于应用粒度的服务发现机制 - 服务自省,虽然该机制当前仍处于 beta 阶段,但对于 Dubbo 向整个微服务云原生体系靠齐,都打下了非常好的基础;得益于紧凑的协议设计和代码实现上的优化,Dubbo 一直以来都具有较好的性能表现,在 2.7.5 版本中,性能上有了进一步的提升,根据来自官方维护团队的压测,新版本在调用链路上性能提升达到 30%;云原生微服务时代,多语言需求变得越来越普遍,协议的通用性和穿透性对于构建打通前后端的整套微服务体系也变得非常关键,Dubbo 通过实现 gRPC 协议实现了对 HTTP/2 协议的支持,同时增加了与 Protobuf 的结合。</p>
-<h2 id="1--应用粒度服务注册beta">1. 应用粒度服务注册【beta】</h2>
-<p>从 Java 实现版本的角度来说,Dubbo 是一个面向接口代理的服务开发框架,服务定义、服务发布以及服务引用都是基于接口,服务治理层面包括服务发现、各种规则定义也都是基于接口定义的,基于接口可以说是 Dubbo 的一大优势,比如向开发者屏蔽了远程调用细节、治理粒度更精细等。但基于接口的服务定义同时也存在一些问题,如服务,与业界通用的微服务体系等。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/servicediscovery-old.png" alt="servicediscovery-old.png"></p>
-<p>针对以上问题,2.7.5 版本引入了一种新的服务定义/治理机制:<strong>服务自省</strong>,简单来说这是一种基于应用粒度的服务治理方案。一个实例只向注册中心注册一条记录,彻底解决服务推送性能瓶颈,同时由于这样的模型与主流微服务体系如 SpringCloud、K8S 等天然是对等的,因此为 Dubbo 解决和此类异构体系间的互联互通清除了障碍。有兴趣进一步了解 Dubbo 服务自省机制如何解决异构微服务体系互联互通问题的,可具体参考我们之前的文章解析《Dubbo 如何成为联通异构微服务体系的最佳服务开发框架》。</p>
-<p>以下是服务自省机制的基本工作原理图。</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/servicediscovery-new.png" alt="servicediscovery-new.png"></p>
-<p>要了解更多关于服务自省工作原理的细节,请参与官方文档及后续文章。</p>
-<p>服务自省与当前已有的机制之间可以说是互补的关系,Dubbo 框架会继续保持接口粒度的服务治理的优势,实现接口和应用两个粒度互为补充的局面,兼顾性能、灵活性和通用性,力争使 Dubbo 成为微服务开发的最佳框架。</p>
-<h2 id="2-http2-grpc-协议支持">2. HTTP/2 (gRPC) 协议支持</h2>
-<p>Dubbo RPC 协议是构建在 TCP 之上,这有很多优势也有一些缺点,缺点比如通用性、协议穿透性不强,对多语言实现不够友好等。HTTP/2 由于其标准 HTTP 协议的属性,无疑将具有更好的通用性,现在或将来在各层网络设备上肯定都会得到很好的支持,gRPC 之所以选在 HTTP/2 作为传输层载体很大程度上也是因为这个因素。当前 gRPC 在云原生、Mesh 等体系下的认可度和采用度逐步提升,俨然有成为 RPC 协议传输标准的趋势,Dubbo 和 gRPC 在协议层面是对等竞争的,但是在框架实现上却各有侧重,Dubbo 无疑有更丰富的服务开发和治理体验 。</p>
-<p>Dubbo 支持 gRPC 协议带来的直观好处有:</p>
-<ul>
-<li>正式支持基于 HTTP/2 的远程通信,在协议通用性和穿透性上进一步提升。</li>
-<li>支持跨进程的 Stream 流式通信,支持 Reactive 风格的 RPC 编程。</li>
-<li>解决了 gRPC 框架难以直接用于微服务开发的问题,将其纳入 Dubbo 的服务治理体系。</li>
-<li>为联通组织内部已有的 gRPC 或多语言体系提供支持。</li>
-</ul>
-<p>2.7.5 版本开始,gRPC (HTTP/2) 成为 Dubbo 协议体系中的一等公民,对于有需求的开发者完全可以在 Dubbo 开发的微服务体系中启用 gRPC 协议,而不必束缚在 Dubbo 协议自身上,关于这点我们在《Dubbo 如何成为联通异构微服务体系的最佳服务开发框架》一文中也有类似的观点表述。</p>
-<p>关于 Dubbo 中如何开发 grpc (HTTP/2) 服务的细节,请参考文章《Dubbo 在跨语言与协议穿透性等方面的探索》,关于如何开启 TLS 和使用 Reactive RPC 编程,请参见示例。另外,Dubbo 的 go 版本目前同样也提供了对 gRPC 协议对等的支持,具体请关注 dubbogo 社区的发版计划。</p>
-<h2 id="3-protobuf-支持">3. Protobuf 支持</h2>
-<p>支持 Protobuf 更多的是从解决 Dubbo 跨语言易用性的角度考虑的。</p>
-<p>跨语言的服务开发涉及到多个方面,从服务定义、RPC 协议到序列化协议都要做到语言中立,同时还针对每种语言有对应的 SDK 实现。虽然得益于社区的贡献,现在 Dubbo 在多语言 SDK 实现上逐步有了起色,已经提供了包括 Java, Go, PHP, C#, Python, NodeJs, C 等版本的客户端或全量实现版本,但在以上提到的跨语言友好性方面,以上三点还是有很多可改进之处。</p>
-<p>协议上 2.7.5 版本支持了 gRPC,而关于服务定义与序列化,Protobuf 则提供了很好的解决方案。</p>
-<ul>
-<li>服务定义。当前 Dubbo 的服务定义和具体的编程语言绑定,没有提供一种语言中立的服务描述格式,比如 Java 就是定义 Interface 接口,到了其他语言又得重新以另外的格式定义一遍。因此 Dubbo 通过支持 Protobuf 实现了语言中立的服务定义。</li>
-<li>序列化。Dubbo 当前支持的序列化包括 Json、Hessian2、Kryo、FST、Java 等,而这其中支持跨语言的只有 Json、Hessian2,通用的 Json 有固有的性能问题,而 Hessian2 无论在效率还是多语言 SDK 方面都有所欠缺。为此,Dubbo 通过支持 Protobuf 序列化来提供更高效、易用的跨语言序列化方案。</li>
-</ul>
-<p>日后,不论我们使用什么语言版本来开发 Dubbo 服务,都可以直接使用 IDL 定义如下服务,具体请参见示例</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-go" data-lang="go"><span style="display:flex;"><span>syntax = <span style="color:#2aa198">&#34;proto3&#34;</span>;
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>option java_multiple_files = <span style="color:#cb4b16">true</span>;
-</span></span><span style="display:flex;"><span>option java_package = <span style="color:#2aa198">&#34;org.apache.dubbo.demo&#34;</span>;
-</span></span><span style="display:flex;"><span>option java_outer_classname = <span style="color:#2aa198">&#34;DemoServiceProto&#34;</span>;
-</span></span><span style="display:flex;"><span>option objc_class_prefix = <span style="color:#2aa198">&#34;DEMOSRV&#34;</span>;
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">package</span> demoservice;
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#586e75">// The demo service definition.
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span>service DemoService {
-</span></span><span style="display:flex;"><span> rpc <span style="color:#268bd2">SayHello</span> (HelloRequest) <span style="color:#268bd2">returns</span> (HelloReply) {}
-</span></span><span style="display:flex;"><span>}
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#586e75">// The request message containing the user&#39;s name.
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span>message HelloRequest {
-</span></span><span style="display:flex;"><span> <span style="color:#dc322f">string</span> name = <span style="color:#2aa198">1</span>;
-</span></span><span style="display:flex;"><span>}
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#586e75">// The response message containing the greetings
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span>message HelloReply {
-</span></span><span style="display:flex;"><span> <span style="color:#dc322f">string</span> message = <span style="color:#2aa198">1</span>;
-</span></span><span style="display:flex;"><span>}
-</span></span></code></pre></div><h2 id="4-性能优化">4. 性能优化</h2>
-<h3 id="41-调用链路优化">4.1 调用链路优化</h3>
-<p>2.7.5 版本对整个调用链路做了全面的优化,根据压测结果显示,总体 QPS 性能提升将近 30%,同时也减少了调用过程中的内存分配开销。其中一个值得提及的设计点是 2.7.5 引入了 Servicerepository 的概念,在服务注册阶段提前生成 ServiceDescriptor 和 MethodDescriptor,以减少 RPC 调用阶段计算 Service 元信息带来的资源消耗。</p>
-<h3 id="42-消费端线程池模型优化">4.2 消费端线程池模型优化</h3>
-<p>对 2.7.5 版本之前的 Dubbo 应用,尤其是一些消费端应用,当面临需要消费大量服务且并发数比较大的大流量场景时(典型如网关类场景),经常会出现消费端线程数分配过多的问题,具体问题讨论可参见以下 issue :</p>
-<p><a href="https://github.com/apache/dubbo/issues/2013">https://github.com/apache/dubbo/issues/2013</a></p>
-<p>改进后的消费端线程池模型,通过复用业务端被阻塞的线程,很好的解决了这个问题。</p>
-<p><strong>老的线程池模型</strong></p>
-<p><img src="https://dubbo.apache.org/imgs/blog/consumer-threadpool0.png" alt="消费端线程池.png"></p>
-<p>我们重点关注 Consumer 部分:</p>
-<ol>
-<li>业务线程发出请求,拿到一个 Future 实例。</li>
-<li>业务线程紧接着调用 future.get 阻塞等待业务结果返回。</li>
-<li>当业务数据返回后,交由独立的 Consumer 端线程池进行反序列化等处理,并调用 future.set 将反序列化后的业务结果置回。</li>
-<li>业务线程拿到结果直接返回</li>
-</ol>
-<p><strong>2.7.5 版本引入的线程池模型</strong></p>
-<p><img src="https://dubbo.apache.org/imgs/blog/consumer-threadpool1.png" alt="消费端线程池新.png"></p>
-<ol>
-<li>业务线程发出请求,拿到一个 Future 实例。</li>
-<li>在调用 future.get() 之前,先调用 ThreadlessExecutor.wait(),wait 会使业务线程在一个阻塞队列上等待,直到队列中被加入元素。</li>
-<li>当业务数据返回后,生成一个 Runnable Task 并放入 ThreadlessExecutor 队列</li>
-<li>业务线程将 Task 取出并在本线程中执行:反序列化业务数据并 set 到 Future。</li>
-<li>业务线程拿到结果直接返回</li>
-</ol>
-<p>这样,相比于老的线程池模型,由业务线程自己负责监测并解析返回结果,免去了额外的消费端线程池开销。</p>
-<p>关于性能优化,在接下来的版本中将会持续推进,主要从以下两个方面入手:</p>
-<ol>
-<li>RPC 调用链路。目前能看到的点包括:进一步减少执行链路的内存分配、在保证协议兼容性的前提下提高协议传输效率、提高 Filter、Router 等计算效率。</li>
-<li>服务治理链路。进一步减少地址推送、服务治理规则推送等造成的内存、cpu 资源消耗。</li>
-</ol>
-<h2 id="5-tls-安全传输链路">5. TLS 安全传输链路</h2>
-<p>2.7.5 版本在传输链路的安全性上做了很多工作,对于内置的 Dubbo Netty Server 和新引入的 gRPC 协议都提供了基于 TLS 的安全链路传输机制。</p>
-<p>TLS 的配置都有统一的入口,如下所示:</p>
-<p><strong>Provider 端</strong></p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>SslConfig sslConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> SslConfig<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span>sslConfig<span style="color:#719e07">.</span>setServerKeyCertChainPath<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;path to cert&#34;</span><span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span>sslConfig<span style="color:#719e07">.</span>setServerPrivateKeyPath<span style="color:#719e07">(</span>args<span style="color:#719e07">[</span>1<span style="color:#719e07">]);</span>
-</span></span><span style="display:flex;"><span><span style="color:#586e75">// 如果开启双向 cert 认证
-</span></span></span><span style="display:flex;"><span><span style="color:#586e75"></span><span style="color:#719e07">if</span> <span style="color:#719e07">(</span>mutualTls<span style="color:#719e07">)</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> sslConfig<span style="color:#719e07">.</span>setServerTrustCertCollectionPath<span style="color:#719e07">(</span>args<span style="color:#719e07">[</span>2<span style="color:#719e07">]);</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>ProtocolConfig protocolConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ProtocolConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;dubbo/grpc&#34;</span><span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span>protocolConfig<span style="color:#719e07">.</span>setSslEnabled<span style="color:#719e07">(</span><span style="color:#cb4b16">true</span><span style="color:#719e07">);</span>
-</span></span></code></pre></div><p><strong>Consumer 端</strong></p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span><span style="color:#719e07">if</span> <span style="color:#719e07">(!</span>mutualTls<span style="color:#719e07">)</span> <span style="color:#719e07">{}</span>
-</span></span><span style="display:flex;"><span> sslConfig<span style="color:#719e07">.</span>setClientTrustCertCollectionPath<span style="color:#719e07">(</span>args<span style="color:#719e07">[</span>0<span style="color:#719e07">]);</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span> <span style="color:#719e07">else</span> <span style="color:#719e07">{</span>
-</span></span><span style="display:flex;"><span> sslConfig<span style="color:#719e07">.</span>setClientTrustCertCollectionPath<span style="color:#719e07">(</span>args<span style="color:#719e07">[</span>0<span style="color:#719e07">]);</span>
-</span></span><span style="display:flex;"><span> sslConfig<span style="color:#719e07">.</span>setClientKeyCertChainPath<span style="color:#719e07">(</span>args<span style="color:#719e07">[</span>1<span style="color:#719e07">]);</span>
-</span></span><span style="display:flex;"><span> sslConfig<span style="color:#719e07">.</span>setClientPrivateKeyPath<span style="color:#719e07">(</span>args<span style="color:#719e07">[</span>2<span style="color:#719e07">]);</span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">}</span>
-</span></span></code></pre></div><p>为尽可能保证应用启动的灵活性,TLS Cert 的指定还能通过 -D 参数或环境变量等方式来在启动阶段根据部署环境动态指定,具体请参见 Dubbo 配置读取规则与 TLS 示例</p>
-<p>Dubbo 配置读取规则:http://dubbo.apache.org/zh-cn/docs/user/configuration/configuration-load-process.html</p>
-<p>TLS 示例:https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-ssl</p>
-<blockquote>
-<p>如果要使用的是 gRPC 协议,在开启 TLS 时会使用到协议协商机制,因此必须使用支持 ALPN 机制的 Provider,推荐使用的是 netty-tcnative,具体可参见 gRPC Java 社区的总结: <a href="https://github.com/grpc/grpc-java/blob/master/SECURITY.md">https://github.com/grpc/grpc-java/blob/master/SECURITY.md</a></p>
-</blockquote>
-<p>在服务调用的安全性上,Dubbo 在后续的版本中会持续投入,其中服务发现/调用的鉴权机制预计在接下来的版本中就会和大家见面。</p>
-<h2 id="6-bootstrap-apibeta">6. Bootstrap API【beta】</h2>
-<p>在上面讲《服务自省》时,我们提到了 Dubbo 面向接口的设计,面向接口编程、面向接口做服务发现和服务治理。在引入应用粒度服务发现的同时,2.7.5 版本对编程入口也做了优化,在兼容老版本 API 的同时,新增了新的面向应用的编程接口 - DubboBootstrap。</p>
-<p>以面向 Dubbo API 编程为例,以前我们要这么写:</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ServiceConfig<span style="color:#719e07">&lt;</span>GreetingsService<span style="color:#719e07">&gt;</span> service1 <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ServiceConfig<span style="color:#719e07" [...]
-</span></span><span style="display:flex;"><span>service1<span style="color:#719e07">.</span>setApplication<span style="color:#719e07">(</span><span style="color:#719e07">new</span> ApplicationConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;first-dubbo-provider&#34;</span><span style="color:#719e07">));</span>
-</span></span><span style="display:flex;"><span>service1<span style="color:#719e07">.</span>setRegistry<span style="color:#719e07">(</span><span style="color:#719e07">new</span> RegistryConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;zookeeper://&#34;</span> <span style="color:#719e07">+</span> zookeeperHost <span style="color:#719e07">+</span> <span style="color:#2aa198">&#34;:2181&#34;&l [...]
-</span></span><span style="display:flex;"><span>service1<span style="color:#719e07">.</span>export<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>ServiceConfig<span style="color:#719e07">&lt;</span>GreetingsService<span style="color:#719e07">&gt;</span> service2 <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ServiceConfig<span style="color:#719e07">&lt;&gt;();</span>
-</span></span><span style="display:flex;"><span>service2<span style="color:#719e07">.</span>setApplication<span style="color:#719e07">(</span><span style="color:#719e07">new</span> ApplicationConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;first-dubbo-provider&#34;</span><span style="color:#719e07">));</span>
-</span></span><span style="display:flex;"><span>service2<span style="color:#719e07">.</span>setRegistry<span style="color:#719e07">(</span><span style="color:#719e07">new</span> RegistryConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;zookeeper://&#34;</span> <span style="color:#719e07">+</span> zookeeperHost <span style="color:#719e07">+</span> <span style="color:#2aa198">&#34;:2181&#34;&l [...]
-</span></span><span style="display:flex;"><span>service2<span style="color:#719e07">.</span>export<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span><span style="color:#719e07">......</span>
-</span></span></code></pre></div><p>ApplicationConfig、RegistryConfig、ProtocolConfig 等全局性的配置要在每个服务上去配置;并且从 Dubbo 框架的角度,由于缺少一个统一的 Server 入口,一些实例级别的配置如 ShutdownHook、ApplicationListener、应用级服务治理组件等都缺少一个加载驱动点。</p>
-<p>在引入 DubboBootstrap 后,新的编程模型变得更简单,并且也为解决了缺少实例级启动入口的问题</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-java" data-lang="java"><span style="display:flex;"><span>ProtocolConfig protocolConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ProtocolConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;grpc&#34;</span><span style="color:#719e07"> [...]
-</span></span><span style="display:flex;"><span>protocolConfig<span style="color:#719e07">.</span>setSslEnabled<span style="color:#719e07">(</span><span style="color:#cb4b16">true</span><span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>SslConfig sslConfig <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> SslConfig<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span>sslConfig<span style="color:#719e07">.</span>setXxxCert<span style="color:#719e07">(...);</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>DubboBootstrap bootstrap <span style="color:#719e07">=</span> DubboBootstrap<span style="color:#719e07">.</span>getInstance<span style="color:#719e07">();</span>
-</span></span><span style="display:flex;"><span>bootstrap<span style="color:#719e07">.</span>application<span style="color:#719e07">(</span><span style="color:#719e07">new</span> ApplicationConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;ssl-provider&#34;</span><span style="color:#719e07">))</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">.</span>registry<span style="color:#719e07">(</span><span style="color:#719e07">new</span> RegistryConfig<span style="color:#719e07">(</span><span style="color:#2aa198">&#34;zookeeper://127.0.0.1:2181&#34;</span><span style="color:#719e07">))</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">.</span>protocol<span style="color:#719e07">(</span>protocolConfig<span style="color:#719e07">)</span>
-</span></span><span style="display:flex;"><span> <span style="color:#719e07">.</span>ssl<span style="color:#719e07">(</span>sslConfig<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>ServiceConfig<span style="color:#719e07">&lt;</span>GreetingsService<span style="color:#719e07">&gt;</span> service1 <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ServiceConfig<span style="color:#719e07">&lt;&gt;();</span>
-</span></span><span style="display:flex;"><span>ServiceConfig<span style="color:#719e07">&lt;</span>GreetingsService<span style="color:#719e07">&gt;</span> service2 <span style="color:#719e07">=</span> <span style="color:#719e07">new</span> ServiceConfig<span style="color:#719e07">&lt;&gt;();</span>
-</span></span><span style="display:flex;"><span>
-</span></span><span style="display:flex;"><span>bootstrap<span style="color:#719e07">.</span>service<span style="color:#719e07">(</span>service1<span style="color:#719e07">).</span>service<span style="color:#719e07">(</span>service2<span style="color:#719e07">);</span>
-</span></span><span style="display:flex;"><span>bootstrap<span style="color:#719e07">.</span>start<span style="color:#719e07">();</span>
-</span></span></code></pre></div><h2 id="7-多注册中心集群负载均衡">7. 多注册中心集群负载均衡</h2>
-<p>对于多注册中心订阅的场景,选址时的多了一层注册中心集群间的负载均衡:</p>
-<p><img src="https://dubbo.apache.org/imgs/blog/cluster-lb.png" alt="cluster-lb.png"></p>
-<p>在 Cluster Invoker 这一级,我们支持的选址策略有(2.7.5+ 版本,具体使用请参见文档):</p>
-<ul>
-<li>
-<p>指定优先级</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#586e75">&lt;!-- 来自 preferred=“true” 注册中心的地址将被优先选择,只有该中心无可用地址时才 Fallback 到其他注册中心 --&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:registry</span> address=<span style="color:#2aa198">&#34;zookeeper://${zookeeper.address1}&#34;</span> preferred=<span style="color:#2aa198">&#34;true&#34;</span> <span style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div></li>
-<li>
-<p>同 zone 优先</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#586e75">&lt;!-- 选址时会和流量中的 zone key 做匹配,流量会优先派发到相同 zone 的地址 --&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:registry</span> address=<span style="color:#2aa198">&#34;zookeeper://${zookeeper.address1}&#34;</span> zone=<span style="color:#2aa198">&#34;beijing&#34;</span> <span style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div></li>
-<li>
-<p>权重轮询</p>
-<div class="highlight"><pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-xml" data-lang="xml"><span style="display:flex;"><span><span style="color:#586e75">&lt;!-- 来自北京和上海集群的地址,将以 10:1 的比例来分配流量 --&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:registry</span> id=<span style="color:#2aa198">&#34;beijing&#34;</span> address=<span style="color:#2aa198">&#34;zookeeper://${zookeeper.address1}&#34;</span> weight=<span style="color:#2aa198">”100“</span> <span style="color:#268bd2">/&gt;</span>
-</span></span><span style="display:flex;"><span><span style="color:#268bd2">&lt;dubbo:registry</span> id=<span style="color:#2aa198">&#34;shanghai&#34;</span> address=<span style="color:#2aa198">&#34;zookeeper://${zookeeper.address2}&#34;</span> weight=<span style="color:#2aa198">”10“</span> <span style="color:#268bd2">/&gt;</span>
-</span></span></code></pre></div></li>
-<li>
-<p>默认,stick to 任意可用</p>
-</li>
-</ul>
-<blockquote>
-<p>关于多注册中心订阅模型,Dubbo 同时也提供了 Multi-Registry 合并的解决思路,欢迎参与到以下 PR 的讨论中: <a href="https://github.com/apache/dubbo/issues/5399">https://github.com/apache/dubbo/issues/5399</a></p>
-</blockquote>
-<h2 id="8-其他功能增强">8. 其他功能增强</h2>
-<ul>
-<li>
-<p>新增地址变更事件通知接口,方便业务侧感知地址变化</p>
-</li>
-<li>
-<p>新增外围配置加载入口,方便开发者在启动阶段定制服务启动参数</p>
-</li>
-<li>
-<p>config 模块重构</p>
-</li>
-<li>
-<p>parameters 扩展配置增强</p>
-</li>
-<li>
-<p>其他一些 Bugfix</p>
-</li>
-</ul>
-<p>从 Dubbo 框架自身的角度来说,2.7.5 版本也做了很多的重构与优化(比如说 config 模块的重构),这些改动对于使用者来说并无感知的,但是从优化整个 Dubbo 代码内部结构的角度来说,这些改动对后续的功能开发与新机制的引入是一个很好的铺垫。</p>
-<h2 id="9-总结与展望">9. 总结与展望</h2>
-<p>在后续的版本中,Dubbo 会持续快速的优化与迭代,主要从以下几个方面发力:</p>
-<ul>
-<li>继续探索服务自省成为 Dubbo 主推的服务治理模型。</li>
-<li>对于企业用户关心的微服务解决方案场景,会持续推进框架的演进,包括当前正在开发的配置、服务鉴权机制、熔断等功能。后续还会尝试联合社区推动周边配套设施如网关、治理平台 Admin 等的建设,非常期待社区能踊跃参与到此部分的建设中。</li>
-<li>性能优化上。主要从两个方面着手,一是调用链路的持续优化,同时继续探索新的更通用的 RPC 协议;另一方面是在服务治理推送机制上的优化,以进一步提高 Dubbo 在大规模服务地址推送场景下的表现。</li>
-<li>云原生方向。接下来的版本将重点探索,1. 如何更好的支持 Dubbo 在 Kubernetes 上的部署和服务治理;2. 对于混合部署的场景,如传统 VM 和 K8S 体系混合部署、SDK Dubbo 与 Mesh 混合部署的场景,如何提供更好的支持以实现混部场景的长期共存或迁移。</li>
-</ul></description></item><item><title>Blog: 过往版本</title><link>https://dubbo.apache.org/zh/blog/2020/05/18/%E8%BF%87%E5%BE%80%E7%89%88%E6%9C%AC/</link><pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate><guid>https://dubbo.apache.org/zh/blog/2020/05/18/%E8%BF%87%E5%BE%80%E7%89%88%E6%9C%AC/</guid><description>
-<h2 id="验证">验证</h2>
-<p>可以按照这里的<a href="https://www.apache.org/info/verification">步骤</a>, 利用<a href="https://downloads.apache.org/dubbo/KEYS">KEYS</a>文件来验证下载。</p>
-<h2 id="apache-dubbo">Apache Dubbo</h2>
-<p>请点击了解各<a href="https://dubbo.apache.org/zh/docs/v2.7/user/versions/">版本详情和升级注意事项</a></p>
-<blockquote>
-<p>GitHub: <a href="https://github.com/apache/dubbo">https://github.com/apache/dubbo</a> <br>
-发布说明: <a href="https://github.com/apache/dubbo/releases">https://github.com/apache/dubbo/releases</a></p>
-</blockquote>
-<h3 id="2716-2022-07-06">2.7.16 (2022-07-06)</h3>
-<ul>
-<li><a href="https://www.apache.org/dyn/closer.lua/dubbo/2.7.16/apache-dubbo-2.7.16-src.zip">source</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.7.16/apache-dubbo-2.7.16-src.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.7.16/apache-dubbo-2.7.16-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="309-2022-06-23">3.0.9 (2022-06-23)</h3>
-<ul>
-<li><a href="https://www.apache.org/dyn/closer.lua/dubbo/3.0.9/apache-dubbo-3.0.9-src.zip">source</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/3.0.9/apache-dubbo-3.0.9-src.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/3.0.9/apache-dubbo-3.0.9-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="308-2022-05-11">3.0.8 (2022-05-11)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.8/apache-dubbo-3.0.8-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.8/apache-dubbo-3.0.8-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.8/apache-dubbo-3.0.8-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="307-2022-04-01">3.0.7 (2022-04-01)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.7/apache-dubbo-3.0.7-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.7/apache-dubbo-3.0.7-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.7/apache-dubbo-3.0.7-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="306-2022-02-28">3.0.6 (2022-02-28)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.6/apache-dubbo-3.0.6-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.6/apache-dubbo-3.0.6-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.6/apache-dubbo-3.0.6-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="305-2021-12-30">3.0.5 (2021-12-30)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.5/apache-dubbo-3.0.5-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.5/apache-dubbo-3.0.5-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.5/apache-dubbo-3.0.5-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2715-2021-12-29">2.7.15 (2021-12-29)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.15/apache-dubbo-2.7.15-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.15/apache-dubbo-2.7.15-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.15/apache-dubbo-2.7.15-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2612-2021-12-29">2.6.12 (2021-12-29)</h3>
-<ul>
-<li><a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.12/apache-dubbo-2.6.12-src.zip">source</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.12/apache-dubbo-v-src.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.12/apache-dubbo-2.6.12-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="304-2021-10-24">3.0.4 (2021-10-24)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.4/apache-dubbo-3.0.4-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.4/apache-dubbo-3.0.4-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.4/apache-dubbo-3.0.4-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="303-2021-09-27">3.0.3 (2021-09-27)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.3/apache-dubbo-3.0.3-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.3/apache-dubbo-3.0.3-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.3/apache-dubbo-3.0.3-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2714-2021-09-20">2.7.14 (2021-09-20)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.14/apache-dubbo-2.7.14-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.14/apache-dubbo-2.7.14-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.14/apache-dubbo-2.7.14-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2611-2021-09-18">2.6.11 (2021-09-18)</h3>
-<ul>
-<li><a href="https://www.apache.org/dyn/closer.cgi?path=dubbo/2.6.11/apache-dubbo-2.6.11-source-release.zip">source</a> |
-<a href="https://www.apache.org/dyn/closer.cgi?path=dubbo/2.6.11/apache-dubbo-2.6.11-source-release.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.cgi?path=dubbo/2.6.11/apache-dubbo-2.6.11-source-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="3021-2021-08-23">3.0.2.1 (2021-08-23)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.2.1/apache-dubbo-3.0.2.1-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.2.1/apache-dubbo-3.0.2.1-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.2.1/apache-dubbo-3.0.2.1-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="302-2021-08-16">3.0.2 (2021-08-16)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.2/apache-dubbo-3.0.2-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.2/apache-dubbo-3.0.2-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.2/apache-dubbo-3.0.2-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2713-2021-08-05">2.7.13 (2021-08-05)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.13/apache-dubbo-2.7.13-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.13/apache-dubbo-2.7.13-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.13/apache-dubbo-2.7.13-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="301-2021-07-02">3.0.1 (2021-07-02)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.1/apache-dubbo-3.0.1-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.1/apache-dubbo-3.0.1-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.1/apache-dubbo-3.0.1-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="300-2021-06-16">3.0.0 (2021-06-16)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/3.0.0/apache-dubbo-3.0.0-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.0/apache-dubbo-3.0.0-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/3.0.0/apache-dubbo-3.0.0-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2712-2021-06-11">2.7.12 (2021-06-11)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.12/apache-dubbo-2.7.12-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.12/apache-dubbo-2.7.12-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.12/apache-dubbo-2.7.12-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="26101-2021-05-30">2.6.10.1 (2021-05-30)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.6.10.1/apache-dubbo-2.6.10.1-source-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2711-2021-05-12">2.7.11 (2021-05-12)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.11/apache-dubbo-2.7.11-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.11/apache-dubbo-2.7.11-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.11/apache-dubbo-2.7.11-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2710-2021-04-08">2.7.10 (2021-04-08)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.10/apache-dubbo-2.7.10-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.10/apache-dubbo-2.7.10-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.10/apache-dubbo-2.7.10-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="279-2020-02-23">2.7.9 (2020-02-23)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.9/apache-dubbo-2.7.9-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.9/apache-dubbo-2.7.9-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.9/apache-dubbo-2.7.9-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="278-2020-07-28">2.7.8 (2020-07-28)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.8/apache-dubbo-2.7.8-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.8/apache-dubbo-2.7.8-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.8/apache-dubbo-2.7.8-source-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="277-2020-05-18">2.7.7 (2020-05-18)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.7/apache-dubbo-2.7.7-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.7/apache-dubbo-2.7.7-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.7/apache-dubbo-2.7.7-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="275-2019-12-29">2.7.5 (2019-12-29)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.5/apache-dubbo-2.7.5-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.5/apache-dubbo-2.7.5-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.5/apache-dubbo-2.7.5-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="2741-2019-10-27">2.7.4.1 (2019-10-27)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.4.1/apache-dubbo-2.7.4.1-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.4.1/apache-dubbo-2.7.4.1-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.4.1/apache-dubbo-2.7.4.1-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="274-2019-10-19">2.7.4 (2019-10-19)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.4/apache-dubbo-2.7.4-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.4/apache-dubbo-2.7.4-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.4/apache-dubbo-2.7.4-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="273-2019-07-19">2.7.3 (2019-07-19)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.3/apache-dubbo-2.7.3-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.3/apache-dubbo-2.7.3-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.3/apache-dubbo-2.7.3-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="272-2019-06-06">2.7.2 (2019-06-06)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/dubbo/2.7.2/apache-dubbo-2.7.2-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.2/apache-dubbo-2.7.2-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/dubbo/2.7.2/apache-dubbo-2.7.2-src.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="271-2019-03-26">2.7.1 (2019-03-26)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.7.1/apache-dubbo-incubating-2.7.1-src.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.1/apache-dubbo-incubating-2.7.1-src.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.1/apache-dubbo-incubating-2.7.1-src.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.7.1/apache-dubbo-incubating-2.7.1-bin.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.1/apache-dubbo-incubating-2.7.1-bin.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.1/apache-dubbo-incubating-2.7.1-bin.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="270-2019-01-29">2.7.0 (2019-01-29)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.7.0/apache-dubbo-incubating-2.7.0-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.0/apache-dubbo-incubating-2.7.0-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.0/apache-dubbo-incubating-2.7.0-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.7.0/apache-dubbo-incubating-2.7.0-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.0/apache-dubbo-incubating-2.7.0-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.7.0/apache-dubbo-incubating-2.7.0-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="267-2019-07-15">2.6.7 (2019-07-15)</h3>
-<ul>
-<li><a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.7/apache-dubbo-2.6.7-source-release.zip">source</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.7/apache-dubbo-2.6.7-source-release.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.7/apache-dubbo-2.6.7-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.7/apache-dubbo-2.6.7-bin-release.zip">binary</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.7/apache-dubbo-2.6.7-bin-release.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/dubbo/2.6.7/apache-dubbo-2.6.7-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="266-2019-03-07">2.6.6 (2019-03-07)</h3>
-<ul>
-<li><a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/2.6.6/apache-dubbo-incubating-2.6.6-source-release.zip">source</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/2.6.6/apache-dubbo-incubating-2.6.6-source-release.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/2.6.6/apache-dubbo-incubating-2.6.6-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/2.6.6/apache-dubbo-incubating-2.6.6-bin-release.zip">binary</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/2.6.6/apache-dubbo-incubating-2.6.6-bin-release.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/2.6.6/apache-dubbo-incubating-2.6.6-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="265-2018-11-23">2.6.5 (2018-11-23)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.5/apache-dubbo-incubating-2.6.5-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.5/apache-dubbo-incubating-2.6.5-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.5/apache-dubbo-incubating-2.6.5-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.5/apache-dubbo-incubating-2.6.5-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.5/apache-dubbo-incubating-2.6.5-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.5/apache-dubbo-incubating-2.6.5-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="264-2018-10-08">2.6.4 (2018-10-08)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.4/apache-dubbo-incubating-2.6.4-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="263-2018-09-11">2.6.3 (2018-09-11)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.3/apache-dubbo-incubating-2.6.3-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.3/apache-dubbo-incubating-2.6.3-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.3/apache-dubbo-incubating-2.6.3-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.3/apache-dubbo-incubating-2.6.3-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.3/apache-dubbo-incubating-2.6.3-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.3/apache-dubbo-incubating-2.6.3-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="262-2018-06-07">2.6.2 (2018-06-07)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.2/dubbo-incubating-2.6.2-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.2/dubbo-incubating-2.6.2-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.2/dubbo-incubating-2.6.2-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/2.6.2/dubbo-incubating-2.6.2-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.2/dubbo-incubating-2.6.2-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/2.6.2/dubbo-incubating-2.6.2-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h2 id="dubbo-spring-boot-starter">Dubbo Spring Boot Starter</h2>
-<blockquote>
-<p>GitHub: <a href="https://github.com/apache/incubator-dubbo-spring-boot-project">https://github.com/apache/incubator-dubbo-spring-boot-project</a> <br>
-发布说明:https://github.com/apache/incubator-dubbo-spring-boot-project/releases</p>
-</blockquote>
-<h3 id="271-2019-04-09">2.7.1 (2019-04-09)</h3>
-<ul>
-<li><a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/spring-boot-project/2.7.1/apache-dubbo-spring-boot-project-incubating-2.7.1-source-release.zip">source</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/spring-boot-project/2.7.1/apache-dubbo-spring-boot-project-incubating-2.7.1-source-release.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/spring-boot-project/2.7.1/apache-dubbo-spring-boot-project-incubating-2.7.1-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/spring-boot-project/2.7.1/apache-dubbo-spring-boot-project-incubating-2.7.1-bin-release.zip">binary</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/spring-boot-project/2.7.1/apache-dubbo-spring-boot-project-incubating-2.7.1-bin-release.zip.asc">asc</a> |
-<a href="https://www.apache.org/dyn/closer.lua/incubator/dubbo/spring-boot-project/2.7.1/apache-dubbo-spring-boot-project-incubating-2.7.1-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="270-2019-02-14">2.7.0 (2019-02-14)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/2.7.0/apache-dubbo-spring-boot-project-incubating-2.7.0-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/2.7.0/apache-dubbo-spring-boot-project-incubating-2.7.0-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/2.7.0/apache-dubbo-spring-boot-project-incubating-2.7.0-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/2.7.0/apache-dubbo-spring-boot-project-incubating-2.7.0-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/2.7.0/apache-dubbo-spring-boot-project-incubating-2.7.0-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/2.7.0/apache-dubbo-spring-boot-project-incubating-2.7.0-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="021-2019-01-27">0.2.1 (2019-01-27)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.2.1/apache-dubbo-spring-boot-project-incubating-0.2.1-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.2.1/apache-dubbo-spring-boot-project-incubating-0.2.1-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.2.1/apache-dubbo-spring-boot-project-incubating-0.2.1-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.2.1/apache-dubbo-spring-boot-project-incubating-0.2.1-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.2.1/apache-dubbo-spring-boot-project-incubating-0.2.1-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.2.1/apache-dubbo-spring-boot-project-incubating-0.2.1-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h3 id="012-2019-01-27">0.1.2 (2019-01-27)</h3>
-<ul>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.1.2/apache-dubbo-spring-boot-project-incubating-0.1.2-source-release.zip">source</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.1.2/apache-dubbo-spring-boot-project-incubating-0.1.2-source-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.1.2/apache-dubbo-spring-boot-project-incubating-0.1.2-source-release.zip.sha512">sha512</a></li>
-<li><a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.1.2/apache-dubbo-spring-boot-project-incubating-0.1.2-bin-release.zip">binary</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.1.2/apache-dubbo-spring-boot-project-incubating-0.1.2-bin-release.zip.asc">asc</a> |
-<a href="https://archive.apache.org/dist/incubator/dubbo/spring-boot-project/0.1.2/apache-dubbo-spring-boot-project-incubating-0.1.2-bin-release.zip.sha512">sha512</a></li>
-</ul>
-<h2 id="dubbo-admin">Dubbo Admin</h2>
-<blockquote>
-<p>GitHub: <a href="https://github.com/apache/incubator-dubbo-admin">https://github.com/apache/incubator-dubbo-admin</a> <br>
... 55273 lines suppressed ...