You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by hu...@apache.org on 2018/04/06 07:20:20 UTC

[incubator-dubbo-website] branch asf-site updated (da32423 -> c086e50)

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

huxing pushed a change to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git.


    from da32423  Update asf feather.
     new d88c9be  Do not show download button according to ASF policy.
     new 5e4e78d  Add trademarks descrption.
     new fe0cad6  Polish branding.
     new 2b2e05c  Hide download button and add trademarks description.
     new bf27614  Ignore _site directory.
     new 9b3458b  Update docs.
     new 7500083  Polish readme.
     new c086e50  Remove index.html before deploy.

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


Summary of changes:
 .gitignore                                         |   2 +-
 README.md                                          |   8 +-
 _config.yml                                        |   4 +-
 _config_build.yml                                  |   4 +-
 _layouts/default.html                              |   6 +-
 books/dubbo-admin-book-en/index.html               |   2 +-
 .../dubbo-admin-book-en/install/admin-console.html |   2 +-
 .../dubbo-admin-book-en/install/consumer-demo.html |   2 +-
 .../dubbo-admin-book-en/install/introduction.html  |   2 +-
 .../dubbo-admin-book-en/install/provider-demo.html |   2 +-
 books/dubbo-admin-book-en/install/redis.html       |   2 +-
 .../install/simple-monitor-center.html             |   2 +-
 .../install/simple-registry-center.html            |   2 +-
 books/dubbo-admin-book-en/install/zookeeper.html   |   2 +-
 books/dubbo-admin-book-en/ops/dubbo-ops.html       |   2 +-
 books/dubbo-admin-book/index.html                  |   2 +-
 books/dubbo-admin-book/install/admin-console.html  |   2 +-
 books/dubbo-admin-book/install/consumer-demo.html  |   2 +-
 books/dubbo-admin-book/install/introduction.html   |   2 +-
 books/dubbo-admin-book/install/provider-demo.html  |   2 +-
 books/dubbo-admin-book/install/redis.html          |   2 +-
 .../install/simple-monitor-center.html             |   2 +-
 .../install/simple-registry-center.html            |   2 +-
 books/dubbo-admin-book/install/zookeeper.html      |   2 +-
 books/dubbo-admin-book/ops/dubbo-ops.html          |   2 +-
 books/dubbo-admin-book/ops/introduction.html       |   2 +-
 books/dubbo-dev-book-en/SPI.html                   |   2 +-
 books/dubbo-dev-book-en/TCK.html                   |   2 +-
 books/dubbo-dev-book-en/build.html                 |   2 +-
 books/dubbo-dev-book-en/checklist.html             |   2 +-
 books/dubbo-dev-book-en/code-smell.html            |   2 +-
 books/dubbo-dev-book-en/coding.html                |   2 +-
 books/dubbo-dev-book-en/contract.html              |   2 +-
 books/dubbo-dev-book-en/contribution.html          |   2 +-
 books/dubbo-dev-book-en/design.html                |   2 +-
 books/dubbo-dev-book-en/implementation.html        |   2 +-
 books/dubbo-dev-book-en/impls/cache.html           |   2 +-
 books/dubbo-dev-book-en/impls/cluster.html         |   2 +-
 books/dubbo-dev-book-en/impls/compiler.html        |   2 +-
 books/dubbo-dev-book-en/impls/container.html       |   2 +-
 books/dubbo-dev-book-en/impls/dispatcher.html      |   2 +-
 books/dubbo-dev-book-en/impls/exchanger.html       |   2 +-
 .../dubbo-dev-book-en/impls/exporter-listener.html |   2 +-
 .../dubbo-dev-book-en/impls/extension-factory.html |   2 +-
 books/dubbo-dev-book-en/impls/filter.html          |   2 +-
 books/dubbo-dev-book-en/impls/introduction.html    |   2 +-
 .../dubbo-dev-book-en/impls/invoker-listener.html  |   2 +-
 books/dubbo-dev-book-en/impls/load-balance.html    |   2 +-
 books/dubbo-dev-book-en/impls/logger-adapter.html  |   2 +-
 books/dubbo-dev-book-en/impls/merger.html          |   2 +-
 books/dubbo-dev-book-en/impls/monitor.html         |   2 +-
 books/dubbo-dev-book-en/impls/networker.html       |   2 +-
 books/dubbo-dev-book-en/impls/page.html            |   2 +-
 books/dubbo-dev-book-en/impls/protocol.html        |   2 +-
 books/dubbo-dev-book-en/impls/proxy-factory.html   |   2 +-
 books/dubbo-dev-book-en/impls/registry.html        |   2 +-
 books/dubbo-dev-book-en/impls/remoting.html        |   2 +-
 books/dubbo-dev-book-en/impls/router.html          |   2 +-
 books/dubbo-dev-book-en/impls/serialize.html       |   2 +-
 books/dubbo-dev-book-en/impls/status-checker.html  |   2 +-
 books/dubbo-dev-book-en/impls/telnet-handler.html  |   2 +-
 books/dubbo-dev-book-en/impls/threadpool.html      |   2 +-
 books/dubbo-dev-book-en/impls/validation.html      |   2 +-
 books/dubbo-dev-book-en/index.html                 |   2 +-
 books/dubbo-dev-book-en/introduction.html          |  63 +++++++++
 books/dubbo-dev-book-en/release.html               |   2 +-
 books/dubbo-dev-book/SPI.html                      |   2 +-
 books/dubbo-dev-book/TCK.html                      |   2 +-
 books/dubbo-dev-book/build.html                    |   2 +-
 books/dubbo-dev-book/checklist.html                |   2 +-
 books/dubbo-dev-book/code-smell.html               |   2 +-
 books/dubbo-dev-book/coding.html                   |   2 +-
 books/dubbo-dev-book/contract.html                 |   2 +-
 books/dubbo-dev-book/contribution.html             |   2 +-
 books/dubbo-dev-book/design.html                   |   2 +-
 books/dubbo-dev-book/implementation.html           |   2 +-
 books/dubbo-dev-book/impls/cache.html              |   2 +-
 books/dubbo-dev-book/impls/cluster.html            |   2 +-
 books/dubbo-dev-book/impls/compiler.html           |   2 +-
 books/dubbo-dev-book/impls/container.html          |   2 +-
 books/dubbo-dev-book/impls/dispatcher.html         |   2 +-
 books/dubbo-dev-book/impls/exchanger.html          |   2 +-
 books/dubbo-dev-book/impls/exporter-listener.html  |   2 +-
 books/dubbo-dev-book/impls/extension-factory.html  |   2 +-
 books/dubbo-dev-book/impls/filter.html             |   2 +-
 books/dubbo-dev-book/impls/introduction.html       |   2 +-
 books/dubbo-dev-book/impls/invoker-listener.html   |   2 +-
 books/dubbo-dev-book/impls/load-balance.html       |   2 +-
 books/dubbo-dev-book/impls/logger-adapter.html     |   2 +-
 books/dubbo-dev-book/impls/merger.html             |   2 +-
 books/dubbo-dev-book/impls/monitor.html            |   2 +-
 books/dubbo-dev-book/impls/networker.html          |   2 +-
 books/dubbo-dev-book/impls/page.html               |   2 +-
 books/dubbo-dev-book/impls/protocol.html           |   2 +-
 books/dubbo-dev-book/impls/proxy-factory.html      |   2 +-
 books/dubbo-dev-book/impls/registry.html           |   2 +-
 books/dubbo-dev-book/impls/remoting.html           |   2 +-
 books/dubbo-dev-book/impls/router.html             |   2 +-
 books/dubbo-dev-book/impls/serialize.html          |   2 +-
 books/dubbo-dev-book/impls/status-checker.html     |   2 +-
 books/dubbo-dev-book/impls/telnet-handler.html     |   2 +-
 books/dubbo-dev-book/impls/threadpool.html         |   2 +-
 books/dubbo-dev-book/impls/validation.html         |   2 +-
 books/dubbo-dev-book/index.html                    |   2 +-
 books/dubbo-dev-book/introduction.html             |  63 +++++++++
 books/dubbo-dev-book/principals/code-detail.html   |   2 +-
 books/dubbo-dev-book/principals/configuration.html |   2 +-
 books/dubbo-dev-book/principals/dummy.html         |   2 +-
 books/dubbo-dev-book/principals/expansibility.html |   2 +-
 books/dubbo-dev-book/principals/extension.html     |   2 +-
 .../principals/general-knowledge.html              |   2 +-
 books/dubbo-dev-book/principals/introduction.html  |   2 +-
 books/dubbo-dev-book/principals/robustness.html    |   2 +-
 books/dubbo-dev-book/release.html                  |   2 +-
 books/dubbo-user-book-en/benchmark-tool.html       | 105 ++++++++++++++
 books/dubbo-user-book-en/best-practice.html        |   2 +-
 books/dubbo-user-book-en/capacity-plan.html        |   2 +-
 .../configuration/annotation.html                  |   2 +-
 books/dubbo-user-book-en/configuration/api.html    |   2 +-
 books/dubbo-user-book-en/configuration/index.html  |   2 +-
 .../configuration/properties.html                  |   2 +-
 books/dubbo-user-book-en/configuration/xml.html    |   2 +-
 books/dubbo-user-book-en/coveragence.html          |   2 +-
 books/dubbo-user-book-en/demos/accesslog.html      |   2 +-
 books/dubbo-user-book-en/demos/async-call.html     |   2 +-
 books/dubbo-user-book-en/demos/attachment.html     |   2 +-
 .../demos/callback-parameter.html                  |   2 +-
 .../demos/concurrency-control.html                 |   2 +-
 .../demos/config-connections.html                  |   2 +-
 books/dubbo-user-book-en/demos/config-rule.html    |   2 +-
 books/dubbo-user-book-en/demos/context.html        |   2 +-
 books/dubbo-user-book-en/demos/delay-publish.html  |   4 +-
 .../demos/distributed-transaction.html             |   2 +-
 books/dubbo-user-book-en/demos/dump.html           |   2 +-
 books/dubbo-user-book-en/demos/echo-service.html   |   2 +-
 books/dubbo-user-book-en/demos/events-notify.html  |   2 +-
 .../dubbo-user-book-en/demos/explicit-target.html  |   2 +-
 .../demos/fault-tolerent-strategy.html             |   2 +-
 .../demos/generic-reference.html                   |   2 +-
 .../dubbo-user-book-en/demos/generic-service.html  |   2 +-
 .../demos/graceful-shutdown.html                   |   2 +-
 books/dubbo-user-book-en/demos/group-merger.html   |   2 +-
 .../dubbo-user-book-en/demos/hostname-binding.html |   2 +-
 books/dubbo-user-book-en/demos/index.html          |   2 +-
 books/dubbo-user-book-en/demos/introduction.html   |  66 +++++++++
 books/dubbo-user-book-en/demos/lazy-connect.html   |   2 +-
 books/dubbo-user-book-en/demos/loadbalance.html    |   2 +-
 books/dubbo-user-book-en/demos/local-call.html     |   2 +-
 books/dubbo-user-book-en/demos/local-mock.html     |   2 +-
 books/dubbo-user-book-en/demos/local-stub.html     |   2 +-
 .../dubbo-user-book-en/demos/logger-strategy.html  |   2 +-
 .../dubbo-user-book-en/demos/multi-protocols.html  |   2 +-
 books/dubbo-user-book-en/demos/multi-registry.html |   2 +-
 books/dubbo-user-book-en/demos/multi-versions.html |   2 +-
 books/dubbo-user-book-en/demos/netty4.html         |   2 +-
 .../demos/parameter-validation.html                |   2 +-
 .../dubbo-user-book-en/demos/preflight-check.html  |   2 +-
 .../demos/reference-config-cache.html              |   2 +-
 books/dubbo-user-book-en/demos/registry-only.html  |   2 +-
 books/dubbo-user-book-en/demos/result-cache.html   |   2 +-
 books/dubbo-user-book-en/demos/routing-rule.html   |   4 +-
 .../demos/service-container.html                   |   2 +-
 .../demos/service-donwngrade.html                  |   2 +-
 books/dubbo-user-book-en/demos/service-group.html  |   2 +-
 books/dubbo-user-book-en/demos/static-service.html |   2 +-
 books/dubbo-user-book-en/demos/stickiness.html     |   2 +-
 books/dubbo-user-book-en/demos/subscribe-only.html |   2 +-
 books/dubbo-user-book-en/demos/thread-model.html   |   2 +-
 .../demos/token-authorization.html                 |   2 +-
 books/dubbo-user-book-en/dependencies.html         |   2 +-
 books/dubbo-user-book-en/index.html                |   2 +-
 books/dubbo-user-book-en/maturity.html             |   2 +-
 books/dubbo-user-book-en/perf-test.html            |   2 +-
 books/dubbo-user-book-en/preface/architecture.html |   2 +-
 books/dubbo-user-book-en/preface/background.html   |   2 +-
 books/dubbo-user-book-en/preface/index.html        |   2 +-
 books/dubbo-user-book-en/preface/requirements.html |   2 +-
 books/dubbo-user-book-en/preface/usage.html        |   2 +-
 books/dubbo-user-book-en/quick-start.html          |   4 +-
 books/dubbo-user-book-en/recommend.html            |   4 +-
 books/dubbo-user-book-en/references/api.html       |   2 +-
 books/dubbo-user-book-en/references/maven.html     |   2 +-
 .../references/protocol/dubbo.html                 |   2 +-
 .../references/protocol/hessian.html               |   2 +-
 .../references/protocol/http.html                  |   2 +-
 .../references/protocol/introduction.html          |   2 +-
 .../references/protocol/memcached.html             |   2 +-
 .../references/protocol/redis.html                 |   2 +-
 .../references/protocol/rmi.html                   |   2 +-
 .../references/protocol/thrift.html                |   2 +-
 .../references/protocol/webservice.html            |   2 +-
 .../references/registry/introduction.html          |   2 +-
 .../references/registry/multicast.html             |   2 +-
 .../references/registry/redis.html                 |   2 +-
 .../references/registry/simple.html                |   2 +-
 .../references/registry/zookeeper.html             |   2 +-
 books/dubbo-user-book-en/references/telnet.html    |   4 +-
 .../references/xml/dubbo-application.html          |   2 +-
 .../references/xml/dubbo-argument.html             |   2 +-
 .../references/xml/dubbo-consumer.html             |   2 +-
 .../references/xml/dubbo-method.html               |   2 +-
 .../references/xml/dubbo-module.html               |   2 +-
 .../references/xml/dubbo-monitor.html              |   2 +-
 .../references/xml/dubbo-parameter.html            |   2 +-
 .../references/xml/dubbo-protocol.html             |   2 +-
 .../references/xml/dubbo-provider.html             |   2 +-
 .../references/xml/dubbo-reference.html            |   2 +-
 .../references/xml/dubbo-registry.html             |   2 +-
 .../references/xml/dubbo-service.html              |   2 +-
 .../references/xml/introduction.html               |   2 +-
 books/dubbo-user-book-en/simple-monitor.html       | 151 ++++++++++++++++++++
 books/dubbo-user-book/benchmark-tool.html          |  93 +++++++++++++
 books/dubbo-user-book/best-practice.html           |   2 +-
 books/dubbo-user-book/capacity-plan.html           |   2 +-
 .../dubbo-user-book/configuration/annotation.html  |   2 +-
 books/dubbo-user-book/configuration/api.html       |   2 +-
 books/dubbo-user-book/configuration/index.html     |   2 +-
 .../dubbo-user-book/configuration/properties.html  |   2 +-
 books/dubbo-user-book/configuration/xml.html       |   2 +-
 books/dubbo-user-book/coveragence.html             |   2 +-
 books/dubbo-user-book/demos/accesslog.html         |   2 +-
 books/dubbo-user-book/demos/async-call.html        |   2 +-
 books/dubbo-user-book/demos/attachment.html        |   2 +-
 .../dubbo-user-book/demos/callback-parameter.html  |   2 +-
 .../dubbo-user-book/demos/concurrency-control.html |   4 +-
 .../dubbo-user-book/demos/config-connections.html  |   2 +-
 books/dubbo-user-book/demos/config-rule.html       |   2 +-
 books/dubbo-user-book/demos/context.html           |   2 +-
 books/dubbo-user-book/demos/delay-publish.html     |   4 +-
 .../demos/distributed-transaction.html             |   2 +-
 books/dubbo-user-book/demos/dump.html              |   2 +-
 books/dubbo-user-book/demos/echo-service.html      |   2 +-
 books/dubbo-user-book/demos/events-notify.html     |   2 +-
 books/dubbo-user-book/demos/explicit-target.html   |   2 +-
 .../demos/fault-tolerent-strategy.html             |   2 +-
 books/dubbo-user-book/demos/generic-reference.html |   2 +-
 books/dubbo-user-book/demos/generic-service.html   |   2 +-
 books/dubbo-user-book/demos/graceful-shutdown.html |   2 +-
 books/dubbo-user-book/demos/group-merger.html      |   2 +-
 books/dubbo-user-book/demos/hostname-binding.html  |   2 +-
 books/dubbo-user-book/demos/index.html             |   2 +-
 books/dubbo-user-book/demos/introduction.html      |  66 +++++++++
 books/dubbo-user-book/demos/lazy-connect.html      |   2 +-
 books/dubbo-user-book/demos/loadbalance.html       |   2 +-
 books/dubbo-user-book/demos/local-call.html        |   2 +-
 books/dubbo-user-book/demos/local-mock.html        |   2 +-
 books/dubbo-user-book/demos/local-stub.html        |   2 +-
 books/dubbo-user-book/demos/logger-strategy.html   |   2 +-
 books/dubbo-user-book/demos/multi-protocols.html   |   2 +-
 books/dubbo-user-book/demos/multi-registry.html    |   4 +-
 books/dubbo-user-book/demos/multi-versions.html    |   2 +-
 books/dubbo-user-book/demos/netty4.html            |   2 +-
 .../demos/parameter-validation.html                |   2 +-
 books/dubbo-user-book/demos/preflight-check.html   |   2 +-
 .../demos/reference-config-cache.html              |   2 +-
 books/dubbo-user-book/demos/registry-only.html     |   2 +-
 books/dubbo-user-book/demos/result-cache.html      |   4 +-
 books/dubbo-user-book/demos/routing-rule.html      |   4 +-
 books/dubbo-user-book/demos/service-container.html |   2 +-
 books/dubbo-user-book/demos/service-downgrade.html |   2 +-
 books/dubbo-user-book/demos/service-group.html     |   2 +-
 books/dubbo-user-book/demos/static-service.html    |   2 +-
 books/dubbo-user-book/demos/stickiness.html        |   2 +-
 books/dubbo-user-book/demos/subscribe-only.html    |   2 +-
 books/dubbo-user-book/demos/thread-model.html      |   2 +-
 .../dubbo-user-book/demos/token-authorization.html |   2 +-
 books/dubbo-user-book/dependencies.html            |  63 +++++----
 books/dubbo-user-book/index.html                   |   2 +-
 books/dubbo-user-book/maturity.html                |   2 +-
 books/dubbo-user-book/perf-test.html               |   2 +-
 books/dubbo-user-book/preface/architecture.html    |   2 +-
 books/dubbo-user-book/preface/background.html      |   2 +-
 books/dubbo-user-book/preface/index.html           |   2 +-
 books/dubbo-user-book/preface/requirements.html    |   2 +-
 books/dubbo-user-book/preface/usage.html           |   2 +-
 books/dubbo-user-book/quick-start.html             |   4 +-
 books/dubbo-user-book/recommend.html               |   4 +-
 books/dubbo-user-book/references/api.html          |   2 +-
 books/dubbo-user-book/references/maven.html        |   2 +-
 .../dubbo-user-book/references/protocol/dubbo.html |   2 +-
 .../references/protocol/hessian.html               |   2 +-
 .../dubbo-user-book/references/protocol/http.html  |   2 +-
 .../references/protocol/introduction.html          |   2 +-
 .../references/protocol/memcached.html             |   2 +-
 .../dubbo-user-book/references/protocol/redis.html |   2 +-
 books/dubbo-user-book/references/protocol/rmi.html |   2 +-
 .../references/protocol/thrift.html                |   2 +-
 .../references/protocol/webservice.html            |   2 +-
 books/dubbo-user-book/references/qos.html          |   2 +-
 .../references/registry/introduction.html          |   2 +-
 .../references/registry/multicast.html             |   2 +-
 .../dubbo-user-book/references/registry/redis.html |   2 +-
 .../references/registry/simple.html                |   2 +-
 .../references/registry/zookeeper.html             |   2 +-
 books/dubbo-user-book/references/telnet.html       |   4 +-
 .../references/xml/dubbo-application.html          |   2 +-
 .../references/xml/dubbo-argument.html             |   2 +-
 .../references/xml/dubbo-consumer.html             |   2 +-
 .../references/xml/dubbo-method.html               |   2 +-
 .../references/xml/dubbo-module.html               |   2 +-
 .../references/xml/dubbo-monitor.html              |   2 +-
 .../references/xml/dubbo-parameter.html            |   2 +-
 .../references/xml/dubbo-protocol.html             |   2 +-
 .../references/xml/dubbo-provider.html             |   2 +-
 .../references/xml/dubbo-reference.html            |   2 +-
 .../references/xml/dubbo-registry.html             |   2 +-
 .../references/xml/dubbo-service.html              |   2 +-
 .../references/xml/introduction.html               |   2 +-
 books/dubbo-user-book/search_index.json            |   2 +-
 books/dubbo-user-book/simple-monitor.html          | 154 +++++++++++++++++++++
 index.html                                         |  21 +--
 script/deploy                                      |   2 +
 312 files changed, 1131 insertions(+), 358 deletions(-)
 create mode 100644 books/dubbo-dev-book-en/introduction.html
 create mode 100644 books/dubbo-dev-book/introduction.html
 create mode 100644 books/dubbo-user-book-en/benchmark-tool.html
 create mode 100644 books/dubbo-user-book-en/demos/introduction.html
 create mode 100644 books/dubbo-user-book-en/simple-monitor.html
 create mode 100644 books/dubbo-user-book/benchmark-tool.html
 create mode 100644 books/dubbo-user-book/demos/introduction.html
 create mode 100644 books/dubbo-user-book/simple-monitor.html

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 02/08: Add trademarks descrption.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit 5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Thu Apr 5 23:47:50 2018 +0800

    Add trademarks descrption.
---
 _layouts/default.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/_layouts/default.html b/_layouts/default.html
index aa89801..0c8b7c4 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -36,7 +36,7 @@
       {{ content }}
 
       <footer class="site-footer">
-          <span class="site-footer-credits">&copy; 2012-2018 | Apache Dubbo (incubating) team | visit <a href="https://www.aliyun.com/product/edas">enterprise edition</a> on <a href="https://www.alibabacloud.com"><img class="inline-image" src="images/aliyun.png"/></a></span>
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
       </footer>
     </section>
 

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 07/08: Polish readme.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit 75000836d5b28e37b623d274ae3d55f705f116d9
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Fri Apr 6 15:18:11 2018 +0800

    Polish readme.
---
 README.md | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index b0ad69d..1de8d11 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ cd script
 ./bootstrap
 ```
 
-To build the website locally
+Make sure you have installed jekyll and gitbook. To build the website locally
 
 ```sh
 bundle exec jekyll build --config _config_build.yml
@@ -31,6 +31,12 @@ And you can visit the website via http://localhost:8000
 
 ### Publish the website
 
+Copy all the files from `_site` directory to the parent direcotry:
+
+```sh
+cp -r _site/* .
+```
+
 Make sure you have all the changed committed.
 
 ```sh

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 06/08: Update docs.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit 9b3458b62d9b0c479a63d0a4e24bdf7be4f7f63f
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Fri Apr 6 15:04:15 2018 +0800

    Update docs.
---
 books/dubbo-admin-book-en/index.html               |   2 +-
 .../dubbo-admin-book-en/install/admin-console.html |   2 +-
 .../dubbo-admin-book-en/install/consumer-demo.html |   2 +-
 .../dubbo-admin-book-en/install/introduction.html  |   2 +-
 .../dubbo-admin-book-en/install/provider-demo.html |   2 +-
 books/dubbo-admin-book-en/install/redis.html       |   2 +-
 .../install/simple-monitor-center.html             |   2 +-
 .../install/simple-registry-center.html            |   2 +-
 books/dubbo-admin-book-en/install/zookeeper.html   |   2 +-
 books/dubbo-admin-book-en/ops/dubbo-ops.html       |   2 +-
 books/dubbo-admin-book/index.html                  |   2 +-
 books/dubbo-admin-book/install/admin-console.html  |   2 +-
 books/dubbo-admin-book/install/consumer-demo.html  |   2 +-
 books/dubbo-admin-book/install/introduction.html   |   2 +-
 books/dubbo-admin-book/install/provider-demo.html  |   2 +-
 books/dubbo-admin-book/install/redis.html          |   2 +-
 .../install/simple-monitor-center.html             |   2 +-
 .../install/simple-registry-center.html            |   2 +-
 books/dubbo-admin-book/install/zookeeper.html      |   2 +-
 books/dubbo-admin-book/ops/dubbo-ops.html          |   2 +-
 books/dubbo-admin-book/ops/introduction.html       |   2 +-
 books/dubbo-dev-book-en/SPI.html                   |   2 +-
 books/dubbo-dev-book-en/TCK.html                   |   2 +-
 books/dubbo-dev-book-en/build.html                 |   2 +-
 books/dubbo-dev-book-en/checklist.html             |   2 +-
 books/dubbo-dev-book-en/code-smell.html            |   2 +-
 books/dubbo-dev-book-en/coding.html                |   2 +-
 books/dubbo-dev-book-en/contract.html              |   2 +-
 books/dubbo-dev-book-en/contribution.html          |   2 +-
 books/dubbo-dev-book-en/design.html                |   2 +-
 books/dubbo-dev-book-en/implementation.html        |   2 +-
 books/dubbo-dev-book-en/impls/cache.html           |   2 +-
 books/dubbo-dev-book-en/impls/cluster.html         |   2 +-
 books/dubbo-dev-book-en/impls/compiler.html        |   2 +-
 books/dubbo-dev-book-en/impls/container.html       |   2 +-
 books/dubbo-dev-book-en/impls/dispatcher.html      |   2 +-
 books/dubbo-dev-book-en/impls/exchanger.html       |   2 +-
 .../dubbo-dev-book-en/impls/exporter-listener.html |   2 +-
 .../dubbo-dev-book-en/impls/extension-factory.html |   2 +-
 books/dubbo-dev-book-en/impls/filter.html          |   2 +-
 books/dubbo-dev-book-en/impls/introduction.html    |   2 +-
 .../dubbo-dev-book-en/impls/invoker-listener.html  |   2 +-
 books/dubbo-dev-book-en/impls/load-balance.html    |   2 +-
 books/dubbo-dev-book-en/impls/logger-adapter.html  |   2 +-
 books/dubbo-dev-book-en/impls/merger.html          |   2 +-
 books/dubbo-dev-book-en/impls/monitor.html         |   2 +-
 books/dubbo-dev-book-en/impls/networker.html       |   2 +-
 books/dubbo-dev-book-en/impls/page.html            |   2 +-
 books/dubbo-dev-book-en/impls/protocol.html        |   2 +-
 books/dubbo-dev-book-en/impls/proxy-factory.html   |   2 +-
 books/dubbo-dev-book-en/impls/registry.html        |   2 +-
 books/dubbo-dev-book-en/impls/remoting.html        |   2 +-
 books/dubbo-dev-book-en/impls/router.html          |   2 +-
 books/dubbo-dev-book-en/impls/serialize.html       |   2 +-
 books/dubbo-dev-book-en/impls/status-checker.html  |   2 +-
 books/dubbo-dev-book-en/impls/telnet-handler.html  |   2 +-
 books/dubbo-dev-book-en/impls/threadpool.html      |   2 +-
 books/dubbo-dev-book-en/impls/validation.html      |   2 +-
 books/dubbo-dev-book-en/index.html                 |   2 +-
 books/dubbo-dev-book-en/introduction.html          |  63 +++++++++
 books/dubbo-dev-book-en/release.html               |   2 +-
 books/dubbo-dev-book/SPI.html                      |   2 +-
 books/dubbo-dev-book/TCK.html                      |   2 +-
 books/dubbo-dev-book/build.html                    |   2 +-
 books/dubbo-dev-book/checklist.html                |   2 +-
 books/dubbo-dev-book/code-smell.html               |   2 +-
 books/dubbo-dev-book/coding.html                   |   2 +-
 books/dubbo-dev-book/contract.html                 |   2 +-
 books/dubbo-dev-book/contribution.html             |   2 +-
 books/dubbo-dev-book/design.html                   |   2 +-
 books/dubbo-dev-book/implementation.html           |   2 +-
 books/dubbo-dev-book/impls/cache.html              |   2 +-
 books/dubbo-dev-book/impls/cluster.html            |   2 +-
 books/dubbo-dev-book/impls/compiler.html           |   2 +-
 books/dubbo-dev-book/impls/container.html          |   2 +-
 books/dubbo-dev-book/impls/dispatcher.html         |   2 +-
 books/dubbo-dev-book/impls/exchanger.html          |   2 +-
 books/dubbo-dev-book/impls/exporter-listener.html  |   2 +-
 books/dubbo-dev-book/impls/extension-factory.html  |   2 +-
 books/dubbo-dev-book/impls/filter.html             |   2 +-
 books/dubbo-dev-book/impls/introduction.html       |   2 +-
 books/dubbo-dev-book/impls/invoker-listener.html   |   2 +-
 books/dubbo-dev-book/impls/load-balance.html       |   2 +-
 books/dubbo-dev-book/impls/logger-adapter.html     |   2 +-
 books/dubbo-dev-book/impls/merger.html             |   2 +-
 books/dubbo-dev-book/impls/monitor.html            |   2 +-
 books/dubbo-dev-book/impls/networker.html          |   2 +-
 books/dubbo-dev-book/impls/page.html               |   2 +-
 books/dubbo-dev-book/impls/protocol.html           |   2 +-
 books/dubbo-dev-book/impls/proxy-factory.html      |   2 +-
 books/dubbo-dev-book/impls/registry.html           |   2 +-
 books/dubbo-dev-book/impls/remoting.html           |   2 +-
 books/dubbo-dev-book/impls/router.html             |   2 +-
 books/dubbo-dev-book/impls/serialize.html          |   2 +-
 books/dubbo-dev-book/impls/status-checker.html     |   2 +-
 books/dubbo-dev-book/impls/telnet-handler.html     |   2 +-
 books/dubbo-dev-book/impls/threadpool.html         |   2 +-
 books/dubbo-dev-book/impls/validation.html         |   2 +-
 books/dubbo-dev-book/index.html                    |   2 +-
 books/dubbo-dev-book/introduction.html             |  63 +++++++++
 books/dubbo-dev-book/principals/code-detail.html   |   2 +-
 books/dubbo-dev-book/principals/configuration.html |   2 +-
 books/dubbo-dev-book/principals/dummy.html         |   2 +-
 books/dubbo-dev-book/principals/expansibility.html |   2 +-
 books/dubbo-dev-book/principals/extension.html     |   2 +-
 .../principals/general-knowledge.html              |   2 +-
 books/dubbo-dev-book/principals/introduction.html  |   2 +-
 books/dubbo-dev-book/principals/robustness.html    |   2 +-
 books/dubbo-dev-book/release.html                  |   2 +-
 books/dubbo-user-book-en/benchmark-tool.html       | 105 ++++++++++++++
 books/dubbo-user-book-en/best-practice.html        |   2 +-
 books/dubbo-user-book-en/capacity-plan.html        |   2 +-
 .../configuration/annotation.html                  |   2 +-
 books/dubbo-user-book-en/configuration/api.html    |   2 +-
 books/dubbo-user-book-en/configuration/index.html  |   2 +-
 .../configuration/properties.html                  |   2 +-
 books/dubbo-user-book-en/configuration/xml.html    |   2 +-
 books/dubbo-user-book-en/coveragence.html          |   2 +-
 books/dubbo-user-book-en/demos/accesslog.html      |   2 +-
 books/dubbo-user-book-en/demos/async-call.html     |   2 +-
 books/dubbo-user-book-en/demos/attachment.html     |   2 +-
 .../demos/callback-parameter.html                  |   2 +-
 .../demos/concurrency-control.html                 |   2 +-
 .../demos/config-connections.html                  |   2 +-
 books/dubbo-user-book-en/demos/config-rule.html    |   2 +-
 books/dubbo-user-book-en/demos/context.html        |   2 +-
 books/dubbo-user-book-en/demos/delay-publish.html  |   4 +-
 .../demos/distributed-transaction.html             |   2 +-
 books/dubbo-user-book-en/demos/dump.html           |   2 +-
 books/dubbo-user-book-en/demos/echo-service.html   |   2 +-
 books/dubbo-user-book-en/demos/events-notify.html  |   2 +-
 .../dubbo-user-book-en/demos/explicit-target.html  |   2 +-
 .../demos/fault-tolerent-strategy.html             |   2 +-
 .../demos/generic-reference.html                   |   2 +-
 .../dubbo-user-book-en/demos/generic-service.html  |   2 +-
 .../demos/graceful-shutdown.html                   |   2 +-
 books/dubbo-user-book-en/demos/group-merger.html   |   2 +-
 .../dubbo-user-book-en/demos/hostname-binding.html |   2 +-
 books/dubbo-user-book-en/demos/index.html          |   2 +-
 books/dubbo-user-book-en/demos/introduction.html   |  66 +++++++++
 books/dubbo-user-book-en/demos/lazy-connect.html   |   2 +-
 books/dubbo-user-book-en/demos/loadbalance.html    |   2 +-
 books/dubbo-user-book-en/demos/local-call.html     |   2 +-
 books/dubbo-user-book-en/demos/local-mock.html     |   2 +-
 books/dubbo-user-book-en/demos/local-stub.html     |   2 +-
 .../dubbo-user-book-en/demos/logger-strategy.html  |   2 +-
 .../dubbo-user-book-en/demos/multi-protocols.html  |   2 +-
 books/dubbo-user-book-en/demos/multi-registry.html |   2 +-
 books/dubbo-user-book-en/demos/multi-versions.html |   2 +-
 books/dubbo-user-book-en/demos/netty4.html         |   2 +-
 .../demos/parameter-validation.html                |   2 +-
 .../dubbo-user-book-en/demos/preflight-check.html  |   2 +-
 .../demos/reference-config-cache.html              |   2 +-
 books/dubbo-user-book-en/demos/registry-only.html  |   2 +-
 books/dubbo-user-book-en/demos/result-cache.html   |   2 +-
 books/dubbo-user-book-en/demos/routing-rule.html   |   4 +-
 .../demos/service-container.html                   |   2 +-
 .../demos/service-donwngrade.html                  |   2 +-
 books/dubbo-user-book-en/demos/service-group.html  |   2 +-
 books/dubbo-user-book-en/demos/static-service.html |   2 +-
 books/dubbo-user-book-en/demos/stickiness.html     |   2 +-
 books/dubbo-user-book-en/demos/subscribe-only.html |   2 +-
 books/dubbo-user-book-en/demos/thread-model.html   |   2 +-
 .../demos/token-authorization.html                 |   2 +-
 books/dubbo-user-book-en/dependencies.html         |   2 +-
 books/dubbo-user-book-en/index.html                |   2 +-
 books/dubbo-user-book-en/maturity.html             |   2 +-
 books/dubbo-user-book-en/perf-test.html            |   2 +-
 books/dubbo-user-book-en/preface/architecture.html |   2 +-
 books/dubbo-user-book-en/preface/background.html   |   2 +-
 books/dubbo-user-book-en/preface/index.html        |   2 +-
 books/dubbo-user-book-en/preface/requirements.html |   2 +-
 books/dubbo-user-book-en/preface/usage.html        |   2 +-
 books/dubbo-user-book-en/quick-start.html          |   4 +-
 books/dubbo-user-book-en/recommend.html            |   4 +-
 books/dubbo-user-book-en/references/api.html       |   2 +-
 books/dubbo-user-book-en/references/maven.html     |   2 +-
 .../references/protocol/dubbo.html                 |   2 +-
 .../references/protocol/hessian.html               |   2 +-
 .../references/protocol/http.html                  |   2 +-
 .../references/protocol/introduction.html          |   2 +-
 .../references/protocol/memcached.html             |   2 +-
 .../references/protocol/redis.html                 |   2 +-
 .../references/protocol/rmi.html                   |   2 +-
 .../references/protocol/thrift.html                |   2 +-
 .../references/protocol/webservice.html            |   2 +-
 .../references/registry/introduction.html          |   2 +-
 .../references/registry/multicast.html             |   2 +-
 .../references/registry/redis.html                 |   2 +-
 .../references/registry/simple.html                |   2 +-
 .../references/registry/zookeeper.html             |   2 +-
 books/dubbo-user-book-en/references/telnet.html    |   4 +-
 .../references/xml/dubbo-application.html          |   2 +-
 .../references/xml/dubbo-argument.html             |   2 +-
 .../references/xml/dubbo-consumer.html             |   2 +-
 .../references/xml/dubbo-method.html               |   2 +-
 .../references/xml/dubbo-module.html               |   2 +-
 .../references/xml/dubbo-monitor.html              |   2 +-
 .../references/xml/dubbo-parameter.html            |   2 +-
 .../references/xml/dubbo-protocol.html             |   2 +-
 .../references/xml/dubbo-provider.html             |   2 +-
 .../references/xml/dubbo-reference.html            |   2 +-
 .../references/xml/dubbo-registry.html             |   2 +-
 .../references/xml/dubbo-service.html              |   2 +-
 .../references/xml/introduction.html               |   2 +-
 books/dubbo-user-book-en/simple-monitor.html       | 151 ++++++++++++++++++++
 books/dubbo-user-book/benchmark-tool.html          |  93 +++++++++++++
 books/dubbo-user-book/best-practice.html           |   2 +-
 books/dubbo-user-book/capacity-plan.html           |   2 +-
 .../dubbo-user-book/configuration/annotation.html  |   2 +-
 books/dubbo-user-book/configuration/api.html       |   2 +-
 books/dubbo-user-book/configuration/index.html     |   2 +-
 .../dubbo-user-book/configuration/properties.html  |   2 +-
 books/dubbo-user-book/configuration/xml.html       |   2 +-
 books/dubbo-user-book/coveragence.html             |   2 +-
 books/dubbo-user-book/demos/accesslog.html         |   2 +-
 books/dubbo-user-book/demos/async-call.html        |   2 +-
 books/dubbo-user-book/demos/attachment.html        |   2 +-
 .../dubbo-user-book/demos/callback-parameter.html  |   2 +-
 .../dubbo-user-book/demos/concurrency-control.html |   4 +-
 .../dubbo-user-book/demos/config-connections.html  |   2 +-
 books/dubbo-user-book/demos/config-rule.html       |   2 +-
 books/dubbo-user-book/demos/context.html           |   2 +-
 books/dubbo-user-book/demos/delay-publish.html     |   4 +-
 .../demos/distributed-transaction.html             |   2 +-
 books/dubbo-user-book/demos/dump.html              |   2 +-
 books/dubbo-user-book/demos/echo-service.html      |   2 +-
 books/dubbo-user-book/demos/events-notify.html     |   2 +-
 books/dubbo-user-book/demos/explicit-target.html   |   2 +-
 .../demos/fault-tolerent-strategy.html             |   2 +-
 books/dubbo-user-book/demos/generic-reference.html |   2 +-
 books/dubbo-user-book/demos/generic-service.html   |   2 +-
 books/dubbo-user-book/demos/graceful-shutdown.html |   2 +-
 books/dubbo-user-book/demos/group-merger.html      |   2 +-
 books/dubbo-user-book/demos/hostname-binding.html  |   2 +-
 books/dubbo-user-book/demos/index.html             |   2 +-
 books/dubbo-user-book/demos/introduction.html      |  66 +++++++++
 books/dubbo-user-book/demos/lazy-connect.html      |   2 +-
 books/dubbo-user-book/demos/loadbalance.html       |   2 +-
 books/dubbo-user-book/demos/local-call.html        |   2 +-
 books/dubbo-user-book/demos/local-mock.html        |   2 +-
 books/dubbo-user-book/demos/local-stub.html        |   2 +-
 books/dubbo-user-book/demos/logger-strategy.html   |   2 +-
 books/dubbo-user-book/demos/multi-protocols.html   |   2 +-
 books/dubbo-user-book/demos/multi-registry.html    |   4 +-
 books/dubbo-user-book/demos/multi-versions.html    |   2 +-
 books/dubbo-user-book/demos/netty4.html            |   2 +-
 .../demos/parameter-validation.html                |   2 +-
 books/dubbo-user-book/demos/preflight-check.html   |   2 +-
 .../demos/reference-config-cache.html              |   2 +-
 books/dubbo-user-book/demos/registry-only.html     |   2 +-
 books/dubbo-user-book/demos/result-cache.html      |   4 +-
 books/dubbo-user-book/demos/routing-rule.html      |   4 +-
 books/dubbo-user-book/demos/service-container.html |   2 +-
 books/dubbo-user-book/demos/service-downgrade.html |   2 +-
 books/dubbo-user-book/demos/service-group.html     |   2 +-
 books/dubbo-user-book/demos/static-service.html    |   2 +-
 books/dubbo-user-book/demos/stickiness.html        |   2 +-
 books/dubbo-user-book/demos/subscribe-only.html    |   2 +-
 books/dubbo-user-book/demos/thread-model.html      |   2 +-
 .../dubbo-user-book/demos/token-authorization.html |   2 +-
 books/dubbo-user-book/dependencies.html            |  63 +++++----
 books/dubbo-user-book/index.html                   |   2 +-
 books/dubbo-user-book/maturity.html                |   2 +-
 books/dubbo-user-book/perf-test.html               |   2 +-
 books/dubbo-user-book/preface/architecture.html    |   2 +-
 books/dubbo-user-book/preface/background.html      |   2 +-
 books/dubbo-user-book/preface/index.html           |   2 +-
 books/dubbo-user-book/preface/requirements.html    |   2 +-
 books/dubbo-user-book/preface/usage.html           |   2 +-
 books/dubbo-user-book/quick-start.html             |   4 +-
 books/dubbo-user-book/recommend.html               |   4 +-
 books/dubbo-user-book/references/api.html          |   2 +-
 books/dubbo-user-book/references/maven.html        |   2 +-
 .../dubbo-user-book/references/protocol/dubbo.html |   2 +-
 .../references/protocol/hessian.html               |   2 +-
 .../dubbo-user-book/references/protocol/http.html  |   2 +-
 .../references/protocol/introduction.html          |   2 +-
 .../references/protocol/memcached.html             |   2 +-
 .../dubbo-user-book/references/protocol/redis.html |   2 +-
 books/dubbo-user-book/references/protocol/rmi.html |   2 +-
 .../references/protocol/thrift.html                |   2 +-
 .../references/protocol/webservice.html            |   2 +-
 books/dubbo-user-book/references/qos.html          |   2 +-
 .../references/registry/introduction.html          |   2 +-
 .../references/registry/multicast.html             |   2 +-
 .../dubbo-user-book/references/registry/redis.html |   2 +-
 .../references/registry/simple.html                |   2 +-
 .../references/registry/zookeeper.html             |   2 +-
 books/dubbo-user-book/references/telnet.html       |   4 +-
 .../references/xml/dubbo-application.html          |   2 +-
 .../references/xml/dubbo-argument.html             |   2 +-
 .../references/xml/dubbo-consumer.html             |   2 +-
 .../references/xml/dubbo-method.html               |   2 +-
 .../references/xml/dubbo-module.html               |   2 +-
 .../references/xml/dubbo-monitor.html              |   2 +-
 .../references/xml/dubbo-parameter.html            |   2 +-
 .../references/xml/dubbo-protocol.html             |   2 +-
 .../references/xml/dubbo-provider.html             |   2 +-
 .../references/xml/dubbo-reference.html            |   2 +-
 .../references/xml/dubbo-registry.html             |   2 +-
 .../references/xml/dubbo-service.html              |   2 +-
 .../references/xml/introduction.html               |   2 +-
 books/dubbo-user-book/search_index.json            |   2 +-
 books/dubbo-user-book/simple-monitor.html          | 154 +++++++++++++++++++++
 305 files changed, 1103 insertions(+), 339 deletions(-)

diff --git a/books/dubbo-admin-book-en/index.html b/books/dubbo-admin-book-en/index.html
index 035f18e..9054860 100644
--- a/books/dubbo-admin-book-en/index.html
+++ b/books/dubbo-admin-book-en/index.html
@@ -328,7 +328,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 install manual","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consume [...]
+            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 install manual","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consume [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/admin-console.html b/books/dubbo-admin-book-en/install/admin-console.html
index c635ff1..c9cfd2a 100644
--- a/books/dubbo-admin-book-en/install/admin-console.html
+++ b/books/dubbo-admin-book-en/install/admin-console.html
@@ -362,7 +362,7 @@ dubbo.admin.guest.password=guest
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.7 install admin console","level":"1.2.7","depth":2,"next":{"title":"2 Ops manual","level":"1.3","depth":1,"ref":"","articles":[{"title":"2.1 admin-console Ops","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"previous":{"title":"1.6 install Simple monitor center","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]},"d [...]
+            gitbook.page.hasChanged({"page":{"title":"1.7 install admin console","level":"1.2.7","depth":2,"next":{"title":"2 Ops manual","level":"1.3","depth":1,"ref":"","articles":[{"title":"2.1 admin-console Ops","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"previous":{"title":"1.6 install Simple monitor center","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]},"d [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/consumer-demo.html b/books/dubbo-admin-book-en/install/consumer-demo.html
index a47ffbc..c0ea992 100644
--- a/books/dubbo-admin-book-en/install/consumer-demo.html
+++ b/books/dubbo-admin-book-en/install/consumer-demo.html
@@ -367,7 +367,7 @@ tail <span class="hljs-_">-f</span> logs/stdout.log
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"next":{"title":"1.3 install Zookeeper configuration center","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"previous":{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"next":{"title":"1.3 install Zookeeper configuration center","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"previous":{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/introduction.html b/books/dubbo-admin-book-en/install/introduction.html
index c96a946..f720451 100644
--- a/books/dubbo-admin-book-en/install/introduction.html
+++ b/books/dubbo-admin-book-en/install/introduction.html
@@ -341,7 +341,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1 install manual","level":"1.2","depth":1,"next":{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
+            gitbook.page.hasChanged({"page":{"title":"1 install manual","level":"1.2","depth":1,"next":{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/provider-demo.html b/books/dubbo-admin-book-en/install/provider-demo.html
index 02c3579..ae7d297 100644
--- a/books/dubbo-admin-book-en/install/provider-demo.html
+++ b/books/dubbo-admin-book-en/install/provider-demo.html
@@ -376,7 +376,7 @@ tar zxvf dubbo-demo-provider-2.4.1-assembly.tar.gz
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"next":{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"previous":{"title":"1 install manual","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo. [...]
+            gitbook.page.hasChanged({"page":{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"next":{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"previous":{"title":"1 install manual","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 install provider demo","level":"1.2.1","depth":2,"path":"install/provider-demo. [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/redis.html b/books/dubbo-admin-book-en/install/redis.html
index 5c3cc45..62f921a 100644
--- a/books/dubbo-admin-book-en/install/redis.html
+++ b/books/dubbo-admin-book-en/install/redis.html
@@ -370,7 +370,7 @@ hgetall /dubbo/com.foo.BarService/providers
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.4 install Redis configuration center","level":"1.2.4","depth":2,"next":{"title":"1.5 install Simple configuration center","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"previous":{"title":"1.3 install Zookeeper configuration center","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"dir":"ltr"},"config":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"1.4 install Redis configuration center","level":"1.2.4","depth":2,"next":{"title":"1.5 install Simple configuration center","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"previous":{"title":"1.3 install Zookeeper configuration center","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"dir":"ltr"},"config":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/simple-monitor-center.html b/books/dubbo-admin-book-en/install/simple-monitor-center.html
index 6846b12..464f7c2 100644
--- a/books/dubbo-admin-book-en/install/simple-monitor-center.html
+++ b/books/dubbo-admin-book-en/install/simple-monitor-center.html
@@ -384,7 +384,7 @@ Simple Monitor use disk to store statistics information, please focus on the lim
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.6 install Simple monitor center","level":"1.2.6","depth":2,"next":{"title":"1.7 install admin console","level":"1.2.7","depth":2,"path":"install/admin-console.md","ref":"install/admin-console.md","articles":[]},"previous":{"title":"1.5 install Simple configuration center","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*", [...]
+            gitbook.page.hasChanged({"page":{"title":"1.6 install Simple monitor center","level":"1.2.6","depth":2,"next":{"title":"1.7 install admin console","level":"1.2.7","depth":2,"path":"install/admin-console.md","ref":"install/admin-console.md","articles":[]},"previous":{"title":"1.5 install Simple configuration center","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*", [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/simple-registry-center.html b/books/dubbo-admin-book-en/install/simple-registry-center.html
index a0533bb..ed34ee4 100644
--- a/books/dubbo-admin-book-en/install/simple-registry-center.html
+++ b/books/dubbo-admin-book-en/install/simple-registry-center.html
@@ -377,7 +377,7 @@ help
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.5 install Simple configuration center","level":"1.2.5","depth":2,"next":{"title":"1.6 install Simple monitor center","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]},"previous":{"title":"1.4 install Redis configuration center","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","them [...]
+            gitbook.page.hasChanged({"page":{"title":"1.5 install Simple configuration center","level":"1.2.5","depth":2,"next":{"title":"1.6 install Simple monitor center","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]},"previous":{"title":"1.4 install Redis configuration center","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","them [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/install/zookeeper.html b/books/dubbo-admin-book-en/install/zookeeper.html
index 0d243ce..22b381f 100644
--- a/books/dubbo-admin-book-en/install/zookeeper.html
+++ b/books/dubbo-admin-book-en/install/zookeeper.html
@@ -400,7 +400,7 @@ dump
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.3 install Zookeeper configuration center","level":"1.2.3","depth":2,"next":{"title":"1.4 install Redis configuration center","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"previous":{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variabl [...]
+            gitbook.page.hasChanged({"page":{"title":"1.3 install Zookeeper configuration center","level":"1.2.3","depth":2,"next":{"title":"1.4 install Redis configuration center","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"previous":{"title":"1.2 install consumer demo","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variabl [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book-en/ops/dubbo-ops.html b/books/dubbo-admin-book-en/ops/dubbo-ops.html
index e819476..5c51ff1 100644
--- a/books/dubbo-admin-book-en/ops/dubbo-ops.html
+++ b/books/dubbo-admin-book-en/ops/dubbo-ops.html
@@ -342,7 +342,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"2.1 admin-console Ops","level":"1.3.1","depth":2,"previous":{"title":"2 Ops manual","level":"1.3","depth":1,"ref":"","articles":[{"title":"2.1 admin-console Ops","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters [...]
+            gitbook.page.hasChanged({"page":{"title":"2.1 admin-console Ops","level":"1.3.1","depth":2,"previous":{"title":"2 Ops manual","level":"1.3","depth":1,"ref":"","articles":[{"title":"2.1 admin-console Ops","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/index.html b/books/dubbo-admin-book/index.html
index 7021d56..beded9b 100644
--- a/books/dubbo-admin-book/index.html
+++ b/books/dubbo-admin-book/index.html
@@ -327,7 +327,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 安装手册","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},{"title":"1. [...]
+            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 安装手册","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},{"title":"1. [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/admin-console.html b/books/dubbo-admin-book/install/admin-console.html
index 858130c..a33abd8 100644
--- a/books/dubbo-admin-book/install/admin-console.html
+++ b/books/dubbo-admin-book/install/admin-console.html
@@ -368,7 +368,7 @@ dubbo.admin.guest.password=guest
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.7 管理控制台安装","level":"1.2.7","depth":2,"next":{"title":"2 运维手册","level":"1.3","depth":1,"path":"ops/introduction.md","ref":"ops/introduction.md","articles":[{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"previous":{"title":"1.6 Simple 监控中心安装","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]}, [...]
+            gitbook.page.hasChanged({"page":{"title":"1.7 管理控制台安装","level":"1.2.7","depth":2,"next":{"title":"2 运维手册","level":"1.3","depth":1,"path":"ops/introduction.md","ref":"ops/introduction.md","articles":[{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"previous":{"title":"1.6 Simple 监控中心安装","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]}, [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/consumer-demo.html b/books/dubbo-admin-book/install/consumer-demo.html
index a18610f..ac16a65 100644
--- a/books/dubbo-admin-book/install/consumer-demo.html
+++ b/books/dubbo-admin-book/install/consumer-demo.html
@@ -367,7 +367,7 @@ tail <span class="hljs-_">-f</span> logs/stdout.log
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"next":{"title":"1.3 Zookeeper 注册中心安装","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"previous":{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"se [...]
+            gitbook.page.hasChanged({"page":{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"next":{"title":"1.3 Zookeeper 注册中心安装","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"previous":{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"se [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/introduction.html b/books/dubbo-admin-book/install/introduction.html
index 4004d48..ece64f1 100644
--- a/books/dubbo-admin-book/install/introduction.html
+++ b/books/dubbo-admin-book/install/introduction.html
@@ -341,7 +341,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1 安装手册","level":"1.2","depth":1,"next":{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000 [...]
+            gitbook.page.hasChanged({"page":{"title":"1 安装手册","level":"1.2","depth":1,"next":{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/provider-demo.html b/books/dubbo-admin-book/install/provider-demo.html
index cf0887e..36bdf0e 100644
--- a/books/dubbo-admin-book/install/provider-demo.html
+++ b/books/dubbo-admin-book/install/provider-demo.html
@@ -376,7 +376,7 @@ tar zxvf dubbo-demo-provider-2.4.1-assembly.tar.gz
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"next":{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"previous":{"title":"1 安装手册","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]}, [...]
+            gitbook.page.hasChanged({"page":{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"next":{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"previous":{"title":"1 安装手册","level":"1.2","depth":1,"path":"install/introduction.md","ref":"install/introduction.md","articles":[{"title":"1.1 示例提供者安装","level":"1.2.1","depth":2,"path":"install/provider-demo.md","ref":"install/provider-demo.md","articles":[]}, [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/redis.html b/books/dubbo-admin-book/install/redis.html
index fd60d14..340a57f 100644
--- a/books/dubbo-admin-book/install/redis.html
+++ b/books/dubbo-admin-book/install/redis.html
@@ -370,7 +370,7 @@ hgetall /dubbo/com.foo.BarService/providers
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.4 Redis 注册中心安装","level":"1.2.4","depth":2,"next":{"title":"1.5 Simple 注册中心安装","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"previous":{"title":"1.3 Zookeeper 注册中心安装","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
+            gitbook.page.hasChanged({"page":{"title":"1.4 Redis 注册中心安装","level":"1.2.4","depth":2,"next":{"title":"1.5 Simple 注册中心安装","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"previous":{"title":"1.3 Zookeeper 注册中心安装","level":"1.2.3","depth":2,"path":"install/zookeeper.md","ref":"install/zookeeper.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/simple-monitor-center.html b/books/dubbo-admin-book/install/simple-monitor-center.html
index 21d97a4..bfb931a 100644
--- a/books/dubbo-admin-book/install/simple-monitor-center.html
+++ b/books/dubbo-admin-book/install/simple-monitor-center.html
@@ -384,7 +384,7 @@ tar zxvf dubbo-monitor-simple-2.4.1-assembly.tar.gz
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.6 Simple 监控中心安装","level":"1.2.6","depth":2,"next":{"title":"1.7 管理控制台安装","level":"1.2.7","depth":2,"path":"install/admin-console.md","ref":"install/admin-console.md","articles":[]},"previous":{"title":"1.5 Simple 注册中心安装","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
+            gitbook.page.hasChanged({"page":{"title":"1.6 Simple 监控中心安装","level":"1.2.6","depth":2,"next":{"title":"1.7 管理控制台安装","level":"1.2.7","depth":2,"path":"install/admin-console.md","ref":"install/admin-console.md","articles":[]},"previous":{"title":"1.5 Simple 注册中心安装","level":"1.2.5","depth":2,"path":"install/simple-registry-center.md","ref":"install/simple-registry-center.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/simple-registry-center.html b/books/dubbo-admin-book/install/simple-registry-center.html
index 3a24165..a78a3e1 100644
--- a/books/dubbo-admin-book/install/simple-registry-center.html
+++ b/books/dubbo-admin-book/install/simple-registry-center.html
@@ -377,7 +377,7 @@ help
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.5 Simple 注册中心安装","level":"1.2.5","depth":2,"next":{"title":"1.6 Simple 监控中心安装","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]},"previous":{"title":"1.4 Redis 注册中心安装","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"h [...]
+            gitbook.page.hasChanged({"page":{"title":"1.5 Simple 注册中心安装","level":"1.2.5","depth":2,"next":{"title":"1.6 Simple 监控中心安装","level":"1.2.6","depth":2,"path":"install/simple-monitor-center.md","ref":"install/simple-monitor-center.md","articles":[]},"previous":{"title":"1.4 Redis 注册中心安装","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"h [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/install/zookeeper.html b/books/dubbo-admin-book/install/zookeeper.html
index d8fa4c0..b98e95a 100644
--- a/books/dubbo-admin-book/install/zookeeper.html
+++ b/books/dubbo-admin-book/install/zookeeper.html
@@ -400,7 +400,7 @@ dump
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.3 Zookeeper 注册中心安装","level":"1.2.3","depth":2,"next":{"title":"1.4 Redis 注册中心安装","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"previous":{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"searc [...]
+            gitbook.page.hasChanged({"page":{"title":"1.3 Zookeeper 注册中心安装","level":"1.2.3","depth":2,"next":{"title":"1.4 Redis 注册中心安装","level":"1.2.4","depth":2,"path":"install/redis.md","ref":"install/redis.md","articles":[]},"previous":{"title":"1.2 示例消费者安装","level":"1.2.2","depth":2,"path":"install/consumer-demo.md","ref":"install/consumer-demo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"searc [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/ops/dubbo-ops.html b/books/dubbo-admin-book/ops/dubbo-ops.html
index e4daa2b..ea12e8a 100644
--- a/books/dubbo-admin-book/ops/dubbo-ops.html
+++ b/books/dubbo-admin-book/ops/dubbo-ops.html
@@ -348,7 +348,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"previous":{"title":"2 运维手册","level":"1.3","depth":1,"path":"ops/introduction.md","ref":"ops/introduction.md","articles":[{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"i [...]
+            gitbook.page.hasChanged({"page":{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"previous":{"title":"2 运维手册","level":"1.3","depth":1,"path":"ops/introduction.md","ref":"ops/introduction.md","articles":[{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"i [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-admin-book/ops/introduction.html b/books/dubbo-admin-book/ops/introduction.html
index fd9a154..0f9358d 100644
--- a/books/dubbo-admin-book/ops/introduction.html
+++ b/books/dubbo-admin-book/ops/introduction.html
@@ -333,7 +333,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"2 运维手册","level":"1.3","depth":1,"next":{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]},"previous":{"title":"1.7 管理控制台安装","level":"1.2.7","depth":2,"path":"install/admin-console.md","ref":"install/admin-console.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInd [...]
+            gitbook.page.hasChanged({"page":{"title":"2 运维手册","level":"1.3","depth":1,"next":{"title":"2.1 管理控制台运维","level":"1.3.1","depth":2,"path":"ops/dubbo-ops.md","ref":"ops/dubbo-ops.md","articles":[]},"previous":{"title":"1.7 管理控制台安装","level":"1.2.7","depth":2,"path":"install/admin-console.md","ref":"install/admin-console.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInd [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/SPI.html b/books/dubbo-dev-book-en/SPI.html
index 00a6c98..92f8f71 100644
--- a/books/dubbo-dev-book-en/SPI.html
+++ b/books/dubbo-dev-book-en/SPI.html
@@ -858,7 +858,7 @@ Wheel wheel = wheelMaker.makeWheel(url);
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"3 How SPI Works","level":"1.4","depth":1,"next":{"title":"4 Init, Process, Protocols","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"previous":{"title":"2 Architecture","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
+            gitbook.page.hasChanged({"page":{"title":"3 How SPI Works","level":"1.4","depth":1,"next":{"title":"4 Init, Process, Protocols","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"previous":{"title":"2 Architecture","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/TCK.html b/books/dubbo-dev-book-en/TCK.html
index ea5b229..8fccdda 100644
--- a/books/dubbo-dev-book-en/TCK.html
+++ b/books/dubbo-dev-book-en/TCK.html
@@ -698,7 +698,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"13 TCK","level":"1.13","depth":1,"previous":{"title":"12 Code Smell","level":"1.12","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false," [...]
+            gitbook.page.hasChanged({"page":{"title":"13 TCK","level":"1.13","depth":1,"previous":{"title":"12 Code Smell","level":"1.12","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/build.html b/books/dubbo-dev-book-en/build.html
index 6070460..930a588 100644
--- a/books/dubbo-dev-book-en/build.html
+++ b/books/dubbo-dev-book-en/build.html
@@ -732,7 +732,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1 How To Build","level":"1.2","depth":1,"next":{"title":"2 Architecture","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialChar [...]
+            gitbook.page.hasChanged({"page":{"title":"1 How To Build","level":"1.2","depth":1,"next":{"title":"2 Architecture","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialChar [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/checklist.html b/books/dubbo-dev-book-en/checklist.html
index 99fd4e4..0fd47f0 100644
--- a/books/dubbo-dev-book-en/checklist.html
+++ b/books/dubbo-dev-book-en/checklist.html
@@ -709,7 +709,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"11 Checklist","level":"1.11","depth":1,"next":{"title":"12 Code Smell","level":"1.12","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"previous":{"title":"10 Contribution","level":"1.10","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1 [...]
+            gitbook.page.hasChanged({"page":{"title":"11 Checklist","level":"1.11","depth":1,"next":{"title":"12 Code Smell","level":"1.12","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"previous":{"title":"10 Contribution","level":"1.10","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/code-smell.html b/books/dubbo-dev-book-en/code-smell.html
index 06e64cb..d9d69e6 100644
--- a/books/dubbo-dev-book-en/code-smell.html
+++ b/books/dubbo-dev-book-en/code-smell.html
@@ -805,7 +805,7 @@ GETROUTE(script://path/file.js?type=js&amp;rule=ENCODE(function{...}))
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"12 Code Smell","level":"1.12","depth":1,"next":{"title":"13 TCK","level":"1.13","depth":1,"path":"TCK.md","ref":"./TCK.md","articles":[]},"previous":{"title":"11 Checklist","level":"1.11","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacte [...]
+            gitbook.page.hasChanged({"page":{"title":"12 Code Smell","level":"1.12","depth":1,"next":{"title":"13 TCK","level":"1.13","depth":1,"path":"TCK.md","ref":"./TCK.md","articles":[]},"previous":{"title":"11 Checklist","level":"1.11","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacte [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/coding.html b/books/dubbo-dev-book-en/coding.html
index c94a949..9f8aae5 100644
--- a/books/dubbo-dev-book-en/coding.html
+++ b/books/dubbo-dev-book-en/coding.html
@@ -747,7 +747,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"7 Code Style","level":"1.8","depth":1,"next":{"title":"9 Versions","level":"1.9","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"previous":{"title":"6 Contract","level":"1.7","depth":1,"path":"contract.md","ref":"./contract.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialChar [...]
+            gitbook.page.hasChanged({"page":{"title":"7 Code Style","level":"1.8","depth":1,"next":{"title":"9 Versions","level":"1.9","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"previous":{"title":"6 Contract","level":"1.7","depth":1,"path":"contract.md","ref":"./contract.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialChar [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/contract.html b/books/dubbo-dev-book-en/contract.html
index 8e4b76a..64863ee 100644
--- a/books/dubbo-dev-book-en/contract.html
+++ b/books/dubbo-dev-book-en/contract.html
@@ -703,7 +703,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6 Contract","level":"1.7","depth":1,"next":{"title":"7 Code Style","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"previous":{"title":"5.26 LoggerAdapter","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
+            gitbook.page.hasChanged({"page":{"title":"6 Contract","level":"1.7","depth":1,"next":{"title":"7 Code Style","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"previous":{"title":"5.26 LoggerAdapter","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/contribution.html b/books/dubbo-dev-book-en/contribution.html
index 729c271..b061ea4 100644
--- a/books/dubbo-dev-book-en/contribution.html
+++ b/books/dubbo-dev-book-en/contribution.html
@@ -1054,7 +1054,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10 Contribution","level":"1.10","depth":1,"next":{"title":"11 Checklist","level":"1.11","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"previous":{"title":"9 Versions","level":"1.9","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSp [...]
+            gitbook.page.hasChanged({"page":{"title":"10 Contribution","level":"1.10","depth":1,"next":{"title":"11 Checklist","level":"1.11","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"previous":{"title":"9 Versions","level":"1.9","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSp [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/design.html b/books/dubbo-dev-book-en/design.html
index a064187..7e2eeee 100644
--- a/books/dubbo-dev-book-en/design.html
+++ b/books/dubbo-dev-book-en/design.html
@@ -772,7 +772,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"2 Architecture","level":"1.3","depth":1,"next":{"title":"3 How SPI Works","level":"1.4","depth":1,"path":"SPI.md","ref":"./SPI.md","articles":[]},"previous":{"title":"1 How To Build","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharact [...]
+            gitbook.page.hasChanged({"page":{"title":"2 Architecture","level":"1.3","depth":1,"next":{"title":"3 How SPI Works","level":"1.4","depth":1,"path":"SPI.md","ref":"./SPI.md","articles":[]},"previous":{"title":"1 How To Build","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharact [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/implementation.html b/books/dubbo-dev-book-en/implementation.html
index 7b34f72..4ed5470 100644
--- a/books/dubbo-dev-book-en/implementation.html
+++ b/books/dubbo-dev-book-en/implementation.html
@@ -789,7 +789,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"4 Init, Process, Protocols","level":"1.5","depth":1,"next":{"title":"5 SPI Extensions","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 Filter","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},{"title":"5.3 Invo [...]
+            gitbook.page.hasChanged({"page":{"title":"4 Init, Process, Protocols","level":"1.5","depth":1,"next":{"title":"5 SPI Extensions","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 Filter","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},{"title":"5.3 Invo [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/cache.html b/books/dubbo-dev-book-en/impls/cache.html
index 2a46f0f..f061ad5 100644
--- a/books/dubbo-dev-book-en/impls/cache.html
+++ b/books/dubbo-dev-book-en/impls/cache.html
@@ -752,7 +752,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.24 Cache","level":"1.6.24","depth":2,"next":{"title":"5.25 Validation","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"previous":{"title":"5.23 PageHandler","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.24 Cache","level":"1.6.24","depth":2,"next":{"title":"5.25 Validation","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"previous":{"title":"5.23 PageHandler","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/cluster.html b/books/dubbo-dev-book-en/impls/cluster.html
index 0876513..aee7d3f 100644
--- a/books/dubbo-dev-book-en/impls/cluster.html
+++ b/books/dubbo-dev-book-en/impls/cluster.html
@@ -746,7 +746,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.5 Cluster","level":"1.6.5","depth":2,"next":{"title":"5.6 Router","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"previous":{"title":"5.4 ExporterListener","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"searc [...]
+            gitbook.page.hasChanged({"page":{"title":"5.5 Cluster","level":"1.6.5","depth":2,"next":{"title":"5.6 Router","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"previous":{"title":"5.4 ExporterListener","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"searc [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/compiler.html b/books/dubbo-dev-book-en/impls/compiler.html
index 204fa7c..b119d00 100644
--- a/books/dubbo-dev-book-en/impls/compiler.html
+++ b/books/dubbo-dev-book-en/impls/compiler.html
@@ -728,7 +728,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.13 Compiler","level":"1.6.13","depth":2,"next":{"title":"5.14 Dispatcher","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"previous":{"title":"5.12 ProxyFactory","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"5.13 Compiler","level":"1.6.13","depth":2,"next":{"title":"5.14 Dispatcher","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"previous":{"title":"5.12 ProxyFactory","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/container.html b/books/dubbo-dev-book-en/impls/container.html
index 01f7690..50a4227 100644
--- a/books/dubbo-dev-book-en/impls/container.html
+++ b/books/dubbo-dev-book-en/impls/container.html
@@ -734,7 +734,7 @@ com.alibaba.dubbo.container.Container;
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.22 Container","level":"1.6.22","depth":2,"next":{"title":"5.23 PageHandler","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"previous":{"title":"5.21 StatusChecker","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"searc [...]
+            gitbook.page.hasChanged({"page":{"title":"5.22 Container","level":"1.6.22","depth":2,"next":{"title":"5.23 PageHandler","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"previous":{"title":"5.21 StatusChecker","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"searc [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/dispatcher.html b/books/dubbo-dev-book-en/impls/dispatcher.html
index ab95b03..b7b0275 100644
--- a/books/dubbo-dev-book-en/impls/dispatcher.html
+++ b/books/dubbo-dev-book-en/impls/dispatcher.html
@@ -734,7 +734,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.14 Dispatcher","level":"1.6.14","depth":2,"next":{"title":"5.15 Threadpool","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"previous":{"title":"5.13 Compiler","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"5.14 Dispatcher","level":"1.6.14","depth":2,"next":{"title":"5.15 Threadpool","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"previous":{"title":"5.13 Compiler","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/exchanger.html b/books/dubbo-dev-book-en/impls/exchanger.html
index f45f085..9c028f7 100644
--- a/books/dubbo-dev-book-en/impls/exchanger.html
+++ b/books/dubbo-dev-book-en/impls/exchanger.html
@@ -757,7 +757,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.18 Exchanger","level":"1.6.18","depth":2,"next":{"title":"5.19 Networker","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"previous":{"title":"5.17 Remoting","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
+            gitbook.page.hasChanged({"page":{"title":"5.18 Exchanger","level":"1.6.18","depth":2,"next":{"title":"5.19 Networker","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"previous":{"title":"5.17 Remoting","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/exporter-listener.html b/books/dubbo-dev-book-en/impls/exporter-listener.html
index ed9baba..ba65d1e 100644
--- a/books/dubbo-dev-book-en/impls/exporter-listener.html
+++ b/books/dubbo-dev-book-en/impls/exporter-listener.html
@@ -735,7 +735,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.4 ExporterListener","level":"1.6.4","depth":2,"next":{"title":"5.5 Cluster","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"previous":{"title":"5.3 InvokerListener","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.4 ExporterListener","level":"1.6.4","depth":2,"next":{"title":"5.5 Cluster","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"previous":{"title":"5.3 InvokerListener","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/extension-factory.html b/books/dubbo-dev-book-en/impls/extension-factory.html
index a0c85d4..922e61b 100644
--- a/books/dubbo-dev-book-en/impls/extension-factory.html
+++ b/books/dubbo-dev-book-en/impls/extension-factory.html
@@ -729,7 +729,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.11 ExtensionFactory","level":"1.6.11","depth":2,"next":{"title":"5.12 ProxyFactory","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"previous":{"title":"5.10 Monitor","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}, [...]
+            gitbook.page.hasChanged({"page":{"title":"5.11 ExtensionFactory","level":"1.6.11","depth":2,"next":{"title":"5.12 ProxyFactory","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"previous":{"title":"5.10 Monitor","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}, [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/filter.html b/books/dubbo-dev-book-en/impls/filter.html
index 8dd4a97..05fe75f 100644
--- a/books/dubbo-dev-book-en/impls/filter.html
+++ b/books/dubbo-dev-book-en/impls/filter.html
@@ -761,7 +761,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.2 Filter","level":"1.6.2","depth":2,"next":{"title":"5.3 InvokerListener","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"previous":{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sea [...]
+            gitbook.page.hasChanged({"page":{"title":"5.2 Filter","level":"1.6.2","depth":2,"next":{"title":"5.3 InvokerListener","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"previous":{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sea [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/introduction.html b/books/dubbo-dev-book-en/impls/introduction.html
index d40db42..f4e768e 100644
--- a/books/dubbo-dev-book-en/impls/introduction.html
+++ b/books/dubbo-dev-book-en/impls/introduction.html
@@ -692,7 +692,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5 SPI Extensions","level":"1.6","depth":1,"next":{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"previous":{"title":"4 Init, Process, Protocols","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"5 SPI Extensions","level":"1.6","depth":1,"next":{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"previous":{"title":"4 Init, Process, Protocols","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/invoker-listener.html b/books/dubbo-dev-book-en/impls/invoker-listener.html
index f3a300f..19d8870 100644
--- a/books/dubbo-dev-book-en/impls/invoker-listener.html
+++ b/books/dubbo-dev-book-en/impls/invoker-listener.html
@@ -735,7 +735,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.3 InvokerListener","level":"1.6.3","depth":2,"next":{"title":"5.4 ExporterListener","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"previous":{"title":"5.2 Filter","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"5.3 InvokerListener","level":"1.6.3","depth":2,"next":{"title":"5.4 ExporterListener","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"previous":{"title":"5.2 Filter","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/load-balance.html b/books/dubbo-dev-book-en/impls/load-balance.html
index f40adbc..77db5f1 100644
--- a/books/dubbo-dev-book-en/impls/load-balance.html
+++ b/books/dubbo-dev-book-en/impls/load-balance.html
@@ -735,7 +735,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.7 LoadBalance","level":"1.6.7","depth":2,"next":{"title":"5.8 Merger","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"previous":{"title":"5.6 Router","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.7 LoadBalance","level":"1.6.7","depth":2,"next":{"title":"5.8 Merger","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"previous":{"title":"5.6 Router","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/logger-adapter.html b/books/dubbo-dev-book-en/impls/logger-adapter.html
index 59d5e56..1ce69e1 100644
--- a/books/dubbo-dev-book-en/impls/logger-adapter.html
+++ b/books/dubbo-dev-book-en/impls/logger-adapter.html
@@ -749,7 +749,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.26 LoggerAdapter","level":"1.6.26","depth":2,"next":{"title":"6 Contract","level":"1.7","depth":1,"path":"contract.md","ref":"./contract.md","articles":[]},"previous":{"title":"5.25 Validation","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIn [...]
+            gitbook.page.hasChanged({"page":{"title":"5.26 LoggerAdapter","level":"1.6.26","depth":2,"next":{"title":"6 Contract","level":"1.7","depth":1,"path":"contract.md","ref":"./contract.md","articles":[]},"previous":{"title":"5.25 Validation","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIn [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/merger.html b/books/dubbo-dev-book-en/impls/merger.html
index 4355974..fa9af8e 100644
--- a/books/dubbo-dev-book-en/impls/merger.html
+++ b/books/dubbo-dev-book-en/impls/merger.html
@@ -731,7 +731,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.8 Merger","level":"1.6.8","depth":2,"next":{"title":"5.9 Registry","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"previous":{"title":"5.7 LoadBalance","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
+            gitbook.page.hasChanged({"page":{"title":"5.8 Merger","level":"1.6.8","depth":2,"next":{"title":"5.9 Registry","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"previous":{"title":"5.7 LoadBalance","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/monitor.html b/books/dubbo-dev-book-en/impls/monitor.html
index bb4dee8..2d7e90f 100644
--- a/books/dubbo-dev-book-en/impls/monitor.html
+++ b/books/dubbo-dev-book-en/impls/monitor.html
@@ -744,7 +744,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.10 Monitor","level":"1.6.10","depth":2,"next":{"title":"5.11 ExtensionFactory","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"previous":{"title":"5.9 Registry","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.10 Monitor","level":"1.6.10","depth":2,"next":{"title":"5.11 ExtensionFactory","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"previous":{"title":"5.9 Registry","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/networker.html b/books/dubbo-dev-book-en/impls/networker.html
index d3edad8..5e60b35 100644
--- a/books/dubbo-dev-book-en/impls/networker.html
+++ b/books/dubbo-dev-book-en/impls/networker.html
@@ -731,7 +731,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.19 Networker","level":"1.6.19","depth":2,"next":{"title":"5.20 TelnetHandler","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"previous":{"title":"5.18 Exchanger","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"5.19 Networker","level":"1.6.19","depth":2,"next":{"title":"5.20 TelnetHandler","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"previous":{"title":"5.18 Exchanger","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/page.html b/books/dubbo-dev-book-en/impls/page.html
index 8c47c71..64df04a 100644
--- a/books/dubbo-dev-book-en/impls/page.html
+++ b/books/dubbo-dev-book-en/impls/page.html
@@ -733,7 +733,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.23 PageHandler","level":"1.6.23","depth":2,"next":{"title":"5.24 Cache","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"previous":{"title":"5.22 Container","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"m [...]
+            gitbook.page.hasChanged({"page":{"title":"5.23 PageHandler","level":"1.6.23","depth":2,"next":{"title":"5.24 Cache","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"previous":{"title":"5.22 Container","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"m [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/protocol.html b/books/dubbo-dev-book-en/impls/protocol.html
index 33af652..9bd053b 100644
--- a/books/dubbo-dev-book-en/impls/protocol.html
+++ b/books/dubbo-dev-book-en/impls/protocol.html
@@ -816,7 +816,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.1 Protocol","level":"1.6.1","depth":2,"next":{"title":"5.2 Filter","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"previous":{"title":"5 SPI Extensions","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 Filte [...]
+            gitbook.page.hasChanged({"page":{"title":"5.1 Protocol","level":"1.6.1","depth":2,"next":{"title":"5.2 Filter","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"previous":{"title":"5 SPI Extensions","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 Protocol","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 Filte [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/proxy-factory.html b/books/dubbo-dev-book-en/impls/proxy-factory.html
index 85fe9a7..6815197 100644
--- a/books/dubbo-dev-book-en/impls/proxy-factory.html
+++ b/books/dubbo-dev-book-en/impls/proxy-factory.html
@@ -737,7 +737,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.12 ProxyFactory","level":"1.6.12","depth":2,"next":{"title":"5.13 Compiler","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"previous":{"title":"5.11 ExtensionFactory","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"hig [...]
+            gitbook.page.hasChanged({"page":{"title":"5.12 ProxyFactory","level":"1.6.12","depth":2,"next":{"title":"5.13 Compiler","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"previous":{"title":"5.11 ExtensionFactory","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"hig [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/registry.html b/books/dubbo-dev-book-en/impls/registry.html
index 420ba54..c748d19 100644
--- a/books/dubbo-dev-book-en/impls/registry.html
+++ b/books/dubbo-dev-book-en/impls/registry.html
@@ -866,7 +866,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.9 Registry","level":"1.6.9","depth":2,"next":{"title":"5.10 Monitor","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"previous":{"title":"5.8 Merger","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSiz [...]
+            gitbook.page.hasChanged({"page":{"title":"5.9 Registry","level":"1.6.9","depth":2,"next":{"title":"5.10 Monitor","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"previous":{"title":"5.8 Merger","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSiz [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/remoting.html b/books/dubbo-dev-book-en/impls/remoting.html
index 9f9e7f3..66889a4 100644
--- a/books/dubbo-dev-book-en/impls/remoting.html
+++ b/books/dubbo-dev-book-en/impls/remoting.html
@@ -790,7 +790,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.17 Remoting","level":"1.6.17","depth":2,"next":{"title":"5.18 Exchanger","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"previous":{"title":"5.16 Serialization","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.17 Remoting","level":"1.6.17","depth":2,"next":{"title":"5.18 Exchanger","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"previous":{"title":"5.16 Serialization","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/router.html b/books/dubbo-dev-book-en/impls/router.html
index 20b69a3..95dcd72 100644
--- a/books/dubbo-dev-book-en/impls/router.html
+++ b/books/dubbo-dev-book-en/impls/router.html
@@ -732,7 +732,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.6 Router","level":"1.6.6","depth":2,"next":{"title":"5.7 LoadBalance","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"previous":{"title":"5.5 Cluster","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.6 Router","level":"1.6.6","depth":2,"next":{"title":"5.7 LoadBalance","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"previous":{"title":"5.5 Cluster","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/serialize.html b/books/dubbo-dev-book-en/impls/serialize.html
index 52961df..f7a4b64 100644
--- a/books/dubbo-dev-book-en/impls/serialize.html
+++ b/books/dubbo-dev-book-en/impls/serialize.html
@@ -746,7 +746,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.16 Serialization","level":"1.6.16","depth":2,"next":{"title":"5.17 Remoting","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"previous":{"title":"5.15 Threadpool","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.16 Serialization","level":"1.6.16","depth":2,"next":{"title":"5.17 Remoting","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"previous":{"title":"5.15 Threadpool","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/status-checker.html b/books/dubbo-dev-book-en/impls/status-checker.html
index bcb6e88..e9f2030 100644
--- a/books/dubbo-dev-book-en/impls/status-checker.html
+++ b/books/dubbo-dev-book-en/impls/status-checker.html
@@ -736,7 +736,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.21 StatusChecker","level":"1.6.21","depth":2,"next":{"title":"5.22 Container","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"previous":{"title":"5.20 TelnetHandler","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highligh [...]
+            gitbook.page.hasChanged({"page":{"title":"5.21 StatusChecker","level":"1.6.21","depth":2,"next":{"title":"5.22 Container","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"previous":{"title":"5.20 TelnetHandler","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highligh [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/telnet-handler.html b/books/dubbo-dev-book-en/impls/telnet-handler.html
index f83822d..4b8b288 100644
--- a/books/dubbo-dev-book-en/impls/telnet-handler.html
+++ b/books/dubbo-dev-book-en/impls/telnet-handler.html
@@ -746,7 +746,7 @@ dubbo&gt; xxx args
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.20 TelnetHandler","level":"1.6.20","depth":2,"next":{"title":"5.21 StatusChecker","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"previous":{"title":"5.19 Networker","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highligh [...]
+            gitbook.page.hasChanged({"page":{"title":"5.20 TelnetHandler","level":"1.6.20","depth":2,"next":{"title":"5.21 StatusChecker","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"previous":{"title":"5.19 Networker","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highligh [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/threadpool.html b/books/dubbo-dev-book-en/impls/threadpool.html
index 7768b78..b3ffd27 100644
--- a/books/dubbo-dev-book-en/impls/threadpool.html
+++ b/books/dubbo-dev-book-en/impls/threadpool.html
@@ -732,7 +732,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.15 Threadpool","level":"1.6.15","depth":2,"next":{"title":"5.16 Serialization","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"previous":{"title":"5.14 Dispatcher","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sea [...]
+            gitbook.page.hasChanged({"page":{"title":"5.15 Threadpool","level":"1.6.15","depth":2,"next":{"title":"5.16 Serialization","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"previous":{"title":"5.14 Dispatcher","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sea [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/impls/validation.html b/books/dubbo-dev-book-en/impls/validation.html
index 658b218..09efb49 100644
--- a/books/dubbo-dev-book-en/impls/validation.html
+++ b/books/dubbo-dev-book-en/impls/validation.html
@@ -742,7 +742,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.25 Validation","level":"1.6.25","depth":2,"next":{"title":"5.26 LoggerAdapter","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"previous":{"title":"5.24 Cache","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.25 Validation","level":"1.6.25","depth":2,"next":{"title":"5.26 LoggerAdapter","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"previous":{"title":"5.24 Cache","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/index.html b/books/dubbo-dev-book-en/index.html
index a0c5f77..95d314d 100644
--- a/books/dubbo-dev-book-en/index.html
+++ b/books/dubbo-dev-book-en/index.html
@@ -686,7 +686,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 How To Build","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false [...]
+            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 How To Build","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book-en/introduction.html b/books/dubbo-dev-book-en/introduction.html
new file mode 100644
index 0000000..6e79700
--- /dev/null
+++ b/books/dubbo-dev-book-en/introduction.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>Apache Dubbo (incubating) | Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</title>
+<meta property="og:title" content="Apache Dubbo (incubating)" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-dev-book-en/introduction.html","publisher":null,"image":null,"headline":"Apache Dubbo (incubating)","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>
diff --git a/books/dubbo-dev-book-en/release.html b/books/dubbo-dev-book-en/release.html
index c5731cd..f23835c 100644
--- a/books/dubbo-dev-book-en/release.html
+++ b/books/dubbo-dev-book-en/release.html
@@ -722,7 +722,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9 Versions","level":"1.9","depth":1,"next":{"title":"10 Contribution","level":"1.10","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"previous":{"title":"7 Code Style","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignor [...]
+            gitbook.page.hasChanged({"page":{"title":"9 Versions","level":"1.9","depth":1,"next":{"title":"10 Contribution","level":"1.10","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"previous":{"title":"7 Code Style","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignor [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/SPI.html b/books/dubbo-dev-book/SPI.html
index 85801e9..19648cf 100644
--- a/books/dubbo-dev-book/SPI.html
+++ b/books/dubbo-dev-book/SPI.html
@@ -968,7 +968,7 @@ Wheel wheel = wheelMaker.makeWheel(url);
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"3 扩展点加载","level":"1.4","depth":1,"next":{"title":"4 实现细节","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"previous":{"title":"2 框架设计","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharact [...]
+            gitbook.page.hasChanged({"page":{"title":"3 扩展点加载","level":"1.4","depth":1,"next":{"title":"4 实现细节","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"previous":{"title":"2 框架设计","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharact [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/TCK.html b/books/dubbo-dev-book/TCK.html
index 56e6777..5e85690 100644
--- a/books/dubbo-dev-book/TCK.html
+++ b/books/dubbo-dev-book/TCK.html
@@ -808,7 +808,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"13 技术兼容性测试","level":"1.14","depth":1,"previous":{"title":"12 坏味道","level":"1.13","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk" [...]
+            gitbook.page.hasChanged({"page":{"title":"13 技术兼容性测试","level":"1.14","depth":1,"previous":{"title":"12 坏味道","level":"1.13","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/build.html b/books/dubbo-dev-book/build.html
index f5da33a..9a8255e 100644
--- a/books/dubbo-dev-book/build.html
+++ b/books/dubbo-dev-book/build.html
@@ -846,7 +846,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1 源码构建","level":"1.2","depth":1,"next":{"title":"2 框架设计","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false}," [...]
+            gitbook.page.hasChanged({"page":{"title":"1 源码构建","level":"1.2","depth":1,"next":{"title":"2 框架设计","level":"1.3","depth":1,"path":"design.md","ref":"./design.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false}," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/checklist.html b/books/dubbo-dev-book/checklist.html
index 3d07eef..c8e87bb 100644
--- a/books/dubbo-dev-book/checklist.html
+++ b/books/dubbo-dev-book/checklist.html
@@ -827,7 +827,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"11 检查列表","level":"1.12","depth":1,"next":{"title":"12 坏味道","level":"1.13","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"previous":{"title":"10 贡献","level":"1.11","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialC [...]
+            gitbook.page.hasChanged({"page":{"title":"11 检查列表","level":"1.12","depth":1,"next":{"title":"12 坏味道","level":"1.13","depth":1,"path":"code-smell.md","ref":"./code-smell.md","articles":[]},"previous":{"title":"10 贡献","level":"1.11","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialC [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/code-smell.html b/books/dubbo-dev-book/code-smell.html
index 9e5e6a9..ed92785 100644
--- a/books/dubbo-dev-book/code-smell.html
+++ b/books/dubbo-dev-book/code-smell.html
@@ -915,7 +915,7 @@ public class &lt;&#x6269;&#x5C55;&#x70B9;&#x63A5;&#x53E3;&#x540D;&gt;$Adpative i
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"12 坏味道","level":"1.13","depth":1,"next":{"title":"13 技术兼容性测试","level":"1.14","depth":1,"path":"TCK.md","ref":"./TCK.md","articles":[]},"previous":{"title":"11 检查列表","level":"1.12","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":fals [...]
+            gitbook.page.hasChanged({"page":{"title":"12 坏味道","level":"1.13","depth":1,"next":{"title":"13 技术兼容性测试","level":"1.14","depth":1,"path":"TCK.md","ref":"./TCK.md","articles":[]},"previous":{"title":"11 检查列表","level":"1.12","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":fals [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/coding.html b/books/dubbo-dev-book/coding.html
index a906743..49bda49 100644
--- a/books/dubbo-dev-book/coding.html
+++ b/books/dubbo-dev-book/coding.html
@@ -857,7 +857,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"7 编码约定","level":"1.8","depth":1,"next":{"title":"8 设计原则","level":"1.9","depth":1,"path":"principals/introduction.md","ref":"./principals/introduction.md","articles":[{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code-detail.md","articles":[]},{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"path":"principals/general-knowledge.md","ref":"./principals/general-knowledge.md","art [...]
+            gitbook.page.hasChanged({"page":{"title":"7 编码约定","level":"1.8","depth":1,"next":{"title":"8 设计原则","level":"1.9","depth":1,"path":"principals/introduction.md","ref":"./principals/introduction.md","articles":[{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code-detail.md","articles":[]},{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"path":"principals/general-knowledge.md","ref":"./principals/general-knowledge.md","art [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/contract.html b/books/dubbo-dev-book/contract.html
index d257897..92b726b 100644
--- a/books/dubbo-dev-book/contract.html
+++ b/books/dubbo-dev-book/contract.html
@@ -813,7 +813,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6 公共契约","level":"1.7","depth":1,"next":{"title":"7 编码约定","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"previous":{"title":"5.26 日志适配扩展","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"i [...]
+            gitbook.page.hasChanged({"page":{"title":"6 公共契约","level":"1.7","depth":1,"next":{"title":"7 编码约定","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"previous":{"title":"5.26 日志适配扩展","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"i [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/contribution.html b/books/dubbo-dev-book/contribution.html
index ebc717a..bda0c7c 100644
--- a/books/dubbo-dev-book/contribution.html
+++ b/books/dubbo-dev-book/contribution.html
@@ -1120,7 +1120,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10 贡献","level":"1.11","depth":1,"next":{"title":"11 检查列表","level":"1.12","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"previous":{"title":"9 版本管理","level":"1.10","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":f [...]
+            gitbook.page.hasChanged({"page":{"title":"10 贡献","level":"1.11","depth":1,"next":{"title":"11 检查列表","level":"1.12","depth":1,"path":"checklist.md","ref":"./checklist.md","articles":[]},"previous":{"title":"9 版本管理","level":"1.10","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":f [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/design.html b/books/dubbo-dev-book/design.html
index 74bd2a8..cac2c1f 100644
--- a/books/dubbo-dev-book/design.html
+++ b/books/dubbo-dev-book/design.html
@@ -882,7 +882,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"2 框架设计","level":"1.3","depth":1,"next":{"title":"3 扩展点加载","level":"1.4","depth":1,"path":"SPI.md","ref":"./SPI.md","articles":[]},"previous":{"title":"1 源码构建","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"2 框架设计","level":"1.3","depth":1,"next":{"title":"3 扩展点加载","level":"1.4","depth":1,"path":"SPI.md","ref":"./SPI.md","articles":[]},"previous":{"title":"1 源码构建","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/implementation.html b/books/dubbo-dev-book/implementation.html
index aaf5a13..f4aed26 100644
--- a/books/dubbo-dev-book/implementation.html
+++ b/books/dubbo-dev-book/implementation.html
@@ -900,7 +900,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"4 实现细节","level":"1.5","depth":1,"next":{"title":"5 SPI 扩展实现","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2, [...]
+            gitbook.page.hasChanged({"page":{"title":"4 实现细节","level":"1.5","depth":1,"next":{"title":"5 SPI 扩展实现","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2, [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/cache.html b/books/dubbo-dev-book/impls/cache.html
index 913622a..f262d2e 100644
--- a/books/dubbo-dev-book/impls/cache.html
+++ b/books/dubbo-dev-book/impls/cache.html
@@ -861,7 +861,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.24 缓存扩展","level":"1.6.24","depth":2,"next":{"title":"5.25 验证扩展","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"previous":{"title":"5.23 页面扩展","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.24 缓存扩展","level":"1.6.24","depth":2,"next":{"title":"5.25 验证扩展","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"previous":{"title":"5.23 页面扩展","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/cluster.html b/books/dubbo-dev-book/impls/cluster.html
index 55f989a..fe3e280 100644
--- a/books/dubbo-dev-book/impls/cluster.html
+++ b/books/dubbo-dev-book/impls/cluster.html
@@ -856,7 +856,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.5 集群扩展","level":"1.6.5","depth":2,"next":{"title":"5.6 路由扩展","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"previous":{"title":"5.4 暴露监听扩展","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.5 集群扩展","level":"1.6.5","depth":2,"next":{"title":"5.6 路由扩展","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"previous":{"title":"5.4 暴露监听扩展","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/compiler.html b/books/dubbo-dev-book/impls/compiler.html
index 47775e8..5988dab 100644
--- a/books/dubbo-dev-book/impls/compiler.html
+++ b/books/dubbo-dev-book/impls/compiler.html
@@ -838,7 +838,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.13 编译器扩展","level":"1.6.13","depth":2,"next":{"title":"5.14 消息派发扩展","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"previous":{"title":"5.12 动态代理扩展","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{}, [...]
+            gitbook.page.hasChanged({"page":{"title":"5.13 编译器扩展","level":"1.6.13","depth":2,"next":{"title":"5.14 消息派发扩展","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"previous":{"title":"5.12 动态代理扩展","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{}, [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/container.html b/books/dubbo-dev-book/impls/container.html
index 5599205..6e41cef 100644
--- a/books/dubbo-dev-book/impls/container.html
+++ b/books/dubbo-dev-book/impls/container.html
@@ -844,7 +844,7 @@ com.alibaba.dubbo.container.Container;
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.22 容器扩展","level":"1.6.22","depth":2,"next":{"title":"5.23 页面扩展","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"previous":{"title":"5.21 状态检查扩展","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxI [...]
+            gitbook.page.hasChanged({"page":{"title":"5.22 容器扩展","level":"1.6.22","depth":2,"next":{"title":"5.23 页面扩展","level":"1.6.23","depth":2,"path":"impls/page.md","ref":"./impls/page.md","articles":[]},"previous":{"title":"5.21 状态检查扩展","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxI [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/dispatcher.html b/books/dubbo-dev-book/impls/dispatcher.html
index 67295d7..f590792 100644
--- a/books/dubbo-dev-book/impls/dispatcher.html
+++ b/books/dubbo-dev-book/impls/dispatcher.html
@@ -844,7 +844,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.14 消息派发扩展","level":"1.6.14","depth":2,"next":{"title":"5.15 线程池扩展","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"previous":{"title":"5.13 编译器扩展","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
+            gitbook.page.hasChanged({"page":{"title":"5.14 消息派发扩展","level":"1.6.14","depth":2,"next":{"title":"5.15 线程池扩展","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"previous":{"title":"5.13 编译器扩展","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/exchanger.html b/books/dubbo-dev-book/impls/exchanger.html
index d685a6e..177e12b 100644
--- a/books/dubbo-dev-book/impls/exchanger.html
+++ b/books/dubbo-dev-book/impls/exchanger.html
@@ -867,7 +867,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.18 信息交换扩展","level":"1.6.18","depth":2,"next":{"title":"5.19 组网扩展","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"previous":{"title":"5.17 网络传输扩展","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxI [...]
+            gitbook.page.hasChanged({"page":{"title":"5.18 信息交换扩展","level":"1.6.18","depth":2,"next":{"title":"5.19 组网扩展","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"previous":{"title":"5.17 网络传输扩展","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxI [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/exporter-listener.html b/books/dubbo-dev-book/impls/exporter-listener.html
index fb3a0d8..e1415bc 100644
--- a/books/dubbo-dev-book/impls/exporter-listener.html
+++ b/books/dubbo-dev-book/impls/exporter-listener.html
@@ -845,7 +845,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.4 暴露监听扩展","level":"1.6.4","depth":2,"next":{"title":"5.5 集群扩展","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"previous":{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.4 暴露监听扩展","level":"1.6.4","depth":2,"next":{"title":"5.5 集群扩展","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"previous":{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/extension-factory.html b/books/dubbo-dev-book/impls/extension-factory.html
index cc2bfaa..951e454 100644
--- a/books/dubbo-dev-book/impls/extension-factory.html
+++ b/books/dubbo-dev-book/impls/extension-factory.html
@@ -839,7 +839,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.11 扩展点加载扩展","level":"1.6.11","depth":2,"next":{"title":"5.12 动态代理扩展","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"previous":{"title":"5.10 监控中心扩展","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
+            gitbook.page.hasChanged({"page":{"title":"5.11 扩展点加载扩展","level":"1.6.11","depth":2,"next":{"title":"5.12 动态代理扩展","level":"1.6.12","depth":2,"path":"impls/proxy-factory.md","ref":"./impls/proxy-factory.md","articles":[]},"previous":{"title":"5.10 监控中心扩展","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/filter.html b/books/dubbo-dev-book/impls/filter.html
index d5099fc..54afd07 100644
--- a/books/dubbo-dev-book/impls/filter.html
+++ b/books/dubbo-dev-book/impls/filter.html
@@ -871,7 +871,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"next":{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"previous":{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
+            gitbook.page.hasChanged({"page":{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"next":{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2,"path":"impls/invoker-listener.md","ref":"./impls/invoker-listener.md","articles":[]},"previous":{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/introduction.html b/books/dubbo-dev-book/impls/introduction.html
index 5aa0e16..5637d06 100644
--- a/books/dubbo-dev-book/impls/introduction.html
+++ b/books/dubbo-dev-book/impls/introduction.html
@@ -802,7 +802,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5 SPI 扩展实现","level":"1.6","depth":1,"next":{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"previous":{"title":"4 实现细节","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":100000 [...]
+            gitbook.page.hasChanged({"page":{"title":"5 SPI 扩展实现","level":"1.6","depth":1,"next":{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},"previous":{"title":"4 实现细节","level":"1.5","depth":1,"path":"implementation.md","ref":"./implementation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":100000 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/invoker-listener.html b/books/dubbo-dev-book/impls/invoker-listener.html
index e7b9b73..dfb57dc 100644
--- a/books/dubbo-dev-book/impls/invoker-listener.html
+++ b/books/dubbo-dev-book/impls/invoker-listener.html
@@ -844,7 +844,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2,"next":{"title":"5.4 暴露监听扩展","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"previous":{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
+            gitbook.page.hasChanged({"page":{"title":"5.3 引用监听扩展","level":"1.6.3","depth":2,"next":{"title":"5.4 暴露监听扩展","level":"1.6.4","depth":2,"path":"impls/exporter-listener.md","ref":"./impls/exporter-listener.md","articles":[]},"previous":{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/load-balance.html b/books/dubbo-dev-book/impls/load-balance.html
index bab4011..9eedff5 100644
--- a/books/dubbo-dev-book/impls/load-balance.html
+++ b/books/dubbo-dev-book/impls/load-balance.html
@@ -845,7 +845,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.7 负载均衡扩展","level":"1.6.7","depth":2,"next":{"title":"5.8 合并结果扩展","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"previous":{"title":"5.6 路由扩展","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":100000 [...]
+            gitbook.page.hasChanged({"page":{"title":"5.7 负载均衡扩展","level":"1.6.7","depth":2,"next":{"title":"5.8 合并结果扩展","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"previous":{"title":"5.6 路由扩展","level":"1.6.6","depth":2,"path":"impls/router.md","ref":"./impls/router.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":100000 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/logger-adapter.html b/books/dubbo-dev-book/impls/logger-adapter.html
index a2780c9..559b92a 100644
--- a/books/dubbo-dev-book/impls/logger-adapter.html
+++ b/books/dubbo-dev-book/impls/logger-adapter.html
@@ -859,7 +859,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.26 日志适配扩展","level":"1.6.26","depth":2,"next":{"title":"6 公共契约","level":"1.7","depth":1,"path":"contract.md","ref":"./contract.md","articles":[]},"previous":{"title":"5.25 验证扩展","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000, [...]
+            gitbook.page.hasChanged({"page":{"title":"5.26 日志适配扩展","level":"1.6.26","depth":2,"next":{"title":"6 公共契约","level":"1.7","depth":1,"path":"contract.md","ref":"./contract.md","articles":[]},"previous":{"title":"5.25 验证扩展","level":"1.6.25","depth":2,"path":"impls/validation.md","ref":"./impls/validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000, [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/merger.html b/books/dubbo-dev-book/impls/merger.html
index 94eaa17..ac99c17 100644
--- a/books/dubbo-dev-book/impls/merger.html
+++ b/books/dubbo-dev-book/impls/merger.html
@@ -841,7 +841,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.8 合并结果扩展","level":"1.6.8","depth":2,"next":{"title":"5.9 注册中心扩展","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"previous":{"title":"5.7 负载均衡扩展","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
+            gitbook.page.hasChanged({"page":{"title":"5.8 合并结果扩展","level":"1.6.8","depth":2,"next":{"title":"5.9 注册中心扩展","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"previous":{"title":"5.7 负载均衡扩展","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/monitor.html b/books/dubbo-dev-book/impls/monitor.html
index 7331dae..b427c47 100644
--- a/books/dubbo-dev-book/impls/monitor.html
+++ b/books/dubbo-dev-book/impls/monitor.html
@@ -854,7 +854,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.10 监控中心扩展","level":"1.6.10","depth":2,"next":{"title":"5.11 扩展点加载扩展","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"previous":{"title":"5.9 注册中心扩展","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.10 监控中心扩展","level":"1.6.10","depth":2,"next":{"title":"5.11 扩展点加载扩展","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"previous":{"title":"5.9 注册中心扩展","level":"1.6.9","depth":2,"path":"impls/registry.md","ref":"./impls/registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/networker.html b/books/dubbo-dev-book/impls/networker.html
index 73b10a6..c1d294d 100644
--- a/books/dubbo-dev-book/impls/networker.html
+++ b/books/dubbo-dev-book/impls/networker.html
@@ -841,7 +841,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.19 组网扩展","level":"1.6.19","depth":2,"next":{"title":"5.20 Telnet 命令扩展","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"previous":{"title":"5.18 信息交换扩展","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.19 组网扩展","level":"1.6.19","depth":2,"next":{"title":"5.20 Telnet 命令扩展","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"previous":{"title":"5.18 信息交换扩展","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/page.html b/books/dubbo-dev-book/impls/page.html
index 675de9e..e64718c 100644
--- a/books/dubbo-dev-book/impls/page.html
+++ b/books/dubbo-dev-book/impls/page.html
@@ -843,7 +843,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.23 页面扩展","level":"1.6.23","depth":2,"next":{"title":"5.24 缓存扩展","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"previous":{"title":"5.22 容器扩展","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.23 页面扩展","level":"1.6.23","depth":2,"next":{"title":"5.24 缓存扩展","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"previous":{"title":"5.22 容器扩展","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/protocol.html b/books/dubbo-dev-book/impls/protocol.html
index 4319068..1d905fa 100644
--- a/books/dubbo-dev-book/impls/protocol.html
+++ b/books/dubbo-dev-book/impls/protocol.html
@@ -927,7 +927,7 @@ src
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"next":{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"previous":{"title":"5 SPI 扩展实现","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 调用拦截扩展","level":"1. [...]
+            gitbook.page.hasChanged({"page":{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"next":{"title":"5.2 调用拦截扩展","level":"1.6.2","depth":2,"path":"impls/filter.md","ref":"./impls/filter.md","articles":[]},"previous":{"title":"5 SPI 扩展实现","level":"1.6","depth":1,"path":"impls/introduction.md","ref":"./impls/introduction.md","articles":[{"title":"5.1 协议扩展","level":"1.6.1","depth":2,"path":"impls/protocol.md","ref":"./impls/protocol.md","articles":[]},{"title":"5.2 调用拦截扩展","level":"1. [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/proxy-factory.html b/books/dubbo-dev-book/impls/proxy-factory.html
index bdc6748..6a3d328 100644
--- a/books/dubbo-dev-book/impls/proxy-factory.html
+++ b/books/dubbo-dev-book/impls/proxy-factory.html
@@ -847,7 +847,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.12 动态代理扩展","level":"1.6.12","depth":2,"next":{"title":"5.13 编译器扩展","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"previous":{"title":"5.11 扩展点加载扩展","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
+            gitbook.page.hasChanged({"page":{"title":"5.12 动态代理扩展","level":"1.6.12","depth":2,"next":{"title":"5.13 编译器扩展","level":"1.6.13","depth":2,"path":"impls/compiler.md","ref":"./impls/compiler.md","articles":[]},"previous":{"title":"5.11 扩展点加载扩展","level":"1.6.11","depth":2,"path":"impls/extension-factory.md","ref":"./impls/extension-factory.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/registry.html b/books/dubbo-dev-book/impls/registry.html
index 14a82cf..31c0c3b 100644
--- a/books/dubbo-dev-book/impls/registry.html
+++ b/books/dubbo-dev-book/impls/registry.html
@@ -974,7 +974,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.9 注册中心扩展","level":"1.6.9","depth":2,"next":{"title":"5.10 监控中心扩展","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"previous":{"title":"5.8 合并结果扩展","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
+            gitbook.page.hasChanged({"page":{"title":"5.9 注册中心扩展","level":"1.6.9","depth":2,"next":{"title":"5.10 监控中心扩展","level":"1.6.10","depth":2,"path":"impls/monitor.md","ref":"./impls/monitor.md","articles":[]},"previous":{"title":"5.8 合并结果扩展","level":"1.6.8","depth":2,"path":"impls/merger.md","ref":"./impls/merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/remoting.html b/books/dubbo-dev-book/impls/remoting.html
index 754dc22..1274c14 100644
--- a/books/dubbo-dev-book/impls/remoting.html
+++ b/books/dubbo-dev-book/impls/remoting.html
@@ -900,7 +900,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.17 网络传输扩展","level":"1.6.17","depth":2,"next":{"title":"5.18 信息交换扩展","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"previous":{"title":"5.16 序列化扩展","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"m [...]
+            gitbook.page.hasChanged({"page":{"title":"5.17 网络传输扩展","level":"1.6.17","depth":2,"next":{"title":"5.18 信息交换扩展","level":"1.6.18","depth":2,"path":"impls/exchanger.md","ref":"./impls/exchanger.md","articles":[]},"previous":{"title":"5.16 序列化扩展","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"m [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/router.html b/books/dubbo-dev-book/impls/router.html
index 134da37..a19be0a 100644
--- a/books/dubbo-dev-book/impls/router.html
+++ b/books/dubbo-dev-book/impls/router.html
@@ -842,7 +842,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.6 路由扩展","level":"1.6.6","depth":2,"next":{"title":"5.7 负载均衡扩展","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"previous":{"title":"5.5 集群扩展","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndex [...]
+            gitbook.page.hasChanged({"page":{"title":"5.6 路由扩展","level":"1.6.6","depth":2,"next":{"title":"5.7 负载均衡扩展","level":"1.6.7","depth":2,"path":"impls/load-balance.md","ref":"./impls/load-balance.md","articles":[]},"previous":{"title":"5.5 集群扩展","level":"1.6.5","depth":2,"path":"impls/cluster.md","ref":"./impls/cluster.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndex [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/serialize.html b/books/dubbo-dev-book/impls/serialize.html
index 5cc10c7..a2121c9 100644
--- a/books/dubbo-dev-book/impls/serialize.html
+++ b/books/dubbo-dev-book/impls/serialize.html
@@ -856,7 +856,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.16 序列化扩展","level":"1.6.16","depth":2,"next":{"title":"5.17 网络传输扩展","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"previous":{"title":"5.15 线程池扩展","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
+            gitbook.page.hasChanged({"page":{"title":"5.16 序列化扩展","level":"1.6.16","depth":2,"next":{"title":"5.17 网络传输扩展","level":"1.6.17","depth":2,"path":"impls/remoting.md","ref":"./impls/remoting.md","articles":[]},"previous":{"title":"5.15 线程池扩展","level":"1.6.15","depth":2,"path":"impls/threadpool.md","ref":"./impls/threadpool.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/status-checker.html b/books/dubbo-dev-book/impls/status-checker.html
index 9bad3c7..c7afee5 100644
--- a/books/dubbo-dev-book/impls/status-checker.html
+++ b/books/dubbo-dev-book/impls/status-checker.html
@@ -846,7 +846,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.21 状态检查扩展","level":"1.6.21","depth":2,"next":{"title":"5.22 容器扩展","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"previous":{"title":"5.20 Telnet 命令扩展","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.21 状态检查扩展","level":"1.6.21","depth":2,"next":{"title":"5.22 容器扩展","level":"1.6.22","depth":2,"path":"impls/container.md","ref":"./impls/container.md","articles":[]},"previous":{"title":"5.20 Telnet 命令扩展","level":"1.6.20","depth":2,"path":"impls/telnet-handler.md","ref":"./impls/telnet-handler.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/telnet-handler.html b/books/dubbo-dev-book/impls/telnet-handler.html
index 700374a..b35dc91 100644
--- a/books/dubbo-dev-book/impls/telnet-handler.html
+++ b/books/dubbo-dev-book/impls/telnet-handler.html
@@ -856,7 +856,7 @@ dubbo&gt; xxx args
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.20 Telnet 命令扩展","level":"1.6.20","depth":2,"next":{"title":"5.21 状态检查扩展","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"previous":{"title":"5.19 组网扩展","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.20 Telnet 命令扩展","level":"1.6.20","depth":2,"next":{"title":"5.21 状态检查扩展","level":"1.6.21","depth":2,"path":"impls/status-checker.md","ref":"./impls/status-checker.md","articles":[]},"previous":{"title":"5.19 组网扩展","level":"1.6.19","depth":2,"path":"impls/networker.md","ref":"./impls/networker.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/threadpool.html b/books/dubbo-dev-book/impls/threadpool.html
index 00ff07f..3a8839a 100644
--- a/books/dubbo-dev-book/impls/threadpool.html
+++ b/books/dubbo-dev-book/impls/threadpool.html
@@ -842,7 +842,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.15 线程池扩展","level":"1.6.15","depth":2,"next":{"title":"5.16 序列化扩展","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"previous":{"title":"5.14 消息派发扩展","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.15 线程池扩展","level":"1.6.15","depth":2,"next":{"title":"5.16 序列化扩展","level":"1.6.16","depth":2,"path":"impls/serialize.md","ref":"./impls/serialize.md","articles":[]},"previous":{"title":"5.14 消息派发扩展","level":"1.6.14","depth":2,"path":"impls/dispatcher.md","ref":"./impls/dispatcher.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/impls/validation.html b/books/dubbo-dev-book/impls/validation.html
index 63f6f3f..e80ec2b 100644
--- a/books/dubbo-dev-book/impls/validation.html
+++ b/books/dubbo-dev-book/impls/validation.html
@@ -852,7 +852,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.25 验证扩展","level":"1.6.25","depth":2,"next":{"title":"5.26 日志适配扩展","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"previous":{"title":"5.24 缓存扩展","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
+            gitbook.page.hasChanged({"page":{"title":"5.25 验证扩展","level":"1.6.25","depth":2,"next":{"title":"5.26 日志适配扩展","level":"1.6.26","depth":2,"path":"impls/logger-adapter.md","ref":"./impls/logger-adapter.md","articles":[]},"previous":{"title":"5.24 缓存扩展","level":"1.6.24","depth":2,"path":"impls/cache.md","ref":"./impls/cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/index.html b/books/dubbo-dev-book/index.html
index 071068e..a9cea50 100644
--- a/books/dubbo-dev-book/index.html
+++ b/books/dubbo-dev-book/index.html
@@ -795,7 +795,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 源码构建","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":[ [...]
+            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 源码构建","level":"1.2","depth":1,"path":"build.md","ref":"./build.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":[ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/introduction.html b/books/dubbo-dev-book/introduction.html
new file mode 100644
index 0000000..a337a10
--- /dev/null
+++ b/books/dubbo-dev-book/introduction.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>Apache Dubbo (incubating) | Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</title>
+<meta property="og:title" content="Apache Dubbo (incubating)" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-dev-book/introduction.html","publisher":null,"image":null,"headline":"Apache Dubbo (incubating)","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      <p>这里增加《开发指南》的内容</p>
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>
diff --git a/books/dubbo-dev-book/principals/code-detail.html b/books/dubbo-dev-book/principals/code-detail.html
index 1007c8a..bc90b6d 100644
--- a/books/dubbo-dev-book/principals/code-detail.html
+++ b/books/dubbo-dev-book/principals/code-detail.html
@@ -821,7 +821,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"next":{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"path":"principals/general-knowledge.md","ref":"./principals/general-knowledge.md","articles":[]},"previous":{"title":"8 设计原则","level":"1.9","depth":1,"path":"principals/introduction.md","ref":"./principals/introduction.md","articles":[{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code [...]
+            gitbook.page.hasChanged({"page":{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"next":{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"path":"principals/general-knowledge.md","ref":"./principals/general-knowledge.md","articles":[]},"previous":{"title":"8 设计原则","level":"1.9","depth":1,"path":"principals/introduction.md","ref":"./principals/introduction.md","articles":[{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/principals/configuration.html b/books/dubbo-dev-book/principals/configuration.html
index 5fecfcf..10cfbab 100644
--- a/books/dubbo-dev-book/principals/configuration.html
+++ b/books/dubbo-dev-book/principals/configuration.html
@@ -853,7 +853,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.4 配置设计","level":"1.9.4","depth":2,"next":{"title":"8.5 设计实现的健壮性","level":"1.9.5","depth":2,"path":"principals/robustness.md","ref":"./principals/robustness.md","articles":[]},"previous":{"title":"8.3 谈谈扩充式扩展与增量式扩展","level":"1.9.3","depth":2,"path":"principals/expansibility.md","ref":"./principals/expansibility.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"high [...]
+            gitbook.page.hasChanged({"page":{"title":"8.4 配置设计","level":"1.9.4","depth":2,"next":{"title":"8.5 设计实现的健壮性","level":"1.9.5","depth":2,"path":"principals/robustness.md","ref":"./principals/robustness.md","articles":[]},"previous":{"title":"8.3 谈谈扩充式扩展与增量式扩展","level":"1.9.3","depth":2,"path":"principals/expansibility.md","ref":"./principals/expansibility.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"high [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/principals/dummy.html b/books/dubbo-dev-book/principals/dummy.html
index aa652e4..3fe6bf9 100644
--- a/books/dubbo-dev-book/principals/dummy.html
+++ b/books/dubbo-dev-book/principals/dummy.html
@@ -978,7 +978,7 @@ DUMP_DIR=<span class="hljs-variable">$DUMP_ROOT</span>/dump-<span class="hljs-va
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.6 防痴呆设计","level":"1.9.6","depth":2,"next":{"title":"8.7 扩展点重构","level":"1.9.7","depth":2,"path":"principals/extension.md","ref":"./principals/extension.md","articles":[]},"previous":{"title":"8.5 设计实现的健壮性","level":"1.9.5","depth":2,"path":"principals/robustness.md","ref":"./principals/robustness.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
+            gitbook.page.hasChanged({"page":{"title":"8.6 防痴呆设计","level":"1.9.6","depth":2,"next":{"title":"8.7 扩展点重构","level":"1.9.7","depth":2,"path":"principals/extension.md","ref":"./principals/extension.md","articles":[]},"previous":{"title":"8.5 设计实现的健壮性","level":"1.9.5","depth":2,"path":"principals/robustness.md","ref":"./principals/robustness.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/principals/expansibility.html b/books/dubbo-dev-book/principals/expansibility.html
index 303894e..adb7f9b 100644
--- a/books/dubbo-dev-book/principals/expansibility.html
+++ b/books/dubbo-dev-book/principals/expansibility.html
@@ -811,7 +811,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.3 谈谈扩充式扩展与增量式扩展","level":"1.9.3","depth":2,"next":{"title":"8.4 配置设计","level":"1.9.4","depth":2,"path":"principals/configuration.md","ref":"./principals/configuration.md","articles":[]},"previous":{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"path":"principals/general-knowledge.md","ref":"./principals/general-knowledge.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
+            gitbook.page.hasChanged({"page":{"title":"8.3 谈谈扩充式扩展与增量式扩展","level":"1.9.3","depth":2,"next":{"title":"8.4 配置设计","level":"1.9.4","depth":2,"path":"principals/configuration.md","ref":"./principals/configuration.md","articles":[]},"previous":{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"path":"principals/general-knowledge.md","ref":"./principals/general-knowledge.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/principals/extension.html b/books/dubbo-dev-book/principals/extension.html
index 4ef8e26..99fc312 100644
--- a/books/dubbo-dev-book/principals/extension.html
+++ b/books/dubbo-dev-book/principals/extension.html
@@ -886,7 +886,7 @@ createExporter(URL url);
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.7 扩展点重构","level":"1.9.7","depth":2,"next":{"title":"9 版本管理","level":"1.10","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"previous":{"title":"8.6 防痴呆设计","level":"1.9.6","depth":2,"path":"principals/dummy.md","ref":"./principals/dummy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"igno [...]
+            gitbook.page.hasChanged({"page":{"title":"8.7 扩展点重构","level":"1.9.7","depth":2,"next":{"title":"9 版本管理","level":"1.10","depth":1,"path":"release.md","ref":"./release.md","articles":[]},"previous":{"title":"8.6 防痴呆设计","level":"1.9.6","depth":2,"path":"principals/dummy.md","ref":"./principals/dummy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"igno [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/principals/general-knowledge.html b/books/dubbo-dev-book/principals/general-knowledge.html
index 3f875a4..57801b1 100644
--- a/books/dubbo-dev-book/principals/general-knowledge.html
+++ b/books/dubbo-dev-book/principals/general-knowledge.html
@@ -836,7 +836,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"next":{"title":"8.3 谈谈扩充式扩展与增量式扩展","level":"1.9.3","depth":2,"path":"principals/expansibility.md","ref":"./principals/expansibility.md","articles":[]},"previous":{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code-detail.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"8.2 一些设计上的基本常识","level":"1.9.2","depth":2,"next":{"title":"8.3 谈谈扩充式扩展与增量式扩展","level":"1.9.3","depth":2,"path":"principals/expansibility.md","ref":"./principals/expansibility.md","articles":[]},"previous":{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code-detail.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/principals/introduction.html b/books/dubbo-dev-book/principals/introduction.html
index 4122e5c..2e00b4d 100644
--- a/books/dubbo-dev-book/principals/introduction.html
+++ b/books/dubbo-dev-book/principals/introduction.html
@@ -802,7 +802,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8 设计原则","level":"1.9","depth":1,"next":{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code-detail.md","articles":[]},"previous":{"title":"7 编码约定","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000," [...]
+            gitbook.page.hasChanged({"page":{"title":"8 设计原则","level":"1.9","depth":1,"next":{"title":"8.1 魔鬼在细节","level":"1.9.1","depth":2,"path":"principals/code-detail.md","ref":"./principals/code-detail.md","articles":[]},"previous":{"title":"7 编码约定","level":"1.8","depth":1,"path":"coding.md","ref":"./coding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/principals/robustness.html b/books/dubbo-dev-book/principals/robustness.html
index 9ecce57..7b29022 100644
--- a/books/dubbo-dev-book/principals/robustness.html
+++ b/books/dubbo-dev-book/principals/robustness.html
@@ -849,7 +849,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.5 设计实现的健壮性","level":"1.9.5","depth":2,"next":{"title":"8.6 防痴呆设计","level":"1.9.6","depth":2,"path":"principals/dummy.md","ref":"./principals/dummy.md","articles":[]},"previous":{"title":"8.4 配置设计","level":"1.9.4","depth":2,"path":"principals/configuration.md","ref":"./principals/configuration.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
+            gitbook.page.hasChanged({"page":{"title":"8.5 设计实现的健壮性","level":"1.9.5","depth":2,"next":{"title":"8.6 防痴呆设计","level":"1.9.6","depth":2,"path":"principals/dummy.md","ref":"./principals/dummy.md","articles":[]},"previous":{"title":"8.4 配置设计","level":"1.9.4","depth":2,"path":"principals/configuration.md","ref":"./principals/configuration.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-dev-book/release.html b/books/dubbo-dev-book/release.html
index 6af193d..6388144 100644
--- a/books/dubbo-dev-book/release.html
+++ b/books/dubbo-dev-book/release.html
@@ -832,7 +832,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9 版本管理","level":"1.10","depth":1,"next":{"title":"10 贡献","level":"1.11","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"previous":{"title":"8.7 扩展点重构","level":"1.9.7","depth":2,"path":"principals/extension.md","ref":"./principals/extension.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
+            gitbook.page.hasChanged({"page":{"title":"9 版本管理","level":"1.10","depth":1,"next":{"title":"10 贡献","level":"1.11","depth":1,"path":"contribution.md","ref":"./contribution.md","articles":[]},"previous":{"title":"8.7 扩展点重构","level":"1.9.7","depth":2,"path":"principals/extension.md","ref":"./principals/extension.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/benchmark-tool.html b/books/dubbo-user-book-en/benchmark-tool.html
new file mode 100644
index 0000000..75c9b13
--- /dev/null
+++ b/books/dubbo-user-book-en/benchmark-tool.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>Beanchmark testing tool installer | Apache Dubbo (incubating)</title>
+<meta property="og:title" content="Beanchmark testing tool installer" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-user-book-en/benchmark-tool.html","publisher":null,"image":null,"headline":"Beanchmark testing tool installer","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      <h1 id="beanchmark-testing-tool-installer">Beanchmark testing tool installer</h1>
+
+<p>Download the <a href="http://code.alibabatech.com/wiki/download/attachments/7669075/dubbo.benchmark-2.0.14.tar.gz">benchmark installer</a>,and unzip it</p>
+
+<p>Read ReadMe.txt (the contents are as follows, in the compressed package.)</p>
+
+<ul>
+  <li>
+    <p>Build a new benchmark project, such as demo.benchmark</p>
+  </li>
+  <li>
+    <p>Import the your own interface api jar and dubbo.benchmark.jar (Unzip dubbo.benchmark.tar.gz, under the lib directory )</p>
+  </li>
+  <li>
+    <p>Create a new class to implement AbstractClientRunnable</p>
+
+    <ul>
+      <li>Implement the constructor of the parent class</li>
+      <li>Implement the invoke method and create a local interface proxy by serviceFactory,and finish your own business logic, as follows:</li>
+    </ul>
+
+    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>      <span class="kd">public</span> <span class="n">Object</span> <span class="nf">invoke</span><span class="o">(</span><span class="n">ServiceFactory</span> <span class="n">serviceFactory</span><span class="o">)</span> <span class="o">{</span>
+          <span class="n">DemoService</span> <span class="n">demoService</span> <span class="o">=</span> <span class="o">(</span><span class="n">DemoService</span><span class="o">)</span> <span class="n">serviceFactory</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">DemoService</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+          <span class="k">return</span> <span class="n">demoService</span><span class="o">.</span><span class="na">sendRequest</span><span class="o">(</span><span class="s">"hello"</span><span class="o">);</span>
+      <span class="o">}</span>
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>Make your own benchmark project into a jar package, such as demo.benchmark.jar</p>
+  </li>
+  <li>
+    <p>Put the demo.benchmark.jar and service API jar into directory dubbo.benchmark/lib</p>
+  </li>
+  <li>
+    <p>Configuring duubo.properties</p>
+  </li>
+  <li>
+    <p>Run run.bat(windows) or run.sh(linux)</p>
+  </li>
+</ul>
+
+<p>If you want to test the different versions of Dubbo, you can replace the jar of the Dubbo.</p>
+
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>
diff --git a/books/dubbo-user-book-en/best-practice.html b/books/dubbo-user-book-en/best-practice.html
index 1c977b0..29f1ab9 100644
--- a/books/dubbo-user-book-en/best-practice.html
+++ b/books/dubbo-user-book-en/best-practice.html
@@ -1467,7 +1467,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"13 Servitization best practice","level":"1.14","depth":1,"next":{"title":"14 Recommended usage","level":"1.15","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"previous":{"title":"12 maven plugins","level":"1.13","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sea [...]
+            gitbook.page.hasChanged({"page":{"title":"13 Servitization best practice","level":"1.14","depth":1,"next":{"title":"14 Recommended usage","level":"1.15","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"previous":{"title":"12 maven plugins","level":"1.13","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sea [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/capacity-plan.html b/books/dubbo-user-book-en/capacity-plan.html
index 21636b0..f47440a 100644
--- a/books/dubbo-user-book-en/capacity-plan.html
+++ b/books/dubbo-user-book-en/capacity-plan.html
@@ -1451,7 +1451,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"15 Capacity plan","level":"1.16","depth":1,"next":{"title":"16 Performance testing reports","level":"1.17","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"previous":{"title":"14 Recommended usage","level":"1.15","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
+            gitbook.page.hasChanged({"page":{"title":"15 Capacity plan","level":"1.16","depth":1,"next":{"title":"16 Performance testing reports","level":"1.17","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"previous":{"title":"14 Recommended usage","level":"1.15","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/configuration/annotation.html b/books/dubbo-user-book-en/configuration/annotation.html
index ef98151..db85963 100644
--- a/books/dubbo-user-book-en/configuration/annotation.html
+++ b/books/dubbo-user-book-en/configuration/annotation.html
@@ -1521,7 +1521,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.4 Annotation configuration","level":"1.6.4","depth":2,"next":{"title":"6 Demos","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolere [...]
+            gitbook.page.hasChanged({"page":{"title":"5.4 Annotation configuration","level":"1.6.4","depth":2,"next":{"title":"6 Demos","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolere [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/configuration/api.html b/books/dubbo-user-book-en/configuration/api.html
index ec39331..4371c5a 100644
--- a/books/dubbo-user-book-en/configuration/api.html
+++ b/books/dubbo-user-book-en/configuration/api.html
@@ -1540,7 +1540,7 @@ reference.setUrl(<span class="hljs-string">&quot;dubbo://10.20.130.230:20880/com
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.3 API configuration","level":"1.6.3","depth":2,"next":{"title":"5.4 Annotation configuration","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"previous":{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
+            gitbook.page.hasChanged({"page":{"title":"5.3 API configuration","level":"1.6.3","depth":2,"next":{"title":"5.4 Annotation configuration","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"previous":{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/configuration/index.html b/books/dubbo-user-book-en/configuration/index.html
index bee3696..f9b3104 100644
--- a/books/dubbo-user-book-en/configuration/index.html
+++ b/books/dubbo-user-book-en/configuration/index.html
@@ -1436,7 +1436,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5 Configuration","level":"1.6","depth":1,"next":{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"previous":{"title":"4 maturality","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
+            gitbook.page.hasChanged({"page":{"title":"5 Configuration","level":"1.6","depth":1,"next":{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"previous":{"title":"4 maturality","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/configuration/properties.html b/books/dubbo-user-book-en/configuration/properties.html
index 5ad8754..bb70f8b 100644
--- a/books/dubbo-user-book-en/configuration/properties.html
+++ b/books/dubbo-user-book-en/configuration/properties.html
@@ -1466,7 +1466,7 @@ dubbo.registry.address=10.20.153.10:9090
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"next":{"title":"5.3 API configuration","level":"1.6.3","depth":2,"path":"configuration/api.md","ref":"./configuration/api.md","articles":[]},"previous":{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCon [...]
+            gitbook.page.hasChanged({"page":{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"next":{"title":"5.3 API configuration","level":"1.6.3","depth":2,"path":"configuration/api.md","ref":"./configuration/api.md","articles":[]},"previous":{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCon [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/configuration/xml.html b/books/dubbo-user-book-en/configuration/xml.html
index 128c0a9..f89b158 100644
--- a/books/dubbo-user-book-en/configuration/xml.html
+++ b/books/dubbo-user-book-en/configuration/xml.html
@@ -1543,7 +1543,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"next":{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"previous":{"title":"5 Configuration","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md [...]
+            gitbook.page.hasChanged({"page":{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"next":{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"previous":{"title":"5 Configuration","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/coveragence.html b/books/dubbo-user-book-en/coveragence.html
index af53d37..806041f 100644
--- a/books/dubbo-user-book-en/coveragence.html
+++ b/books/dubbo-user-book-en/coveragence.html
@@ -1441,7 +1441,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"17 Test coverage report","level":"1.18","depth":1,"previous":{"title":"16 Performance testing reports","level":"1.17","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"w [...]
+            gitbook.page.hasChanged({"page":{"title":"17 Test coverage report","level":"1.18","depth":1,"previous":{"title":"16 Performance testing reports","level":"1.17","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"w [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/accesslog.html b/books/dubbo-user-book-en/demos/accesslog.html
index 2ddd70e..dd3d90b 100644
--- a/books/dubbo-user-book-en/demos/accesslog.html
+++ b/books/dubbo-user-book-en/demos/accesslog.html
@@ -1479,7 +1479,7 @@ Now I will show you how to config the access log.</p>
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.39 Accesslog","level":"1.7.39","depth":2,"next":{"title":"6.40 Service container","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"previous":{"title":"6.38 Logger strategy","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"p [...]
+            gitbook.page.hasChanged({"page":{"title":"6.39 Accesslog","level":"1.7.39","depth":2,"next":{"title":"6.40 Service container","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"previous":{"title":"6.38 Logger strategy","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"p [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/async-call.html b/books/dubbo-user-book-en/demos/async-call.html
index 136e1d9..9d688e3 100644
--- a/books/dubbo-user-book-en/demos/async-call.html
+++ b/books/dubbo-user-book-en/demos/async-call.html
@@ -1479,7 +1479,7 @@ Bar bar = barFuture.get();
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.21 Asynchronous call","level":"1.7.21","depth":2,"next":{"title":"6.22 Local call","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"previous":{"title":"6.20 Attachment","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"6.21 Asynchronous call","level":"1.7.21","depth":2,"next":{"title":"6.22 Local call","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"previous":{"title":"6.20 Attachment","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/attachment.html b/books/dubbo-user-book-en/demos/attachment.html
index 1358a08..bdbd60a 100644
--- a/books/dubbo-user-book-en/demos/attachment.html
+++ b/books/dubbo-user-book-en/demos/attachment.html
@@ -1453,7 +1453,7 @@ xxxService.xxx(); <span class="hljs-comment">// remote call</span>
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.20 Attachment","level":"1.7.20","depth":2,"next":{"title":"6.21 Asynchronous call","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"previous":{"title":"6.19 Context","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
+            gitbook.page.hasChanged({"page":{"title":"6.20 Attachment","level":"1.7.20","depth":2,"next":{"title":"6.21 Asynchronous call","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"previous":{"title":"6.19 Context","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/callback-parameter.html b/books/dubbo-user-book-en/demos/callback-parameter.html
index bb1a1ed..ad198f3 100644
--- a/books/dubbo-user-book-en/demos/callback-parameter.html
+++ b/books/dubbo-user-book-en/demos/callback-parameter.html
@@ -1526,7 +1526,7 @@ callbackService.addListener(<span class="hljs-string">&quot;http://10.20.160.198
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.23 Callback parameter","level":"1.7.23","depth":2,"next":{"title":"6.24 Events notify","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"previous":{"title":"6.22 Local call","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"hi [...]
+            gitbook.page.hasChanged({"page":{"title":"6.23 Callback parameter","level":"1.7.23","depth":2,"next":{"title":"6.24 Events notify","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"previous":{"title":"6.22 Local call","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"hi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/concurrency-control.html b/books/dubbo-user-book-en/demos/concurrency-control.html
index 5e2fa22..aeae5fa 100644
--- a/books/dubbo-user-book-en/demos/concurrency-control.html
+++ b/books/dubbo-user-book-en/demos/concurrency-control.html
@@ -1481,7 +1481,7 @@ Limit the <code>sayHello</code> method of <code>com.foo.BarService</code> to no
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.28 Concurrency control","level":"1.7.28","depth":2,"next":{"title":"6.29 Connections limitation","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"previous":{"title":"6.27 Delay publish","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plu [...]
+            gitbook.page.hasChanged({"page":{"title":"6.28 Concurrency control","level":"1.7.28","depth":2,"next":{"title":"6.29 Connections limitation","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"previous":{"title":"6.27 Delay publish","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plu [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/config-connections.html b/books/dubbo-user-book-en/demos/config-connections.html
index 39bcac0..088d0db 100644
--- a/books/dubbo-user-book-en/demos/config-connections.html
+++ b/books/dubbo-user-book-en/demos/config-connections.html
@@ -1455,7 +1455,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.29 Connections limitation","level":"1.7.29","depth":2,"next":{"title":"6.30 Lazy connect","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"previous":{"title":"6.28 Concurrency control","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plug [...]
+            gitbook.page.hasChanged({"page":{"title":"6.29 Connections limitation","level":"1.7.29","depth":2,"next":{"title":"6.30 Lazy connect","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"previous":{"title":"6.28 Concurrency control","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plug [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/config-rule.html b/books/dubbo-user-book-en/demos/config-rule.html
index ada5d98..eb593f0 100644
--- a/books/dubbo-user-book-en/demos/config-rule.html
+++ b/books/dubbo-user-book-en/demos/config-rule.html
@@ -1468,7 +1468,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;override://0.0.0.0
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.34 Configuration rule","level":"1.7.34","depth":2,"next":{"title":"6.35 Service downgrade","level":"1.7.35","depth":2,"path":"demos/service-donwngrade.md","ref":"./demos/service-donwngrade.md","articles":[]},"previous":{"title":"6.33 Routing rule","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[], [...]
+            gitbook.page.hasChanged({"page":{"title":"6.34 Configuration rule","level":"1.7.34","depth":2,"next":{"title":"6.35 Service downgrade","level":"1.7.35","depth":2,"path":"demos/service-donwngrade.md","ref":"./demos/service-donwngrade.md","articles":[]},"previous":{"title":"6.33 Routing rule","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[], [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/context.html b/books/dubbo-user-book-en/demos/context.html
index 357c3ef..f2d21c0 100644
--- a/books/dubbo-user-book-en/demos/context.html
+++ b/books/dubbo-user-book-en/demos/context.html
@@ -1465,7 +1465,7 @@ yyyService.yyy();
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.19 Context","level":"1.7.19","depth":2,"next":{"title":"6.20 Attachment","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"previous":{"title":"6.18 Echo service","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"s [...]
+            gitbook.page.hasChanged({"page":{"title":"6.19 Context","level":"1.7.19","depth":2,"next":{"title":"6.20 Attachment","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"previous":{"title":"6.18 Echo service","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"s [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/delay-publish.html b/books/dubbo-user-book-en/demos/delay-publish.html
index d936209..6c39695 100644
--- a/books/dubbo-user-book-en/demos/delay-publish.html
+++ b/books/dubbo-user-book-en/demos/delay-publish.html
@@ -1416,7 +1416,7 @@
 <ol>
 <li>It is highly recommended not to call applicationContext.getBean() in the service implementation class, all using Spring&apos;s beans using IoC injection.</li>
 <li>If you really want to tune getBean(), you can put the configuration of Dubbo Spring final loading.</li>
-<li>If you do not want to rely on the configuration order, you can use <code>&lt;dubbo:provider deplay =&quot;-1&quot;/&gt;</code> to make Dubbo expose the service after the Spring container has been initialized.</li>
+<li>If you do not want to rely on the configuration order, you can use <code>&lt;dubbo:provider delay =&quot;-1&quot;/&gt;</code> to make Dubbo expose the service after the Spring container has been initialized.</li>
 <li>If you use getBean() extensively, the equivalent of degenerating Spring to factory mode is to isolate Dubbo&apos;s service from a separate Spring container.</li>
 </ol>
 <blockquote id="fn_1">
@@ -1465,7 +1465,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.27 Delay publish","level":"1.7.27","depth":2,"next":{"title":"6.28 Concurrency control","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"previous":{"title":"6.26 Local mock","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugin [...]
+            gitbook.page.hasChanged({"page":{"title":"6.27 Delay publish","level":"1.7.27","depth":2,"next":{"title":"6.28 Concurrency control","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"previous":{"title":"6.26 Local mock","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugin [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/distributed-transaction.html b/books/dubbo-user-book-en/demos/distributed-transaction.html
index ae40ba8..03ff23f 100644
--- a/books/dubbo-user-book-en/demos/distributed-transaction.html
+++ b/books/dubbo-user-book-en/demos/distributed-transaction.html
@@ -1439,7 +1439,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.42 Distributed transaction","level":"1.7.42","depth":2,"next":{"title":"6.43 Dumping thread stack automatically","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"previous":{"title":"6.41 Reference config cache","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
+            gitbook.page.hasChanged({"page":{"title":"6.42 Distributed transaction","level":"1.7.42","depth":2,"next":{"title":"6.43 Dumping thread stack automatically","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"previous":{"title":"6.41 Reference config cache","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/dump.html b/books/dubbo-user-book-en/demos/dump.html
index 4c99cfa..3213700 100644
--- a/books/dubbo-user-book-en/demos/dump.html
+++ b/books/dubbo-user-book-en/demos/dump.html
@@ -1450,7 +1450,7 @@ dubbo.application.dump.directory=/tmp
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.43 Dumping thread stack automatically","level":"1.7.43","depth":2,"next":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"path":"demos/netty4.md","ref":"./demos/netty4.md","articles":[]},"previous":{"title":"6.42 Distributed transaction","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"6.43 Dumping thread stack automatically","level":"1.7.43","depth":2,"next":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"path":"demos/netty4.md","ref":"./demos/netty4.md","articles":[]},"previous":{"title":"6.42 Distributed transaction","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/echo-service.html b/books/dubbo-user-book-en/demos/echo-service.html
index 245577f..5b9edf3 100644
--- a/books/dubbo-user-book-en/demos/echo-service.html
+++ b/books/dubbo-user-book-en/demos/echo-service.html
@@ -1452,7 +1452,7 @@ String status = echoService.$echo(<span class="hljs-string">&quot;OK&quot;</span
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.18 Echo service","level":"1.7.18","depth":2,"next":{"title":"6.19 Context","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"previous":{"title":"6.17 Generic service","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.18 Echo service","level":"1.7.18","depth":2,"next":{"title":"6.19 Context","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"previous":{"title":"6.17 Generic service","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/events-notify.html b/books/dubbo-user-book-en/demos/events-notify.html
index 9c69cf0..68bc4bc 100644
--- a/books/dubbo-user-book-en/demos/events-notify.html
+++ b/books/dubbo-user-book-en/demos/events-notify.html
@@ -1507,7 +1507,7 @@ Assert.assertEquals(requestId, notify.ret.get(requestId).getId());
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.24 Events notify","level":"1.7.24","depth":2,"next":{"title":"6.25 Local stub","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"previous":{"title":"6.23 Callback parameter","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCo [...]
+            gitbook.page.hasChanged({"page":{"title":"6.24 Events notify","level":"1.7.24","depth":2,"next":{"title":"6.25 Local stub","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"previous":{"title":"6.23 Callback parameter","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCo [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/explicit-target.html b/books/dubbo-user-book-en/demos/explicit-target.html
index 79adfee..7d6b9cf 100644
--- a/books/dubbo-user-book-en/demos/explicit-target.html
+++ b/books/dubbo-user-book-en/demos/explicit-target.html
@@ -1454,7 +1454,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.5 Connecting certain provider straightly","level":"1.7.5","depth":2,"next":{"title":"6.6 Subscribe only","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"previous":{"title":"6.4 Thread model","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.5 Connecting certain provider straightly","level":"1.7.5","depth":2,"next":{"title":"6.6 Subscribe only","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"previous":{"title":"6.4 Thread model","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/fault-tolerent-strategy.html b/books/dubbo-user-book-en/demos/fault-tolerent-strategy.html
index 3ff443a..bcd53b3 100644
--- a/books/dubbo-user-book-en/demos/fault-tolerent-strategy.html
+++ b/books/dubbo-user-book-en/demos/fault-tolerent-strategy.html
@@ -1478,7 +1478,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"next":{"title":"6.3 Load balance","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"previous":{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"next":{"title":"6.3 Load balance","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"previous":{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/generic-reference.html b/books/dubbo-user-book-en/demos/generic-reference.html
index c7b268e..530b8bc 100644
--- a/books/dubbo-user-book-en/demos/generic-reference.html
+++ b/books/dubbo-user-book-en/demos/generic-reference.html
@@ -1511,7 +1511,7 @@ map.put(<span class="hljs-string">&quot;password&quot;</span>, <span class="hljs
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.16 Generic reference","level":"1.7.16","depth":2,"next":{"title":"6.17 Generic service","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"previous":{"title":"6.15 Result cache","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsC [...]
+            gitbook.page.hasChanged({"page":{"title":"6.16 Generic reference","level":"1.7.16","depth":2,"next":{"title":"6.17 Generic service","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"previous":{"title":"6.15 Result cache","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsC [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/generic-service.html b/books/dubbo-user-book-en/demos/generic-service.html
index 89ca489..dd39c05 100644
--- a/books/dubbo-user-book-en/demos/generic-service.html
+++ b/books/dubbo-user-book-en/demos/generic-service.html
@@ -1469,7 +1469,7 @@ service.export();
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.17 Generic service","level":"1.7.17","depth":2,"next":{"title":"6.18 Echo service","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"previous":{"title":"6.16 Generic reference","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plug [...]
+            gitbook.page.hasChanged({"page":{"title":"6.17 Generic service","level":"1.7.17","depth":2,"next":{"title":"6.18 Echo service","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"previous":{"title":"6.16 Generic reference","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plug [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/graceful-shutdown.html b/books/dubbo-user-book-en/demos/graceful-shutdown.html
index 2b7744b..8918a96 100644
--- a/books/dubbo-user-book-en/demos/graceful-shutdown.html
+++ b/books/dubbo-user-book-en/demos/graceful-shutdown.html
@@ -1456,7 +1456,7 @@ dubbo.service.shutdown.wait=15000
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.36 Graceful shutdown","level":"1.7.36","depth":2,"next":{"title":"6.37 Hostname binding ","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"previous":{"title":"6.35 Service downgrade","level":"1.7.35","depth":2,"path":"demos/service-donwngrade.md","ref":"./demos/service-donwngrade.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{}," [...]
+            gitbook.page.hasChanged({"page":{"title":"6.36 Graceful shutdown","level":"1.7.36","depth":2,"next":{"title":"6.37 Hostname binding ","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"previous":{"title":"6.35 Service downgrade","level":"1.7.35","depth":2,"path":"demos/service-donwngrade.md","ref":"./demos/service-donwngrade.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{}," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/group-merger.html b/books/dubbo-user-book-en/demos/group-merger.html
index 4e17486..24e65ac 100644
--- a/books/dubbo-user-book-en/demos/group-merger.html
+++ b/books/dubbo-user-book-en/demos/group-merger.html
@@ -1471,7 +1471,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.13 Group merger","level":"1.7.13","depth":2,"next":{"title":"6.14 Parameter validation","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"previous":{"title":"6.12 Multi-versions","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugi [...]
+            gitbook.page.hasChanged({"page":{"title":"6.13 Group merger","level":"1.7.13","depth":2,"next":{"title":"6.14 Parameter validation","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"previous":{"title":"6.12 Multi-versions","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/hostname-binding.html b/books/dubbo-user-book-en/demos/hostname-binding.html
index 686b4cb..e32c05a 100644
--- a/books/dubbo-user-book-en/demos/hostname-binding.html
+++ b/books/dubbo-user-book-en/demos/hostname-binding.html
@@ -1508,7 +1508,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.37 Hostname binding ","level":"1.7.37","depth":2,"next":{"title":"6.38 Logger strategy","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"previous":{"title":"6.36 Graceful shutdown","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugin [...]
+            gitbook.page.hasChanged({"page":{"title":"6.37 Hostname binding ","level":"1.7.37","depth":2,"next":{"title":"6.38 Logger strategy","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"previous":{"title":"6.36 Graceful shutdown","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugin [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/index.html b/books/dubbo-user-book-en/demos/index.html
index fb18dc7..7850c7f 100644
--- a/books/dubbo-user-book-en/demos/index.html
+++ b/books/dubbo-user-book-en/demos/index.html
@@ -1436,7 +1436,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6 Demos","level":"1.7","depth":1,"next":{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"previous":{"title":"5.4 Annotation configuration","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCon [...]
+            gitbook.page.hasChanged({"page":{"title":"6 Demos","level":"1.7","depth":1,"next":{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"previous":{"title":"5.4 Annotation configuration","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCon [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/introduction.html b/books/dubbo-user-book-en/demos/introduction.html
new file mode 100644
index 0000000..522aceb
--- /dev/null
+++ b/books/dubbo-user-book-en/demos/introduction.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>Apache Dubbo (incubating) | Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</title>
+<meta property="og:title" content="Apache Dubbo (incubating)" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-user-book-en/demos/introduction.html","publisher":null,"image":null,"headline":"Apache Dubbo (incubating)","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      <blockquote>
+  <p><img src="../sources/images/check.gif" alt="warning" />To complete run, please see:<a href="quickstart.md">Quickstart</a>, here just lists the configuration of various scenarios
+<img src="../sources/images/check.gif" alt="warning" />The following examples are all based on Spring configuration:<a href="../configuration/xml.md">Xml configuration</a> for reference, if you do not want to use Spring, but want to be use it via the directly API, please see:<a href="../configuration/api.md">API configuration</a></p>
+</blockquote>
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>
diff --git a/books/dubbo-user-book-en/demos/lazy-connect.html b/books/dubbo-user-book-en/demos/lazy-connect.html
index 2352259..0914bc1 100644
--- a/books/dubbo-user-book-en/demos/lazy-connect.html
+++ b/books/dubbo-user-book-en/demos/lazy-connect.html
@@ -1442,7 +1442,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.30 Lazy connect","level":"1.7.30","depth":2,"next":{"title":"6.31 Stickness connections","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"previous":{"title":"6.29 Connections limitation","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.30 Lazy connect","level":"1.7.30","depth":2,"next":{"title":"6.31 Stickness connections","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"previous":{"title":"6.29 Connections limitation","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/loadbalance.html b/books/dubbo-user-book-en/demos/loadbalance.html
index 13eb590..c70034c 100644
--- a/books/dubbo-user-book-en/demos/loadbalance.html
+++ b/books/dubbo-user-book-en/demos/loadbalance.html
@@ -1480,7 +1480,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.3 Load balance","level":"1.7.3","depth":2,"next":{"title":"6.4 Thread model","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"previous":{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.3 Load balance","level":"1.7.3","depth":2,"next":{"title":"6.4 Thread model","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"previous":{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/local-call.html b/books/dubbo-user-book-en/demos/local-call.html
index 97e1687..1fa7912 100644
--- a/books/dubbo-user-book-en/demos/local-call.html
+++ b/books/dubbo-user-book-en/demos/local-call.html
@@ -1460,7 +1460,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.22 Local call","level":"1.7.22","depth":2,"next":{"title":"6.23 Callback parameter","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"previous":{"title":"6.21 Asynchronous call","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
+            gitbook.page.hasChanged({"page":{"title":"6.22 Local call","level":"1.7.22","depth":2,"next":{"title":"6.23 Callback parameter","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"previous":{"title":"6.21 Asynchronous call","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/local-mock.html b/books/dubbo-user-book-en/demos/local-mock.html
index 8e1e86a..5f9fe14 100644
--- a/books/dubbo-user-book-en/demos/local-mock.html
+++ b/books/dubbo-user-book-en/demos/local-mock.html
@@ -1469,7 +1469,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.26 Local mock","level":"1.7.26","depth":2,"next":{"title":"6.27 Delay publish","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"previous":{"title":"6.25 Local stub","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.26 Local mock","level":"1.7.26","depth":2,"next":{"title":"6.27 Delay publish","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"previous":{"title":"6.25 Local stub","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/local-stub.html b/books/dubbo-user-book-en/demos/local-stub.html
index 34d2294..8f8d774 100644
--- a/books/dubbo-user-book-en/demos/local-stub.html
+++ b/books/dubbo-user-book-en/demos/local-stub.html
@@ -1472,7 +1472,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.25 Local stub","level":"1.7.25","depth":2,"next":{"title":"6.26 Local mock","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"previous":{"title":"6.24 Events notify","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.25 Local stub","level":"1.7.25","depth":2,"next":{"title":"6.26 Local mock","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"previous":{"title":"6.24 Events notify","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/logger-strategy.html b/books/dubbo-user-book-en/demos/logger-strategy.html
index 090f06f..2ac1eea 100644
--- a/books/dubbo-user-book-en/demos/logger-strategy.html
+++ b/books/dubbo-user-book-en/demos/logger-strategy.html
@@ -1454,7 +1454,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.38 Logger strategy","level":"1.7.38","depth":2,"next":{"title":"6.39 Accesslog","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"previous":{"title":"6.37 Hostname binding ","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.38 Logger strategy","level":"1.7.38","depth":2,"next":{"title":"6.39 Accesslog","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"previous":{"title":"6.37 Hostname binding ","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/multi-protocols.html b/books/dubbo-user-book-en/demos/multi-protocols.html
index 91b8ecf..7868cbc 100644
--- a/books/dubbo-user-book-en/demos/multi-protocols.html
+++ b/books/dubbo-user-book-en/demos/multi-protocols.html
@@ -1473,7 +1473,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.9 Multi-protocols","level":"1.7.9","depth":2,"next":{"title":"6.10 Multi-registries","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"previous":{"title":"6.8 Static service","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCo [...]
+            gitbook.page.hasChanged({"page":{"title":"6.9 Multi-protocols","level":"1.7.9","depth":2,"next":{"title":"6.10 Multi-registries","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"previous":{"title":"6.8 Static service","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCo [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/multi-registry.html b/books/dubbo-user-book-en/demos/multi-registry.html
index 923c6ea..e413f59 100644
--- a/books/dubbo-user-book-en/demos/multi-registry.html
+++ b/books/dubbo-user-book-en/demos/multi-registry.html
@@ -1502,7 +1502,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.10 Multi-registries","level":"1.7.10","depth":2,"next":{"title":"6.11 Service group","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"previous":{"title":"6.9 Multi-protocols","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsC [...]
+            gitbook.page.hasChanged({"page":{"title":"6.10 Multi-registries","level":"1.7.10","depth":2,"next":{"title":"6.11 Service group","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"previous":{"title":"6.9 Multi-protocols","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsC [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/multi-versions.html b/books/dubbo-user-book-en/demos/multi-versions.html
index 62703da..a558615 100644
--- a/books/dubbo-user-book-en/demos/multi-versions.html
+++ b/books/dubbo-user-book-en/demos/multi-versions.html
@@ -1461,7 +1461,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.12 Multi-versions","level":"1.7.12","depth":2,"next":{"title":"6.13 Group merger","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"previous":{"title":"6.11 Service group","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.12 Multi-versions","level":"1.7.12","depth":2,"next":{"title":"6.13 Group merger","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"previous":{"title":"6.11 Service group","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/netty4.html b/books/dubbo-user-book-en/demos/netty4.html
index ba32230..9d367c3 100644
--- a/books/dubbo-user-book-en/demos/netty4.html
+++ b/books/dubbo-user-book-en/demos/netty4.html
@@ -1464,7 +1464,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"next":{"title":"7 API introduction","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"previous":{"title":"6.43 Dumping thread stack automatically","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
+            gitbook.page.hasChanged({"page":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"next":{"title":"7 API introduction","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"previous":{"title":"6.43 Dumping thread stack automatically","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/parameter-validation.html b/books/dubbo-user-book-en/demos/parameter-validation.html
index 7b2fb55..2f24d53 100644
--- a/books/dubbo-user-book-en/demos/parameter-validation.html
+++ b/books/dubbo-user-book-en/demos/parameter-validation.html
@@ -1594,7 +1594,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.14 Parameter validation","level":"1.7.14","depth":2,"next":{"title":"6.15 Result cache","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"previous":{"title":"6.13 Group merger","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.14 Parameter validation","level":"1.7.14","depth":2,"next":{"title":"6.15 Result cache","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"previous":{"title":"6.13 Group merger","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/preflight-check.html b/books/dubbo-user-book-en/demos/preflight-check.html
index 5a88675..fbd52b2 100644
--- a/books/dubbo-user-book-en/demos/preflight-check.html
+++ b/books/dubbo-user-book-en/demos/preflight-check.html
@@ -1467,7 +1467,7 @@ java -Ddubbo.registry.check = <span class="hljs-literal">false</span>
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.1 Start check","level":"1.7.1","depth":2,"next":{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"previous":{"title":"6 Demos","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/prefli [...]
+            gitbook.page.hasChanged({"page":{"title":"6.1 Start check","level":"1.7.1","depth":2,"next":{"title":"6.2 Fault-tolerent strategy","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"previous":{"title":"6 Demos","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 Start check","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/prefli [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/reference-config-cache.html b/books/dubbo-user-book-en/demos/reference-config-cache.html
index bf65df2..2371981 100644
--- a/books/dubbo-user-book-en/demos/reference-config-cache.html
+++ b/books/dubbo-user-book-en/demos/reference-config-cache.html
@@ -1459,7 +1459,7 @@ ReferenceConfigCache cache = ReferenceConfigCache.getCache(keyGenerator );
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.41 Reference config cache","level":"1.7.41","depth":2,"next":{"title":"6.42 Distributed transaction","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"previous":{"title":"6.40 Service container","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"de [...]
+            gitbook.page.hasChanged({"page":{"title":"6.41 Reference config cache","level":"1.7.41","depth":2,"next":{"title":"6.42 Distributed transaction","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"previous":{"title":"6.40 Service container","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"de [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/registry-only.html b/books/dubbo-user-book-en/demos/registry-only.html
index 02da337..284656e 100644
--- a/books/dubbo-user-book-en/demos/registry-only.html
+++ b/books/dubbo-user-book-en/demos/registry-only.html
@@ -1447,7 +1447,7 @@ At this time, the service provider registers service to another registrar, but t
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.7 Registry only","level":"1.7.7","depth":2,"next":{"title":"6.8 Static service","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"previous":{"title":"6.6 Subscribe only","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.7 Registry only","level":"1.7.7","depth":2,"next":{"title":"6.8 Static service","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"previous":{"title":"6.6 Subscribe only","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/result-cache.html b/books/dubbo-user-book-en/demos/result-cache.html
index 950e044..51538d0 100644
--- a/books/dubbo-user-book-en/demos/result-cache.html
+++ b/books/dubbo-user-book-en/demos/result-cache.html
@@ -1458,7 +1458,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.15 Result cache","level":"1.7.15","depth":2,"next":{"title":"6.16 Generic reference","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"previous":{"title":"6.14 Parameter validation","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.15 Result cache","level":"1.7.15","depth":2,"next":{"title":"6.16 Generic reference","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"previous":{"title":"6.14 Parameter validation","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/routing-rule.html b/books/dubbo-user-book-en/demos/routing-rule.html
index bc0e4b5..6af5c1c 100644
--- a/books/dubbo-user-book-en/demos/routing-rule.html
+++ b/books/dubbo-user-book-en/demos/routing-rule.html
@@ -1490,7 +1490,7 @@ registry.register(URL.valueOf(&quot;condition://0.0.0.0/com.foo.BarService?categ
 <sup>1</sup>. Support since <code>2.2.0</code>   <a href="#reffn_1" title="Jump back to footnote [1] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_2">
-<sup>2</sup>. Routing Rules Extension Point: <a href="http://dubbo.io/books/developer-guide-en/impls/router.html" target="_blank">Route Extension</a>   <a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
+<sup>2</sup>. Routing Rules Extension Point: <a href="http://dubbo.io/books/dubbo-dev-book-en/impls/router.html" target="_blank">Route Extension</a>   <a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_3">
 <sup>3</sup>. Note: A service can only have one whitelist rule, otherwise the two rules will be filtered out.  <a href="#reffn_3" title="Jump back to footnote [3] in the text."> &#x21A9;</a>
@@ -1541,7 +1541,7 @@ registry.register(URL.valueOf(&quot;condition://0.0.0.0/com.foo.BarService?categ
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.33 Routing rule","level":"1.7.33","depth":2,"next":{"title":"6.34 Configuration rule","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"previous":{"title":"6.32 Token authorization","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[ [...]
+            gitbook.page.hasChanged({"page":{"title":"6.33 Routing rule","level":"1.7.33","depth":2,"next":{"title":"6.34 Configuration rule","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"previous":{"title":"6.32 Token authorization","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/service-container.html b/books/dubbo-user-book-en/demos/service-container.html
index 42222e4..ba40bed 100644
--- a/books/dubbo-user-book-en/demos/service-container.html
+++ b/books/dubbo-user-book-en/demos/service-container.html
@@ -1479,7 +1479,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.40 Service container","level":"1.7.40","depth":2,"next":{"title":"6.41 Reference config cache","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"previous":{"title":"6.39 Accesslog","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.40 Service container","level":"1.7.40","depth":2,"next":{"title":"6.41 Reference config cache","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"previous":{"title":"6.39 Accesslog","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/service-donwngrade.html b/books/dubbo-user-book-en/demos/service-donwngrade.html
index 8a42542..1dc7378 100644
--- a/books/dubbo-user-book-en/demos/service-donwngrade.html
+++ b/books/dubbo-user-book-en/demos/service-donwngrade.html
@@ -1451,7 +1451,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;override://0.0.0.0
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.35 Service downgrade","level":"1.7.35","depth":2,"next":{"title":"6.36 Graceful shutdown","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"previous":{"title":"6.34 Configuration rule","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
+            gitbook.page.hasChanged({"page":{"title":"6.35 Service downgrade","level":"1.7.35","depth":2,"next":{"title":"6.36 Graceful shutdown","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"previous":{"title":"6.34 Configuration rule","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/service-group.html b/books/dubbo-user-book-en/demos/service-group.html
index f9e8dac..538313d 100644
--- a/books/dubbo-user-book-en/demos/service-group.html
+++ b/books/dubbo-user-book-en/demos/service-group.html
@@ -1451,7 +1451,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.11 Service group","level":"1.7.11","depth":2,"next":{"title":"6.12 Multi-versions","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"previous":{"title":"6.10 Multi-registries","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugins [...]
+            gitbook.page.hasChanged({"page":{"title":"6.11 Service group","level":"1.7.11","depth":2,"next":{"title":"6.12 Multi-versions","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"previous":{"title":"6.10 Multi-registries","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugins [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/static-service.html b/books/dubbo-user-book-en/demos/static-service.html
index 9a8f189..68d0b5b 100644
--- a/books/dubbo-user-book-en/demos/static-service.html
+++ b/books/dubbo-user-book-en/demos/static-service.html
@@ -1453,7 +1453,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;memcached://10.20.
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.8 Static service","level":"1.7.8","depth":2,"next":{"title":"6.9 Multi-protocols","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"previous":{"title":"6.7 Registry only","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.8 Static service","level":"1.7.8","depth":2,"next":{"title":"6.9 Multi-protocols","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"previous":{"title":"6.7 Registry only","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/stickiness.html b/books/dubbo-user-book-en/demos/stickiness.html
index ce61fc9..7ccabb7 100644
--- a/books/dubbo-user-book-en/demos/stickiness.html
+++ b/books/dubbo-user-book-en/demos/stickiness.html
@@ -1440,7 +1440,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.31 Stickness connections","level":"1.7.31","depth":2,"next":{"title":"6.32 Token authorization","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"previous":{"title":"6.30 Lazy connect","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugi [...]
+            gitbook.page.hasChanged({"page":{"title":"6.31 Stickness connections","level":"1.7.31","depth":2,"next":{"title":"6.32 Token authorization","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"previous":{"title":"6.30 Lazy connect","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/subscribe-only.html b/books/dubbo-user-book-en/demos/subscribe-only.html
index 22827b9..bf04328 100644
--- a/books/dubbo-user-book-en/demos/subscribe-only.html
+++ b/books/dubbo-user-book-en/demos/subscribe-only.html
@@ -1445,7 +1445,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.6 Subscribe only","level":"1.7.6","depth":2,"next":{"title":"6.7 Registry only","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"previous":{"title":"6.5 Connecting certain provider straightly","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plug [...]
+            gitbook.page.hasChanged({"page":{"title":"6.6 Subscribe only","level":"1.7.6","depth":2,"next":{"title":"6.7 Registry only","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"previous":{"title":"6.5 Connecting certain provider straightly","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plug [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/thread-model.html b/books/dubbo-user-book-en/demos/thread-model.html
index e21d36c..cf53bca 100644
--- a/books/dubbo-user-book-en/demos/thread-model.html
+++ b/books/dubbo-user-book-en/demos/thread-model.html
@@ -1460,7 +1460,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.4 Thread model","level":"1.7.4","depth":2,"next":{"title":"6.5 Connecting certain provider straightly","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"previous":{"title":"6.3 Load balance","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
+            gitbook.page.hasChanged({"page":{"title":"6.4 Thread model","level":"1.7.4","depth":2,"next":{"title":"6.5 Connecting certain provider straightly","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"previous":{"title":"6.3 Load balance","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/demos/token-authorization.html b/books/dubbo-user-book-en/demos/token-authorization.html
index 9016b3d..e0378e5 100644
--- a/books/dubbo-user-book-en/demos/token-authorization.html
+++ b/books/dubbo-user-book-en/demos/token-authorization.html
@@ -1462,7 +1462,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.32 Token authorization","level":"1.7.32","depth":2,"next":{"title":"6.33 Routing rule","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"previous":{"title":"6.31 Stickness connections","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCon [...]
+            gitbook.page.hasChanged({"page":{"title":"6.32 Token authorization","level":"1.7.32","depth":2,"next":{"title":"6.33 Routing rule","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"previous":{"title":"6.31 Stickness connections","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsCon [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/dependencies.html b/books/dubbo-user-book-en/dependencies.html
index ef12278..47fb906 100644
--- a/books/dubbo-user-book-en/dependencies.html
+++ b/books/dubbo-user-book-en/dependencies.html
@@ -1499,7 +1499,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"3 Dependencies","level":"1.4","depth":1,"next":{"title":"4 maturality","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"previous":{"title":"2 Quick start","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ig [...]
+            gitbook.page.hasChanged({"page":{"title":"3 Dependencies","level":"1.4","depth":1,"next":{"title":"4 maturality","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"previous":{"title":"2 Quick start","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ig [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/index.html b/books/dubbo-user-book-en/index.html
index 4f2ae9b..77568c5 100644
--- a/books/dubbo-user-book-en/index.html
+++ b/books/dubbo-user-book-en/index.html
@@ -1431,7 +1431,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 Preface","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{"title":"1.2 Requirements","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},{"title":"1.3 Arc [...]
+            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 Preface","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{"title":"1.2 Requirements","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},{"title":"1.3 Arc [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/maturity.html b/books/dubbo-user-book-en/maturity.html
index 7ffc666..e910433 100644
--- a/books/dubbo-user-book-en/maturity.html
+++ b/books/dubbo-user-book-en/maturity.html
@@ -1985,7 +1985,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"4 maturality","level":"1.5","depth":1,"next":{"title":"5 Configuration","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/prop [...]
+            gitbook.page.hasChanged({"page":{"title":"4 maturality","level":"1.5","depth":1,"next":{"title":"5 Configuration","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML configuration","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},{"title":"5.2 Properties configuration","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/prop [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/perf-test.html b/books/dubbo-user-book-en/perf-test.html
index 307ef27..9cbf55d 100644
--- a/books/dubbo-user-book-en/perf-test.html
+++ b/books/dubbo-user-book-en/perf-test.html
@@ -1767,7 +1767,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"16 Performance testing reports","level":"1.17","depth":1,"next":{"title":"17 Test coverage report","level":"1.18","depth":1,"path":"coveragence.md","ref":"./coveragence.md","articles":[]},"previous":{"title":"15 Capacity plan","level":"1.16","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"se [...]
+            gitbook.page.hasChanged({"page":{"title":"16 Performance testing reports","level":"1.17","depth":1,"next":{"title":"17 Test coverage report","level":"1.18","depth":1,"path":"coveragence.md","ref":"./coveragence.md","articles":[]},"previous":{"title":"15 Capacity plan","level":"1.16","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"se [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/preface/architecture.html b/books/dubbo-user-book-en/preface/architecture.html
index 6663ea3..f7d5e1b 100644
--- a/books/dubbo-user-book-en/preface/architecture.html
+++ b/books/dubbo-user-book-en/preface/architecture.html
@@ -1541,7 +1541,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.3 Architecture","level":"1.2.3","depth":2,"next":{"title":"1.4 Usage","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"previous":{"title":"1.2 Requirements","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"1.3 Architecture","level":"1.2.3","depth":2,"next":{"title":"1.4 Usage","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"previous":{"title":"1.2 Requirements","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/preface/background.html b/books/dubbo-user-book-en/preface/background.html
index e893f34..f90a881 100644
--- a/books/dubbo-user-book-en/preface/background.html
+++ b/books/dubbo-user-book-en/preface/background.html
@@ -1446,7 +1446,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.1 Background","level":"1.2.1","depth":2,"next":{"title":"1.2 Requirements","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"previous":{"title":"1 Preface","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{" [...]
+            gitbook.page.hasChanged({"page":{"title":"1.1 Background","level":"1.2.1","depth":2,"next":{"title":"1.2 Requirements","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"previous":{"title":"1 Preface","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/preface/index.html b/books/dubbo-user-book-en/preface/index.html
index e69e468..d16c602 100644
--- a/books/dubbo-user-book-en/preface/index.html
+++ b/books/dubbo-user-book-en/preface/index.html
@@ -1436,7 +1436,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1 Preface","level":"1.2","depth":1,"next":{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":10000 [...]
+            gitbook.page.hasChanged({"page":{"title":"1 Preface","level":"1.2","depth":1,"next":{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":10000 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/preface/requirements.html b/books/dubbo-user-book-en/preface/requirements.html
index 905989a..f428f38 100644
--- a/books/dubbo-user-book-en/preface/requirements.html
+++ b/books/dubbo-user-book-en/preface/requirements.html
@@ -1442,7 +1442,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.2 Requirements","level":"1.2.2","depth":2,"next":{"title":"1.3 Architecture","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"previous":{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight [...]
+            gitbook.page.hasChanged({"page":{"title":"1.2 Requirements","level":"1.2.2","depth":2,"next":{"title":"1.3 Architecture","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"previous":{"title":"1.1 Background","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/preface/usage.html b/books/dubbo-user-book-en/preface/usage.html
index 33fab06..9f846af 100644
--- a/books/dubbo-user-book-en/preface/usage.html
+++ b/books/dubbo-user-book-en/preface/usage.html
@@ -1463,7 +1463,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.4 Usage","level":"1.2.4","depth":2,"next":{"title":"2 Quick start","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"previous":{"title":"1.3 Architecture","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
+            gitbook.page.hasChanged({"page":{"title":"1.4 Usage","level":"1.2.4","depth":2,"next":{"title":"2 Quick start","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"previous":{"title":"1.3 Architecture","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/quick-start.html b/books/dubbo-user-book-en/quick-start.html
index 5abc546..15a215e 100644
--- a/books/dubbo-user-book-en/quick-start.html
+++ b/books/dubbo-user-book-en/quick-start.html
@@ -1394,7 +1394,7 @@
                                 
                                 <h1 id="quick-start">Quick start</h1>
 <p>Dubbo uses a full Spring configuration, transparent access application,No API intrusion to your application,Just load the Dubbo configuration with Spring,Dubbo is loaded on the spring based schema extension.</p>
-<p>If you don&apos;t want to use the Spring configuration, you can call it by <a href="../configuration/api.md">the way of API</a>.</p>
+<p>If you don&apos;t want to use the Spring configuration, you can call it by <a href="configuration/api.html">the way of API</a>.</p>
 <h2 id="service-provider">Service provider</h2>
 <p>Complete installation steps, see&#xFF1A;<a href="http://dubbo.io/books/dubbo-admin-book-en/install/provider-demo.html" target="_blank">Provider demo installation</a></p>
 <h3 id="defining-service-interfaces">Defining service interfaces</h3>
@@ -1541,7 +1541,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"2 Quick start","level":"1.3","depth":1,"next":{"title":"3 Dependencies","level":"1.4","depth":1,"path":"dependencies.md","ref":"./dependencies.md","articles":[]},"previous":{"title":"1.4 Usage","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
+            gitbook.page.hasChanged({"page":{"title":"2 Quick start","level":"1.3","depth":1,"next":{"title":"3 Dependencies","level":"1.4","depth":1,"path":"dependencies.md","ref":"./dependencies.md","articles":[]},"previous":{"title":"1.4 Usage","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/recommend.html b/books/dubbo-user-book-en/recommend.html
index 7182f90..52aa57a 100644
--- a/books/dubbo-user-book-en/recommend.html
+++ b/books/dubbo-user-book-en/recommend.html
@@ -1508,7 +1508,7 @@ Configurated in  <code>dubbo:method</code>(method level configuration) , then th
 </li>
 </ol>
 <blockquote id="fn_1">
-<sup>1</sup>. Overlay rules for configuration: 1) The method level configuration has a higher priority than the interface level, that is to say,small scope have a high priority 2) Consumer side configuration has a higher priority than provider side, better than global configuration, the last one is the Dubbo hard coded configuration value&#xFF08;<a href="configuration.md">Dubbo configuration introduction</a>&#xFF09;<a href="#reffn_1" title="Jump back to footnote [1] in the text."> &#x21A9;</a>
+<sup>1</sup>. Overlay rules for configuration: 1) The method level configuration has a higher priority than the interface level, that is to say,small scope have a high priority 2) Consumer side configuration has a higher priority than provider side, better than global configuration, the last one is the Dubbo hard coded configuration value&#xFF08;<a href="configuration/properties.html">Dubbo configuration introduction</a>&#xFF09;<a href="#reffn_1" title="Jump back to footnote [1] in the t [...]
 </blockquote>
 <blockquote id="fn_2">
 <sup>2</sup>. With the first call, the call will be called 3 times<a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
@@ -1565,7 +1565,7 @@ Configurated in  <code>dubbo:method</code>(method level configuration) , then th
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"14 Recommended usage","level":"1.15","depth":1,"next":{"title":"15 Capacity plan","level":"1.16","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"previous":{"title":"13 Servitization best practice","level":"1.14","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"s [...]
+            gitbook.page.hasChanged({"page":{"title":"14 Recommended usage","level":"1.15","depth":1,"next":{"title":"15 Capacity plan","level":"1.16","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"previous":{"title":"13 Servitization best practice","level":"1.14","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"s [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/api.html b/books/dubbo-user-book-en/references/api.html
index 70cb9d5..88b334c 100644
--- a/books/dubbo-user-book-en/references/api.html
+++ b/books/dubbo-user-book-en/references/api.html
@@ -1470,7 +1470,7 @@ com.alibaba.dubbo.rpc.service.GenericException
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"7 API introduction","level":"1.8","depth":1,"next":{"title":"8 Schema configuration introduction","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"refer [...]
+            gitbook.page.hasChanged({"page":{"title":"7 API introduction","level":"1.8","depth":1,"next":{"title":"8 Schema configuration introduction","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"refer [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/maven.html b/books/dubbo-user-book-en/references/maven.html
index 1c139a2..09a447c 100644
--- a/books/dubbo-user-book-en/references/maven.html
+++ b/books/dubbo-user-book-en/references/maven.html
@@ -1447,7 +1447,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"12 maven plugins","level":"1.13","depth":1,"next":{"title":"13 Servitization best practice","level":"1.14","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"previous":{"title":"11 Telnet command","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
+            gitbook.page.hasChanged({"page":{"title":"12 maven plugins","level":"1.13","depth":1,"next":{"title":"13 Servitization best practice","level":"1.14","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"previous":{"title":"11 Telnet command","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/dubbo.html b/books/dubbo-user-book-en/references/protocol/dubbo.html
index a4af420..a447aef 100644
--- a/books/dubbo-user-book-en/references/protocol/dubbo.html
+++ b/books/dubbo-user-book-en/references/protocol/dubbo.html
@@ -1532,7 +1532,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"next":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"previous":{"title":"9 Protocol introduction","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/d [...]
+            gitbook.page.hasChanged({"page":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"next":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"previous":{"title":"9 Protocol introduction","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/d [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/hessian.html b/books/dubbo-user-book-en/references/protocol/hessian.html
index a6f5a68..d693724 100644
--- a/books/dubbo-user-book-en/references/protocol/hessian.html
+++ b/books/dubbo-user-book-en/references/protocol/hessian.html
@@ -1481,7 +1481,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"next":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"previous":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"next":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"previous":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/http.html b/books/dubbo-user-book-en/references/protocol/http.html
index aae51b8..5de8a49 100644
--- a/books/dubbo-user-book-en/references/protocol/http.html
+++ b/books/dubbo-user-book-en/references/protocol/http.html
@@ -1477,7 +1477,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.4 http://","level":"1.10.4","depth":2,"next":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"previous":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"pl [...]
+            gitbook.page.hasChanged({"page":{"title":"9.4 http://","level":"1.10.4","depth":2,"next":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"previous":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"pl [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/introduction.html b/books/dubbo-user-book-en/references/protocol/introduction.html
index 70d654c..134d1aa 100644
--- a/books/dubbo-user-book-en/references/protocol/introduction.html
+++ b/books/dubbo-user-book-en/references/protocol/introduction.html
@@ -1437,7 +1437,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9 Protocol introduction","level":"1.10","depth":1,"next":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"previous":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables" [...]
+            gitbook.page.hasChanged({"page":{"title":"9 Protocol introduction","level":"1.10","depth":1,"next":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"previous":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/memcached.html b/books/dubbo-user-book-en/references/protocol/memcached.html
index 23efd1c..9e61761 100644
--- a/books/dubbo-user-book-en/references/protocol/memcached.html
+++ b/books/dubbo-user-book-en/references/protocol/memcached.html
@@ -1456,7 +1456,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;memcached://10.20.
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"next":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"previous":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pl [...]
+            gitbook.page.hasChanged({"page":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"next":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"previous":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pl [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/redis.html b/books/dubbo-user-book-en/references/protocol/redis.html
index bc914e7..dd9e05c 100644
--- a/books/dubbo-user-book-en/references/protocol/redis.html
+++ b/books/dubbo-user-book-en/references/protocol/redis.html
@@ -1456,7 +1456,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;redis://10.20.153.
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.8 redis://","level":"1.10.8","depth":2,"next":{"title":"10 registry introduction","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"p [...]
+            gitbook.page.hasChanged({"page":{"title":"9.8 redis://","level":"1.10.8","depth":2,"next":{"title":"10 registry introduction","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"p [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/rmi.html b/books/dubbo-user-book-en/references/protocol/rmi.html
index 992fc84..4697c88 100644
--- a/books/dubbo-user-book-en/references/protocol/rmi.html
+++ b/books/dubbo-user-book-en/references/protocol/rmi.html
@@ -1489,7 +1489,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"next":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"previous":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugin [...]
+            gitbook.page.hasChanged({"page":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"next":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"previous":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugin [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/thrift.html b/books/dubbo-user-book-en/references/protocol/thrift.html
index 8aa59b2..37cd7eb 100644
--- a/books/dubbo-user-book-en/references/protocol/thrift.html
+++ b/books/dubbo-user-book-en/references/protocol/thrift.html
@@ -1454,7 +1454,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"next":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"path":"references/protocol/memcached.md","ref":"./references/protocol/memcached.md","articles":[]},"previous":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
+            gitbook.page.hasChanged({"page":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"next":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"path":"references/protocol/memcached.md","ref":"./references/protocol/memcached.md","articles":[]},"previous":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/protocol/webservice.html b/books/dubbo-user-book-en/references/protocol/webservice.html
index 2c21249..9d95b76 100644
--- a/books/dubbo-user-book-en/references/protocol/webservice.html
+++ b/books/dubbo-user-book-en/references/protocol/webservice.html
@@ -1509,7 +1509,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"next":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"previous":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plug [...]
+            gitbook.page.hasChanged({"page":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"next":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"previous":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plug [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/registry/introduction.html b/books/dubbo-user-book-en/references/registry/introduction.html
index 7b9dae2..caf4d2f 100644
--- a/books/dubbo-user-book-en/references/registry/introduction.html
+++ b/books/dubbo-user-book-en/references/registry/introduction.html
@@ -1437,7 +1437,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10 registry introduction","level":"1.11","depth":1,"next":{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"previous":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variable [...]
+            gitbook.page.hasChanged({"page":{"title":"10 registry introduction","level":"1.11","depth":1,"next":{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"previous":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variable [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/registry/multicast.html b/books/dubbo-user-book-en/references/registry/multicast.html
index 2dd3c4a..d363f76 100644
--- a/books/dubbo-user-book-en/references/registry/multicast.html
+++ b/books/dubbo-user-book-en/references/registry/multicast.html
@@ -1459,7 +1459,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"next":{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"previous":{"title":"10 registry introduction","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast registry","level" [...]
+            gitbook.page.hasChanged({"page":{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"next":{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"previous":{"title":"10 registry introduction","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast registry","level" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/registry/redis.html b/books/dubbo-user-book-en/references/registry/redis.html
index d846fee..73bcb76 100644
--- a/books/dubbo-user-book-en/references/registry/redis.html
+++ b/books/dubbo-user-book-en/references/registry/redis.html
@@ -1495,7 +1495,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.3 Redis registry","level":"1.11.3","depth":2,"next":{"title":"10.4 Simple registry","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"previous":{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","v [...]
+            gitbook.page.hasChanged({"page":{"title":"10.3 Redis registry","level":"1.11.3","depth":2,"next":{"title":"10.4 Simple registry","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"previous":{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","v [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/registry/simple.html b/books/dubbo-user-book-en/references/registry/simple.html
index 3af062d..8f7d637 100644
--- a/books/dubbo-user-book-en/references/registry/simple.html
+++ b/books/dubbo-user-book-en/references/registry/simple.html
@@ -1468,7 +1468,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.4 Simple registry","level":"1.11.4","depth":2,"next":{"title":"11 Telnet command","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"previous":{"title":"10.3 Redis registry","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugins [...]
+            gitbook.page.hasChanged({"page":{"title":"10.4 Simple registry","level":"1.11.4","depth":2,"next":{"title":"11 Telnet command","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"previous":{"title":"10.3 Redis registry","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugins [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/registry/zookeeper.html b/books/dubbo-user-book-en/references/registry/zookeeper.html
index a0b7c67..4677afa 100644
--- a/books/dubbo-user-book-en/references/registry/zookeeper.html
+++ b/books/dubbo-user-book-en/references/registry/zookeeper.html
@@ -1528,7 +1528,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"next":{"title":"10.3 Redis registry","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"previous":{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default"," [...]
+            gitbook.page.hasChanged({"page":{"title":"10.2 Zookeeper registry","level":"1.11.2","depth":2,"next":{"title":"10.3 Redis registry","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"previous":{"title":"10.1 Multicast registry","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default"," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/telnet.html b/books/dubbo-user-book-en/references/telnet.html
index 3f7aa74..d0c31d3 100644
--- a/books/dubbo-user-book-en/references/telnet.html
+++ b/books/dubbo-user-book-en/references/telnet.html
@@ -1400,7 +1400,7 @@
 <p>Or:</p>
 <pre><code class="lang-sh"><span class="hljs-built_in">echo</span> status | nc -i 1 localhost 20880
 </code></pre>
-<p>It is possible to extend command <code>status</code> to check more resources, pls. refer to <a href="http://dubbo.io/developer-guide/SPI%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%8A%B6%E6%80%81%E6%A3%80%E6%9F%A5%E6%89%A9%E5%B1%95.html" target="_blank">extension references</a> for more details.</p>
+<p>It is possible to extend command <code>status</code> to check more resources, pls. refer to <a href="http://dubbo.io/books/dubbo-dev-book-en/impls/status-checker.html" target="_blank">extension references</a> for more details.</p>
 <h2 id="supported-commands">Supported Commands</h2>
 <p>The built-in telnet commands are listed below. Furthermore, it is possible to extend telnet commands, pls. refer to 
 <a href="http://dubbo.io/books/dubbo-dev-book/impls/telnet-handler.html" target="_blank">extend telnet command</a> for more details.</p>
@@ -1513,7 +1513,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"11 Telnet command","level":"1.12","depth":1,"next":{"title":"12 maven plugins","level":"1.13","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"previous":{"title":"10.4 Simple registry","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfi [...]
+            gitbook.page.hasChanged({"page":{"title":"11 Telnet command","level":"1.12","depth":1,"next":{"title":"12 maven plugins","level":"1.13","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"previous":{"title":"10.4 Simple registry","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-application.html b/books/dubbo-user-book-en/references/xml/dubbo-application.html
index 6fe020b..3c5369c 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-application.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-application.html
@@ -1577,7 +1577,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"next":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"previous":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"next":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"previous":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-argument.html b/books/dubbo-user-book-en/references/xml/dubbo-argument.html
index c3e036e..43aa0f7 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-argument.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-argument.html
@@ -1531,7 +1531,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"next":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"previous":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
+            gitbook.page.hasChanged({"page":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"next":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"previous":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-consumer.html b/books/dubbo-user-book-en/references/xml/dubbo-consumer.html
index e2d62f0..a463c38 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-consumer.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-consumer.html
@@ -1677,7 +1677,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"next":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"previous":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables" [...]
+            gitbook.page.hasChanged({"page":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"next":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"previous":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-method.html b/books/dubbo-user-book-en/references/xml/dubbo-method.html
index 6d193c5..0d20bf2 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-method.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-method.html
@@ -1662,7 +1662,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"next":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"path":"references/xml/dubbo-argument.md","ref":"./references/xml/dubbo-argument.md","articles":[]},"previous":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","vari [...]
+            gitbook.page.hasChanged({"page":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"next":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"path":"references/xml/dubbo-argument.md","ref":"./references/xml/dubbo-argument.md","articles":[]},"previous":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","vari [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-module.html b/books/dubbo-user-book-en/references/xml/dubbo-module.html
index 06aca8a..8c07121 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-module.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-module.html
@@ -1537,7 +1537,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"next":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"previous":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default", [...]
+            gitbook.page.hasChanged({"page":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"next":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"previous":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default", [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-monitor.html b/books/dubbo-user-book-en/references/xml/dubbo-monitor.html
index 334a3f1..da982c1 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-monitor.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-monitor.html
@@ -1517,7 +1517,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"next":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"previous":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default" [...]
+            gitbook.page.hasChanged({"page":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"next":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"previous":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-parameter.html b/books/dubbo-user-book-en/references/xml/dubbo-parameter.html
index 010be01..acaa5b8 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-parameter.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-parameter.html
@@ -1525,7 +1525,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"next":{"title":"9 Protocol introduction","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/ [...]
+            gitbook.page.hasChanged({"page":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"next":{"title":"9 Protocol introduction","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-protocol.html b/books/dubbo-user-book-en/references/xml/dubbo-protocol.html
index 657c4a3..17cb47b 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-protocol.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-protocol.html
@@ -1737,7 +1737,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"next":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"previous":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
+            gitbook.page.hasChanged({"page":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"next":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"previous":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-provider.html b/books/dubbo-user-book-en/references/xml/dubbo-provider.html
index 567c0b3..4fed472 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-provider.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-provider.html
@@ -1937,7 +1937,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"next":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"previous":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"next":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"previous":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-reference.html b/books/dubbo-user-book-en/references/xml/dubbo-reference.html
index 61b5016..0e52f92 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-reference.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-reference.html
@@ -1767,7 +1767,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"next":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"previous":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variable [...]
+            gitbook.page.hasChanged({"page":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"next":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"previous":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variable [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-registry.html b/books/dubbo-user-book-en/references/xml/dubbo-registry.html
index 5ba69d1..d501766 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-registry.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-registry.html
@@ -1637,7 +1637,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"next":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"previous":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
+            gitbook.page.hasChanged({"page":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"next":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"previous":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/dubbo-service.html b/books/dubbo-user-book-en/references/xml/dubbo-service.html
index 9003b6d..0b945c9 100644
--- a/books/dubbo-user-book-en/references/xml/dubbo-service.html
+++ b/books/dubbo-user-book-en/references/xml/dubbo-service.html
@@ -1797,7 +1797,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"next":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"previous":{"title":"8 Schema configuration introduction","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth" [...]
+            gitbook.page.hasChanged({"page":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"next":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"previous":{"title":"8 Schema configuration introduction","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/references/xml/introduction.html b/books/dubbo-user-book-en/references/xml/introduction.html
index dc0590c..d256c49 100644
--- a/books/dubbo-user-book-en/references/xml/introduction.html
+++ b/books/dubbo-user-book-en/references/xml/introduction.html
@@ -1453,7 +1453,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8 Schema configuration introduction","level":"1.9","depth":1,"next":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"previous":{"title":"7 API introduction","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
+            gitbook.page.hasChanged({"page":{"title":"8 Schema configuration introduction","level":"1.9","depth":1,"next":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"previous":{"title":"7 API introduction","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book-en/simple-monitor.html b/books/dubbo-user-book-en/simple-monitor.html
new file mode 100644
index 0000000..047371b
--- /dev/null
+++ b/books/dubbo-user-book-en/simple-monitor.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>Apache Dubbo (incubating) | Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</title>
+<meta property="og:title" content="Apache Dubbo (incubating)" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-user-book-en/simple-monitor.html","publisher":null,"image":null,"headline":"Apache Dubbo (incubating)","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      <blockquote>
+  <p><img src="sources/images/check.gif" alt="warning" />Monitor service is a standard Dubbo service,can be exported to the registry,also can be connected straightly。</p>
+</blockquote>
+
+<blockquote>
+  <p><img src="sources/images/check.gif" alt="warning" /><a href="admin-guide-install-manual#Install the simple registry">Install the simple registry</a></p>
+</blockquote>
+
+<ol>
+  <li>
+    <p>export a simple monitor service to the registry: (If you use the installer, you don’t need to write this configuration yourself. if you implement the monitor service yourself,need it)</p>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>   <span class="nt">&lt;beans</span> <span class="na">xmlns=</span><span class="s">"http://www.springframework.org/schema/beans"</span>
+   <span class="na">xmlns:xsi=</span><span class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>
+   <span class="na">xmlns:dubbo=</span><span class="s">"http://code.alibabatech.com/schema/dubbo"</span>
+   <span class="na">xsi:schemaLocation=</span><span class="s">"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"</span><span class="nt">&gt;</span>
+       
+   <span class="c">&lt;!-- configuration of current application --&gt;</span>
+   <span class="nt">&lt;dubbo:application</span> <span class="na">name=</span><span class="s">"simple-monitor"</span> <span class="nt">/&gt;</span>
+       
+   <span class="c">&lt;!-- connection address of the registry --&gt;</span>
+   <span class="nt">&lt;dubbo:registry</span> <span class="na">address=</span><span class="s">"127.0.0.1:9090"</span> <span class="nt">/&gt;</span>
+       
+   <span class="c">&lt;!-- protool configuration of exposed services --&gt;</span>
+   <span class="nt">&lt;dubbo:protocol</span> <span class="na">port=</span><span class="s">"7070"</span> <span class="nt">/&gt;</span>
+       
+   <span class="c">&lt;!-- configuration of certain exposed service --&gt;</span>
+   <span class="nt">&lt;dubbo:service</span> <span class="na">interface=</span><span class="s">"com.alibaba.dubbo.monitor.MonitorService"</span> <span class="na">ref=</span><span class="s">"monitorService"</span> <span class="nt">/&gt;</span>
+       
+   <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"monitorService"</span> <span class="na">class=</span><span class="s">"com.alibaba.dubbo.monitor.simple.SimpleMonitorService"</span> <span class="nt">/&gt;</span>
+   <span class="nt">&lt;/beans&gt;</span>
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>Discovery the monitor service int the registry:</p>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;dubbo:monitor</span> <span class="na">protocol=</span><span class="s">"registry"</span> <span class="nt">/&gt;</span>
+</code></pre></div>    </div>
+
+    <p>or</p>
+
+    <blockquote>
+      <p>dubbo.properties</p>
+    </blockquote>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> dubbo.monitor.protocol=registry
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>Export a simple monitor service ,but don’t register it to th registry: (If you use the installer, you don’t need to write this configuration yourself. if you implement the monitor service yourself,need it)</p>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;beans</span> <span class="na">xmlns=</span><span class="s">"http://www.springframework.org/schema/beans"</span>
+ <span class="na">xmlns:xsi=</span><span class="s">"http://www.w3.org/2001/XMLSchema-instance"</span>
+ <span class="na">xmlns:dubbo=</span><span class="s">"http://code.alibabatech.com/schema/dubbo"</span>
+ <span class="na">xsi:schemaLocation=</span><span class="s">"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"</span><span class="nt">&gt;</span>
+     
+ <span class="c">&lt;!-- configuration of current application --&gt;</span>
+ <span class="nt">&lt;dubbo:application</span> <span class="na">name=</span><span class="s">"simple-monitor"</span> <span class="nt">/&gt;</span>
+     
+ <span class="c">&lt;!-- protool configuration of exposed service --&gt;</span>
+ <span class="nt">&lt;dubbo:protocol</span> <span class="na">port=</span><span class="s">"7070"</span> <span class="nt">/&gt;</span>
+     
+ <span class="c">&lt;!-- configuration of exposed service --&gt;</span>
+ <span class="nt">&lt;dubbo:service</span> <span class="na">interface=</span><span class="s">"com.alibaba.dubbo.monitor.MonitorService"</span> <span class="na">ref=</span><span class="s">"monitorService"</span> <span class="na">registry=</span><span class="s">"N/A"</span> <span class="nt">/&gt;</span>
+     
+ <span class="nt">&lt;bean</span> <span class="na">id=</span><span class="s">"monitorService"</span> <span class="na">class=</span><span class="s">"com.alibaba.dubbo.monitor.simple.SimpleMonitorService"</span> <span class="nt">/&gt;</span>   
+ <span class="nt">&lt;/beans&gt;</span>
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>connected to the monitor service straightly</p>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;dubbo:monitor</span> <span class="na">address=</span><span class="s">"dubbo://127.0.0.1:7070/com.alibaba.dubbo.monitor.MonitorService"</span> <span class="nt">/&gt;</span>
+</code></pre></div>    </div>
+
+    <p>or:</p>
+
+    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code> &lt;dubbo:monitor <span class="nv">address</span><span class="o">=</span><span class="s2">"127.0.0.1:7070"</span> /&gt;
+</code></pre></div>    </div>
+
+    <p>or:</p>
+
+    <p><strong>dubbo.properties</strong></p>
+
+    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code> dubbo.monitor.address<span class="o">=</span>127.0.0.1:7070
+</code></pre></div>    </div>
+  </li>
+</ol>
+
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>
diff --git a/books/dubbo-user-book/benchmark-tool.html b/books/dubbo-user-book/benchmark-tool.html
new file mode 100644
index 0000000..2007909
--- /dev/null
+++ b/books/dubbo-user-book/benchmark-tool.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>基准测试工具包 | Apache Dubbo (incubating)</title>
+<meta property="og:title" content="基准测试工具包" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-user-book/benchmark-tool.html","publisher":null,"image":null,"headline":"基准测试工具包","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      <h1 id="基准测试工具包">基准测试工具包</h1>
+
+<p>下载 <a href="http://code.alibabatech.com/wiki/download/attachments/7669075/dubbo.benchmark-2.0.14.tar.gz">benchmark压缩包</a>,并解压</p>
+
+<p>阅读ReadMe.txt(内容如下,请以压缩包内的为准)</p>
+
+<ul>
+  <li>新建一个benchmark工程,如demo.benchmark</li>
+  <li>导入自己服务的接口api包和dubbo.benchmark.jar(解压dubbo.benchmark.tar.gz,在lib目录下)</li>
+  <li>
+    <p>新建一个类,实现AbstractClientRunnable</p>
+
+    <ul>
+      <li>实现父类的构造函数</li>
+      <li>实现invoke方法,通过serviceFactory创建本地接口代理,并实现自己的业务逻辑,如下</li>
+    </ul>
+
+    <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code>      <span class="kd">public</span> <span class="n">Object</span> <span class="nf">invoke</span><span class="o">(</span><span class="n">ServiceFactory</span> <span class="n">serviceFactory</span><span class="o">)</span> <span class="o">{</span>
+          <span class="n">DemoService</span> <span class="n">demoService</span> <span class="o">=</span> <span class="o">(</span><span class="n">DemoService</span><span class="o">)</span> <span class="n">serviceFactory</span><span class="o">.</span><span class="na">get</span><span class="o">(</span><span class="n">DemoService</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+          <span class="k">return</span> <span class="n">demoService</span><span class="o">.</span><span class="na">sendRequest</span><span class="o">(</span><span class="s">"hello"</span><span class="o">);</span>
+      <span class="o">}</span>
+</code></pre></div>    </div>
+  </li>
+  <li>将自己的benchmark工程打成jar包,如demo.benchmark.jar</li>
+  <li>将demo.benchmark.jar 和服务的api包放到dubbo.benchmark/lib目录下</li>
+  <li>配置duubo.properties</li>
+  <li>运行run.bat(windows)或run.sh(linux)</li>
+</ul>
+
+<p>如想测试dubbo的不同版本,直接替换lib下的dubbo的jar包即可。</p>
+
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>
diff --git a/books/dubbo-user-book/best-practice.html b/books/dubbo-user-book/best-practice.html
index 5cf1a1d..611192e 100644
--- a/books/dubbo-user-book/best-practice.html
+++ b/books/dubbo-user-book/best-practice.html
@@ -1480,7 +1480,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"14 服务化最佳实践","level":"1.15","depth":1,"next":{"title":"15 推荐用法","level":"1.16","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"previous":{"title":"13 maven 插件参考手册","level":"1.14","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":100 [...]
+            gitbook.page.hasChanged({"page":{"title":"14 服务化最佳实践","level":"1.15","depth":1,"next":{"title":"15 推荐用法","level":"1.16","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"previous":{"title":"13 maven 插件参考手册","level":"1.14","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":100 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/capacity-plan.html b/books/dubbo-user-book/capacity-plan.html
index 1f24ac5..54a3981 100644
--- a/books/dubbo-user-book/capacity-plan.html
+++ b/books/dubbo-user-book/capacity-plan.html
@@ -1464,7 +1464,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"16 容量规划","level":"1.17","depth":1,"next":{"title":"17 性能测试报告","level":"1.18","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"previous":{"title":"15 推荐用法","level":"1.16","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialChar [...]
+            gitbook.page.hasChanged({"page":{"title":"16 容量规划","level":"1.17","depth":1,"next":{"title":"17 性能测试报告","level":"1.18","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"previous":{"title":"15 推荐用法","level":"1.16","depth":1,"path":"recommend.md","ref":"./recommend.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialChar [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/configuration/annotation.html b/books/dubbo-user-book/configuration/annotation.html
index f014bb6..3387259 100644
--- a/books/dubbo-user-book/configuration/annotation.html
+++ b/books/dubbo-user-book/configuration/annotation.html
@@ -1534,7 +1534,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.4 注解配置","level":"1.6.4","depth":2,"next":{"title":"6 示例","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},{"title":"6.2 集群容错","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},{"title":"6.3 负载均 [...]
+            gitbook.page.hasChanged({"page":{"title":"5.4 注解配置","level":"1.6.4","depth":2,"next":{"title":"6 示例","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},{"title":"6.2 集群容错","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},{"title":"6.3 负载均 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/configuration/api.html b/books/dubbo-user-book/configuration/api.html
index c385d04..6c10642 100644
--- a/books/dubbo-user-book/configuration/api.html
+++ b/books/dubbo-user-book/configuration/api.html
@@ -1555,7 +1555,7 @@ reference.setUrl(<span class="hljs-string">&quot;dubbo://10.20.130.230:20880/com
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.3 API 配置","level":"1.6.3","depth":2,"next":{"title":"5.4 注解配置","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"previous":{"title":"5.2 属性配置","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight [...]
+            gitbook.page.hasChanged({"page":{"title":"5.3 API 配置","level":"1.6.3","depth":2,"next":{"title":"5.4 注解配置","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"previous":{"title":"5.2 属性配置","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/configuration/index.html b/books/dubbo-user-book/configuration/index.html
index 8d89dc2..c0bc037 100644
--- a/books/dubbo-user-book/configuration/index.html
+++ b/books/dubbo-user-book/configuration/index.html
@@ -1449,7 +1449,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5 配置","level":"1.6","depth":1,"next":{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"previous":{"title":"4 成熟度","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSp [...]
+            gitbook.page.hasChanged({"page":{"title":"5 配置","level":"1.6","depth":1,"next":{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"previous":{"title":"4 成熟度","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSp [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/configuration/properties.html b/books/dubbo-user-book/configuration/properties.html
index 147403f..65661f4 100644
--- a/books/dubbo-user-book/configuration/properties.html
+++ b/books/dubbo-user-book/configuration/properties.html
@@ -1478,7 +1478,7 @@ dubbo.registry.address=10.20.153.10:9090
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.2 属性配置","level":"1.6.2","depth":2,"next":{"title":"5.3 API 配置","level":"1.6.3","depth":2,"path":"configuration/api.md","ref":"./configuration/api.md","articles":[]},"previous":{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"5.2 属性配置","level":"1.6.2","depth":2,"next":{"title":"5.3 API 配置","level":"1.6.3","depth":2,"path":"configuration/api.md","ref":"./configuration/api.md","articles":[]},"previous":{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/configuration/xml.html b/books/dubbo-user-book/configuration/xml.html
index 0895a13..44543ad 100644
--- a/books/dubbo-user-book/configuration/xml.html
+++ b/books/dubbo-user-book/configuration/xml.html
@@ -1561,7 +1561,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"next":{"title":"5.2 属性配置","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"previous":{"title":"5 配置","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},{"tit [...]
+            gitbook.page.hasChanged({"page":{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"next":{"title":"5.2 属性配置","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},"previous":{"title":"5 配置","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},{"tit [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/coveragence.html b/books/dubbo-user-book/coveragence.html
index 5f20280..c35ed6e 100644
--- a/books/dubbo-user-book/coveragence.html
+++ b/books/dubbo-user-book/coveragence.html
@@ -1449,7 +1449,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"18 测试覆盖率报告","level":"1.19","depth":1,"previous":{"title":"17 性能测试报告","level":"1.18","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk [...]
+            gitbook.page.hasChanged({"page":{"title":"18 测试覆盖率报告","level":"1.19","depth":1,"previous":{"title":"17 性能测试报告","level":"1.18","depth":1,"path":"perf-test.md","ref":"./perf-test.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/accesslog.html b/books/dubbo-user-book/demos/accesslog.html
index 39a587b..5e3e087 100644
--- a/books/dubbo-user-book/demos/accesslog.html
+++ b/books/dubbo-user-book/demos/accesslog.html
@@ -1456,7 +1456,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.39 访问日志","level":"1.7.39","depth":2,"next":{"title":"6.40 服务容器","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"previous":{"title":"6.38 日志适配","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"6.39 访问日志","level":"1.7.39","depth":2,"next":{"title":"6.40 服务容器","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"previous":{"title":"6.38 日志适配","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/async-call.html b/books/dubbo-user-book/demos/async-call.html
index be25eb1..c7caa41 100644
--- a/books/dubbo-user-book/demos/async-call.html
+++ b/books/dubbo-user-book/demos/async-call.html
@@ -1495,7 +1495,7 @@ Bar bar = barFuture.get();
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.21 异步调用","level":"1.7.21","depth":2,"next":{"title":"6.22 本地调用","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"previous":{"title":"6.20 隐式参数","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
+            gitbook.page.hasChanged({"page":{"title":"6.21 异步调用","level":"1.7.21","depth":2,"next":{"title":"6.22 本地调用","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"previous":{"title":"6.20 隐式参数","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/attachment.html b/books/dubbo-user-book/demos/attachment.html
index 2b7e8b4..fd32b9b 100644
--- a/books/dubbo-user-book/demos/attachment.html
+++ b/books/dubbo-user-book/demos/attachment.html
@@ -1469,7 +1469,7 @@ xxxService.xxx(); // &#x8FDC;&#x7A0B;&#x8C03;&#x7528;
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.20 隐式参数","level":"1.7.20","depth":2,"next":{"title":"6.21 异步调用","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"previous":{"title":"6.19 上下文信息","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
+            gitbook.page.hasChanged({"page":{"title":"6.20 隐式参数","level":"1.7.20","depth":2,"next":{"title":"6.21 异步调用","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"previous":{"title":"6.19 上下文信息","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/callback-parameter.html b/books/dubbo-user-book/demos/callback-parameter.html
index 48aa6b0..828b3eb 100644
--- a/books/dubbo-user-book/demos/callback-parameter.html
+++ b/books/dubbo-user-book/demos/callback-parameter.html
@@ -1541,7 +1541,7 @@ callbackService.addListener(<span class="hljs-string">&quot;http://10.20.160.198
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.23 参数回调","level":"1.7.23","depth":2,"next":{"title":"6.24 事件通知","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"previous":{"title":"6.22 本地调用","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
+            gitbook.page.hasChanged({"page":{"title":"6.23 参数回调","level":"1.7.23","depth":2,"next":{"title":"6.24 事件通知","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"previous":{"title":"6.22 本地调用","level":"1.7.22","depth":2,"path":"demos/local-call.md","ref":"./demos/local-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/concurrency-control.html b/books/dubbo-user-book/demos/concurrency-control.html
index d0a4a49..72dfb97 100644
--- a/books/dubbo-user-book/demos/concurrency-control.html
+++ b/books/dubbo-user-book/demos/concurrency-control.html
@@ -1435,7 +1435,7 @@
     <span class="hljs-tag">&lt;<span class="hljs-name">dubbo:method</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;sayHello&quot;</span> <span class="hljs-attr">actives</span>=<span class="hljs-string">&quot;10&quot;</span> /&gt;</span>
 <span class="hljs-tag">&lt;/<span class="hljs-name">dubbo:service</span>&gt;</span>
 </code></pre>
-<p>&#x5982;&#x679C; <code>&lt;dubbo:service&gt;</code> &#x548C; <code>&lt;dubbo:reference&gt;</code> &#x90FD;&#x914D;&#x4E86;actives&#xFF0C;<code>&lt;dubbo:reference&gt;</code> &#x4F18;&#x5148;&#xFF0C;&#x53C2;&#x89C1;&#xFF1A;<a href="user-guide-configuration#&#x914D;&#x7F6E;&#x8986;&#x76D6;">&#x914D;&#x7F6E;&#x7684;&#x8986;&#x76D6;&#x7B56;&#x7565;</a>&#x3002;</p>
+<p>&#x5982;&#x679C; <code>&lt;dubbo:service&gt;</code> &#x548C; <code>&lt;dubbo:reference&gt;</code> &#x90FD;&#x914D;&#x4E86;actives&#xFF0C;<code>&lt;dubbo:reference&gt;</code> &#x4F18;&#x5148;&#xFF0C;&#x53C2;&#x89C1;&#xFF1A;<a href="../configuration/xml.html#&#x914D;&#x7F6E;&#x8986;&#x76D6;&#x5173;&#x7CFB;">&#x914D;&#x7F6E;&#x7684;&#x8986;&#x76D6;&#x7B56;&#x7565;</a>&#x3002;</p>
 <h2 id="load-balance-&#x5747;&#x8861;">Load Balance &#x5747;&#x8861;</h2>
 <p>&#x914D;&#x7F6E;&#x670D;&#x52A1;&#x7684;&#x5BA2;&#x6237;&#x7AEF;&#x7684; <code>loadbalance</code> &#x5C5E;&#x6027;&#x4E3A; <code>leastactive</code>&#xFF0C;&#x6B64; Loadbalance &#x4F1A;&#x8C03;&#x7528;&#x5E76;&#x53D1;&#x6570;&#x6700;&#x5C0F;&#x7684; Provider&#xFF08;Consumer&#x7AEF;&#x5E76;&#x53D1;&#x6570;&#xFF09;&#x3002;</p>
 <pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dubbo:reference</span> <span class="hljs-attr">interface</span>=<span class="hljs-string">&quot;com.foo.BarService&quot;</span> <span class="hljs-attr">loadbalance</span>=<span class="hljs-string">&quot;leastactive&quot;</span> /&gt;</span>
@@ -1486,7 +1486,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.28 并发控制","level":"1.7.28","depth":2,"next":{"title":"6.29 连接控制","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"previous":{"title":"6.27 延迟暴露","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
+            gitbook.page.hasChanged({"page":{"title":"6.28 并发控制","level":"1.7.28","depth":2,"next":{"title":"6.29 连接控制","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"previous":{"title":"6.27 延迟暴露","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/config-connections.html b/books/dubbo-user-book/demos/config-connections.html
index cec2acb..8bb8e97 100644
--- a/books/dubbo-user-book/demos/config-connections.html
+++ b/books/dubbo-user-book/demos/config-connections.html
@@ -1470,7 +1470,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.29 连接控制","level":"1.7.29","depth":2,"next":{"title":"6.30 延迟连接","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"previous":{"title":"6.28 并发控制","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
+            gitbook.page.hasChanged({"page":{"title":"6.29 连接控制","level":"1.7.29","depth":2,"next":{"title":"6.30 延迟连接","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"previous":{"title":"6.28 并发控制","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/config-rule.html b/books/dubbo-user-book/demos/config-rule.html
index 1c43f11..0e3f506 100644
--- a/books/dubbo-user-book/demos/config-rule.html
+++ b/books/dubbo-user-book/demos/config-rule.html
@@ -1483,7 +1483,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;override://0.0.0.0
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.34 配置规则","level":"1.7.34","depth":2,"next":{"title":"6.35 服务降级","level":"1.7.35","depth":2,"path":"demos/service-downgrade.md","ref":"./demos/service-downgrade.md","articles":[]},"previous":{"title":"6.33 路由规则","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
+            gitbook.page.hasChanged({"page":{"title":"6.34 配置规则","level":"1.7.34","depth":2,"next":{"title":"6.35 服务降级","level":"1.7.35","depth":2,"path":"demos/service-downgrade.md","ref":"./demos/service-downgrade.md","articles":[]},"previous":{"title":"6.33 路由规则","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/context.html b/books/dubbo-user-book/demos/context.html
index 3eecd77..1c323e3 100644
--- a/books/dubbo-user-book/demos/context.html
+++ b/books/dubbo-user-book/demos/context.html
@@ -1480,7 +1480,7 @@ yyyService.yyy();
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.19 上下文信息","level":"1.7.19","depth":2,"next":{"title":"6.20 隐式参数","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"previous":{"title":"6.18 回声测试","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.19 上下文信息","level":"1.7.19","depth":2,"next":{"title":"6.20 隐式参数","level":"1.7.20","depth":2,"path":"demos/attachment.md","ref":"./demos/attachment.md","articles":[]},"previous":{"title":"6.18 回声测试","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/delay-publish.html b/books/dubbo-user-book/demos/delay-publish.html
index e7a126e..6c82963 100644
--- a/books/dubbo-user-book/demos/delay-publish.html
+++ b/books/dubbo-user-book/demos/delay-publish.html
@@ -1429,7 +1429,7 @@
 <ol>
 <li>&#x5F3A;&#x70C8;&#x5EFA;&#x8BAE;&#x4E0D;&#x8981;&#x5728;&#x670D;&#x52A1;&#x7684;&#x5B9E;&#x73B0;&#x7C7B;&#x4E2D;&#x6709; applicationContext.getBean() &#x7684;&#x8C03;&#x7528;&#xFF0C;&#x5168;&#x90E8;&#x91C7;&#x7528; IoC &#x6CE8;&#x5165;&#x7684;&#x65B9;&#x5F0F;&#x4F7F;&#x7528; Spring&#x7684;Bean&#x3002;</li>
 <li>&#x5982;&#x679C;&#x5B9E;&#x5728;&#x8981;&#x8C03; getBean()&#xFF0C;&#x53EF;&#x4EE5;&#x5C06; Dubbo &#x7684;&#x914D;&#x7F6E;&#x653E;&#x5728; Spring &#x7684;&#x6700;&#x540E;&#x52A0;&#x8F7D;&#x3002;</li>
-<li>&#x5982;&#x679C;&#x4E0D;&#x60F3;&#x4F9D;&#x8D56;&#x914D;&#x7F6E;&#x987A;&#x5E8F;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <code>&lt;dubbo:provider deplay=&#x201D;-1&#x201D; /&gt;</code>&#xFF0C;&#x4F7F; Dubbo &#x5728; Spring &#x5BB9;&#x5668;&#x521D;&#x59CB;&#x5316;&#x5B8C;&#x540E;&#xFF0C;&#x518D;&#x66B4;&#x9732;&#x670D;&#x52A1;&#x3002;</li>
+<li>&#x5982;&#x679C;&#x4E0D;&#x60F3;&#x4F9D;&#x8D56;&#x914D;&#x7F6E;&#x987A;&#x5E8F;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; <code>&lt;dubbo:provider delay=&#x201D;-1&#x201D; /&gt;</code>&#xFF0C;&#x4F7F; Dubbo &#x5728; Spring &#x5BB9;&#x5668;&#x521D;&#x59CB;&#x5316;&#x5B8C;&#x540E;&#xFF0C;&#x518D;&#x66B4;&#x9732;&#x670D;&#x52A1;&#x3002;</li>
 <li>&#x5982;&#x679C;&#x5927;&#x91CF;&#x4F7F;&#x7528; getBean()&#xFF0C;&#x76F8;&#x5F53;&#x4E8E;&#x5DF2;&#x7ECF;&#x628A; Spring &#x9000;&#x5316;&#x4E3A;&#x5DE5;&#x5382;&#x6A21;&#x5F0F;&#x5728;&#x7528;&#xFF0C;&#x53EF;&#x4EE5;&#x5C06; Dubbo &#x7684;&#x670D;&#x52A1;&#x9694;&#x79BB;&#x5355;&#x72EC;&#x7684; Spring &#x5BB9;&#x5668;&#x3002;</li>
 </ol>
 <blockquote id="fn_1">
@@ -1478,7 +1478,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.27 延迟暴露","level":"1.7.27","depth":2,"next":{"title":"6.28 并发控制","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"previous":{"title":"6.26 本地伪装","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
+            gitbook.page.hasChanged({"page":{"title":"6.27 延迟暴露","level":"1.7.27","depth":2,"next":{"title":"6.28 并发控制","level":"1.7.28","depth":2,"path":"demos/concurrency-control.md","ref":"./demos/concurrency-control.md","articles":[]},"previous":{"title":"6.26 本地伪装","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/distributed-transaction.html b/books/dubbo-user-book/demos/distributed-transaction.html
index 09735ff..730174c 100644
--- a/books/dubbo-user-book/demos/distributed-transaction.html
+++ b/books/dubbo-user-book/demos/distributed-transaction.html
@@ -1455,7 +1455,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.42 分布式事务","level":"1.7.42","depth":2,"next":{"title":"6.43 线程栈自动dump","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"previous":{"title":"6.41 Reference Config 缓存","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"high [...]
+            gitbook.page.hasChanged({"page":{"title":"6.42 分布式事务","level":"1.7.42","depth":2,"next":{"title":"6.43 线程栈自动dump","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"previous":{"title":"6.41 Reference Config 缓存","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"high [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/dump.html b/books/dubbo-user-book/demos/dump.html
index 7181232..fb31658 100644
--- a/books/dubbo-user-book/demos/dump.html
+++ b/books/dubbo-user-book/demos/dump.html
@@ -1462,7 +1462,7 @@ dubbo.application.dump.directory=/tmp
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.43 线程栈自动dump","level":"1.7.43","depth":2,"next":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"path":"demos/netty4.md","ref":"./demos/netty4.md","articles":[]},"previous":{"title":"6.42 分布式事务","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.43 线程栈自动dump","level":"1.7.43","depth":2,"next":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"path":"demos/netty4.md","ref":"./demos/netty4.md","articles":[]},"previous":{"title":"6.42 分布式事务","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/echo-service.html b/books/dubbo-user-book/demos/echo-service.html
index 62bd299..82b2875 100644
--- a/books/dubbo-user-book/demos/echo-service.html
+++ b/books/dubbo-user-book/demos/echo-service.html
@@ -1465,7 +1465,7 @@ String status = echoService.$echo(<span class="hljs-string">&quot;OK&quot;</span
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.18 回声测试","level":"1.7.18","depth":2,"next":{"title":"6.19 上下文信息","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"previous":{"title":"6.17 泛化实现","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.18 回声测试","level":"1.7.18","depth":2,"next":{"title":"6.19 上下文信息","level":"1.7.19","depth":2,"path":"demos/context.md","ref":"./demos/context.md","articles":[]},"previous":{"title":"6.17 泛化实现","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/events-notify.html b/books/dubbo-user-book/demos/events-notify.html
index 46d6cd3..5d172e6 100644
--- a/books/dubbo-user-book/demos/events-notify.html
+++ b/books/dubbo-user-book/demos/events-notify.html
@@ -1525,7 +1525,7 @@ Assert.assertEquals(requestId, notify.ret.get(requestId).getId());
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.24 事件通知","level":"1.7.24","depth":2,"next":{"title":"6.25 本地存根","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"previous":{"title":"6.23 参数回调","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
+            gitbook.page.hasChanged({"page":{"title":"6.24 事件通知","level":"1.7.24","depth":2,"next":{"title":"6.25 本地存根","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"previous":{"title":"6.23 参数回调","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/explicit-target.html b/books/dubbo-user-book/demos/explicit-target.html
index 853fe41..3eff775 100644
--- a/books/dubbo-user-book/demos/explicit-target.html
+++ b/books/dubbo-user-book/demos/explicit-target.html
@@ -1476,7 +1476,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.5 直连提供者","level":"1.7.5","depth":2,"next":{"title":"6.6 只订阅","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"previous":{"title":"6.4 线程模型","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
+            gitbook.page.hasChanged({"page":{"title":"6.5 直连提供者","level":"1.7.5","depth":2,"next":{"title":"6.6 只订阅","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"previous":{"title":"6.4 线程模型","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/fault-tolerent-strategy.html b/books/dubbo-user-book/demos/fault-tolerent-strategy.html
index bce9fc5..770f222 100644
--- a/books/dubbo-user-book/demos/fault-tolerent-strategy.html
+++ b/books/dubbo-user-book/demos/fault-tolerent-strategy.html
@@ -1497,7 +1497,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.2 集群容错","level":"1.7.2","depth":2,"next":{"title":"6.3 负载均衡","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"previous":{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
+            gitbook.page.hasChanged({"page":{"title":"6.2 集群容错","level":"1.7.2","depth":2,"next":{"title":"6.3 负载均衡","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"previous":{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/generic-reference.html b/books/dubbo-user-book/demos/generic-reference.html
index 2e980ef..d5e953b 100644
--- a/books/dubbo-user-book/demos/generic-reference.html
+++ b/books/dubbo-user-book/demos/generic-reference.html
@@ -1524,7 +1524,7 @@ map.put(<span class="hljs-string">&quot;password&quot;</span>, <span class="hljs
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.16 泛化引用","level":"1.7.16","depth":2,"next":{"title":"6.17 泛化实现","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"previous":{"title":"6.15 结果缓存","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.16 泛化引用","level":"1.7.16","depth":2,"next":{"title":"6.17 泛化实现","level":"1.7.17","depth":2,"path":"demos/generic-service.md","ref":"./demos/generic-service.md","articles":[]},"previous":{"title":"6.15 结果缓存","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/generic-service.html b/books/dubbo-user-book/demos/generic-service.html
index 5efc31d..c375fb0 100644
--- a/books/dubbo-user-book/demos/generic-service.html
+++ b/books/dubbo-user-book/demos/generic-service.html
@@ -1482,7 +1482,7 @@ service.export();
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.17 泛化实现","level":"1.7.17","depth":2,"next":{"title":"6.18 回声测试","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"previous":{"title":"6.16 泛化引用","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
+            gitbook.page.hasChanged({"page":{"title":"6.17 泛化实现","level":"1.7.17","depth":2,"next":{"title":"6.18 回声测试","level":"1.7.18","depth":2,"path":"demos/echo-service.md","ref":"./demos/echo-service.md","articles":[]},"previous":{"title":"6.16 泛化引用","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"sear [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/graceful-shutdown.html b/books/dubbo-user-book/demos/graceful-shutdown.html
index 5dc1c74..e452e7c 100644
--- a/books/dubbo-user-book/demos/graceful-shutdown.html
+++ b/books/dubbo-user-book/demos/graceful-shutdown.html
@@ -1469,7 +1469,7 @@ dubbo.service.shutdown.wait=15000
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.36 优雅停机","level":"1.7.36","depth":2,"next":{"title":"6.37 主机绑定","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"previous":{"title":"6.35 服务降级","level":"1.7.35","depth":2,"path":"demos/service-downgrade.md","ref":"./demos/service-downgrade.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.36 优雅停机","level":"1.7.36","depth":2,"next":{"title":"6.37 主机绑定","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"previous":{"title":"6.35 服务降级","level":"1.7.35","depth":2,"path":"demos/service-downgrade.md","ref":"./demos/service-downgrade.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/group-merger.html b/books/dubbo-user-book/demos/group-merger.html
index 127ce3c..fda2c1e 100644
--- a/books/dubbo-user-book/demos/group-merger.html
+++ b/books/dubbo-user-book/demos/group-merger.html
@@ -1484,7 +1484,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.13 分组聚合","level":"1.7.13","depth":2,"next":{"title":"6.14 参数验证","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"previous":{"title":"6.12 多版本","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.13 分组聚合","level":"1.7.13","depth":2,"next":{"title":"6.14 参数验证","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"previous":{"title":"6.12 多版本","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/hostname-binding.html b/books/dubbo-user-book/demos/hostname-binding.html
index 7bc1c52..e022c95 100644
--- a/books/dubbo-user-book/demos/hostname-binding.html
+++ b/books/dubbo-user-book/demos/hostname-binding.html
@@ -1521,7 +1521,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.37 主机绑定","level":"1.7.37","depth":2,"next":{"title":"6.38 日志适配","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"previous":{"title":"6.36 优雅停机","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"6.37 主机绑定","level":"1.7.37","depth":2,"next":{"title":"6.38 日志适配","level":"1.7.38","depth":2,"path":"demos/logger-strategy.md","ref":"./demos/logger-strategy.md","articles":[]},"previous":{"title":"6.36 优雅停机","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/index.html b/books/dubbo-user-book/demos/index.html
index f8bf097..7bd8ce0 100644
--- a/books/dubbo-user-book/demos/index.html
+++ b/books/dubbo-user-book/demos/index.html
@@ -1449,7 +1449,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6 示例","level":"1.7","depth":1,"next":{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"previous":{"title":"5.4 注解配置","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
+            gitbook.page.hasChanged({"page":{"title":"6 示例","level":"1.7","depth":1,"next":{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},"previous":{"title":"5.4 注解配置","level":"1.6.4","depth":2,"path":"configuration/annotation.md","ref":"./configuration/annotation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/introduction.html b/books/dubbo-user-book/demos/introduction.html
new file mode 100644
index 0000000..83d60a1
--- /dev/null
+++ b/books/dubbo-user-book/demos/introduction.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>Apache Dubbo (incubating) | Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</title>
+<meta property="og:title" content="Apache Dubbo (incubating)" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-user-book/demos/introduction.html","publisher":null,"image":null,"headline":"Apache Dubbo (incubating)","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      <blockquote>
+  <p><img src="../sources/images/check.gif" alt="warning" />想完整的运行起来,请参见:<a href="quickstart.md">快速启动</a>,这里只列出各种场景的配置方式。
+<img src="../sources/images/check.gif" alt="warning" />以下示例全部使用基于Spring的<a href="../configuration/xml.md">Xml配置</a>作为参考,如果不想使用Spring,而希望通过API的方式进行调用,请参见:<a href="../configuration/api.md">API配置</a></p>
+</blockquote>
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>
diff --git a/books/dubbo-user-book/demos/lazy-connect.html b/books/dubbo-user-book/demos/lazy-connect.html
index 3327aad..8276023 100644
--- a/books/dubbo-user-book/demos/lazy-connect.html
+++ b/books/dubbo-user-book/demos/lazy-connect.html
@@ -1455,7 +1455,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.30 延迟连接","level":"1.7.30","depth":2,"next":{"title":"6.31 粘滞连接","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"previous":{"title":"6.29 连接控制","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
+            gitbook.page.hasChanged({"page":{"title":"6.30 延迟连接","level":"1.7.30","depth":2,"next":{"title":"6.31 粘滞连接","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"previous":{"title":"6.29 连接控制","level":"1.7.29","depth":2,"path":"demos/config-connections.md","ref":"./demos/config-connections.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/loadbalance.html b/books/dubbo-user-book/demos/loadbalance.html
index 70b252b..775bfa1 100644
--- a/books/dubbo-user-book/demos/loadbalance.html
+++ b/books/dubbo-user-book/demos/loadbalance.html
@@ -1492,7 +1492,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.3 负载均衡","level":"1.7.3","depth":2,"next":{"title":"6.4 线程模型","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"previous":{"title":"6.2 集群容错","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"6.3 负载均衡","level":"1.7.3","depth":2,"next":{"title":"6.4 线程模型","level":"1.7.4","depth":2,"path":"demos/thread-model.md","ref":"./demos/thread-model.md","articles":[]},"previous":{"title":"6.2 集群容错","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/local-call.html b/books/dubbo-user-book/demos/local-call.html
index 285dbe1..197b9ea 100644
--- a/books/dubbo-user-book/demos/local-call.html
+++ b/books/dubbo-user-book/demos/local-call.html
@@ -1473,7 +1473,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.22 本地调用","level":"1.7.22","depth":2,"next":{"title":"6.23 参数回调","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"previous":{"title":"6.21 异步调用","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
+            gitbook.page.hasChanged({"page":{"title":"6.22 本地调用","level":"1.7.22","depth":2,"next":{"title":"6.23 参数回调","level":"1.7.23","depth":2,"path":"demos/callback-parameter.md","ref":"./demos/callback-parameter.md","articles":[]},"previous":{"title":"6.21 异步调用","level":"1.7.21","depth":2,"path":"demos/async-call.md","ref":"./demos/async-call.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/local-mock.html b/books/dubbo-user-book/demos/local-mock.html
index 8726513..5579bfe 100644
--- a/books/dubbo-user-book/demos/local-mock.html
+++ b/books/dubbo-user-book/demos/local-mock.html
@@ -1482,7 +1482,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.26 本地伪装","level":"1.7.26","depth":2,"next":{"title":"6.27 延迟暴露","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"previous":{"title":"6.25 本地存根","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
+            gitbook.page.hasChanged({"page":{"title":"6.26 本地伪装","level":"1.7.26","depth":2,"next":{"title":"6.27 延迟暴露","level":"1.7.27","depth":2,"path":"demos/delay-publish.md","ref":"./demos/delay-publish.md","articles":[]},"previous":{"title":"6.25 本地存根","level":"1.7.25","depth":2,"path":"demos/local-stub.md","ref":"./demos/local-stub.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/local-stub.html b/books/dubbo-user-book/demos/local-stub.html
index 0787658..5495d6d 100644
--- a/books/dubbo-user-book/demos/local-stub.html
+++ b/books/dubbo-user-book/demos/local-stub.html
@@ -1484,7 +1484,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.25 本地存根","level":"1.7.25","depth":2,"next":{"title":"6.26 本地伪装","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"previous":{"title":"6.24 事件通知","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
+            gitbook.page.hasChanged({"page":{"title":"6.25 本地存根","level":"1.7.25","depth":2,"next":{"title":"6.26 本地伪装","level":"1.7.26","depth":2,"path":"demos/local-mock.md","ref":"./demos/local-mock.md","articles":[]},"previous":{"title":"6.24 事件通知","level":"1.7.24","depth":2,"path":"demos/events-notify.md","ref":"./demos/events-notify.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/logger-strategy.html b/books/dubbo-user-book/demos/logger-strategy.html
index d598131..a3093a7 100644
--- a/books/dubbo-user-book/demos/logger-strategy.html
+++ b/books/dubbo-user-book/demos/logger-strategy.html
@@ -1466,7 +1466,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.38 日志适配","level":"1.7.38","depth":2,"next":{"title":"6.39 访问日志","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"previous":{"title":"6.37 主机绑定","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{}," [...]
+            gitbook.page.hasChanged({"page":{"title":"6.38 日志适配","level":"1.7.38","depth":2,"next":{"title":"6.39 访问日志","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"previous":{"title":"6.37 主机绑定","level":"1.7.37","depth":2,"path":"demos/hostname-binding.md","ref":"./demos/hostname-binding.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{}," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/multi-protocols.html b/books/dubbo-user-book/demos/multi-protocols.html
index b7b14e5..61c2631 100644
--- a/books/dubbo-user-book/demos/multi-protocols.html
+++ b/books/dubbo-user-book/demos/multi-protocols.html
@@ -1487,7 +1487,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.9 多协议","level":"1.7.9","depth":2,"next":{"title":"6.10 多注册中心","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"previous":{"title":"6.8 静态服务","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"6.9 多协议","level":"1.7.9","depth":2,"next":{"title":"6.10 多注册中心","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"previous":{"title":"6.8 静态服务","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/multi-registry.html b/books/dubbo-user-book/demos/multi-registry.html
index c576e83..905f4d1 100644
--- a/books/dubbo-user-book/demos/multi-registry.html
+++ b/books/dubbo-user-book/demos/multi-registry.html
@@ -1405,7 +1405,7 @@
     
                                 <section class="normal markdown-section">
                                 
-                                <p>ne# &#x591A;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;</p>
+                                <h1 id="&#x591A;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;">&#x591A;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;</h1>
 <p>Dubbo &#x652F;&#x6301;&#x540C;&#x4E00;&#x670D;&#x52A1;&#x5411;&#x591A;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;&#x540C;&#x65F6;&#x6CE8;&#x518C;&#xFF0C;&#x6216;&#x8005;&#x4E0D;&#x540C;&#x670D;&#x52A1;&#x5206;&#x522B;&#x6CE8;&#x518C;&#x5230;&#x4E0D;&#x540C;&#x7684;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;&#x4E0A;&#x53BB;&#xFF0C;&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x540C;&#x65F6;&#x5F15;&#x7528;&#x6CE8;&#x518C;&#x5728;&#x4E0D;&#x540C;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;&#x4E0A;&#x7684;&#x540C;&#x540D;&#x670D;&#x [...]
 <h2 id="&#x591A;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;&#x6CE8;&#x518C;">&#x591A;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;&#x6CE8;&#x518C;</h2>
 <p>&#x6BD4;&#x5982;&#xFF1A;&#x4E2D;&#x6587;&#x7AD9;&#x6709;&#x4E9B;&#x670D;&#x52A1;&#x6765;&#x4E0D;&#x53CA;&#x5728;&#x9752;&#x5C9B;&#x90E8;&#x7F72;&#xFF0C;&#x53EA;&#x5728;&#x676D;&#x5DDE;&#x90E8;&#x7F72;&#xFF0C;&#x800C;&#x9752;&#x5C9B;&#x7684;&#x5176;&#x5B83;&#x5E94;&#x7528;&#x9700;&#x8981;&#x5F15;&#x7528;&#x6B64;&#x670D;&#x52A1;&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x5C06;&#x670D;&#x52A1;&#x540C;&#x65F6;&#x6CE8;&#x518C;&#x5230;&#x4E24;&#x4E2A;&#x6CE8;&#x518C;&#x4E2D;&#x5FC3;&#x3002;</p>
@@ -1515,7 +1515,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.10 多注册中心","level":"1.7.10","depth":2,"next":{"title":"6.11 服务分组","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"previous":{"title":"6.9 多协议","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.10 多注册中心","level":"1.7.10","depth":2,"next":{"title":"6.11 服务分组","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"previous":{"title":"6.9 多协议","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/multi-versions.html b/books/dubbo-user-book/demos/multi-versions.html
index dece52c..bb2d1a5 100644
--- a/books/dubbo-user-book/demos/multi-versions.html
+++ b/books/dubbo-user-book/demos/multi-versions.html
@@ -1474,7 +1474,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.12 多版本","level":"1.7.12","depth":2,"next":{"title":"6.13 分组聚合","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"previous":{"title":"6.11 服务分组","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"l [...]
+            gitbook.page.hasChanged({"page":{"title":"6.12 多版本","level":"1.7.12","depth":2,"next":{"title":"6.13 分组聚合","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"previous":{"title":"6.11 服务分组","level":"1.7.11","depth":2,"path":"demos/service-group.md","ref":"./demos/service-group.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"l [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/netty4.html b/books/dubbo-user-book/demos/netty4.html
index da1eb06..2152eea 100644
--- a/books/dubbo-user-book/demos/netty4.html
+++ b/books/dubbo-user-book/demos/netty4.html
@@ -1477,7 +1477,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"next":{"title":"7 API 参考手册","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"previous":{"title":"6.43 线程栈自动dump","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.44 Netty4","level":"1.7.44","depth":2,"next":{"title":"7 API 参考手册","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"previous":{"title":"6.43 线程栈自动dump","level":"1.7.43","depth":2,"path":"demos/dump.md","ref":"./demos/dump.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/parameter-validation.html b/books/dubbo-user-book/demos/parameter-validation.html
index 9c0b3e8..d4edebf 100644
--- a/books/dubbo-user-book/demos/parameter-validation.html
+++ b/books/dubbo-user-book/demos/parameter-validation.html
@@ -1607,7 +1607,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.14 参数验证","level":"1.7.14","depth":2,"next":{"title":"6.15 结果缓存","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"previous":{"title":"6.13 分组聚合","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
+            gitbook.page.hasChanged({"page":{"title":"6.14 参数验证","level":"1.7.14","depth":2,"next":{"title":"6.15 结果缓存","level":"1.7.15","depth":2,"path":"demos/result-cache.md","ref":"./demos/result-cache.md","articles":[]},"previous":{"title":"6.13 分组聚合","level":"1.7.13","depth":2,"path":"demos/group-merger.md","ref":"./demos/group-merger.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/preflight-check.html b/books/dubbo-user-book/demos/preflight-check.html
index 4b297ea..2f25fcc 100644
--- a/books/dubbo-user-book/demos/preflight-check.html
+++ b/books/dubbo-user-book/demos/preflight-check.html
@@ -1479,7 +1479,7 @@ java -Ddubbo.registry.check=<span class="hljs-literal">false</span>
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"next":{"title":"6.2 集群容错","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"previous":{"title":"6 示例","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},{"tit [...]
+            gitbook.page.hasChanged({"page":{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"next":{"title":"6.2 集群容错","level":"1.7.2","depth":2,"path":"demos/fault-tolerent-strategy.md","ref":"./demos/fault-tolerent-strategy.md","articles":[]},"previous":{"title":"6 示例","level":"1.7","depth":1,"path":"demos/index.md","ref":"./demos/index.md","articles":[{"title":"6.1 启动时检查","level":"1.7.1","depth":2,"path":"demos/preflight-check.md","ref":"./demos/preflight-check.md","articles":[]},{"tit [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/reference-config-cache.html b/books/dubbo-user-book/demos/reference-config-cache.html
index ad57b91..3595dd3 100644
--- a/books/dubbo-user-book/demos/reference-config-cache.html
+++ b/books/dubbo-user-book/demos/reference-config-cache.html
@@ -1472,7 +1472,7 @@ ReferenceConfigCache cache = ReferenceConfigCache.getCache(keyGenerator );
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.41 Reference Config 缓存","level":"1.7.41","depth":2,"next":{"title":"6.42 分布式事务","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"previous":{"title":"6.40 服务容器","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
+            gitbook.page.hasChanged({"page":{"title":"6.41 Reference Config 缓存","level":"1.7.41","depth":2,"next":{"title":"6.42 分布式事务","level":"1.7.42","depth":2,"path":"demos/distributed-transaction.md","ref":"./demos/distributed-transaction.md","articles":[]},"previous":{"title":"6.40 服务容器","level":"1.7.40","depth":2,"path":"demos/service-container.md","ref":"./demos/service-container.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[] [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/registry-only.html b/books/dubbo-user-book/demos/registry-only.html
index 8aaeb01..3ac561d 100644
--- a/books/dubbo-user-book/demos/registry-only.html
+++ b/books/dubbo-user-book/demos/registry-only.html
@@ -1458,7 +1458,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.7 只注册","level":"1.7.7","depth":2,"next":{"title":"6.8 静态服务","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"previous":{"title":"6.6 只订阅","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
+            gitbook.page.hasChanged({"page":{"title":"6.7 只注册","level":"1.7.7","depth":2,"next":{"title":"6.8 静态服务","level":"1.7.8","depth":2,"path":"demos/static-service.md","ref":"./demos/static-service.md","articles":[]},"previous":{"title":"6.6 只订阅","level":"1.7.6","depth":2,"path":"demos/subscribe-only.md","ref":"./demos/subscribe-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/result-cache.html b/books/dubbo-user-book/demos/result-cache.html
index 180ac67..dca0d52 100644
--- a/books/dubbo-user-book/demos/result-cache.html
+++ b/books/dubbo-user-book/demos/result-cache.html
@@ -1413,7 +1413,7 @@
 <li><code>threadlocal</code> &#x5F53;&#x524D;&#x7EBF;&#x7A0B;&#x7F13;&#x5B58;&#xFF0C;&#x6BD4;&#x5982;&#x4E00;&#x4E2A;&#x9875;&#x9762;&#x6E32;&#x67D3;&#xFF0C;&#x7528;&#x5230;&#x5F88;&#x591A; portal&#xFF0C;&#x6BCF;&#x4E2A; portal &#x90FD;&#x8981;&#x53BB;&#x67E5;&#x7528;&#x6237;&#x4FE1;&#x606F;&#xFF0C;&#x901A;&#x8FC7;&#x7EBF;&#x7A0B;&#x7F13;&#x5B58;&#xFF0C;&#x53EF;&#x4EE5;&#x51CF;&#x5C11;&#x8FD9;&#x79CD;&#x591A;&#x4F59;&#x8BBF;&#x95EE;&#x3002;</li>
 <li><code>jcache</code> &#x4E0E; <a href="http://jcp.org/en/jsr/detail?id=107%27" target="_blank">JSR107</a> &#x96C6;&#x6210;&#xFF0C;&#x53EF;&#x4EE5;&#x6865;&#x63A5;&#x5404;&#x79CD;&#x7F13;&#x5B58;&#x5B9E;&#x73B0;&#x3002;</li>
 </ul>
-<p>&#x7F13;&#x5B58;&#x7C7B;&#x578B;&#x53EF;&#x6269;&#x5C55;&#xFF0C;&#x53C2;&#x89C1;&#xFF1A;<a href="http://dubbo.io/developer-guide/impls/cache.html" target="_blank">&#x7F13;&#x5B58;&#x6269;&#x5C55;</a></p>
+<p>&#x7F13;&#x5B58;&#x7C7B;&#x578B;&#x53EF;&#x6269;&#x5C55;&#xFF0C;&#x53C2;&#x89C1;&#xFF1A;<a href="http://dubbo.io/books/dubbo-dev-book/impls/cache.html" target="_blank">&#x7F13;&#x5B58;&#x6269;&#x5C55;</a></p>
 <h2 id="&#x914D;&#x7F6E;">&#x914D;&#x7F6E;</h2>
 <pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">dubbo:reference</span> <span class="hljs-attr">interface</span>=<span class="hljs-string">&quot;com.foo.BarService&quot;</span> <span class="hljs-attr">cache</span>=<span class="hljs-string">&quot;lru&quot;</span> /&gt;</span>
 </code></pre>
@@ -1471,7 +1471,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.15 结果缓存","level":"1.7.15","depth":2,"next":{"title":"6.16 泛化引用","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"previous":{"title":"6.14 参数验证","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"hig [...]
+            gitbook.page.hasChanged({"page":{"title":"6.15 结果缓存","level":"1.7.15","depth":2,"next":{"title":"6.16 泛化引用","level":"1.7.16","depth":2,"path":"demos/generic-reference.md","ref":"./demos/generic-reference.md","articles":[]},"previous":{"title":"6.14 参数验证","level":"1.7.14","depth":2,"path":"demos/parameter-validation.md","ref":"./demos/parameter-validation.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"hig [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/routing-rule.html b/books/dubbo-user-book/demos/routing-rule.html
index 407f6de..82c0695 100644
--- a/books/dubbo-user-book/demos/routing-rule.html
+++ b/books/dubbo-user-book/demos/routing-rule.html
@@ -1503,7 +1503,7 @@ registry.register(URL.valueOf(&quot;condition://0.0.0.0/com.foo.BarService?categ
 <sup>1</sup>. <code>2.2.0</code> &#x4EE5;&#x4E0A;&#x7248;&#x672C;&#x652F;&#x6301;<a href="#reffn_1" title="Jump back to footnote [1] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_2">
-<sup>2</sup>. &#x8DEF;&#x7531;&#x89C4;&#x5219;&#x6269;&#x5C55;&#x70B9;&#xFF1A;<a href="http://dubbo.io/developer-guide/impls/router.html" target="_blank">&#x8DEF;&#x7531;&#x6269;&#x5C55;</a><a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
+<sup>2</sup>. &#x8DEF;&#x7531;&#x89C4;&#x5219;&#x6269;&#x5C55;&#x70B9;&#xFF1A;<a href="http://dubbo.io/books/dubbo-dev-book/impls/router.html" target="_blank">&#x8DEF;&#x7531;&#x6269;&#x5C55;</a><a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_3">
 <sup>3</sup>. &#x6CE8;&#x610F;&#xFF1A;&#x4E00;&#x4E2A;&#x670D;&#x52A1;&#x53EA;&#x80FD;&#x6709;&#x4E00;&#x6761;&#x767D;&#x540D;&#x5355;&#x89C4;&#x5219;&#xFF0C;&#x5426;&#x5219;&#x4E24;&#x6761;&#x89C4;&#x5219;&#x4EA4;&#x53C9;&#xFF0C;&#x5C31;&#x90FD;&#x88AB;&#x7B5B;&#x9009;&#x6389;&#x4E86;<a href="#reffn_3" title="Jump back to footnote [3] in the text."> &#x21A9;</a>
@@ -1554,7 +1554,7 @@ registry.register(URL.valueOf(&quot;condition://0.0.0.0/com.foo.BarService?categ
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.33 路由规则","level":"1.7.33","depth":2,"next":{"title":"6.34 配置规则","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"previous":{"title":"6.32 令牌验证","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"se [...]
+            gitbook.page.hasChanged({"page":{"title":"6.33 路由规则","level":"1.7.33","depth":2,"next":{"title":"6.34 配置规则","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"previous":{"title":"6.32 令牌验证","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"se [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/service-container.html b/books/dubbo-user-book/demos/service-container.html
index 973a9c3..2c78a04 100644
--- a/books/dubbo-user-book/demos/service-container.html
+++ b/books/dubbo-user-book/demos/service-container.html
@@ -1493,7 +1493,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.40 服务容器","level":"1.7.40","depth":2,"next":{"title":"6.41 Reference Config 缓存","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"previous":{"title":"6.39 访问日志","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"6.40 服务容器","level":"1.7.40","depth":2,"next":{"title":"6.41 Reference Config 缓存","level":"1.7.41","depth":2,"path":"demos/reference-config-cache.md","ref":"./demos/reference-config-cache.md","articles":[]},"previous":{"title":"6.39 访问日志","level":"1.7.39","depth":2,"path":"demos/accesslog.md","ref":"./demos/accesslog.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/service-downgrade.html b/books/dubbo-user-book/demos/service-downgrade.html
index af290e3..be971cb 100644
--- a/books/dubbo-user-book/demos/service-downgrade.html
+++ b/books/dubbo-user-book/demos/service-downgrade.html
@@ -1463,7 +1463,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;override://0.0.0.0
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.35 服务降级","level":"1.7.35","depth":2,"next":{"title":"6.36 优雅停机","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"previous":{"title":"6.34 配置规则","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
+            gitbook.page.hasChanged({"page":{"title":"6.35 服务降级","level":"1.7.35","depth":2,"next":{"title":"6.36 优雅停机","level":"1.7.36","depth":2,"path":"demos/graceful-shutdown.md","ref":"./demos/graceful-shutdown.md","articles":[]},"previous":{"title":"6.34 配置规则","level":"1.7.34","depth":2,"path":"demos/config-rule.md","ref":"./demos/config-rule.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/service-group.html b/books/dubbo-user-book/demos/service-group.html
index 9b62121..58290fa 100644
--- a/books/dubbo-user-book/demos/service-group.html
+++ b/books/dubbo-user-book/demos/service-group.html
@@ -1464,7 +1464,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.11 服务分组","level":"1.7.11","depth":2,"next":{"title":"6.12 多版本","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"previous":{"title":"6.10 多注册中心","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
+            gitbook.page.hasChanged({"page":{"title":"6.11 服务分组","level":"1.7.11","depth":2,"next":{"title":"6.12 多版本","level":"1.7.12","depth":2,"path":"demos/multi-versions.md","ref":"./demos/multi-versions.md","articles":[]},"previous":{"title":"6.10 多注册中心","level":"1.7.10","depth":2,"path":"demos/multi-registry.md","ref":"./demos/multi-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/static-service.html b/books/dubbo-user-book/demos/static-service.html
index 1de53ee..a9ff0ee 100644
--- a/books/dubbo-user-book/demos/static-service.html
+++ b/books/dubbo-user-book/demos/static-service.html
@@ -1464,7 +1464,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;memcached://10.20.
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.8 静态服务","level":"1.7.8","depth":2,"next":{"title":"6.9 多协议","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"previous":{"title":"6.7 只注册","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
+            gitbook.page.hasChanged({"page":{"title":"6.8 静态服务","level":"1.7.8","depth":2,"next":{"title":"6.9 多协议","level":"1.7.9","depth":2,"path":"demos/multi-protocols.md","ref":"./demos/multi-protocols.md","articles":[]},"previous":{"title":"6.7 只注册","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lu [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/stickiness.html b/books/dubbo-user-book/demos/stickiness.html
index 50a9a12..f234b7a 100644
--- a/books/dubbo-user-book/demos/stickiness.html
+++ b/books/dubbo-user-book/demos/stickiness.html
@@ -1453,7 +1453,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.31 粘滞连接","level":"1.7.31","depth":2,"next":{"title":"6.32 令牌验证","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"previous":{"title":"6.30 延迟连接","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
+            gitbook.page.hasChanged({"page":{"title":"6.31 粘滞连接","level":"1.7.31","depth":2,"next":{"title":"6.32 令牌验证","level":"1.7.32","depth":2,"path":"demos/token-authorization.md","ref":"./demos/token-authorization.md","articles":[]},"previous":{"title":"6.30 延迟连接","level":"1.7.30","depth":2,"path":"demos/lazy-connect.md","ref":"./demos/lazy-connect.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{}," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/subscribe-only.html b/books/dubbo-user-book/demos/subscribe-only.html
index d9c44b6..aa45e68 100644
--- a/books/dubbo-user-book/demos/subscribe-only.html
+++ b/books/dubbo-user-book/demos/subscribe-only.html
@@ -1458,7 +1458,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.6 只订阅","level":"1.7.6","depth":2,"next":{"title":"6.7 只注册","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"previous":{"title":"6.5 直连提供者","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"l [...]
+            gitbook.page.hasChanged({"page":{"title":"6.6 只订阅","level":"1.7.6","depth":2,"next":{"title":"6.7 只注册","level":"1.7.7","depth":2,"path":"demos/registry-only.md","ref":"./demos/registry-only.md","articles":[]},"previous":{"title":"6.5 直连提供者","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"l [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/thread-model.html b/books/dubbo-user-book/demos/thread-model.html
index a0178ff..fc70064 100644
--- a/books/dubbo-user-book/demos/thread-model.html
+++ b/books/dubbo-user-book/demos/thread-model.html
@@ -1470,7 +1470,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.4 线程模型","level":"1.7.4","depth":2,"next":{"title":"6.5 直连提供者","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"previous":{"title":"6.3 负载均衡","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
+            gitbook.page.hasChanged({"page":{"title":"6.4 线程模型","level":"1.7.4","depth":2,"next":{"title":"6.5 直连提供者","level":"1.7.5","depth":2,"path":"demos/explicit-target.md","ref":"./demos/explicit-target.md","articles":[]},"previous":{"title":"6.3 负载均衡","level":"1.7.3","depth":2,"path":"demos/loadbalance.md","ref":"./demos/loadbalance.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lun [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/demos/token-authorization.html b/books/dubbo-user-book/demos/token-authorization.html
index 13c6692..2b49097 100644
--- a/books/dubbo-user-book/demos/token-authorization.html
+++ b/books/dubbo-user-book/demos/token-authorization.html
@@ -1475,7 +1475,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"6.32 令牌验证","level":"1.7.32","depth":2,"next":{"title":"6.33 路由规则","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"previous":{"title":"6.31 粘滞连接","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
+            gitbook.page.hasChanged({"page":{"title":"6.32 令牌验证","level":"1.7.32","depth":2,"next":{"title":"6.33 路由规则","level":"1.7.33","depth":2,"path":"demos/routing-rule.md","ref":"./demos/routing-rule.md","articles":[]},"previous":{"title":"6.31 粘滞连接","level":"1.7.31","depth":2,"path":"demos/stickiness.md","ref":"./demos/stickiness.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/dependencies.html b/books/dubbo-user-book/dependencies.html
index a24f12f..af62260 100644
--- a/books/dubbo-user-book/dependencies.html
+++ b/books/dubbo-user-book/dependencies.html
@@ -1407,64 +1407,67 @@
                                 
                                 <h1 id="&#x4F9D;&#x8D56;">&#x4F9D;&#x8D56;</h1>
 <h2 id="&#x5FC5;&#x987B;&#x4F9D;&#x8D56;">&#x5FC5;&#x987B;&#x4F9D;&#x8D56;</h2>
-<p>JDK 1.5+ <sup><a href="#fn_1" id="reffn_1">1</a></sup></p>
+<p>JDK 1.6+ <sup><a href="#fn_1" id="reffn_1">1</a></sup></p>
 <h2 id="&#x7F3A;&#x7701;&#x4F9D;&#x8D56;">&#x7F3A;&#x7701;&#x4F9D;&#x8D56;</h2>
 <p>&#x901A;&#x8FC7; <code>mvn dependency:tree &gt; dep.log</code> &#x547D;&#x4EE4;&#x5206;&#x6790;&#xFF0C;Dubbo &#x7F3A;&#x7701;&#x4F9D;&#x8D56;&#x4EE5;&#x4E0B;&#x4E09;&#x65B9;&#x5E93;&#xFF1A;</p>
-<pre><code>[INFO] +- com.alibaba:dubbo:jar:2.1.2:compile
-[INFO] |  +- log4j:log4j:jar:1.2.16:compile 
-[INFO] |  +- org.javassist:javassist:jar:3.15.0-GA:compile
-[INFO] |  +- org.springframework:spring:jar:2.5.6.SEC03:compile
-[INFO] |  +- commons-logging:commons-logging:jar:1.1.1:compile
+<pre><code>[INFO] +- com.alibaba:dubbo:jar:2.5.9-SNAPSHOT:compile
+[INFO] |  +- org.springframework:spring-context:jar:4.3.10.RELEASE:compile
+[INFO] |  +- org.javassist:javassist:jar:3.21.0-GA:compile
 [INFO] |  \- org.jboss.netty:netty:jar:3.2.5.Final:compile
 </code></pre><p>&#x8FD9;&#x91CC;&#x6240;&#x6709;&#x4F9D;&#x8D56;&#x90FD;&#x662F;&#x6362;&#x7167; Dubbo &#x7F3A;&#x7701;&#x914D;&#x7F6E;&#x9009;&#x7684;&#xFF0C;&#x8FD9;&#x4E9B;&#x7F3A;&#x7701;&#x503C;&#x662F;&#x57FA;&#x4E8E;&#x7A33;&#x5B9A;&#x6027;&#x548C;&#x6027;&#x80FD;&#x8003;&#x8651;&#x7684;&#x3002;</p>
 <ul>
-<li>log4j.jar &#x548C; commons-logging.jar <sup><a href="#fn_2" id="reffn_2">2</a></sup>: &#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x53BB;&#x6389;&#xFF0C;dubbo &#x672C;&#x8EAB;&#x7684;&#x65E5;&#x5FD7;&#x4F1A;&#x81EA;&#x52A8;&#x5207;&#x6362;&#x4E3A; JDK &#x7684; java.util.logging &#x8F93;&#x51FA;&#x3002;&#x4F46;&#x5982;&#x679C;&#x5176;&#x5B83;&#x4E09;&#x65B9;&#x5E93;&#x6BD4;&#x5982; spring.jar &#x95F4;&#x63A5;&#x4F9D;&#x8D56; commons-logging&#xFF0C;&#x5219;&#x4E0D;&#x80FD;&#x53BB;&#x6389;&#x3002; [...]
 <li>javassist.jar <sup><a href="#fn_3" id="reffn_3">3</a></sup>: &#x5982;&#x679C; <code>&lt;dubbo:provider proxy=&quot;jdk&quot; /&gt;</code> &#x6216; <code>&lt;dubbo:consumer proxy=&quot;jdk&quot; /&gt;</code>&#xFF0C;&#x4EE5;&#x53CA; <code>&lt;dubbo:application compiler=&quot;jdk&quot; /&gt;</code>&#xFF0C;&#x5219;&#x4E0D;&#x9700;&#x8981;&#x3002;</li>
-<li>spring.jar <sup><a href="#fn_4" id="reffn_4">4</a></sup>: &#x5982;&#x679C;&#x7528; <code>ServiceConfig</code> &#x548C; <code>ReferenceConfig</code> &#x7684; API &#x8C03;&#x7528;&#xFF0C;&#x5219;&#x4E0D;&#x9700;&#x8981;&#x3002;</li>
+<li>spring-context.jar <sup><a href="#fn_4" id="reffn_4">4</a></sup>: &#x5982;&#x679C;&#x7528; <code>ServiceConfig</code> &#x548C; <code>ReferenceConfig</code> &#x7684; API &#x8C03;&#x7528;&#xFF0C;&#x5219;&#x4E0D;&#x9700;&#x8981;&#x3002;</li>
 <li>netty.jar <sup><a href="#fn_5" id="reffn_5">5</a></sup>: &#x5982;&#x679C; <code>&lt;dubbo:protocol server=&quot;mina&quot;/&gt;</code> &#x6216; <code>&lt;dubbo:protocol server=&quot;grizzly&quot;/&gt;</code>&#xFF0C;&#x5219;&#x6362;&#x6210; mina.jar &#x6216; grizzly.jar&#x3002;&#x5982;&#x679C; <code>&lt;protocol name=&quot;rmi&quot;/&gt;</code>&#xFF0C;&#x5219;&#x4E0D;&#x9700;&#x8981;&#x3002;</li>
 </ul>
 <h2 id="&#x53EF;&#x9009;&#x4F9D;&#x8D56;">&#x53EF;&#x9009;&#x4F9D;&#x8D56;</h2>
 <p>&#x4EE5;&#x4E0B;&#x4F9D;&#x8D56;&#xFF0C;&#x5728;&#x4E3B;&#x52A8;&#x914D;&#x7F6E;&#x4F7F;&#x7528;&#x76F8;&#x5E94;&#x5B9E;&#x73B0;&#x7B56;&#x7565;&#x65F6;&#x7528;&#x5230;&#xFF0C;&#x9700;&#x81EA;&#x884C;&#x52A0;&#x5165;&#x4F9D;&#x8D56;&#x3002;</p>
 <ul>
+<li>netty-all 4.0.35.Final </li>
 <li>mina: 1.1.7</li>
 <li>grizzly: 2.1.4</li>
-<li>httpclient: 4.1.2</li>
+<li>httpclient: 4.5.3</li>
 <li>hessian_lite: 3.2.1-fixed</li>
-<li>xstream: 1.4.1</li>
-<li>fastjson: 1.1.8</li>
-<li>zookeeper: 3.3.3</li>
-<li>jedis: 2.0.0</li>
+<li>fastjson: 1.2.31</li>
+<li>zookeeper: 3.4.9</li>
+<li>jedis: 2.9.0</li>
 <li>xmemcached: 1.3.6</li>
-<li>jfreechart: 1.0.13</li>
-<li>hessian: 4.0.7</li>
+<li>hessian: 4.0.38</li>
 <li>jetty: 6.1.26</li>
-<li>hibernate-validator: 4.2.0.Final</li>
-<li>zkclient: 0.1</li>
-<li>curator: 1.1.10</li>
-<li>cxf: 2.6.1</li>
+<li>hibernate-validator: 5.4.1.Final</li>
+<li>zkclient: 0.2</li>
+<li>curator: 2.12.0</li>
+<li>cxf: 3.0.14</li>
 <li>thrift: 0.8.0</li>
-<li>servlet: 2.5 <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
-<li>bsf: 3.1 <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
-<li>validation-api: 1.0.0.GA <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
-<li>jcache: 0.4 <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
+<li>servlet: 3.0 <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
+<li>validation-api: 1.1.0.GA <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
+<li>jcache: 1.0.0 <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
+<li>javax.el: 3.0.1-b08 <sup><a href="#fn_6" id="reffn_6">6</a></sup></li>
+<li>kryo: 4.0.1</li>
+<li>kryo-serializers: 0.42</li>
+<li>fst: 2.48-jdk-6</li>
+<li>resteasy: 3.0.19.Final</li>
+<li>tomcat-embed-core: 8.0.11</li>
+<li>slf4j: 1.7.25</li>
+<li>log4j: 1.2.16</li>
 </ul>
 <blockquote id="fn_1">
-<sup>1</sup>. &#x7406;&#x8BBA;&#x4E0A; Dubbo &#x53EF;&#x4EE5;&#x53EA;&#x4F9D;&#x8D56; JDK&#xFF0C;&#x4E0D;&#x4F9D;&#x8D56;&#x4E8E;&#x4EFB;&#x4F55;&#x4E09;&#x65B9;&#x5E93;&#x8FD0;&#x884C;&#xFF0C;&#x53EA;&#x9700;&#x914D;&#x7F6E;&#x4F7F;&#x7528; JDK &#x76F8;&#x5173;&#x5B9E;&#x73B0;&#x7B56;&#x7565;<a href="#reffn_1" title="Jump back to footnote [1] in the text."> &#x21A9;</a>
+<sup>1</sup>. &#x7406;&#x8BBA;&#x4E0A; Dubbo &#x53EF;&#x4EE5;&#x53EA;&#x4F9D;&#x8D56; JDK&#xFF0C;&#x4E0D;&#x4F9D;&#x8D56;&#x4E8E;&#x4EFB;&#x4F55;&#x4E09;&#x65B9;&#x5E93;&#x8FD0;&#x884C;&#xFF0C;&#x53EA;&#x9700;&#x914D;&#x7F6E;&#x4F7F;&#x7528; JDK &#x76F8;&#x5173;&#x5B9E;&#x73B0;&#x7B56;&#x7565;  <a href="#reffn_1" title="Jump back to footnote [1] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_2">
-<sup>2</sup>. &#x65E5;&#x5FD7;&#x8F93;&#x51FA;&#x5305;<a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
+<sup>2</sup>. &#x65E5;&#x5FD7;&#x8F93;&#x51FA;&#x5305;  <a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_3">
-<sup>3</sup>. &#x5B57;&#x8282;&#x7801;&#x751F;&#x6210;<a href="#reffn_3" title="Jump back to footnote [3] in the text."> &#x21A9;</a>
+<sup>3</sup>. &#x5B57;&#x8282;&#x7801;&#x751F;&#x6210;  <a href="#reffn_3" title="Jump back to footnote [3] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_4">
-<sup>4</sup>. &#x914D;&#x7F6E;&#x89E3;&#x6790;<a href="#reffn_4" title="Jump back to footnote [4] in the text."> &#x21A9;</a>
+<sup>4</sup>. &#x914D;&#x7F6E;&#x89E3;&#x6790;  <a href="#reffn_4" title="Jump back to footnote [4] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_5">
-<sup>5</sup>. &#x7F51;&#x7EDC;&#x4F20;&#x8F93;<a href="#reffn_5" title="Jump back to footnote [5] in the text."> &#x21A9;</a>
+<sup>5</sup>. &#x7F51;&#x7EDC;&#x4F20;&#x8F93;  <a href="#reffn_5" title="Jump back to footnote [5] in the text."> &#x21A9;</a>
 </blockquote>
 <blockquote id="fn_6">
-<sup>6</sup>. JEE<a href="#reffn_6" title="Jump back to footnote [6] in the text."> &#x21A9;</a>
+<sup>6</sup>. JEE  <a href="#reffn_6" title="Jump back to footnote [6] in the text."> &#x21A9;</a>
 </blockquote>
 
                                 
@@ -1509,7 +1512,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"3 依赖","level":"1.4","depth":1,"next":{"title":"4 成熟度","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"previous":{"title":"2 快速启动","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":f [...]
+            gitbook.page.hasChanged({"page":{"title":"3 依赖","level":"1.4","depth":1,"next":{"title":"4 成熟度","level":"1.5","depth":1,"path":"maturity.md","ref":"./maturity.md","articles":[]},"previous":{"title":"2 快速启动","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":f [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/index.html b/books/dubbo-user-book/index.html
index 0808234..e356a7f 100644
--- a/books/dubbo-user-book/index.html
+++ b/books/dubbo-user-book/index.html
@@ -1444,7 +1444,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 入门","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{"title":"1.2 需求","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},{"title":"1.3 架构","level":"1.2.3","depth [...]
+            gitbook.page.hasChanged({"page":{"title":"Introduction","level":"1.1","depth":1,"next":{"title":"1 入门","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{"title":"1.2 需求","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},{"title":"1.3 架构","level":"1.2.3","depth [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/maturity.html b/books/dubbo-user-book/maturity.html
index ee930c7..e3d9d7d 100644
--- a/books/dubbo-user-book/maturity.html
+++ b/books/dubbo-user-book/maturity.html
@@ -1998,7 +1998,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"4 成熟度","level":"1.5","depth":1,"next":{"title":"5 配置","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},{"title":"5.2 属性配置","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},{"title":"5.3 API 配置"," [...]
+            gitbook.page.hasChanged({"page":{"title":"4 成熟度","level":"1.5","depth":1,"next":{"title":"5 配置","level":"1.6","depth":1,"path":"configuration/index.md","ref":"./configuration/index.md","articles":[{"title":"5.1 XML 配置","level":"1.6.1","depth":2,"path":"configuration/xml.md","ref":"./configuration/xml.md","articles":[]},{"title":"5.2 属性配置","level":"1.6.2","depth":2,"path":"configuration/properties.md","ref":"./configuration/properties.md","articles":[]},{"title":"5.3 API 配置"," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/perf-test.html b/books/dubbo-user-book/perf-test.html
index 0174dc5..2f847fe 100644
--- a/books/dubbo-user-book/perf-test.html
+++ b/books/dubbo-user-book/perf-test.html
@@ -1795,7 +1795,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"17 性能测试报告","level":"1.18","depth":1,"next":{"title":"18 测试覆盖率报告","level":"1.19","depth":1,"path":"coveragence.md","ref":"./coveragence.md","articles":[]},"previous":{"title":"16 容量规划","level":"1.17","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ig [...]
+            gitbook.page.hasChanged({"page":{"title":"17 性能测试报告","level":"1.18","depth":1,"next":{"title":"18 测试覆盖率报告","level":"1.19","depth":1,"path":"coveragence.md","ref":"./coveragence.md","articles":[]},"previous":{"title":"16 容量规划","level":"1.17","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ig [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/preface/architecture.html b/books/dubbo-user-book/preface/architecture.html
index ad05e97..84fc3f1 100644
--- a/books/dubbo-user-book/preface/architecture.html
+++ b/books/dubbo-user-book/preface/architecture.html
@@ -1554,7 +1554,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.3 架构","level":"1.2.3","depth":2,"next":{"title":"1.4 用法","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"previous":{"title":"1.2 需求","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize [...]
+            gitbook.page.hasChanged({"page":{"title":"1.3 架构","level":"1.2.3","depth":2,"next":{"title":"1.4 用法","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"previous":{"title":"1.2 需求","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/preface/background.html b/books/dubbo-user-book/preface/background.html
index 47deb93..f2185b3 100644
--- a/books/dubbo-user-book/preface/background.html
+++ b/books/dubbo-user-book/preface/background.html
@@ -1459,7 +1459,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.1 背景","level":"1.2.1","depth":2,"next":{"title":"1.2 需求","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"previous":{"title":"1 入门","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{"title":"1.2 需求","level":"1.2.2" [...]
+            gitbook.page.hasChanged({"page":{"title":"1.1 背景","level":"1.2.1","depth":2,"next":{"title":"1.2 需求","level":"1.2.2","depth":2,"path":"preface/requirements.md","ref":"./preface/requirements.md","articles":[]},"previous":{"title":"1 入门","level":"1.2","depth":1,"path":"preface/index.md","ref":"./preface/index.md","articles":[{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},{"title":"1.2 需求","level":"1.2.2" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/preface/index.html b/books/dubbo-user-book/preface/index.html
index ce03c1e..0dec1c6 100644
--- a/books/dubbo-user-book/preface/index.html
+++ b/books/dubbo-user-book/preface/index.html
@@ -1449,7 +1449,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1 入门","level":"1.2","depth":1,"next":{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpe [...]
+            gitbook.page.hasChanged({"page":{"title":"1 入门","level":"1.2","depth":1,"next":{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"previous":{"title":"Introduction","level":"1.1","depth":1,"path":"README.md","ref":"README.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpe [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/preface/requirements.html b/books/dubbo-user-book/preface/requirements.html
index 92971f2..26d2449 100644
--- a/books/dubbo-user-book/preface/requirements.html
+++ b/books/dubbo-user-book/preface/requirements.html
@@ -1455,7 +1455,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.2 需求","level":"1.2.2","depth":2,"next":{"title":"1.3 架构","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"previous":{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
+            gitbook.page.hasChanged({"page":{"title":"1.2 需求","level":"1.2.2","depth":2,"next":{"title":"1.3 架构","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"previous":{"title":"1.1 背景","level":"1.2.1","depth":2,"path":"preface/background.md","ref":"./preface/background.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"ma [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/preface/usage.html b/books/dubbo-user-book/preface/usage.html
index 20b5174..4edf015 100644
--- a/books/dubbo-user-book/preface/usage.html
+++ b/books/dubbo-user-book/preface/usage.html
@@ -1476,7 +1476,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"1.4 用法","level":"1.2.4","depth":2,"next":{"title":"2 快速启动","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"previous":{"title":"1.3 架构","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000 [...]
+            gitbook.page.hasChanged({"page":{"title":"1.4 用法","level":"1.2.4","depth":2,"next":{"title":"2 快速启动","level":"1.3","depth":1,"path":"quick-start.md","ref":"./quick-start.md","articles":[]},"previous":{"title":"1.3 架构","level":"1.2.3","depth":2,"path":"preface/architecture.md","ref":"./preface/architecture.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000 [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/quick-start.html b/books/dubbo-user-book/quick-start.html
index d3a133a..e643d75 100644
--- a/books/dubbo-user-book/quick-start.html
+++ b/books/dubbo-user-book/quick-start.html
@@ -1407,7 +1407,7 @@
                                 
                                 <h1 id="&#x5FEB;&#x901F;&#x542F;&#x52A8;">&#x5FEB;&#x901F;&#x542F;&#x52A8;</h1>
 <p>Dubbo &#x91C7;&#x7528;&#x5168; Spring &#x914D;&#x7F6E;&#x65B9;&#x5F0F;&#xFF0C;&#x900F;&#x660E;&#x5316;&#x63A5;&#x5165;&#x5E94;&#x7528;&#xFF0C;&#x5BF9;&#x5E94;&#x7528;&#x6CA1;&#x6709;&#x4EFB;&#x4F55; API &#x4FB5;&#x5165;&#xFF0C;&#x53EA;&#x9700;&#x7528; Spring &#x52A0;&#x8F7D; Dubbo &#x7684;&#x914D;&#x7F6E;&#x5373;&#x53EF;&#xFF0C;Dubbo &#x57FA;&#x4E8E; Spring &#x7684; Schema &#x6269;&#x5C55;&#x8FDB;&#x884C;&#x52A0;&#x8F7D;&#x3002;</p>
-<p>&#x5982;&#x679C;&#x4E0D;&#x60F3;&#x4F7F;&#x7528; Spring &#x914D;&#x7F6E;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; <a href="../configuration/api.md">API &#x7684;&#x65B9;&#x5F0F;</a> &#x8FDB;&#x884C;&#x8C03;&#x7528;&#x3002;</p>
+<p>&#x5982;&#x679C;&#x4E0D;&#x60F3;&#x4F7F;&#x7528; Spring &#x914D;&#x7F6E;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x8FC7; <a href="configuration/api.html">API &#x7684;&#x65B9;&#x5F0F;</a> &#x8FDB;&#x884C;&#x8C03;&#x7528;&#x3002;</p>
 <h2 id="&#x670D;&#x52A1;&#x63D0;&#x4F9B;&#x8005;">&#x670D;&#x52A1;&#x63D0;&#x4F9B;&#x8005;</h2>
 <p>&#x5B8C;&#x6574;&#x5B89;&#x88C5;&#x6B65;&#x9AA4;&#xFF0C;&#x8BF7;&#x53C2;&#x89C1;&#xFF1A;<a href="http://dubbo.io/books/dubbo-admin-book/install/provider-demo.html" target="_blank">&#x793A;&#x4F8B;&#x63D0;&#x4F9B;&#x8005;&#x5B89;&#x88C5;</a></p>
 <h3 id="&#x5B9A;&#x4E49;&#x670D;&#x52A1;&#x63A5;&#x53E3;">&#x5B9A;&#x4E49;&#x670D;&#x52A1;&#x63A5;&#x53E3;</h3>
@@ -1554,7 +1554,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"2 快速启动","level":"1.3","depth":1,"next":{"title":"3 依赖","level":"1.4","depth":1,"path":"dependencies.md","ref":"./dependencies.md","articles":[]},"previous":{"title":"1.4 用法","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpeci [...]
+            gitbook.page.hasChanged({"page":{"title":"2 快速启动","level":"1.3","depth":1,"next":{"title":"3 依赖","level":"1.4","depth":1,"path":"dependencies.md","ref":"./dependencies.md","articles":[]},"previous":{"title":"1.4 用法","level":"1.2.4","depth":2,"path":"preface/usage.md","ref":"./preface/usage.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpeci [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/recommend.html b/books/dubbo-user-book/recommend.html
index e23a3de..5403084 100644
--- a/books/dubbo-user-book/recommend.html
+++ b/books/dubbo-user-book/recommend.html
@@ -1519,7 +1519,7 @@
 </li>
 </ol>
 <blockquote id="fn_1">
-<sup>1</sup>. &#x914D;&#x7F6E;&#x7684;&#x8986;&#x76D6;&#x89C4;&#x5219;&#xFF1A;1) &#x65B9;&#x6CD5;&#x7EA7;&#x914D;&#x7F6E;&#x522B;&#x4F18;&#x4E8E;&#x63A5;&#x53E3;&#x7EA7;&#x522B;&#xFF0C;&#x5373;&#x5C0F; Scope &#x4F18;&#x5148; 2) Consumer &#x7AEF;&#x914D;&#x7F6E;&#x4F18;&#x4E8E; Provider &#x914D;&#x7F6E;&#xFF0C;&#x4F18;&#x4E8E;&#x5168;&#x5C40;&#x914D;&#x7F6E;&#xFF0C;&#x6700;&#x540E;&#x662F;Dubbo &#x786C;&#x7F16;&#x7801;&#x7684;&#x914D;&#x7F6E;&#x503C;&#xFF08;<a href="configuration.md">Dubb [...]
+<sup>1</sup>. &#x914D;&#x7F6E;&#x7684;&#x8986;&#x76D6;&#x89C4;&#x5219;&#xFF1A;1) &#x65B9;&#x6CD5;&#x7EA7;&#x914D;&#x7F6E;&#x522B;&#x4F18;&#x4E8E;&#x63A5;&#x53E3;&#x7EA7;&#x522B;&#xFF0C;&#x5373;&#x5C0F; Scope &#x4F18;&#x5148; 2) Consumer &#x7AEF;&#x914D;&#x7F6E;&#x4F18;&#x4E8E; Provider &#x914D;&#x7F6E;&#xFF0C;&#x4F18;&#x4E8E;&#x5168;&#x5C40;&#x914D;&#x7F6E;&#xFF0C;&#x6700;&#x540E;&#x662F;Dubbo &#x786C;&#x7F16;&#x7801;&#x7684;&#x914D;&#x7F6E;&#x503C;&#xFF08;<a href="configuration/properti [...]
 </blockquote>
 <blockquote id="fn_2">
 <sup>2</sup>. &#x8868;&#x793A;&#x52A0;&#x4E0A;&#x7B2C;&#x4E00;&#x6B21;&#x8C03;&#x7528;&#xFF0C;&#x4F1A;&#x8C03;&#x7528; 3 &#x6B21;<a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
@@ -1576,7 +1576,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"15 推荐用法","level":"1.16","depth":1,"next":{"title":"16 容量规划","level":"1.17","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"previous":{"title":"14 服务化最佳实践","level":"1.15","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000," [...]
+            gitbook.page.hasChanged({"page":{"title":"15 推荐用法","level":"1.16","depth":1,"next":{"title":"16 容量规划","level":"1.17","depth":1,"path":"capacity-plan.md","ref":"./capacity-plan.md","articles":[]},"previous":{"title":"14 服务化最佳实践","level":"1.15","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000," [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/api.html b/books/dubbo-user-book/references/api.html
index 6fed699..33ddd30 100644
--- a/books/dubbo-user-book/references/api.html
+++ b/books/dubbo-user-book/references/api.html
@@ -1483,7 +1483,7 @@ com.alibaba.dubbo.rpc.service.GenericException
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"7 API 参考手册","level":"1.8","depth":1,"next":{"title":"8 schema 配置参考手册","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md [...]
+            gitbook.page.hasChanged({"page":{"title":"7 API 参考手册","level":"1.8","depth":1,"next":{"title":"8 schema 配置参考手册","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/maven.html b/books/dubbo-user-book/references/maven.html
index 013ae31..c96aedd 100644
--- a/books/dubbo-user-book/references/maven.html
+++ b/books/dubbo-user-book/references/maven.html
@@ -1460,7 +1460,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"13 maven 插件参考手册","level":"1.14","depth":1,"next":{"title":"14 服务化最佳实践","level":"1.15","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"previous":{"title":"12 在线运维命令-QOS","level":"1.13","depth":1,"path":"references/qos.md","ref":"./references/qos.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
+            gitbook.page.hasChanged({"page":{"title":"13 maven 插件参考手册","level":"1.14","depth":1,"next":{"title":"14 服务化最佳实践","level":"1.15","depth":1,"path":"best-practice.md","ref":"./best-practice.md","articles":[]},"previous":{"title":"12 在线运维命令-QOS","level":"1.13","depth":1,"path":"references/qos.md","ref":"./references/qos.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxInde [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/dubbo.html b/books/dubbo-user-book/references/protocol/dubbo.html
index 4383c67..012ed40 100644
--- a/books/dubbo-user-book/references/protocol/dubbo.html
+++ b/books/dubbo-user-book/references/protocol/dubbo.html
@@ -1563,7 +1563,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"next":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"previous":{"title":"9 协议参考手册","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref": [...]
+            gitbook.page.hasChanged({"page":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"next":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"previous":{"title":"9 协议参考手册","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref": [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/hessian.html b/books/dubbo-user-book/references/protocol/hessian.html
index cadca76..c8ac958 100644
--- a/books/dubbo-user-book/references/protocol/hessian.html
+++ b/books/dubbo-user-book/references/protocol/hessian.html
@@ -1497,7 +1497,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"next":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"previous":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
+            gitbook.page.hasChanged({"page":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"next":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"previous":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":"./references/protocol/rmi.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/http.html b/books/dubbo-user-book/references/protocol/http.html
index 1a1851e..3ca4654 100644
--- a/books/dubbo-user-book/references/protocol/http.html
+++ b/books/dubbo-user-book/references/protocol/http.html
@@ -1493,7 +1493,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.4 http://","level":"1.10.4","depth":2,"next":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"previous":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"pl [...]
+            gitbook.page.hasChanged({"page":{"title":"9.4 http://","level":"1.10.4","depth":2,"next":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"previous":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"pl [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/introduction.html b/books/dubbo-user-book/references/protocol/introduction.html
index b17687b..5741a86 100644
--- a/books/dubbo-user-book/references/protocol/introduction.html
+++ b/books/dubbo-user-book/references/protocol/introduction.html
@@ -1450,7 +1450,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9 协议参考手册","level":"1.10","depth":1,"next":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"previous":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[ [...]
+            gitbook.page.hasChanged({"page":{"title":"9 协议参考手册","level":"1.10","depth":1,"next":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"previous":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/memcached.html b/books/dubbo-user-book/references/protocol/memcached.html
index 545968f..0171e17 100644
--- a/books/dubbo-user-book/references/protocol/memcached.html
+++ b/books/dubbo-user-book/references/protocol/memcached.html
@@ -1481,7 +1481,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;memcached://10.20.
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"next":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"previous":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pl [...]
+            gitbook.page.hasChanged({"page":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"next":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"previous":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pl [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/redis.html b/books/dubbo-user-book/references/protocol/redis.html
index b02a3d9..da6d340 100644
--- a/books/dubbo-user-book/references/protocol/redis.html
+++ b/books/dubbo-user-book/references/protocol/redis.html
@@ -1481,7 +1481,7 @@ registry.register(URL.valueOf(<span class="hljs-string">&quot;redis://10.20.153.
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.8 redis://","level":"1.10.8","depth":2,"next":{"title":"10 注册中心参考手册","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"path":"references/regi [...]
+            gitbook.page.hasChanged({"page":{"title":"9.8 redis://","level":"1.10.8","depth":2,"next":{"title":"10 注册中心参考手册","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"path":"references/regi [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/rmi.html b/books/dubbo-user-book/references/protocol/rmi.html
index e848244..019cf72 100644
--- a/books/dubbo-user-book/references/protocol/rmi.html
+++ b/books/dubbo-user-book/references/protocol/rmi.html
@@ -1512,7 +1512,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"next":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"previous":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugin [...]
+            gitbook.page.hasChanged({"page":{"title":"9.2 rmi//","level":"1.10.2","depth":2,"next":{"title":"9.3 hessian://","level":"1.10.3","depth":2,"path":"references/protocol/hessian.md","ref":"./references/protocol/hessian.md","articles":[]},"previous":{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plugin [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/thrift.html b/books/dubbo-user-book/references/protocol/thrift.html
index aae55d4..408e08e 100644
--- a/books/dubbo-user-book/references/protocol/thrift.html
+++ b/books/dubbo-user-book/references/protocol/thrift.html
@@ -1477,7 +1477,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"next":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"path":"references/protocol/memcached.md","ref":"./references/protocol/memcached.md","articles":[]},"previous":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
+            gitbook.page.hasChanged({"page":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"next":{"title":"9.7 memcached://","level":"1.10.7","depth":2,"path":"references/protocol/memcached.md","ref":"./references/protocol/memcached.md","articles":[]},"previous":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"path":"references/protocol/webservice.md","ref":"./references/protocol/webservice.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/protocol/webservice.html b/books/dubbo-user-book/references/protocol/webservice.html
index 3565a70..85d5332 100644
--- a/books/dubbo-user-book/references/protocol/webservice.html
+++ b/books/dubbo-user-book/references/protocol/webservice.html
@@ -1528,7 +1528,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"next":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"previous":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plug [...]
+            gitbook.page.hasChanged({"page":{"title":"9.5 webservice://","level":"1.10.5","depth":2,"next":{"title":"9.6 thrift://","level":"1.10.6","depth":2,"path":"references/protocol/thrift.md","ref":"./references/protocol/thrift.md","articles":[]},"previous":{"title":"9.4 http://","level":"1.10.4","depth":2,"path":"references/protocol/http.md","ref":"./references/protocol/http.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"plug [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/qos.html b/books/dubbo-user-book/references/qos.html
index 44671b6..25f4daa 100644
--- a/books/dubbo-user-book/references/qos.html
+++ b/books/dubbo-user-book/references/qos.html
@@ -1554,7 +1554,7 @@ dubbo&gt;
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"12 在线运维命令-QOS","level":"1.13","depth":1,"next":{"title":"13 maven 插件参考手册","level":"1.14","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"previous":{"title":"11 telnet 命令参考手册","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"12 在线运维命令-QOS","level":"1.13","depth":1,"next":{"title":"13 maven 插件参考手册","level":"1.14","depth":1,"path":"references/maven.md","ref":"./references/maven.md","articles":[]},"previous":{"title":"11 telnet 命令参考手册","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/registry/introduction.html b/books/dubbo-user-book/references/registry/introduction.html
index 023e943..9293f73 100644
--- a/books/dubbo-user-book/references/registry/introduction.html
+++ b/books/dubbo-user-book/references/registry/introduction.html
@@ -1450,7 +1450,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10 注册中心参考手册","level":"1.11","depth":1,"next":{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"previous":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[ [...]
+            gitbook.page.hasChanged({"page":{"title":"10 注册中心参考手册","level":"1.11","depth":1,"next":{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"previous":{"title":"9.8 redis://","level":"1.10.8","depth":2,"path":"references/protocol/redis.md","ref":"./references/protocol/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/registry/multicast.html b/books/dubbo-user-book/references/registry/multicast.html
index a2dbdfa..ae171b4 100644
--- a/books/dubbo-user-book/references/registry/multicast.html
+++ b/books/dubbo-user-book/references/registry/multicast.html
@@ -1472,7 +1472,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"next":{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"previous":{"title":"10 注册中心参考手册","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path [...]
+            gitbook.page.hasChanged({"page":{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"next":{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"previous":{"title":"10 注册中心参考手册","level":"1.11","depth":1,"path":"references/registry/introduction.md","ref":"./references/registry/introduction.md","articles":[{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/registry/redis.html b/books/dubbo-user-book/references/registry/redis.html
index 85e2c21..17a6b22 100644
--- a/books/dubbo-user-book/references/registry/redis.html
+++ b/books/dubbo-user-book/references/registry/redis.html
@@ -1508,7 +1508,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.3 Redis 注册中心","level":"1.11.3","depth":2,"next":{"title":"10.4 Simple 注册中心","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"previous":{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{} [...]
+            gitbook.page.hasChanged({"page":{"title":"10.3 Redis 注册中心","level":"1.11.3","depth":2,"next":{"title":"10.4 Simple 注册中心","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"previous":{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"path":"references/registry/zookeeper.md","ref":"./references/registry/zookeeper.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{} [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/registry/simple.html b/books/dubbo-user-book/references/registry/simple.html
index c43698f..3d1a516 100644
--- a/books/dubbo-user-book/references/registry/simple.html
+++ b/books/dubbo-user-book/references/registry/simple.html
@@ -1481,7 +1481,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.4 Simple 注册中心","level":"1.11.4","depth":2,"next":{"title":"11 telnet 命令参考手册","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"previous":{"title":"10.3 Redis 注册中心","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"10.4 Simple 注册中心","level":"1.11.4","depth":2,"next":{"title":"11 telnet 命令参考手册","level":"1.12","depth":1,"path":"references/telnet.md","ref":"./references/telnet.md","articles":[]},"previous":{"title":"10.3 Redis 注册中心","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/registry/zookeeper.html b/books/dubbo-user-book/references/registry/zookeeper.html
index 2d00df3..f89a2c8 100644
--- a/books/dubbo-user-book/references/registry/zookeeper.html
+++ b/books/dubbo-user-book/references/registry/zookeeper.html
@@ -1539,7 +1539,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"next":{"title":"10.3 Redis 注册中心","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"previous":{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"10.2 Zookeeper 注册中心","level":"1.11.2","depth":2,"next":{"title":"10.3 Redis 注册中心","level":"1.11.3","depth":2,"path":"references/registry/redis.md","ref":"./references/registry/redis.md","articles":[]},"previous":{"title":"10.1 Multicast 注册中心","level":"1.11.1","depth":2,"path":"references/registry/multicast.md","ref":"./references/registry/multicast.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/telnet.html b/books/dubbo-user-book/references/telnet.html
index 591aa8d..7df50d9 100644
--- a/books/dubbo-user-book/references/telnet.html
+++ b/books/dubbo-user-book/references/telnet.html
@@ -1413,7 +1413,7 @@
 <p>&#x6216;&#x8005;&#xFF1A;</p>
 <pre><code class="lang-sh"><span class="hljs-built_in">echo</span> status | nc -i 1 localhost 20880
 </code></pre>
-<p>status&#x547D;&#x4EE4;&#x6240;&#x68C0;&#x67E5;&#x7684;&#x8D44;&#x6E90;&#x4E5F;&#x53EF;&#x4EE5;&#x6269;&#x5C55;&#xFF0C;&#x53C2;&#x89C1;&#xFF1A;<a href="http://dubbo.io/developer-guide/SPI%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C/%E7%8A%B6%E6%80%81%E6%A3%80%E6%9F%A5%E6%89%A9%E5%B1%95.html" target="_blank">&#x6269;&#x5C55;&#x53C2;&#x8003;&#x624B;&#x518C;</a>&#x3002;</p>
+<p>status&#x547D;&#x4EE4;&#x6240;&#x68C0;&#x67E5;&#x7684;&#x8D44;&#x6E90;&#x4E5F;&#x53EF;&#x4EE5;&#x6269;&#x5C55;&#xFF0C;&#x53C2;&#x89C1;&#xFF1A;<a href="http://dubbo.io/books/dubbo-dev-book/impls/status-checker.html" target="_blank">&#x6269;&#x5C55;&#x53C2;&#x8003;&#x624B;&#x518C;</a>&#x3002;</p>
 <h2 id="&#x547D;&#x4EE4;">&#x547D;&#x4EE4;</h2>
 <p>&#x4EE5;&#x4E0B;&#x5C55;&#x793A;&#x4E86; dubbo &#x5185;&#x5EFA;&#x7684; telnet &#x547D;&#x4EE4;&#x7684;&#x8BF4;&#x660E;&#x548C;&#x7528;&#x6CD5;&#xFF0C;&#x6B64;&#x5916;&#xFF0C;telnet &#x547D;&#x4EE4;&#x8FD8;&#x652F;&#x6301;&#x7528;&#x6237;&#x81EA;&#x884C;&#x6269;&#x5C55;&#xFF0C;&#x53C2;&#x89C1;&#xFF1A;<a href="http://dubbo.io/books/dubbo-dev-book/impls/telnet-handler.html" target="_blank">Telnet &#x547D;&#x4EE4;&#x6269;&#x5C55;</a>&#x3002;</p>
 <h3 id="ls"><code>ls</code></h3>
@@ -1524,7 +1524,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"11 telnet 命令参考手册","level":"1.12","depth":1,"next":{"title":"12 在线运维命令-QOS","level":"1.13","depth":1,"path":"references/qos.md","ref":"./references/qos.md","articles":[]},"previous":{"title":"10.4 Simple 注册中心","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlig [...]
+            gitbook.page.hasChanged({"page":{"title":"11 telnet 命令参考手册","level":"1.12","depth":1,"next":{"title":"12 在线运维命令-QOS","level":"1.13","depth":1,"path":"references/qos.md","ref":"./references/qos.md","articles":[]},"previous":{"title":"10.4 Simple 注册中心","level":"1.11.4","depth":2,"path":"references/registry/simple.md","ref":"./references/registry/simple.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlig [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-application.html b/books/dubbo-user-book/references/xml/dubbo-application.html
index 91a34c8..e32371d 100644
--- a/books/dubbo-user-book/references/xml/dubbo-application.html
+++ b/books/dubbo-user-book/references/xml/dubbo-application.html
@@ -1590,7 +1590,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"next":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"previous":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"next":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"previous":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-argument.html b/books/dubbo-user-book/references/xml/dubbo-argument.html
index cc1481d..e304d8c 100644
--- a/books/dubbo-user-book/references/xml/dubbo-argument.html
+++ b/books/dubbo-user-book/references/xml/dubbo-argument.html
@@ -1544,7 +1544,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"next":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"previous":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
+            gitbook.page.hasChanged({"page":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"next":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"path":"references/xml/dubbo-parameter.md","ref":"./references/xml/dubbo-parameter.md","articles":[]},"previous":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-consumer.html b/books/dubbo-user-book/references/xml/dubbo-consumer.html
index 70baa14..4cc94c6 100644
--- a/books/dubbo-user-book/references/xml/dubbo-consumer.html
+++ b/books/dubbo-user-book/references/xml/dubbo-consumer.html
@@ -1690,7 +1690,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"next":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"previous":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables" [...]
+            gitbook.page.hasChanged({"page":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"next":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"path":"references/xml/dubbo-method.md","ref":"./references/xml/dubbo-method.md","articles":[]},"previous":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-method.html b/books/dubbo-user-book/references/xml/dubbo-method.html
index bbfdd07..38468c2 100644
--- a/books/dubbo-user-book/references/xml/dubbo-method.html
+++ b/books/dubbo-user-book/references/xml/dubbo-method.html
@@ -1675,7 +1675,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"next":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"path":"references/xml/dubbo-argument.md","ref":"./references/xml/dubbo-argument.md","articles":[]},"previous":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","vari [...]
+            gitbook.page.hasChanged({"page":{"title":"8.10 dubbo:method","level":"1.9.10","depth":2,"next":{"title":"8.11 dubbo:argument","level":"1.9.11","depth":2,"path":"references/xml/dubbo-argument.md","ref":"./references/xml/dubbo-argument.md","articles":[]},"previous":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","vari [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-module.html b/books/dubbo-user-book/references/xml/dubbo-module.html
index b7417ce..f3dfdf1 100644
--- a/books/dubbo-user-book/references/xml/dubbo-module.html
+++ b/books/dubbo-user-book/references/xml/dubbo-module.html
@@ -1550,7 +1550,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"next":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"previous":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default", [...]
+            gitbook.page.hasChanged({"page":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"next":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"path":"references/xml/dubbo-provider.md","ref":"./references/xml/dubbo-provider.md","articles":[]},"previous":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default", [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-monitor.html b/books/dubbo-user-book/references/xml/dubbo-monitor.html
index bd6625b..bb3bd46 100644
--- a/books/dubbo-user-book/references/xml/dubbo-monitor.html
+++ b/books/dubbo-user-book/references/xml/dubbo-monitor.html
@@ -1530,7 +1530,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"next":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"previous":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default" [...]
+            gitbook.page.hasChanged({"page":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"next":{"title":"8.6 dubbo:application","level":"1.9.6","depth":2,"path":"references/xml/dubbo-application.md","ref":"./references/xml/dubbo-application.md","articles":[]},"previous":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-parameter.html b/books/dubbo-user-book/references/xml/dubbo-parameter.html
index bcf08e1..d50004c 100644
--- a/books/dubbo-user-book/references/xml/dubbo-parameter.html
+++ b/books/dubbo-user-book/references/xml/dubbo-parameter.html
@@ -1538,7 +1538,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"next":{"title":"9 协议参考手册","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":" [...]
+            gitbook.page.hasChanged({"page":{"title":"8.12 dubbo:parameter","level":"1.9.12","depth":2,"next":{"title":"9 协议参考手册","level":"1.10","depth":1,"path":"references/protocol/introduction.md","ref":"./references/protocol/introduction.md","articles":[{"title":"9.1 dubbo://","level":"1.10.1","depth":2,"path":"references/protocol/dubbo.md","ref":"./references/protocol/dubbo.md","articles":[]},{"title":"9.2 rmi//","level":"1.10.2","depth":2,"path":"references/protocol/rmi.md","ref":" [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-protocol.html b/books/dubbo-user-book/references/xml/dubbo-protocol.html
index d84e347..a59a772 100644
--- a/books/dubbo-user-book/references/xml/dubbo-protocol.html
+++ b/books/dubbo-user-book/references/xml/dubbo-protocol.html
@@ -1750,7 +1750,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"next":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"previous":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
+            gitbook.page.hasChanged({"page":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"next":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"path":"references/xml/dubbo-registry.md","ref":"./references/xml/dubbo-registry.md","articles":[]},"previous":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","var [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-provider.html b/books/dubbo-user-book/references/xml/dubbo-provider.html
index 4ede29e..7704d19 100644
--- a/books/dubbo-user-book/references/xml/dubbo-provider.html
+++ b/books/dubbo-user-book/references/xml/dubbo-provider.html
@@ -1951,7 +1951,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"next":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"previous":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
+            gitbook.page.hasChanged({"page":{"title":"8.8 dubbo:provider","level":"1.9.8","depth":2,"next":{"title":"8.9 dubbo:consumer","level":"1.9.9","depth":2,"path":"references/xml/dubbo-consumer.md","ref":"./references/xml/dubbo-consumer.md","articles":[]},"previous":{"title":"8.7 dubbo:module","level":"1.9.7","depth":2,"path":"references/xml/dubbo-module.md","ref":"./references/xml/dubbo-module.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{ [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-reference.html b/books/dubbo-user-book/references/xml/dubbo-reference.html
index 5d52666..d65707d 100644
--- a/books/dubbo-user-book/references/xml/dubbo-reference.html
+++ b/books/dubbo-user-book/references/xml/dubbo-reference.html
@@ -1780,7 +1780,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"next":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"previous":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variable [...]
+            gitbook.page.hasChanged({"page":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"next":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"previous":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variable [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-registry.html b/books/dubbo-user-book/references/xml/dubbo-registry.html
index edb1d7d..78fd417 100644
--- a/books/dubbo-user-book/references/xml/dubbo-registry.html
+++ b/books/dubbo-user-book/references/xml/dubbo-registry.html
@@ -1660,7 +1660,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"next":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"previous":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
+            gitbook.page.hasChanged({"page":{"title":"8.4 dubbo:registry","level":"1.9.4","depth":2,"next":{"title":"8.5 dubbo:monitor","level":"1.9.5","depth":2,"path":"references/xml/dubbo-monitor.md","ref":"./references/xml/dubbo-monitor.md","articles":[]},"previous":{"title":"8.3 dubbo:protocol","level":"1.9.3","depth":2,"path":"references/xml/dubbo-protocol.md","ref":"./references/xml/dubbo-protocol.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/dubbo-service.html b/books/dubbo-user-book/references/xml/dubbo-service.html
index e97e813..8eb0924 100644
--- a/books/dubbo-user-book/references/xml/dubbo-service.html
+++ b/books/dubbo-user-book/references/xml/dubbo-service.html
@@ -1819,7 +1819,7 @@ table tr:hover {
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"next":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"previous":{"title":"8 schema 配置参考手册","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"reference [...]
+            gitbook.page.hasChanged({"page":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"next":{"title":"8.2 dubbo:reference","level":"1.9.2","depth":2,"path":"references/xml/dubbo-reference.md","ref":"./references/xml/dubbo-reference.md","articles":[]},"previous":{"title":"8 schema 配置参考手册","level":"1.9","depth":1,"path":"references/xml/introduction.md","ref":"./references/xml/introduction.md","articles":[{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"reference [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/references/xml/introduction.html b/books/dubbo-user-book/references/xml/introduction.html
index d0168e7..90c5a93 100644
--- a/books/dubbo-user-book/references/xml/introduction.html
+++ b/books/dubbo-user-book/references/xml/introduction.html
@@ -1466,7 +1466,7 @@
     <script>
         var gitbook = gitbook || [];
         gitbook.push(function() {
-            gitbook.page.hasChanged({"page":{"title":"8 schema 配置参考手册","level":"1.9","depth":1,"next":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"previous":{"title":"7 API 参考手册","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight [...]
+            gitbook.page.hasChanged({"page":{"title":"8 schema 配置参考手册","level":"1.9","depth":1,"next":{"title":"8.1 dubbo:service","level":"1.9.1","depth":2,"path":"references/xml/dubbo-service.md","ref":"./references/xml/dubbo-service.md","articles":[]},"previous":{"title":"7 API 参考手册","level":"1.8","depth":1,"path":"references/api.md","ref":"./references/api.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight [...]
         });
     </script>
 </div>
diff --git a/books/dubbo-user-book/search_index.json b/books/dubbo-user-book/search_index.json
index 5fa9367..08d8541 100644
--- a/books/dubbo-user-book/search_index.json
+++ b/books/dubbo-user-book/search_index.json
@@ -1 +1 @@
-{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["introduct","如果你正依赖dubbo作为你业务工程的rpc通信框架,这里可以作为你的参考手册","这篇文档详细讲解了dubbo的使用,基本涵盖dubbo的所有功能特性。"],"preface/":["1","入门"],"preface/background.html":["1.1","分布式服务架构","单一应用架构","垂直应用架构","当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(rpc)是关键。","当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心 [...]
\ No newline at end of file
+{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["introduct","如果你正依赖dubbo作为你业务工程的rpc通信框架,这里可以作为你的参考手册","这篇文档详细讲解了dubbo的使用,基本涵盖dubbo的所有功能特性。"],"preface/":["1","入门"],"preface/background.html":["1.1","分布式服务架构","单一应用架构","垂直应用架构","当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(rpc)是关键。","当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心 [...]
\ No newline at end of file
diff --git a/books/dubbo-user-book/simple-monitor.html b/books/dubbo-user-book/simple-monitor.html
new file mode 100644
index 0000000..ec75426
--- /dev/null
+++ b/books/dubbo-user-book/simple-monitor.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="UTF-8">
+    <title>Apache Dubbo (incubating)</title>
+<!-- Begin Jekyll SEO tag v2.3.0 -->
+<title>Apache Dubbo (incubating) | Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</title>
+<meta property="og:title" content="Apache Dubbo (incubating)" />
+<meta property="og:locale" content="en_US" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:site_name" content="Apache Dubbo (incubating)" />
+<script type="application/ld+json">
+{"name":null,"description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebPage","url":"/books/dubbo-user-book/simple-monitor.html","publisher":null,"image":null,"headline":"Apache Dubbo (incubating)","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+<!-- End Jekyll SEO tag -->
+
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="theme-color" content="#157878">
+    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
+      <!--<script>-->
+      <!--var _hmt = _hmt || [];-->
+      <!--(function() {-->
+      <!--var hm = document.createElement("script");-->
+      <!--hm.src = "https://hm.baidu.com/hm.js?5d37fba14b64e6bc8e0be39b4a08a59d";-->
+      <!--var s = document.getElementsByTagName("script")[0]; -->
+      <!--s.parentNode.insertBefore(hm, s);-->
+      <!--})();-->
+      <!--</script>-->
+  </head>
+  <body>
+    <section class="page-header">
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
+      <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
+        <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
+      
+      
+    </section>
+
+    <section class="main-content">
+      <blockquote>
+  <p><img src="sources/images/check.gif" alt="warning" />监控中心也是一个标准的Dubbo服务,可以通过注册中心发现,也可以直连。</p>
+</blockquote>
+
+<blockquote>
+  <p><img src="sources/images/check.gif" alt="warning" /><a href="admin-guide-install-manual#简易注册中心安装">简易注册中心安装</a></p>
+</blockquote>
+
+<ol>
+  <li>
+    <p>暴露一个简单监控中心服务到注册中心: (如果是用安装包,不需要自己写这个配置,如果是自己实现监控中心,则需要)</p>
+
+    <p>```xml</p>
+  </li>
+</ol>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+     
+    <!-- 当前应用信息配置 -->
+    <dubbo:application name="simple-monitor" />
+     
+    <!-- 连接注册中心配置 -->
+    <dubbo:registry address="127.0.0.1:9090" />
+     
+    <!-- 暴露服务协议配置 -->
+    <dubbo:protocol port="7070" />
+     
+    <!-- 暴露服务配置 -->
+    <dubbo:service interface="com.alibaba.dubbo.monitor.MonitorService" ref="monitorService" />
+     
+    <bean id="monitorService" class="com.alibaba.dubbo.monitor.simple.SimpleMonitorService" />
+</beans>
+<p>```</p>
+
+<ol>
+  <li>
+    <p>通过注册中心发现监控中心服务:</p>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;dubbo:monitor</span> <span class="na">protocol=</span><span class="s">"registry"</span> <span class="nt">/&gt;</span>
+</code></pre></div>    </div>
+
+    <p>或</p>
+
+    <blockquote>
+      <p>dubbo.properties</p>
+    </blockquote>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> dubbo.monitor.protocol=registry
+</code></pre></div>    </div>
+  </li>
+  <li>
+    <p>暴露一个简单监控中心服务,但不注册到注册中心: (如果是用安装包,不需要自己写这个配置,如果是自己实现监控中心,则需要)</p>
+
+    <p>```xml</p>
+  </li>
+</ol>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+     
+    <!-- 当前应用信息配置 -->
+    <dubbo:application name="simple-monitor" />
+     
+    <!-- 暴露服务协议配置 -->
+    <dubbo:protocol port="7070" />
+     
+    <!-- 暴露服务配置 -->
+    <dubbo:service interface="com.alibaba.dubbo.monitor.MonitorService" ref="monitorService" registry="N/A" />
+     
+    <bean id="monitorService" class="com.alibaba.dubbo.monitor.simple.SimpleMonitorService" />   
+</beans>
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>```
+</code></pre></div></div>
+
+<ol>
+  <li>
+    <p>直连监控中心服务</p>
+
+    <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code> <span class="nt">&lt;dubbo:monitor</span> <span class="na">address=</span><span class="s">"dubbo://127.0.0.1:7070/com.alibaba.dubbo.monitor.MonitorService"</span> <span class="nt">/&gt;</span>
+</code></pre></div>    </div>
+
+    <p>或:</p>
+
+    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code> &lt;dubbo:monitor <span class="nv">address</span><span class="o">=</span><span class="s2">"127.0.0.1:7070"</span> /&gt;
+</code></pre></div>    </div>
+
+    <p>或:</p>
+
+    <p><strong>dubbo.properties</strong></p>
+
+    <div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code> dubbo.monitor.address<span class="o">=</span>127.0.0.1:7070
+</code></pre></div>    </div>
+  </li>
+</ol>
+
+
+
+      <footer class="site-footer">
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
+      </footer>
+    </section>
+
+    
+      <script type="text/javascript">
+        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+        ga('create', 'UA-112489517-1', 'auto');
+        ga('send', 'pageview');
+      </script>
+    
+  </body>
+</html>

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 08/08: Remove index.html before deploy.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit c086e50732e4226213192a3461b33b08d6e709a5
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Fri Apr 6 15:18:38 2018 +0800

    Remove index.html before deploy.
---
 script/deploy | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/script/deploy b/script/deploy
index f609ed5..7187a5c 100755
--- a/script/deploy
+++ b/script/deploy
@@ -26,6 +26,8 @@ git_book_dir="${parent_dir}/incubator-dubbo-docs"
 
 saved_dir=${git_book_dir}
 
+rm -f ${base_dir}/index.html
+
 if [ -d ${git_book_dir} ]
 then
    echo "updating '${base_dir}'"

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 04/08: Hide download button and add trademarks description.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit 2b2e05c1dad170f6f10267ba8c26dea847d53acb
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Fri Apr 6 14:32:56 2018 +0800

    Hide download button and add trademarks description.
---
 index.html | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/index.html b/index.html
index 8e66b1f..3420386 100644
--- a/index.html
+++ b/index.html
@@ -2,23 +2,23 @@
 <html lang="en-US">
   <head>
     <meta charset="UTF-8">
-
+    <title>Apache Dubbo (incubating)</title>
 <!-- Begin Jekyll SEO tag v2.3.0 -->
-<title>Apache Dubbo (incubating)</title>
+<title>Overview | Apache Dubbo (incubating)</title>
 <meta property="og:title" content="Overview" />
 <meta property="og:locale" content="en_US" />
-<meta name="description" content="a high-performance, java based, open source RPC framework" />
-<meta property="og:description" content="a high-performance, java based, open source RPC framework" />
+<meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
+<meta property="og:description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework." />
 <meta property="og:site_name" content="Apache Dubbo (incubating)" />
 <script type="application/ld+json">
-{"name":"Apache Dubbo (incubating)","description":"a high-performance, java based, open source RPC framework","author":null,"@type":"WebSite","url":"/","publisher":null,"image":null,"headline":"Overview","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
+{"name":"Apache Dubbo (incubating)","description":"Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.","author":null,"@type":"WebSite","url":"/","publisher":null,"image":null,"headline":"Overview","dateModified":null,"datePublished":null,"sameAs":null,"mainEntityOfPage":null,"@context":"http://schema.org"}</script>
 <!-- End Jekyll SEO tag -->
 
-    <meta name="description" content="a high-performance, java based, open source RPC framework"/>
+    <meta name="description" content="Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework."/>
     <meta name="viewport" content="width=device-width, initial-scale=1">
     <meta name="theme-color" content="#157878">
     <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
-    <link rel="stylesheet" href="/assets/css/style.css?v=a67e4739268c08ba4cea72ffcdaa0efc61eda3eb">
+    <link rel="stylesheet" href="/assets/css/style.css?v=5e4e78ddaf4ea9e9a1a5bb0ded1eae4ac241ca64">
       <!--<script>-->
       <!--var _hmt = _hmt || [];-->
       <!--(function() {-->
@@ -33,9 +33,10 @@
     <section class="page-header">
       <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>Apache Dubbo (incubating)</h1>
       <h2 class="project-tagline">Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.</h2>
+      
         <a href="https://github.com/apache/incubator-dubbo" class="btn">View on GitHub</a>
-        <a href="https://github.com/apache/incubator-dubbo/zipball/master" class="btn">Download .zip</a>
-        <a href="https://github.com/apache/incubator-dubbo/tarball/master" class="btn">Download .tar.gz</a>
+      
+      
     </section>
 
     <section class="main-content">
@@ -188,7 +189,7 @@
 
 
       <footer class="site-footer">
-          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation.</span>
+          <span class="site-footer-credits">Copyright © 2018 The Apache Software Foundation. Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</span>
       </footer>
     </section>
 

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 03/08: Polish branding.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit fe0cad68a0e72a61b6053dbac6b102b68fbe7f84
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Fri Apr 6 14:32:20 2018 +0800

    Polish branding.
---
 _config.yml           | 2 +-
 _config_build.yml     | 2 +-
 _layouts/default.html | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/_config.yml b/_config.yml
index 77db95e..2382b02 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,5 +1,5 @@
 title: Apache Dubbo (incubating)
-description: a high-performance, java based, open source RPC framework
+description: Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.
 show_downloads: false
 google_analytics: UA-112489517-1
 theme: jekyll-theme-cayman
diff --git a/_config_build.yml b/_config_build.yml
index 77db95e..2382b02 100644
--- a/_config_build.yml
+++ b/_config_build.yml
@@ -1,5 +1,5 @@
 title: Apache Dubbo (incubating)
-description: a high-performance, java based, open source RPC framework
+description: Apache Dubbo™ (incubating) is a high-performance, java based, open source RPC framework.
 show_downloads: false
 google_analytics: UA-112489517-1
 theme: jekyll-theme-cayman
diff --git a/_layouts/default.html b/_layouts/default.html
index 0c8b7c4..a7471f9 100644
--- a/_layouts/default.html
+++ b/_layouts/default.html
@@ -2,7 +2,7 @@
 <html lang="{{ site.lang | default: "en-US" }}">
   <head>
     <meta charset="UTF-8">
-
+    <title>{{ site.title }}</title>
 {% seo %}
     <meta name="description" content="{{ page.description | default: site.description | default: site.github.project_tagline }}"/>
     <meta name="viewport" content="width=device-width, initial-scale=1">
@@ -21,7 +21,7 @@
   </head>
   <body>
     <section class="page-header">
-      <h1 class="project-name">{{ site.title | default: site.github.repository_name }}</h1>
+      <h1 class="project-name"><a href="http://www.apache.org"><img src="images//asf-feather.svg" title="Apache Software Foundation" alt="Apache Software Foundation" style="width: 50px;vertical-align: bottom;" /></a>{{ site.title | default: site.github.repository_name }}</h1>
       <h2 class="project-tagline">{{ site.description | default: site.github.project_tagline }}</h2>
       {% if site.github.is_project_page %}
         <a href="{{ site.github.repository_url }}" class="btn">View on GitHub</a>

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 05/08: Ignore _site directory.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit bf27614b5e2058663464410989177377c9c77d79
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Fri Apr 6 14:33:56 2018 +0800

    Ignore _site directory.
---
 .gitignore | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitignore b/.gitignore
index 6f25b01..6f556b4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-*/_site
+_site
 .sass-cache
 Gemfile.lock
 *.gem

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.

[incubator-dubbo-website] 01/08: Do not show download button according to ASF policy.

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

huxing pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-website.git

commit d88c9be9dd35699ddf26b83577303e1883a112cd
Author: Huxing Zhang <hu...@gmail.com>
AuthorDate: Thu Apr 5 23:46:52 2018 +0800

    Do not show download button according to ASF policy.
---
 _config.yml       | 2 +-
 _config_build.yml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/_config.yml b/_config.yml
index 52476b3..77db95e 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,6 +1,6 @@
 title: Apache Dubbo (incubating)
 description: a high-performance, java based, open source RPC framework
-show_downloads: true
+show_downloads: false
 google_analytics: UA-112489517-1
 theme: jekyll-theme-cayman
 github:
diff --git a/_config_build.yml b/_config_build.yml
index 52476b3..77db95e 100644
--- a/_config_build.yml
+++ b/_config_build.yml
@@ -1,6 +1,6 @@
 title: Apache Dubbo (incubating)
 description: a high-performance, java based, open source RPC framework
-show_downloads: true
+show_downloads: false
 google_analytics: UA-112489517-1
 theme: jekyll-theme-cayman
 github:

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.