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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 3bc550a  Fixed some dead link and typo (#238)
3bc550a is described below

commit 3bc550a224e0503553630045f3ff70e5202d9f8d
Author: 杨文龙 <[email protected]>
AuthorDate: Wed Jan 16 21:47:01 2019 +0800

    Fixed some dead link and typo (#238)
    
    * fixed dead link online qos
    * fix issue :   Dead link problem summary #215
    * fixed some dead link and typo
    * synchronize the zh-cn doc
    * update java ServiceProvider link url
---
 blog/en-us/dubbo-101.md                                |  6 +++---
 blog/en-us/dubbo-new-async.md                          |  2 +-
 blog/en-us/dubbo2-js.md                                |  2 +-
 blog/zh-cn/dubbo-101.md                                |  6 +++---
 blog/zh-cn/dubbo-contribue-to-opensource.md            |  2 +-
 blog/zh-cn/dubbo-new-async.md                          |  4 ++--
 blog/zh-cn/dubbo2-js.md                                |  2 +-
 blog/zh-cn/prepare-an-apache-release.md                |  2 ++
 blog/zh-cn/use-zipkin-in-dubbo.md                      |  2 +-
 docs/en-us/user/demos/accesslog.md                     |  4 ++--
 docs/en-us/user/demos/config-connections.md            |  2 +-
 docs/en-us/user/demos/group-merger.md                  |  2 +-
 docs/en-us/user/demos/logger-strategy.md               |  2 +-
 docs/en-us/user/demos/multi-registry.md                |  2 +-
 docs/en-us/user/demos/parameter-validation.md          |  4 ++--
 docs/en-us/user/demos/result-cache.md                  |  4 ++--
 docs/en-us/user/demos/routing-rule.md                  |  2 +-
 docs/en-us/user/demos/service-container.md             |  2 +-
 docs/en-us/user/quick-start.md                         |  2 +-
 docs/{zh-cn => en-us}/user/references/protocol/rest.md | 10 +++++-----
 docs/en-us/user/references/protocol/rmi.md             |  2 +-
 docs/en-us/user/references/registry/zookeeper.md       |  2 +-
 docs/en-us/user/references/telnet.md                   |  2 +-
 docs/zh-cn/dev/principals/configuration.md             |  2 +-
 docs/zh-cn/user/coveragence.md                         |  2 +-
 docs/zh-cn/user/demos/logger-strategy.md               |  2 +-
 docs/zh-cn/user/demos/multi-registry.md                |  2 +-
 docs/zh-cn/user/demos/parameter-validation.md          |  4 ++--
 docs/zh-cn/user/demos/result-cache.md                  |  4 ++--
 docs/zh-cn/user/demos/routing-rule.md                  |  2 +-
 docs/zh-cn/user/demos/service-container.md             |  2 +-
 docs/zh-cn/user/references/protocol/rest.md            | 10 +++++-----
 docs/zh-cn/user/references/protocol/rmi.md             |  2 +-
 docs/zh-cn/user/references/protocol/thrift.md          |  2 +-
 docs/zh-cn/user/references/registry/zookeeper.md       |  2 +-
 35 files changed, 54 insertions(+), 52 deletions(-)

diff --git a/blog/en-us/dubbo-101.md b/blog/en-us/dubbo-101.md
index 01e6937..cc98f37 100644
--- a/blog/en-us/dubbo-101.md
+++ b/blog/en-us/dubbo-101.md
@@ -385,6 +385,6 @@ Eventually, we give an outline of how to create a Dubbo 
application quickly base
 ---
 
 1. [Getting Started Using JavaTM 
RMI](https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html)
-2. 
[直连提供者](http://dubbo.apache.org/books/dubbo-user-book/demos/explicit-target.html)
-3. [Multicast 
注册中心](http://dubbo.apache.org/books/dubbo-user-book/references/registry/multicast.html)
-4. [在线运维命令](http://dubbo.apache.org/books/dubbo-user-book/references/qos.html) 
  
+2. [Explicit 
target](http://dubbo.apache.org/en-us/docs/user/demos/explicit-target.html)
+3. [Multicast 
Registry](http://dubbo.apache.org/en-us/docs/user/references/registry/multicast.html)
+4. [Online QOS 
command](http://dubbo.apache.org/en-us/docs/user/references/qos.html)   
diff --git a/blog/en-us/dubbo-new-async.md b/blog/en-us/dubbo-new-async.md
index bc44cd7..58d647f 100644
--- a/blog/en-us/dubbo-new-async.md
+++ b/blog/en-us/dubbo-new-async.md
@@ -11,7 +11,7 @@ Implementing the full asynchronous programming based on 
Dubbo, which is a new fe
 
 ## Asynchronous mode before version 2.6.x
 
-Dubbo Provides some asynchronous programming capabilities in 2.6.x and earlier 
versions, including [Asynchronous 
Call](http://dubbo.apache.org/books/dubbo-user-book/demos/async-call.html), 
[Parameter 
Callback](http://dubbo.apache.org/books/dubbo-user-book/demos/callback-parameter.html)
 and [Event 
Notification](http://dubbo.apache.org/books/dubbo-user-book/demos/events-notify.html)
 on Consumer side. There are some brief introductions to the usage and Demo in 
the above document links.
+Dubbo Provides some asynchronous programming capabilities in 2.6.x and earlier 
versions, including [Asynchronous 
Call](http://dubbo.apache.org/zh-cn/docs/user/demos/async-call.html), 
[Parameter 
Callback](http://dubbo.apache.org/zh-cn/docs/user/demos/callback-parameter.html)
 and [Event 
Notification](http://dubbo.apache.org/zh-cn/docs/user/demos/events-notify.html) 
on Consumer side. There are some brief introductions to the usage and Demo in 
the above document links.
 
 But the current asynchronous method has the following problems:
 
diff --git a/blog/en-us/dubbo2-js.md b/blog/en-us/dubbo2-js.md
index f020ad5..f0ad823 100644
--- a/blog/en-us/dubbo2-js.md
+++ b/blog/en-us/dubbo2-js.md
@@ -268,7 +268,7 @@ Congratulations!
 
 ## More details
 
-The sample code in this article is available here, 
[https://github.com/lexburner/Dubbojs-Learning](https://github.com/lexburner/Dubbojs-Learning).
+The sample code in this article is available here, 
[https://github.com/dubbo/dubbo2.js](https://github.com/dubbo/dubbo2.js).
 If you don&#x27;t know much about the dubbo protocol and want to understand 
how it works, the project provides a sub-moudle: java-socket-consumer, which is 
implemented in a process-oriented approach, realizing a process of sending 
dubbo protocal message with native socket and making function calls, and then 
get response.
 
 
diff --git a/blog/zh-cn/dubbo-101.md b/blog/zh-cn/dubbo-101.md
index 5e2066e..c00fbc4 100644
--- a/blog/zh-cn/dubbo-101.md
+++ b/blog/zh-cn/dubbo-101.md
@@ -376,6 +376,6 @@ As Consumer side:
 最后,简单的介绍了如何通过 Dubbo 团队提供的公共服务 start.dubbo.io 快速搭建基于 Spring Boot 的 Dubbo 应用,并通过 
*qos* 来做 Dubbo 服务的简单运维。
 
 [^1]: [Getting Started Using JavaTM 
RMI](https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/hello/hello-world.html)
-[^2]: 
[直连提供者](http://dubbo.apache.org/books/dubbo-user-book/demos/explicit-target.html)
-[^3]: [Multicast 
注册中心](http://dubbo.apache.org/books/dubbo-user-book/references/registry/multicast.html)
-[^4]: 
[在线运维命令](http://dubbo.apache.org/books/dubbo-user-book/references/qos.html)
\ No newline at end of file
+[^2]: 
[直连提供者](http://dubbo.apache.org/zh-cn/docs/user/demos/explicit-target.html)
+[^3]: [Multicast 
注册中心](http://dubbo.apache.org/zh-cn/docs/user/references/registry/multicast.html)
+[^4]: [在线运维命令](http://dubbo.apache.org/zh-cn/docs/user/references/qos.html)
\ No newline at end of file
diff --git a/blog/zh-cn/dubbo-contribue-to-opensource.md 
b/blog/zh-cn/dubbo-contribue-to-opensource.md
index 68d7985..fea9034 100644
--- a/blog/zh-cn/dubbo-contribue-to-opensource.md
+++ b/blog/zh-cn/dubbo-contribue-to-opensource.md
@@ -103,7 +103,7 @@ Mailing list 简单来说,就是一个邮件通知机制,所有的 Dubbo 开
 
 ### 3.1 撰写文档
 
- 
[Dubbo文档](http://dubbo.apache.org/zh-cn/)是其开源组成成分的重要一环,其内容源文件位于:https://github.com/apache/incubator-dubbo-website。同样也是一个
 Git 仓库,任何你想要对 dubbo 知识点的补充,都可以在这儿提交 pull request,只需要一些 markdown 的语法知识,和一些可有可无的 
npm 语法即可。如果你觉得贡献代码对于现在的自己仍然有点难度,不妨从贡献文档开始接触开源。
+ 
[Dubbo文档](http://dubbo.apache.org/zh-cn/)是其开源组成成分的重要一环,其内容源文件位于:[https://github.com/apache/incubator-dubbo-website](https://github.com/apache/incubator-dubbo-website)。同样也是一个
 Git 仓库,任何你想要对 dubbo 知识点的补充,都可以在这儿提交 pull request,只需要一些 markdown 的语法知识,和一些可有可无的 
npm 语法即可。如果你觉得贡献代码对于现在的自己仍然有点难度,不妨从贡献文档开始接触开源。
 
 ### 3.2 ISSUE
 
diff --git a/blog/zh-cn/dubbo-new-async.md b/blog/zh-cn/dubbo-new-async.md
index 6c3ec0e..a2d6997 100644
--- a/blog/zh-cn/dubbo-new-async.md
+++ b/blog/zh-cn/dubbo-new-async.md
@@ -11,7 +11,7 @@ description: 本文回顾了 2.6.x 版本的异步实现,然后引出了 2.7.0
 
 ## 2.6.x版本之前的异步方式
 
-在2.6.x及之前的版本提供了一定的异步编程能力,包括Consumer端[异步调用](http://dubbo.apache.org/books/dubbo-user-book/demos/async-call.html)、[参数回调](http://dubbo.apache.org/books/dubbo-user-book/demos/callback-parameter.html)、[事件通知](http://dubbo.apache.org/books/dubbo-user-book/demos/events-notify.html)等,在上面的文档链接中有关于使用方式的简单介绍和Demo。
+在2.6.x及之前的版本提供了一定的异步编程能力,包括Consumer端[异步调用](http://dubbo.apache.org/zh-cn/docs/user/demos/async-call.html)、[参数回调](http://dubbo.apache.org/zh-cn/docs/user/demos/callback-parameter.html)、[事件通知](http://dubbo.apache.org/zh-cn/docs/user/demos/events-notify.html)等,在上面的文档链接中有关于使用方式的简单介绍和Demo。
 
 但当前的异步方式存在以下问题:
 
@@ -160,7 +160,7 @@ Dubbo在2.7.0版本已经升级了对Java 8的支持,同时基于CompletableFu
 
 ## 示例1:CompletableFuture类型接口
 
-CompletableFuture类型的接口既可以用作同步调用,也可以实现Consumer或Provider的异步调用。本示例实现了Consumer和Provider端异步调用,代码参见[dubbo-samples-async-original-future](https://github.com/dubbo/dubbo-samples/tree/samples-for-2.7.0-SNAPSHOT/dubbo-samples-async-original-future)。
+CompletableFuture类型的接口既可以用作同步调用,也可以实现Consumer或Provider的异步调用。本示例实现了Consumer和Provider端异步调用,代码参见[dubbo-samples-async-original-future](https://github.com/apache/incubator-dubbo-samples/tree/samples-for-2.7.0-SNAPSHOT/dubbo-samples-async/dubbo-samples-async-original-future)。
 
 1. 定义接口
 
diff --git a/blog/zh-cn/dubbo2-js.md b/blog/zh-cn/dubbo2-js.md
index d0d9577..e51abbe 100644
--- a/blog/zh-cn/dubbo2-js.md
+++ b/blog/zh-cn/dubbo2-js.md
@@ -274,4 +274,4 @@ Congratulation!
 
 ## 更多细节
 
-本文中的示例代码,提供在此处,<https://github.com/lexburner/Dubbojs-Learning> 。如果你对 dubbo 
协议不甚了解,想要理解它的工作原理,项目中提供了一个子 moudle — java-socket-consumer,使用面向过程的思路实现了 
java-socket-consumer,完成了原生 socket 发送 dubbo 协议报文,完成方法调用,并获取响应的全流程。
\ No newline at end of file
+本文中的示例代码,提供在此处,<https://github.com/dubbo/dubbo2.js> 。如果你对 dubbo 
协议不甚了解,想要理解它的工作原理,项目中提供了一个子 moudle — java-socket-consumer,使用面向过程的思路实现了 
java-socket-consumer,完成了原生 socket 发送 dubbo 协议报文,完成方法调用,并获取响应的全流程。
\ No newline at end of file
diff --git a/blog/zh-cn/prepare-an-apache-release.md 
b/blog/zh-cn/prepare-an-apache-release.md
index 793d955..c88f0d4 100644
--- a/blog/zh-cn/prepare-an-apache-release.md
+++ b/blog/zh-cn/prepare-an-apache-release.md
@@ -221,7 +221,9 @@ keywords: Dubbo, Apache, Release
 ## 验证Release Candidates
 
 首先,从以下地址下载要发布的Release Candidate到本地环境:
+<pre>
 https://dist.apache.org/repos/dist/dev/incubator/dubbo/${release_version}/
+</pre>
 
 然后,开始验证环节,验证包含但不限于以下内容和形式
 
diff --git a/blog/zh-cn/use-zipkin-in-dubbo.md 
b/blog/zh-cn/use-zipkin-in-dubbo.md
index 58b8acf..e23edc8 100644
--- a/blog/zh-cn/use-zipkin-in-dubbo.md
+++ b/blog/zh-cn/use-zipkin-in-dubbo.md
@@ -601,4 +601,4 @@ $ mvn exec:java 
-Dexec.mainClass=com.alibaba.dubbo.samples.client.Application
 
 Zipkin 对 Dubbo 的支持是构建在 Dubbo 的 filter 扩展机制上的,有兴趣的读者可以通过 
https://github.com/openzipkin/brave/blob/master/instrumentation/dubbo-rpc/src/main/java/brave/dubbo/rpc/TracingFilter.java
 了解其实现细节。
 
-本文中涉及的例子可以从 https://github.com/dubbo/dubbo-samples 中的 "dubbo-samples-zipkin" 
子模块中获取。另外,spring-cloud-sleth 2.0 中开始 [正式支持 
Dubbo](https://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.0.0.RC2/single/spring-cloud-sleuth.html#_dubbo_rpc_support),相关的文章和例子后续计划提供。
+本文中涉及的例子可以从 https://github.com/dubbo/dubbo-samples 中的 "dubbo-samples-zipkin" 
子模块中获取。另外,spring-cloud-sleth 2.0 中开始 [正式支持 
Dubbo](https://cloud.spring.io/spring-cloud-static/spring-cloud-sleuth/2.0.2.RELEASE/single/spring-cloud-sleuth.html#_dubbo_rpc_support),相关的文章和例子后续计划提供。
diff --git a/docs/en-us/user/demos/accesslog.md 
b/docs/en-us/user/demos/accesslog.md
index edd4718..c452524 100644
--- a/docs/en-us/user/demos/accesslog.md
+++ b/docs/en-us/user/demos/accesslog.md
@@ -31,7 +31,7 @@ The above configuration will turn on `accesslog` switch for 
all provide services
         <appender-ref ref="accesslogAppender"/>
 </logger>
 ```
-The above is the demonstration of logback framework.Other logging framework is 
same too.It will logging the access log of all provide services into single 
file(`accesslog/logging.log`). And you can also config the access log of each 
provide service to logging separately,Only change `name` attribute of the 
`logger` tag,set the `name` attribute to 
`dubbo.accesslog.serviceInterfaceClassFullName`.The Example:
+The above is the demonstration of logback framework.Other logging framework is 
same too. It will logging the access log of all provide services into single 
file(`accesslog/logging.log`). And you can also config the access log of each 
provide service to logging separately,Only change `name` attribute of the 
`logger` tag,set the `name` attribute to 
`dubbo.accesslog.serviceInterfaceClassFullName`.The Example:
 
 ```xml
 <logger name="dubbo.accesslog.com.dubbo.FooServiceInterface" level="INFO" 
additivity="false">
@@ -39,7 +39,7 @@ The above is the demonstration of logback framework.Other 
logging framework is s
 </logger>
 ```
 
-If you only want logging the access log of specified provide service,but not 
all services.It's supported too.The Example:
+If you only want logging the access log of specified provide service,but not 
all services, it's supported too.The Example:
 ```xml
 <dubbo:service accesslog="true" .../>
 ```
diff --git a/docs/en-us/user/demos/config-connections.md 
b/docs/en-us/user/demos/config-connections.md
index b11d5bd..b2603c9 100644
--- a/docs/en-us/user/demos/config-connections.md
+++ b/docs/en-us/user/demos/config-connections.md
@@ -25,6 +25,6 @@ OR
 ```
 **NOTE:** If used default protocol(`dubbo` protocol), and the value of  
`connections` attribute is great than 0,then each service reference will has 
itself connection,else all service which belong to same remote server will 
share only one connection. In this framework,we called `private` connection or 
`share` connection.
 
-If `<dubbo:service>` and `<dubbo:reference>` are both configured 
accepts/connections,`<dubbo:reference>` is preferred,Ref to [Configuration 
coverage 
strategy](http://dubbo.apache.org/books/dubbo-user-book-en/demos/config-rule.html).
+If `<dubbo:service>` and `<dubbo:reference>` are both configured 
accepts/connections,`<dubbo:reference>` is preferred,Ref to [Configuration 
coverage 
strategy](http://dubbo.apache.org/en-us/docs/user/configuration/xml.html).
 
 * : Because connection is connect on Server,so configure at Provider.
diff --git a/docs/en-us/user/demos/group-merger.md 
b/docs/en-us/user/demos/group-merger.md
index f55032e..f67ce6d 100644
--- a/docs/en-us/user/demos/group-merger.md
+++ b/docs/en-us/user/demos/group-merger.md
@@ -2,7 +2,7 @@
 
 According to the group to invoke server and return the merge result [^1], such 
as the menu service, the same interface, but there are a variety of 
implementations, using group distinction, consumers call each group and get the 
results, the merger can merge the resules, so that you can achieve aggregation 
Menu Item.
 
-Related code can refer to [dubbo project 
example](https://github.com/apache/incubator-dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/merge)
+Related code can refer to [dubbo project 
example](https://github.com/apache/incubator-dubbo-samples/tree/master/dubbo-samples-merge)
 
 ## Configuration
 
diff --git a/docs/en-us/user/demos/logger-strategy.md 
b/docs/en-us/user/demos/logger-strategy.md
index 953907c..885d9cb 100644
--- a/docs/en-us/user/demos/logger-strategy.md
+++ b/docs/en-us/user/demos/logger-strategy.md
@@ -20,4 +20,4 @@
     <dubbo:application logger="log4j" />
     ```
 
-[^1]: Custom 
Extensions[logger-adapter](http://dubbo.apache.org/books/dubbo-dev-book-en/impls/logger-adapter.html)
+[^1]: Custom 
Extensions[logger-adapter](http://dubbo.apache.org/en-us/docs/dev/impls/logger-adapter.html)
diff --git a/docs/en-us/user/demos/multi-registry.md 
b/docs/en-us/user/demos/multi-registry.md
index 9d90bef..6d7e872 100644
--- a/docs/en-us/user/demos/multi-registry.md
+++ b/docs/en-us/user/demos/multi-registry.md
@@ -80,4 +80,4 @@ When testing, the service needs to be temporarily register to 
two registries, wh
 </beans>
 ```
 
-[^1]: custom registry, see:[registry 
extension](http://dubbo.apache.org/books/dubbo-dev-book-en/impls/registry.html)
+[^1]: custom registry, see:[registry 
extension](http://dubbo.apache.org/en-us/docs/dev/impls/registry.html)
diff --git a/docs/en-us/user/demos/parameter-validation.md 
b/docs/en-us/user/demos/parameter-validation.md
index 107caf2..44dede9 100644
--- a/docs/en-us/user/demos/parameter-validation.md
+++ b/docs/en-us/user/demos/parameter-validation.md
@@ -179,5 +179,5 @@ public class ValidationConsumer {
 }
 ```
 
-[^1]: Support since `2.1.0` version. If you want to know how to use it, refer 
to  [Sample code in dubbo project] 
(https://github.com/apache/incubator-dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/validation)
-[^2]: The validation method is extensible, refer to [Developer 
Extension](https://github.com/apache/incubator-dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/validation)
 in the developer's manual.
+[^1]: Support since `2.1.0` version. If you want to know how to use it, refer 
to  [Sample code in dubbo project] 
(https://github.com/apache/incubator-dubbo-samples/tree/master/dubbo-samples-validation)
+[^2]: The validation method is extensible, refer to [Developer 
Extension](http://dubbo.apache.org/zh-cn/docs/dev/impls/validation.html) in the 
developer's manual.
diff --git a/docs/en-us/user/demos/result-cache.md 
b/docs/en-us/user/demos/result-cache.md
index 77d0e1f..0f5cf78 100644
--- a/docs/en-us/user/demos/result-cache.md
+++ b/docs/en-us/user/demos/result-cache.md
@@ -8,7 +8,7 @@ Cache Result [^1] is used to speed up access to popular data. 
Dubbo provides dec
 * `threadlocal` The current thread cache. For example, a page have a lot of 
portal and each portal need to check user information,  you can reduce this 
redundant visit with this cache.
 * `jcache` integrate with [JSR107](http://jcp.org/en/jsr/detail?id=107%27) , 
you can bridge a variety of cache implementation。
 
-Caching type can be extended,refer to:[Cache 
extension](http://dubbo.apache.org/books/dubbo-dev-book-en/impls/cache.html)
+Caching type can be extended,refer to:[Cache 
extension](http://dubbo.apache.org/en-us/docs/dev/impls/cache.html)
 
 ## Configuration
 
@@ -25,4 +25,4 @@ or:
 ```
 
 [^1]: Support since `2.1.0` 
-[^2]: 
[Sample](https://github.com/apache/incubator-dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/cache)
\ No newline at end of file
+[^2]: 
[Sample](https://github.com/apache/incubator-dubbo-samples/tree/master/dubbo-samples-cache)
\ No newline at end of file
diff --git a/docs/en-us/user/demos/routing-rule.md 
b/docs/en-us/user/demos/routing-rule.md
index de34769..790a722 100644
--- a/docs/en-us/user/demos/routing-rule.md
+++ b/docs/en-us/user/demos/routing-rule.md
@@ -187,7 +187,7 @@ The scope of the `request.tag` is for each invocation, 
using the attachment to p
 
 
 [^1]: Support since `2.2.0`   
-[^2]: Routing Rules Extension Point: [Route 
Extension](http://dubbo.apache.org/books/dubbo-dev-book-en/impls/router.html)   
+[^2]: Routing Rules Extension Point: [Route 
Extension](http://dubbo.apache.org/en-us/docs/dev/impls/router.html)   
 [^3]: Note: A service can only have one whitelist rule, otherwise the two 
rules will be filtered out.  
 [^4]: Note: Scripts have no sandbox constraints, can execute arbitrary code, 
and poses a backdoor risk.  
 [^5]: Support since `2.7.0`
\ No newline at end of file
diff --git a/docs/en-us/user/demos/service-container.md 
b/docs/en-us/user/demos/service-container.md
index 6244a87..b825538 100644
--- a/docs/en-us/user/demos/service-container.md
+++ b/docs/en-us/user/demos/service-container.md
@@ -4,7 +4,7 @@ The service container is a standalone launcher because the 
backend service does
 
 The service container is just a simple Main method and loads a simple Spring 
container to expose the service.
 
-The content of Service container can be extended, built-in spring, jetty, 
log4j etc..  This can be expanded with [Container Extension 
Points](http://dubbo.apache.org/books/dubbo-dev-book-en/impls/container.html). 
Configure it with the -D parameter in the java command or `dubbo.properties`.
+The content of Service container can be extended, built-in spring, jetty, 
log4j etc..  This can be expanded with [Container Extension 
Points](http://dubbo.apache.org/en-us/docs/dev/impls/container.html). Configure 
it with the -D parameter in the java command or `dubbo.properties`.
 
 ## Container type
 
diff --git a/docs/en-us/user/quick-start.md b/docs/en-us/user/quick-start.md
index 1c0fd7e..48712b6 100644
--- a/docs/en-us/user/quick-start.md
+++ b/docs/en-us/user/quick-start.md
@@ -33,7 +33,7 @@ public interface DemoService {
 }
 ```
 
-The proejct structure should look like this:
+The project structure should look like this:
 
 ```
 .
diff --git a/docs/zh-cn/user/references/protocol/rest.md 
b/docs/en-us/user/references/protocol/rest.md
similarity index 96%
copy from docs/zh-cn/user/references/protocol/rest.md
copy to docs/en-us/user/references/protocol/rest.md
index ea6bb4b..6de7ee4 100644
--- a/docs/zh-cn/user/references/protocol/rest.md
+++ b/docs/en-us/user/references/protocol/rest.md
@@ -37,7 +37,7 @@ public class UserServiceImpl implements UserService {
     }
 }
 ```
-上面的服务实现代码非常简单,但是由于REST服务是要被发布到特定HTTP 
URL,供任意语言客户端甚至浏览器来访问,所以这里要额外添加了几个JAX-RS的标准annotation来做相关的配置:
+上面的实现非常简单,但是由于该 REST 服务是要发布到指定 URL 上,供任意语言的客户端甚至浏览器来访问,所以这里额外添加了几个 JAX-RS 的标准 
annotation 来做相关的配置。
 
 @Path("users"):指定访问UserService的URL相对路径是/users,即http://localhost:8080/users
 
@@ -282,7 +282,7 @@ public class User implements Serializable {
 
 ### 配置REST Server的实现
 
-目前在dubbo中,我们支持5种嵌入式rest server的实现,并同时支持采用外部应用服务器来做rest server的实现。rest 
server的实现是通过如下server这个XML属性来选择的:
+目前在dubbo中,我们支持5种嵌入式rest server的实现,并同时支持采用外部应用服务器来做rest server的实现。rest 
server可以通过如下配置实现:
 
 ```xml
 <dubbo:protocol name="rest" server="jetty"/>
@@ -368,7 +368,7 @@ public User getUser(@PathParam("id") Long id, @Context 
HttpServletRequest reques
        
 用Context修饰getUser()的一个方法参数后,就可以将当前的HttpServletRequest注入进来,然后直接调用servlet 
api获取IP。
 
-> 
注意:这种方式只能在设置server="tjws"或者server="tomcat"或者server="jetty"或者server="servlet"的时候才能工作,因为只有这几种REST
 
server的实现才提供了servlet容器。另外,标准的JAX-RS还支持用@Context修饰service类的一个实例字段来获取HttpServletRequest,但在dubbo中我们没有对此作出支持。
+> 注意:这种方式只能在将server设置为 tjws、tomcat、jetty 或者 servlet 的时候才能工作,因为只有这几种 server 
的实现才提供了 servlet 
容器。另外,标准的JAX-RS还支持用@Context修饰service类的一个实例字段来获取HttpServletRequest,但在dubbo中我们没有对此作出支持。
 
 第二种方式,用dubbo中常用的RpcContext:
 
@@ -541,7 +541,7 @@ public class UserServiceImpl implements UserService {
 }
 ```
 
-annotation的配置更简单更精确,经常也更便于维护(当然现代IDE都可以在xml中支持比如类名重构,所以就这里的特定用例而言,xml的维护性也很好)。而xml对代码的侵入性更小一些,尤其有利于动态修改配置,特别是比如你要针对单个服务配置连接超时时间、每客户端最大连接数、集群策略、权重等等。另外,特别对复杂应用或者模块来说,xml提供了一个中心点来涵盖的所有组件和配置,更一目了然,一般更便于项目长时期的维护。
+annotation的配置更简单更精确,通常也更便于维护(当然现代IDE都可以在xml中支持比如类名重构,所以就这里的特定用例而言,xml的维护性也很好)。而xml对代码的侵入性更小一些,尤其有利于动态修改配置,特别是比如你要针对单个服务配置连接超时时间、每客户端最大连接数、集群策略、权重等等。另外,特别对复杂应用或者模块来说,xml提供了一个中心点来涵盖的所有组件和配置,更一目了然,一般更便于项目长时期的维护。
 
 当然,选择哪种配置方式没有绝对的优劣,和个人的偏好也不无关系。
 
@@ -583,7 +583,7 @@ public class GZIPWriterInterceptor implements 
WriterInterceptor {
 <dubbo:protocol name="rest" port="8888" extension="xxx.TraceInterceptor, 
xxx.TraceFilter"/>
 ```
 
-在此,我们可以将Filter、Interceptor和DynamicFeature这三种类型的对象都添加到extension属性上,多个之间用逗号分隔。(DynamicFeature是另一个接口,可以方便我们更动态的启用Filter和Interceptor,感兴趣请自行google。)
+在此,我们可以将Filter、Interceptor和DynamicFeature这三种类型的对象都添加到`extension`属性上,多个之间用逗号分隔。(DynamicFeature是另一个接口,可以方便我们更动态的启用Filter和Interceptor,感兴趣请自行google。)
 
 
当然,dubbo自身也支持Filter的概念,但我们这里讨论的Filter和Interceptor更加接近协议实现的底层,相比dubbo的filter,可以做更底层的定制化。
 
diff --git a/docs/en-us/user/references/protocol/rmi.md 
b/docs/en-us/user/references/protocol/rmi.md
index c7a2deb..931e30f 100644
--- a/docs/en-us/user/references/protocol/rmi.md
+++ b/docs/en-us/user/references/protocol/rmi.md
@@ -28,7 +28,7 @@ dubbo.service.protocol=rmi
 ```sh
 java -Dsun.rmi.transport.tcp.responseTimeout=3000
 ```
-more RMI options please check [JDK 
Document](http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html)
+more RMI options please check [JDK 
Document](https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html)
 
 
 ## Interface
diff --git a/docs/en-us/user/references/registry/zookeeper.md 
b/docs/en-us/user/references/registry/zookeeper.md
index ff3eb45..9adb6fb 100644
--- a/docs/en-us/user/references/registry/zookeeper.md
+++ b/docs/en-us/user/references/registry/zookeeper.md
@@ -133,7 +133,7 @@ Configure single zookeeper to serve as multiple registry 
servers:
 
 ## Zookeeper Installation
 
-Pls. refer to [zookeeper install 
manual](http://dubbo.apache.org/books/dubbo-admin-book/install/zookeeper.html) 
for how to install zookeeper based registry server. To set it up, specify 
`dubbo.registry.address` to `zookeeper://127.0.0.1:2181` in 
`conf/dubbo.properties` for both provider and consumer (you can refer to [quick 
start](../../preface/usage.md)) after install a zookeeper server.
+Pls. refer to [zookeeper install 
manual](http://dubbo.apache.org/en-us/docs/admin/install/zookeeper.html) for 
how to install zookeeper based registry server. To set it up, specify 
`dubbo.registry.address` to `zookeeper://127.0.0.1:2181` in 
`conf/dubbo.properties` for both provider and consumer (you can refer to [quick 
start](../../preface/usage.md)) after install a zookeeper server.
 
 ## Declaration of Reliability
 
diff --git a/docs/en-us/user/references/telnet.md 
b/docs/en-us/user/references/telnet.md
index 3406839..2104309 100644
--- a/docs/en-us/user/references/telnet.md
+++ b/docs/en-us/user/references/telnet.md
@@ -19,7 +19,7 @@ It is possible to extend command `status` to check more 
resources, pls. refer to
 ## Supported Commands
 
 The built-in telnet commands are listed below. Furthermore, it is possible to 
extend telnet commands, pls. refer to 
-[extend telnet 
command](http://dubbo.apache.org/books/dubbo-dev-book/impls/telnet-handler.html)
 for more details.
+[extend telnet 
command](http://dubbo.apache.org/en-us/docs/user/references/telnet.html) for 
more details.
 
 ### `ls`
 
diff --git a/docs/zh-cn/dev/principals/configuration.md 
b/docs/zh-cn/dev/principals/configuration.md
index 41057de..6f07464 100644
--- a/docs/zh-cn/dev/principals/configuration.md
+++ b/docs/zh-cn/dev/principals/configuration.md
@@ -30,7 +30,7 @@ Dubbo 新版本去掉了 dubbo.properties,因为该约定经常造成配置冲
 
 在 Dubbo 即存在描述配置,也有环境配置。一部分用 spring 的 schema 配置加载,一部分从 classpath 扫描 properties 
配置加载。用户感觉非常不便,所以在新版本中进行了合并,统一放到 spring 的 schema 配置加载,也增加了配置的灵活性。 
 
-扩展配置,通常对配置的聚合要求比较高。因为产品需要发现第三方实现,将其加入产品内部。在 java 世界里,通常是约定在每个 jar 
包下放一个指定文件加载,比如:eclipse 的 plugin.xml,struts2 的 struts-plugin.xml 等,这类配置可以考虑 java 
标准的服务发现机制,即在 jar 包的 META-INF/services 下放置接口类全名文件,内容为每行一个实现类类名,就像 jdk 
中的加密算法扩展,脚本引擎扩展,新的 JDBC 驱动等,都是采用这种方式。参见:[ServiceProvider 
规范](http://download.oracle.com/javase/1.4.2/docs/guide/jar/jar.html#Service%20Provider)。
+扩展配置,通常对配置的聚合要求比较高。因为产品需要发现第三方实现,将其加入产品内部。在 java 世界里,通常是约定在每个 jar 
包下放一个指定文件加载,比如:eclipse 的 plugin.xml,struts2 的 struts-plugin.xml 等,这类配置可以考虑 java 
标准的服务发现机制,即在 jar 包的 META-INF/services 下放置接口类全名文件,内容为每行一个实现类类名,就像 jdk 
中的加密算法扩展,脚本引擎扩展,新的 JDBC 驱动等,都是采用这种方式。参见:[ServiceProvider 
规范](https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html)。
 
 Dubbo 旧版本通过约定在每个 jar 包下,放置名为 dubbo-context.xml 的 spring 配置进行扩展与集成,新版本改成用 jdk 
自带的 META-INF/services 方式,去掉过多的 spring 依赖。 
 
diff --git a/docs/zh-cn/user/coveragence.md b/docs/zh-cn/user/coveragence.md
index 508fde1..49b6f9b 100644
--- a/docs/zh-cn/user/coveragence.md
+++ b/docs/zh-cn/user/coveragence.md
@@ -1,7 +1,7 @@
 # 测试覆盖率报告
 
 * v2.0   Codecov报表 , 从2017-12-29后开始统计
-  测试覆盖率为 : 
[![codecov](https://codecov.io/gh/apache/incubator-dubbo/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/incubator-dubbo)
 , 可以从 https://codecov.io/gh/apache/incubator-dubbo页面得到覆盖率报表
+  测试覆盖率为 : 
[![codecov](https://codecov.io/gh/apache/incubator-dubbo/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/incubator-dubbo)
 , 可以从 https://codecov.io/gh/apache/incubator-dubbo 页面得到覆盖率报表
 * v1.0   基于 `2.0.12` 版本,统计于 2012-02-03
 
 ![/sources/images/code-quality1.jpg](sources/images/code-quality1.jpg)
diff --git a/docs/zh-cn/user/demos/logger-strategy.md 
b/docs/zh-cn/user/demos/logger-strategy.md
index f3050b9..363344b 100644
--- a/docs/zh-cn/user/demos/logger-strategy.md
+++ b/docs/zh-cn/user/demos/logger-strategy.md
@@ -20,4 +20,4 @@
       <dubbo:application logger="log4j" />
     ```
 
-[1]: 自定义扩展可以参考 
[日志适配扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/logger-adapter.html)
\ No newline at end of file
+[1]: 自定义扩展可以参考 
[日志适配扩展](http://dubbo.apache.org/zh-cn/docs/dev/impls/logger-adapter.html)
\ No newline at end of file
diff --git a/docs/zh-cn/user/demos/multi-registry.md 
b/docs/zh-cn/user/demos/multi-registry.md
index c0e4a64..ee9e341 100644
--- a/docs/zh-cn/user/demos/multi-registry.md
+++ b/docs/zh-cn/user/demos/multi-registry.md
@@ -80,5 +80,5 @@ Dubbo 支持同一服务向多注册中心同时注册,或者不同服务分
 </beans>
 ```
 
-[^1]: 
可以自行扩展注册中心,参见:[注册中心扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/registry.html)
+[^1]: 
可以自行扩展注册中心,参见:[注册中心扩展](http://dubbo.apache.org/zh-cn/docs/dev/impls/registry.html)
 
diff --git a/docs/zh-cn/user/demos/parameter-validation.md 
b/docs/zh-cn/user/demos/parameter-validation.md
index 5a21f98..c0c57ea 100644
--- a/docs/zh-cn/user/demos/parameter-validation.md
+++ b/docs/zh-cn/user/demos/parameter-validation.md
@@ -179,5 +179,5 @@ public class ValidationConsumer {
 }
 ```
 
-[^1]: 自 `2.1.0` 版本开始支持, 如何使用可以参考 [dubbo 
项目中的示例代码](https://github.com/apache/incubator-dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/validation)
-[^2]: 
验证方式可扩展,扩展方式参见开发者手册中的[验证扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/validation.html)
+[^1]: 自 `2.1.0` 版本开始支持, 如何使用可以参考 [dubbo 
项目中的示例代码](https://github.com/apache/incubator-dubbo-samples/tree/master/dubbo-samples-validation)
+[^2]: 
验证方式可扩展,扩展方式参见开发者手册中的[验证扩展](http://dubbo.apache.org/zh-cn/docs/dev/impls/validation.html)
diff --git a/docs/zh-cn/user/demos/result-cache.md 
b/docs/zh-cn/user/demos/result-cache.md
index 86b3ad4..9b2eaea 100644
--- a/docs/zh-cn/user/demos/result-cache.md
+++ b/docs/zh-cn/user/demos/result-cache.md
@@ -8,7 +8,7 @@
 * `threadlocal` 当前线程缓存,比如一个页面渲染,用到很多 portal,每个 portal 
都要去查用户信息,通过线程缓存,可以减少这种多余访问。
 * `jcache` 与 [JSR107](http://jcp.org/en/jsr/detail?id=107%27) 集成,可以桥接各种缓存实现。
 
-缓存类型可扩展,参见:[缓存扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/cache.html)
+缓存类型可扩展,参见:[缓存扩展](http://dubbo.apache.org/zh-cn/docs/dev/impls/cache.html)
 
 ## 配置
 
@@ -25,4 +25,4 @@
 ```
 
 [^1]: `2.1.0` 以上版本支持
-[^2]: 
[示例代码](https://github.com/apache/incubator-dubbo/tree/master/dubbo-test/dubbo-test-examples/src/main/java/com/alibaba/dubbo/examples/cache)
\ No newline at end of file
+[^2]: 
[示例代码](https://github.com/apache/incubator-dubbo-samples/tree/master/dubbo-samples-cache)
\ No newline at end of file
diff --git a/docs/zh-cn/user/demos/routing-rule.md 
b/docs/zh-cn/user/demos/routing-rule.md
index a82593b..adfde20 100644
--- a/docs/zh-cn/user/demos/routing-rule.md
+++ b/docs/zh-cn/user/demos/routing-rule.md
@@ -187,7 +187,7 @@ 
RpcContext.getContext().setAttachment(Constants.REQUEST_TAG_KEY,"red");
    
 
 [^1]: `2.2.0` 以上版本支持
-[^2]: 
路由规则扩展点:[路由扩展](http://dubbo.apache.org/books/dubbo-dev-book/impls/router.html)
+[^2]: 路由规则扩展点:[路由扩展](http://dubbo.apache.org/zh-cn/docs/dev/impls/router.html)
 [^3]: 注意:一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了
 [^4]: 注意:脚本没有沙箱约束,可执行任意代码,存在后门风险
 [^5]: 该特性在 `2.7.0` 以上版本支持
\ No newline at end of file
diff --git a/docs/zh-cn/user/demos/service-container.md 
b/docs/zh-cn/user/demos/service-container.md
index f8c2176..999abc1 100644
--- a/docs/zh-cn/user/demos/service-container.md
+++ b/docs/zh-cn/user/demos/service-container.md
@@ -4,7 +4,7 @@
 
 服务容器只是一个简单的 Main 方法,并加载一个简单的 Spring 容器,用于暴露服务。
 
-服务容器的加载内容可以扩展,内置了 spring, jetty, log4j 
等加载,可通过[容器扩展点](http://dubbo.apache.org/books/dubbo-dev-book/impls/container.html)进行扩展。配置配在
 java 命令的 -D 参数或者 `dubbo.properties` 中。
+服务容器的加载内容可以扩展,内置了 spring, jetty, log4j 
等加载,可通过[容器扩展点](http://dubbo.apache.org/zh-cn/docs/dev/impls/container.html)进行扩展。配置配在
 java 命令的 -D 参数或者 `dubbo.properties` 中。
 
 ## 容器类型
 
diff --git a/docs/zh-cn/user/references/protocol/rest.md 
b/docs/zh-cn/user/references/protocol/rest.md
index ea6bb4b..6de7ee4 100644
--- a/docs/zh-cn/user/references/protocol/rest.md
+++ b/docs/zh-cn/user/references/protocol/rest.md
@@ -37,7 +37,7 @@ public class UserServiceImpl implements UserService {
     }
 }
 ```
-上面的服务实现代码非常简单,但是由于REST服务是要被发布到特定HTTP 
URL,供任意语言客户端甚至浏览器来访问,所以这里要额外添加了几个JAX-RS的标准annotation来做相关的配置:
+上面的实现非常简单,但是由于该 REST 服务是要发布到指定 URL 上,供任意语言的客户端甚至浏览器来访问,所以这里额外添加了几个 JAX-RS 的标准 
annotation 来做相关的配置。
 
 @Path("users"):指定访问UserService的URL相对路径是/users,即http://localhost:8080/users
 
@@ -282,7 +282,7 @@ public class User implements Serializable {
 
 ### 配置REST Server的实现
 
-目前在dubbo中,我们支持5种嵌入式rest server的实现,并同时支持采用外部应用服务器来做rest server的实现。rest 
server的实现是通过如下server这个XML属性来选择的:
+目前在dubbo中,我们支持5种嵌入式rest server的实现,并同时支持采用外部应用服务器来做rest server的实现。rest 
server可以通过如下配置实现:
 
 ```xml
 <dubbo:protocol name="rest" server="jetty"/>
@@ -368,7 +368,7 @@ public User getUser(@PathParam("id") Long id, @Context 
HttpServletRequest reques
        
 用Context修饰getUser()的一个方法参数后,就可以将当前的HttpServletRequest注入进来,然后直接调用servlet 
api获取IP。
 
-> 
注意:这种方式只能在设置server="tjws"或者server="tomcat"或者server="jetty"或者server="servlet"的时候才能工作,因为只有这几种REST
 
server的实现才提供了servlet容器。另外,标准的JAX-RS还支持用@Context修饰service类的一个实例字段来获取HttpServletRequest,但在dubbo中我们没有对此作出支持。
+> 注意:这种方式只能在将server设置为 tjws、tomcat、jetty 或者 servlet 的时候才能工作,因为只有这几种 server 
的实现才提供了 servlet 
容器。另外,标准的JAX-RS还支持用@Context修饰service类的一个实例字段来获取HttpServletRequest,但在dubbo中我们没有对此作出支持。
 
 第二种方式,用dubbo中常用的RpcContext:
 
@@ -541,7 +541,7 @@ public class UserServiceImpl implements UserService {
 }
 ```
 
-annotation的配置更简单更精确,经常也更便于维护(当然现代IDE都可以在xml中支持比如类名重构,所以就这里的特定用例而言,xml的维护性也很好)。而xml对代码的侵入性更小一些,尤其有利于动态修改配置,特别是比如你要针对单个服务配置连接超时时间、每客户端最大连接数、集群策略、权重等等。另外,特别对复杂应用或者模块来说,xml提供了一个中心点来涵盖的所有组件和配置,更一目了然,一般更便于项目长时期的维护。
+annotation的配置更简单更精确,通常也更便于维护(当然现代IDE都可以在xml中支持比如类名重构,所以就这里的特定用例而言,xml的维护性也很好)。而xml对代码的侵入性更小一些,尤其有利于动态修改配置,特别是比如你要针对单个服务配置连接超时时间、每客户端最大连接数、集群策略、权重等等。另外,特别对复杂应用或者模块来说,xml提供了一个中心点来涵盖的所有组件和配置,更一目了然,一般更便于项目长时期的维护。
 
 当然,选择哪种配置方式没有绝对的优劣,和个人的偏好也不无关系。
 
@@ -583,7 +583,7 @@ public class GZIPWriterInterceptor implements 
WriterInterceptor {
 <dubbo:protocol name="rest" port="8888" extension="xxx.TraceInterceptor, 
xxx.TraceFilter"/>
 ```
 
-在此,我们可以将Filter、Interceptor和DynamicFeature这三种类型的对象都添加到extension属性上,多个之间用逗号分隔。(DynamicFeature是另一个接口,可以方便我们更动态的启用Filter和Interceptor,感兴趣请自行google。)
+在此,我们可以将Filter、Interceptor和DynamicFeature这三种类型的对象都添加到`extension`属性上,多个之间用逗号分隔。(DynamicFeature是另一个接口,可以方便我们更动态的启用Filter和Interceptor,感兴趣请自行google。)
 
 
当然,dubbo自身也支持Filter的概念,但我们这里讨论的Filter和Interceptor更加接近协议实现的底层,相比dubbo的filter,可以做更底层的定制化。
 
diff --git a/docs/zh-cn/user/references/protocol/rmi.md 
b/docs/zh-cn/user/references/protocol/rmi.md
index b5355fc..ca04e19 100644
--- a/docs/zh-cn/user/references/protocol/rmi.md
+++ b/docs/zh-cn/user/references/protocol/rmi.md
@@ -30,7 +30,7 @@ dubbo.service.protocol=rmi
 ```sh
 java -Dsun.rmi.transport.tcp.responseTimeout=3000
 ```
-更多 RMI 优化参数请查看 [JDK 
文档](http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html)
+更多 RMI 优化参数请查看 [JDK 
文档](https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/sunrmiproperties.html)
 
 
 ## 接口
diff --git a/docs/zh-cn/user/references/protocol/thrift.md 
b/docs/zh-cn/user/references/protocol/thrift.md
index a4d6d94..6ca3afd 100644
--- a/docs/zh-cn/user/references/protocol/thrift.md
+++ b/docs/zh-cn/user/references/protocol/thrift.md
@@ -24,7 +24,7 @@
 
 ## 使用
 
-可以参考 [dubbo 
项目中的示例代码](https://github.com/apache/incubator-dubbo/tree/master/dubbo-rpc/dubbo-rpc-thrift/src/test/java/com/alibaba/dubbo/rpc/protocol/thrift/examples)
+可以参考 [dubbo 
项目中的示例代码](https://github.com/apache/incubator-dubbo/tree/master/dubbo-rpc/dubbo-rpc-thrift/src/test/java/org/apache/dubbo/rpc/protocol/thrift)
 
 ## 常见问题
 
diff --git a/docs/zh-cn/user/references/registry/zookeeper.md 
b/docs/zh-cn/user/references/registry/zookeeper.md
index 994bf44..34c4cf7 100644
--- a/docs/zh-cn/user/references/registry/zookeeper.md
+++ b/docs/zh-cn/user/references/registry/zookeeper.md
@@ -135,7 +135,7 @@ Zookeeper 集群配置:
 
 ## zookeeper 安装
  
-安装方式参见: 
[Zookeeper安装手册](http://dubbo.apache.org/books/dubbo-admin-book/install/zookeeper.html),只需搭一个原生的
 Zookeeper 服务器,并将 [Quick Start](../../preface/usage.md) 中 Provider 和 Consumer 
里的 `conf/dubbo.properties` 中的 `dubbo.registry.addrss` 的值改为 
`zookeeper://127.0.0.1:2181` 即可使用。
+安装方式参见: 
[Zookeeper安装手册](http://dubbo.apache.org/zh-cn/docs/admin/install/zookeeper.html),只需搭一个原生的
 Zookeeper 服务器,并将 [Quick Start](../../preface/usage.md) 中 Provider 和 Consumer 
里的 `conf/dubbo.properties` 中的 `dubbo.registry.addrss` 的值改为 
`zookeeper://127.0.0.1:2181` 即可使用。
 
 ## 可靠性声明
   

Reply via email to