You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by GitBox <gi...@apache.org> on 2018/09/03 02:02:46 UTC

[GitHub] diecui1202 closed pull request #127: Fix typo

diecui1202 closed pull request #127: Fix typo
URL: https://github.com/apache/incubator-dubbo-website/pull/127
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/blog/zh-cn/dubbo-loadbalance.md b/blog/zh-cn/dubbo-loadbalance.md
index cec62ddf..12e6e9eb 100644
--- a/blog/zh-cn/dubbo-loadbalance.md
+++ b/blog/zh-cn/dubbo-loadbalance.md
@@ -110,7 +110,7 @@ public class RandomLoadBalance extends AbstractLoadBalance {
 }
 ```
 
-### 2.轮循负载均衡
+### 2.轮询负载均衡
 
 轮询负载均衡,就是依次的调用所有的 Provider。和随机负载均衡策略一样,轮询负载均衡策略也有权重的概念。 轮询负载均衡算法可以让RPC调用严格按照我们设置的比例来分配。不管是少量的调用还是大量的调用。但是轮询负载均衡算法也有不足的地方,存在慢的 Provider 累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上,导致整个系统变慢。
 
diff --git a/docs/zh-cn/user/demos/loadbalance.md b/docs/zh-cn/user/demos/loadbalance.md
index 1796438b..fc3f79e5 100644
--- a/docs/zh-cn/user/demos/loadbalance.md
+++ b/docs/zh-cn/user/demos/loadbalance.md
@@ -13,7 +13,7 @@
 
 ### RoundRobin LoadBalance
 
-* **轮循**,按公约后的权重设置轮循比率。
+* **轮询**,按公约后的权重设置轮询比率。
 * 存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
 
 ### LeastActive LoadBalance
diff --git a/docs/zh-cn/user/maturity.md b/docs/zh-cn/user/maturity.md
index 2e801000..abfc8ffa 100644
--- a/docs/zh-cn/user/maturity.md
+++ b/docs/zh-cn/user/maturity.md
@@ -63,7 +63,7 @@
 |Broadcast Cluster | Tested | 广播调用所有提供者,逐个调用,任意一台报错则报错,通常用于更新提供方本地状态 | 速度慢,任意一台报错则报错 | 可用于生产环境 | | 
 |Feature | Maturity | Strength | Problem | Advise | User|
 |Random LoadBalance | Stable | 随机,按权重设置随机概率(推荐使用) | 在一个截面上碰撞的概率高,重试时,可能出现瞬间压力不均 | 可用于生产环境 | Alibaba|
-|RoundRobin LoadBalance | Stable | 轮循,按公约后的权重设置轮循比率 | 存在慢的机器累积请求问题,极端情况可能产生雪崩 | 可用于生产环境 |  |
+|RoundRobin LoadBalance | Stable | 轮询,按公约后的权重设置轮询比率 | 存在慢的机器累积请求问题,极端情况可能产生雪崩 | 可用于生产环境 |  |
 |LeastActive LoadBalance | Stable | 最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少请求 | 不支持权重,在容量规划时,不能通过权重把压力导向一台机器压测容量 | 可用于生产环境 |  |
 |ConsistentHash LoadBalance | Stable | 一致性Hash,相同参数的请求总是发到同一提供者,当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动 | 压力分摊不均 | 可用于生产环境 |  |
 |Feature | Maturity | Strength | Problem | Advise | User|
diff --git a/docs/zh-cn/user/references/xml/dubbo-consumer.md b/docs/zh-cn/user/references/xml/dubbo-consumer.md
index e8644fed..f7afb23a 100644
--- a/docs/zh-cn/user/references/xml/dubbo-consumer.md
+++ b/docs/zh-cn/user/references/xml/dubbo-consumer.md
@@ -50,7 +50,7 @@ table tr:hover {
 | --- | --- | ---- | --- | --- | --- | --- | --- |
 | timeout | default.timeout | int | 可选 | 1000 | 性能调优 | 远程服务调用超时时间(毫秒) | 1.0.16以上版本 |
 | retries | default.retries | int | 可选 | 2 | 性能调优 | 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0 | 1.0.16以上版本 |
-| loadbalance | default.loadbalance | string | 可选 | random | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用 | 1.0.16以上版本 |
+| loadbalance | default.loadbalance | string | 可选 | random | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用 | 1.0.16以上版本 |
 | async | default.async | boolean | 可选 | false | 性能调优 | 是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程 | 2.0.0以上版本 |
 | connections | default.connections | int | 可选 | 100 | 性能调优 | 每个服务对每个提供者的最大连接数,rmi、http、hessian等短连接协议支持此配置,dubbo协议长连接不支持此配置 | 1.0.16以上版本 |
 | generic | generic | boolean | 可选 | false | 服务治理 | 是否缺省泛化接口,如果为泛化接口,将返回GenericService | 2.0.0以上版本 |
diff --git a/docs/zh-cn/user/references/xml/dubbo-method.md b/docs/zh-cn/user/references/xml/dubbo-method.md
index 37aa9ee7..089e88cd 100644
--- a/docs/zh-cn/user/references/xml/dubbo-method.md
+++ b/docs/zh-cn/user/references/xml/dubbo-method.md
@@ -51,7 +51,7 @@ table tr:hover {
 | name | | string | <b>必填</b> | | 标识 | 方法名 | 1.0.8以上版本 |
 | timeout | &lt;metodName&gt;.timeout | int | 可选 | 缺省为的timeout | 性能调优 | 方法调用超时时间(毫秒) | 1.0.8以上版本 |
 | retries | &lt;metodName&gt;.retries | int | 可选 | 缺省为&lt;dubbo:reference&gt;的retries | 性能调优 | 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0 | 2.0.0以上版本 |
-| loadbalance | &lt;metodName&gt;.loadbalance | string | 可选 | 缺省为的loadbalance | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用 | 2.0.0以上版本 |
+| loadbalance | &lt;metodName&gt;.loadbalance | string | 可选 | 缺省为的loadbalance | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用 | 2.0.0以上版本 |
 | async | &lt;metodName&gt;.async | boolean | 可选 | 缺省为&lt;dubbo:reference&gt;的async | 性能调优 | 是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程 | 1.0.9以上版本 |
 | sent | &lt;methodName&gt;.sent | boolean | 可选 | true | 性能调优 | 异步调用时,标记sent=true时,表示网络已发出数据 | 2.0.6以上版本 |
 | actives | &lt;metodName&gt;.actives | int | 可选 | 0 | 性能调优 | 每服务消费者最大并发调用限制 | 2.0.5以上版本 |
diff --git a/docs/zh-cn/user/references/xml/dubbo-provider.md b/docs/zh-cn/user/references/xml/dubbo-provider.md
index 62fa41a7..c3088523 100644
--- a/docs/zh-cn/user/references/xml/dubbo-provider.md
+++ b/docs/zh-cn/user/references/xml/dubbo-provider.md
@@ -69,7 +69,7 @@ table tr:hover {
 | timeout | default.timeout | int | 可选 | 1000 | 性能调优 | 远程服务调用超时时间(毫秒) | 2.0.5以上版本 |
 | retries | default.retries | int | 可选 | 2 | 性能调优 | 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0 | 2.0.5以上版本 |
 | connections | default.connections | int | 可选 | 0 | 性能调优 | 对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数 | 2.0.5以上版本 |
-| loadbalance | default.loadbalance | string | 可选 | random | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用 | 2.0.5以上版本 |
+| loadbalance | default.loadbalance | string | 可选 | random | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用 | 2.0.5以上版本 |
 | async | default.async | boolean | 可选 | false | 性能调优 | 是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程 | 2.0.5以上版本 |
 | stub | stub | boolean | 可选 | false | 服务治理 | 设为true,表示使用缺省代理类名,即:接口名 + Local后缀。 | 2.0.5以上版本 |
 | mock | mock | boolean | 可选 | false | 服务治理 | 设为true,表示使用缺省Mock类名,即:接口名 + Mock后缀。 | 2.0.5以上版本 |
diff --git a/docs/zh-cn/user/references/xml/dubbo-reference.md b/docs/zh-cn/user/references/xml/dubbo-reference.md
index f00f9bc5..5fb7ccea 100644
--- a/docs/zh-cn/user/references/xml/dubbo-reference.md
+++ b/docs/zh-cn/user/references/xml/dubbo-reference.md
@@ -55,7 +55,7 @@ table tr:hover {
 | timeout | timeout | long | 可选 | 缺省使用&lt;dubbo:consumer&gt;的timeout | 性能调优 | 服务方法调用超时时间(毫秒) | 1.0.5以上版本  |
 | retries | retries | int | 可选 | 缺省使用&lt;dubbo:consumer&gt;的retries | 性能调优 | 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0 | 2.0.0以上版本  |
 | connections | connections | int | 可选 | 缺省使用&lt;dubbo:consumer&gt;的connections | 性能调优 | 对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数 | 2.0.0以上版本  |
-| loadbalance | loadbalance | string | 可选 | 缺省使用&lt;dubbo:consumer&gt;的loadbalance | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用 | 2.0.0以上版本  |
+| loadbalance | loadbalance | string | 可选 | 缺省使用&lt;dubbo:consumer&gt;的loadbalance | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用 | 2.0.0以上版本  |
 | async | async | boolean | 可选 | 缺省使用&lt;dubbo:consumer&gt;的async | 性能调优 | 是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程 | 2.0.0以上版本  |
 | generic | generic | boolean | 可选 | 缺省使用&lt;dubbo:consumer&gt;的generic | 服务治理 | 是否缺省泛化接口,如果为泛化接口,将返回GenericService | 2.0.0以上版本  |
 | check | check | boolean | 可选 | 缺省使用&lt;dubbo:consumer&gt;的check | 服务治理 | 启动时检查提供者是否存在,true报错,false忽略 | 2.0.0以上版本  |
@@ -74,4 +74,4 @@ table tr:hover {
 | listener | invoker.listener | string | 可选 | default | 性能调优 | 服务消费方引用服务监听器名称,多个名称用逗号分隔 | 2.0.5以上版本  |
 | layer | layer | string | 可选 | | 服务治理 | 服务调用者所在的分层。如:biz、dao、intl:web、china:acton。 | 2.0.7以上版本  |
 | init | init | boolean | 可选 | false | 性能调优 | 是否在afterPropertiesSet()时饥饿初始化引用,否则等到有人注入或引用该实例时再初始化。 | 2.0.10以上版本  |
-| protocol | protocol | string | 可选 | | 服力治理 | 只调用指定协议的服务提供方,其它协议忽略。 | 2.2.0以上版本 |
+| protocol | protocol | string | 可选 | | 服务治理 | 只调用指定协议的服务提供方,其它协议忽略。 | 2.2.0以上版本 |
diff --git a/docs/zh-cn/user/references/xml/dubbo-service.md b/docs/zh-cn/user/references/xml/dubbo-service.md
index bdd8b42f..c11eb7b2 100644
--- a/docs/zh-cn/user/references/xml/dubbo-service.md
+++ b/docs/zh-cn/user/references/xml/dubbo-service.md
@@ -57,7 +57,7 @@ table tr:hover {
 | timeout | timeout | int | 可选 | 1000 | 性能调优 | 远程服务调用超时时间(毫秒) | 2.0.0以上版本 |
 | retries | retries | int | 可选 | 2 | 性能调优 | 远程服务调用重试次数,不包括第一次调用,不需要重试请设为0 | 2.0.0以上版本 |
 | connections | connections | int | 可选 | 100 | 性能调优 | 对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数 | 2.0.0以上版本 |
-| loadbalance | loadbalance | string | 可选 | random | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用 | 2.0.0以上版本 |
+| loadbalance | loadbalance | string | 可选 | random | 性能调优 | 负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用 | 2.0.0以上版本 |
 | async | async | boolean | 可选 | false | 性能调优 | 是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程 | 2.0.0以上版本 |
 | stub | stub | class/boolean | 可选 | false | 服务治理 | 设为true,表示使用缺省代理类名,即:接口名 + Local后缀,服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService) | 2.0.0以上版本 |
 | mock | mock | class/boolean | 可选 | false | 服务治理 | 设为true,表示使用缺省Mock类名,即:接口名 + Mock后缀,服务接口调用失败Mock实现类,该Mock类必须有一个无参构造函数,与Local的区别在于,Local总是被执行,而Mock只在出现非业务异常(比如超时,网络异常等)时执行,Local在远程调用之前执行,Mock在远程调用后执行。 | 2.0.0以上版本 |
diff --git a/zh-cn/blog/dubbo-loadbalance.html b/zh-cn/blog/dubbo-loadbalance.html
index a847ab5b..d97b0697 100644
--- a/zh-cn/blog/dubbo-loadbalance.html
+++ b/zh-cn/blog/dubbo-loadbalance.html
@@ -123,7 +123,7 @@ <h3>1.随机负载均衡</h3>
     }
 }
 </code></pre>
-<h3>2.轮循负载均衡</h3>
+<h3>2.轮询负载均衡</h3>
 <p>轮询负载均衡,就是依次的调用所有的 Provider。和随机负载均衡策略一样,轮询负载均衡策略也有权重的概念。 轮询负载均衡算法可以让RPC调用严格按照我们设置的比例来分配。不管是少量的调用还是大量的调用。但是轮询负载均衡算法也有不足的地方,存在慢的 Provider 累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上,导致整个系统变慢。</p>
 <h3>3.最少活跃调用数负载均衡</h3>
 <p>官方解释:</p>
diff --git a/zh-cn/blog/dubbo-loadbalance.json b/zh-cn/blog/dubbo-loadbalance.json
index b3638147..cf585ff5 100644
--- a/zh-cn/blog/dubbo-loadbalance.json
+++ b/zh-cn/blog/dubbo-loadbalance.json
@@ -1,4 +1,4 @@
 {
   "filename": "dubbo-loadbalance.md",
-  "__html": "<h1>Dubbo的负载均衡</h1>\n<h2>背景</h2>\n<p>Dubbo是一个分布式服务框架,能避免单点故障和支持服务的横向扩容。一个服务通常会部署多个实例。如何从多个服务 Provider 组成的集群中挑选出一个进行调用,就涉及到一个负载均衡的策略。</p>\n<h2>几个概念</h2>\n<p>在讨论负载均衡之前,我想先解释一下这3个概念。</p>\n<ol>\n<li>负载均衡</li>\n<li>集群容错</li>\n<li>服务路由</li>\n</ol>\n<p>这3个概念容易混淆。他们都描述了怎么从多个 Provider 中选择一个来进行调用。那他们到底有什么区别呢?下面我来举一个简单的例子,把这几个概念阐述清楚吧。</p>\n<p>有一个Dubbo的用户服务,在北京部署了10个,在上海部署了20个。一个杭州的服务消费方发起了一次调用,然后发生了以下的事情:</p>\n<ol>\n<li>根据配置的路由规则,如果杭州发起的调用,会路由到比较近的上海的20个 Provider。</li>\n<li>根据配置的随机负载均衡策略,在20个 Provider 中随机选择了一个来调用,假设随机到了第7个 Provider。</li>\n<li>结果调用第7个 Provider 失败了。</li>\n<li>根据配置的Failover集群容错模式,重试其他服务器。</li>\n<li>重试了第13个 Provider,调用成功。</li>\n</ol>\n<p>上面的第1,2,4步骤就分别对应了路由,负载均衡和集群容错。 Dubbo中,先通过路由,从多个 Provider 中按照路由规则,选出一个子集。再根据负载均衡从子集中选出一个 Provider 进行本次调用。如果调用失败了,根据集群容错策略,进行重试或定时重发或快速失败等。 可以看到Dubbo中的路由,负载均衡和集群容错发生在一次RPC调用的不同阶段。最先是路由,然后是负载均衡,最后是集群容错。 本文档只讨论负载均衡,路由和集群容错在其他的文档中进行说明。</p>\n<h2>Dubbo内置负载均衡策略</h2>\n<p>Dubbo内置了4种负载均衡策略:</p>\n<ol>\n<li>RandomLoadBalance:随机负载均衡。随机的选择一个。是Dubbo的<strong>默认</strong>负载均衡策略。</li>\n<li>RoundRobinLoadBalance:轮询负载均衡。轮询选择一个。</li>\n<li>LeastActiveLoadBalance:最少活跃调用数,相同活跃数的随机。活跃数指调用前后计数差。使慢的 Provider 收到更少请求,因为越慢的 Provider 的调用前后计数差会越大。</li>\n<li>ConsistentHashLoadBalance:一致性哈希负载均衡。相同参数的请求总是落在同一台机器上。</li>\n</ol>\n<h3>1.随机负载均衡</h3>\n<p>顾名思义,随机负载均衡策略就是从多个 Provider 中随机选择一个。但是 Dubbo 中的随机负载均衡有一个权重的概念,即按照权重设置随机概率。比如说,有10个 Provider,并不是说,每个 Provider 的概率都是一样的,而是要结合这10个 Provider 的权重来分配概率。</p>\n<p>Dubbo中,可以对 Provider 设置权重。比如机器性能好的,可以设置大一点的权重,性能差的,可以设置小一点的权重。权重会对负载均衡产生影响。可以在Dubbo Admin中对 Provider 进行权重的设置。</p>\n<p><strong>基于权重的负载均衡算法</strong></p>\n<p>随机策略会先判断所有的 Invoker 的权重是不是一样的,如果都是一样的,那么处理就比较简单了。使用random.nexInt(length)就可以随机生成一个 Invoker 的序号,根据序号选择对应的 Invoker 。如果没有在Dubbo Admin中对服务 Provider 设置权重,那么所有的 Invoker 的权重就是一样的,默认是100。 如果权重不一样,那就需要结合权重来设置随机概率了。算法大概如下: 假如有4个 Invoker。</p>\n<table>\n<thead>\n<tr>\n<th>invoker</th>\n<th>weight</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td>10</td>\n</tr>\n<tr>\n<td>B</td>\n<td>20</td>\n</tr>\n<tr>\n<td>C</td>\n<td>20</td>\n</tr>\n<tr>\n<td>D</td>\n<td>30</td>\n</tr>\n</tbody>\n</table>\n<p>A,B,C和D总的权重是10 + 20 + 20 + 30 = 80。将80个数分布在如下的图中:</p>\n<pre><code>+-----------------------------------------------------------------------------------+\n|          |                    |                    |                              |\n+-----------------------------------------------------------------------------------+\n1          10                   30                   50                             80\n\n|-----A----|---------B----------|----------C---------|---------------D--------------|\n\n\n---------------------15\n\n-------------------------------------------37\n\n-----------------------------------------------------------54\n</code></pre>\n<p>上面的图中一共有4块区域,长度分别是A,B,C和D的权重。使用random.nextInt(10 + 20 + 20 + 30),从80个数中随机选择一个。然后再判断该数分布在哪个区域。比如,如果随机到37,37是分布在C区域的,那么就选择 Invoker C。15是在B区域,54是在D区域。</p>\n<p><strong>随机负载均衡源码</strong></p>\n<p>下面是随机负载均衡的源码,为了方便阅读和理解,我把无关部分都去掉了。</p>\n<pre><code>public class RandomLoadBalance extends AbstractLoadBalance {\n\n    private final Random random = new Random();\n\n    protected &lt;T&gt; Invoker&lt;T&gt; doSelect(List&lt;Invoker&lt;T&gt;&gt; invokers, URL url, Invocation invocation) {\n        int length = invokers.size();      // Invoker 总数\n        int totalWeight = 0;               // 所有 Invoker 的权重的和\n\n        // 判断是不是所有的 Invoker 的权重都是一样的\n        // 如果权重都一样,就简单了。直接用Random生成索引就可以了。\n        boolean sameWeight = true;\n        for (int i = 0; i &lt; length; i++) {\n            int weight = getWeight(invokers.get(i), invocation);\n            totalWeight += weight; // Sum\n            if (sameWeight &amp;&amp; i &gt; 0 &amp;&amp; weight != getWeight(invokers.get(i - 1), invocation)) {\n                sameWeight = false;\n            }\n        }\n\n        if (totalWeight &gt; 0 &amp;&amp; !sameWeight) {\n            // 如果不是所有的 Invoker 权重都相同,那么基于权重来随机选择。权重越大的,被选中的概率越大\n            int offset = random.nextInt(totalWeight);\n            for (int i = 0; i &lt; length; i++) {\n                offset -= getWeight(invokers.get(i), invocation);\n                if (offset &lt; 0) {\n                    return invokers.get(i);\n                }\n            }\n        }\n        // 如果所有 Invoker 权重相同\n        return invokers.get(random.nextInt(length));\n    }\n}\n</code></pre>\n<h3>2.轮循负载均衡</h3>\n<p>轮询负载均衡,就是依次的调用所有的 Provider。和随机负载均衡策略一样,轮询负载均衡策略也有权重的概念。 轮询负载均衡算法可以让RPC调用严格按照我们设置的比例来分配。不管是少量的调用还是大量的调用。但是轮询负载均衡算法也有不足的地方,存在慢的 Provider 累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上,导致整个系统变慢。</p>\n<h3>3.最少活跃调用数负载均衡</h3>\n<p>官方解释:</p>\n<blockquote>\n<p>最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少。</p>\n</blockquote>\n<p>这个解释好像说的不是太明白。目的是让更慢的机器收到更少的请求,但具体怎么实现的还是不太清楚。举个例子:每个服务维护一个活跃数计数器。当A机器开始处理请求,该计数器加1,此时A还未处理完成。若处理完毕则计数器减1。而B机器接受到请求后很快处理完毕。那么A,B的活跃数分别是1,0。当又产生了一个新的请求,则选择B机器去执行(B活跃数最小),这样使慢的机器A收到少的请求。</p>\n<p>处理一个新的请求时,Consumer 会检查所有 Provider 的活跃数,如果具有最小活跃数的 Invoker 只有一个,直接返回该 Invoker:</p>\n<pre><code>if (leastCount == 1) {\n    // 如果只有一个最小则直接返回\n    return invokers.get(leastIndexs[0]);\n}\n</code></pre>\n<p>如果最小活跃数的 Invoker 有多个,且权重不相等同时总权重大于0,这时随机生成一个权重,范围在 (0,totalWeight) 间内。最后根据随机生成的权重,来选择 Invoker。</p>\n<pre><code>if (! sameWeight &amp;&amp; totalWeight &gt; 0) {\n    // 如果权重不相同且权重大于0则按总权重数随机\n    int offsetWeight = random.nextInt(totalWeight);\n    // 并确定随机值落在哪个片断上\n    for (int i = 0; i &lt; leastCount; i++) {\n        int leastIndex = leastIndexs[i];\n        offsetWeight -= getWeight(invokers.get(leastIndex), invocation);\n        if (offsetWeight &lt;= 0)\n            return invokers.get(leastIndex);\n    }\n}\n</code></pre>\n<h3>4.一致性Hash算法</h3>\n<p>使用一致性 Hash 算法,让相同参数的请求总是发到同一 Provider。 当某一台 Provider 崩溃时,原本发往该 Provider 的请求,基于虚拟节点,平摊到其它 Provider,不会引起剧烈变动。 算法参见:<a href=\"http://en.wikipedia.org/wiki/Consistent_hashing\">http://en.wikipedia.org/wiki/Consistent_hashing</a>。</p>\n<p>缺省只对第一个参数Hash,如果要修改,请配置:</p>\n<pre><code>&lt;dubbo:parameter key=&quot;hash.arguments&quot; value=&quot;0,1&quot; /&gt;\n</code></pre>\n<p>缺省用160份虚拟节点,如果要修改,请配置:</p>\n<pre><code>&lt;dubbo:parameter key=&quot;hash.nodes&quot; value=&quot;320&quot; /&gt;\n</code></pre>\n<p>一致性Hash算法可以和缓存机制配合起来使用。比如有一个服务getUserInfo(String userId)。设置了Hash算法后,相同的userId的调用,都会发送到同一个 Provider。这个 Provider 上可以把用户数据在内存中进行缓存,减少访问数据库或分布式缓存的次数。如果业务上允许这部分数据有一段时间的不一致,可以考虑这种做法。减少对数据库,缓存等中间件的依赖和访问次数,同时减少了网络IO操作,提高系统性能。\b</p>\n<h2>负载均衡配置</h2>\n<p>如果不指定负载均衡,默认使用随机负载均衡。我们也可以根据自己的需要,显式指定一个负载均衡。 可以在多个地方类来配置负载均衡,比如 Provider 端,Consumer端,服务级别,方法级别等。</p>\n<h3>服务端服务级别</h3>\n<pre><code>&lt;dubbo:service interface=&quot;...&quot; loadbalance=&quot;roundrobin&quot; /&gt;\n</code></pre>\n<p>该服务的所有方法都使用roundrobin负载均衡。</p>\n<h3>客户端服务级别</h3>\n<pre><code>&lt;dubbo:reference interface=&quot;...&quot; loadbalance=&quot;roundrobin&quot; /&gt;\n</code></pre>\n<p>该服务的所有方法都使用roundrobin负载均衡。</p>\n<h3>服务端方法级别</h3>\n<pre><code>&lt;dubbo:service interface=&quot;...&quot;&gt;\n    &lt;dubbo:method name=&quot;hello&quot; loadbalance=&quot;roundrobin&quot;/&gt;\n&lt;/dubbo:service&gt;\n</code></pre>\n<p>只有该服务的hello方法使用roundrobin负载均衡。</p>\n<h3>客户端方法级别</h3>\n<pre><code>&lt;dubbo:reference interface=&quot;...&quot;&gt;\n    &lt;dubbo:method name=&quot;hello&quot; loadbalance=&quot;roundrobin&quot;/&gt;\n&lt;/dubbo:reference&gt;\n</code></pre>\n<p>只有该服务的hello方法使用roundrobin负载均衡。</p>\n<p>和Dubbo其他的配置类似,多个配置是有覆盖关系的:</p>\n<ol>\n<li>方法级优先,接口级次之,全局配置再次之。</li>\n<li>如果级别一样,则消费方优先,提供方次之。</li>\n</ol>\n<p>所以,上面4种配置的优先级是:</p>\n<ol>\n<li>客户端方法级别配置。</li>\n<li>客户端接口级别配置。</li>\n<li>服务端方法级别配置。</li>\n<li>服务端接口级别配置。</li>\n</ol>\n<h2>扩展负载均衡</h2>\n<p>Dubbo的4种负载均衡的实现,大多数情况下能满足要求。有时候,因为业务的需要,我们可能需要实现自己的负载均衡策略。本章只说明如何配置负载均衡算法。关于Dubbo扩展机制的更多内容,请前往<a href=\"https://lark.alipay.com/aliware_articles/vtpf9h/pe9pyr\">Dubbo可扩展机制实战</a>。</p>\n<ol>\n<li>实现LoadBalance接口, 以下是Dubbo的LoadBalance接口:</li>\n</ol>\n<pre><code>@SPI(RandomLoadBalance.NAME)\npublic interface LoadBalance {\n    @Adaptive(&quot;loadbalance&quot;)\n    &lt;T&gt; Invoker&lt;T&gt; select(List&lt;Invoker&lt;T&gt;&gt; invokers, URL url, Invocation invocation) throws RpcException;\n}\n</code></pre>\n<p>这是SPI的接口,select方法的参数如下:</p>\n<ul>\n<li>invokers: 所有的服务 Provider 列表。</li>\n<li>url: 一些配置信息,比如接口名,是否check,序列化方式。</li>\n<li>invocation: RPC调用的信息,包括方法名,方法参数类型,方法参数。 下面是我们自己实现的一个LoadBalance,实现很简单,选择第一个 Invoker:</li>\n</ul>\n<pre><code>package com.demo.dubbo;\npublic class DemoLoadBalance implements LoadBalance {\n    @Override\n    public &lt;T&gt; Invoker&lt;T&gt; select(List&lt;Invoker&lt;T&gt;&gt; invokers, URL url, Invocation invocation) throws RpcException {\n        System.out.println(&quot;[DemoLoadBalance]Select the first invoker...&quot;);\n        return invokers.get(0);\n    }\n}\n</code></pre>\n<ol start=\"2\">\n<li>添加资源文件 添加文件:<code>src/main/resource/META-INF/dubbo/com.alibaba.dubbo.rpc.cluster.LoadBalance</code>。这是一个简单的文本文件。文件内容如下:</li>\n</ol>\n<pre><code>demo=my=com.demo.dubbo.DemoLoadBalance\n</code></pre>\n<ol start=\"3\">\n<li>配置使用自定义LoadBalance</li>\n</ol>\n<pre><code>&lt;dubbo:reference id=&quot;helloService&quot; interface=&quot;com.demo.dubbo.api.IHelloService&quot; loadbalance=&quot;demo&quot; /&gt;\n</code></pre>\n<p>在Consumer端的<code>dubbo:reference</code>中配置<code>&lt;loadbalance=&quot;demo&quot;&gt;</code></p>\n<p>经过上面的3个步骤,我们编写了一个自定义的LoadBalance,并告诉Dubbo使用它了。启动Dubbo,我们就能看到Dubbo已经使用了自定义的DemoLoadBalance。</p>\n"
+  "__html": "<h1>Dubbo的负载均衡</h1>\n<h2>背景</h2>\n<p>Dubbo是一个分布式服务框架,能避免单点故障和支持服务的横向扩容。一个服务通常会部署多个实例。如何从多个服务 Provider 组成的集群中挑选出一个进行调用,就涉及到一个负载均衡的策略。</p>\n<h2>几个概念</h2>\n<p>在讨论负载均衡之前,我想先解释一下这3个概念。</p>\n<ol>\n<li>负载均衡</li>\n<li>集群容错</li>\n<li>服务路由</li>\n</ol>\n<p>这3个概念容易混淆。他们都描述了怎么从多个 Provider 中选择一个来进行调用。那他们到底有什么区别呢?下面我来举一个简单的例子,把这几个概念阐述清楚吧。</p>\n<p>有一个Dubbo的用户服务,在北京部署了10个,在上海部署了20个。一个杭州的服务消费方发起了一次调用,然后发生了以下的事情:</p>\n<ol>\n<li>根据配置的路由规则,如果杭州发起的调用,会路由到比较近的上海的20个 Provider。</li>\n<li>根据配置的随机负载均衡策略,在20个 Provider 中随机选择了一个来调用,假设随机到了第7个 Provider。</li>\n<li>结果调用第7个 Provider 失败了。</li>\n<li>根据配置的Failover集群容错模式,重试其他服务器。</li>\n<li>重试了第13个 Provider,调用成功。</li>\n</ol>\n<p>上面的第1,2,4步骤就分别对应了路由,负载均衡和集群容错。 Dubbo中,先通过路由,从多个 Provider 中按照路由规则,选出一个子集。再根据负载均衡从子集中选出一个 Provider 进行本次调用。如果调用失败了,根据集群容错策略,进行重试或定时重发或快速失败等。 可以看到Dubbo中的路由,负载均衡和集群容错发生在一次RPC调用的不同阶段。最先是路由,然后是负载均衡,最后是集群容错。 本文档只讨论负载均衡,路由和集群容错在其他的文档中进行说明。</p>\n<h2>Dubbo内置负载均衡策略</h2>\n<p>Dubbo内置了4种负载均衡策略:</p>\n<ol>\n<li>RandomLoadBalance:随机负载均衡。随机的选择一个。是Dubbo的<strong>默认</strong>负载均衡策略。</li>\n<li>RoundRobinLoadBalance:轮询负载均衡。轮询选择一个。</li>\n<li>LeastActiveLoadBalance:最少活跃调用数,相同活跃数的随机。活跃数指调用前后计数差。使慢的 Provider 收到更少请求,因为越慢的 Provider 的调用前后计数差会越大。</li>\n<li>ConsistentHashLoadBalance:一致性哈希负载均衡。相同参数的请求总是落在同一台机器上。</li>\n</ol>\n<h3>1.随机负载均衡</h3>\n<p>顾名思义,随机负载均衡策略就是从多个 Provider 中随机选择一个。但是 Dubbo 中的随机负载均衡有一个权重的概念,即按照权重设置随机概率。比如说,有10个 Provider,并不是说,每个 Provider 的概率都是一样的,而是要结合这10个 Provider 的权重来分配概率。</p>\n<p>Dubbo中,可以对 Provider 设置权重。比如机器性能好的,可以设置大一点的权重,性能差的,可以设置小一点的权重。权重会对负载均衡产生影响。可以在Dubbo Admin中对 Provider 进行权重的设置。</p>\n<p><strong>基于权重的负载均衡算法</strong></p>\n<p>随机策略会先判断所有的 Invoker 的权重是不是一样的,如果都是一样的,那么处理就比较简单了。使用random.nexInt(length)就可以随机生成一个 Invoker 的序号,根据序号选择对应的 Invoker 。如果没有在Dubbo Admin中对服务 Provider 设置权重,那么所有的 Invoker 的权重就是一样的,默认是100。 如果权重不一样,那就需要结合权重来设置随机概率了。算法大概如下: 假如有4个 Invoker。</p>\n<table>\n<thead>\n<tr>\n<th>invoker</th>\n<th>weight</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A</td>\n<td>10</td>\n</tr>\n<tr>\n<td>B</td>\n<td>20</td>\n</tr>\n<tr>\n<td>C</td>\n<td>20</td>\n</tr>\n<tr>\n<td>D</td>\n<td>30</td>\n</tr>\n</tbody>\n</table>\n<p>A,B,C和D总的权重是10 + 20 + 20 + 30 = 80。将80个数分布在如下的图中:</p>\n<pre><code>+-----------------------------------------------------------------------------------+\n|          |                    |                    |                              |\n+-----------------------------------------------------------------------------------+\n1          10                   30                   50                             80\n\n|-----A----|---------B----------|----------C---------|---------------D--------------|\n\n\n---------------------15\n\n-------------------------------------------37\n\n-----------------------------------------------------------54\n</code></pre>\n<p>上面的图中一共有4块区域,长度分别是A,B,C和D的权重。使用random.nextInt(10 + 20 + 20 + 30),从80个数中随机选择一个。然后再判断该数分布在哪个区域。比如,如果随机到37,37是分布在C区域的,那么就选择 Invoker C。15是在B区域,54是在D区域。</p>\n<p><strong>随机负载均衡源码</strong></p>\n<p>下面是随机负载均衡的源码,为了方便阅读和理解,我把无关部分都去掉了。</p>\n<pre><code>public class RandomLoadBalance extends AbstractLoadBalance {\n\n    private final Random random = new Random();\n\n    protected &lt;T&gt; Invoker&lt;T&gt; doSelect(List&lt;Invoker&lt;T&gt;&gt; invokers, URL url, Invocation invocation) {\n        int length = invokers.size();      // Invoker 总数\n        int totalWeight = 0;               // 所有 Invoker 的权重的和\n\n        // 判断是不是所有的 Invoker 的权重都是一样的\n        // 如果权重都一样,就简单了。直接用Random生成索引就可以了。\n        boolean sameWeight = true;\n        for (int i = 0; i &lt; length; i++) {\n            int weight = getWeight(invokers.get(i), invocation);\n            totalWeight += weight; // Sum\n            if (sameWeight &amp;&amp; i &gt; 0 &amp;&amp; weight != getWeight(invokers.get(i - 1), invocation)) {\n                sameWeight = false;\n            }\n        }\n\n        if (totalWeight &gt; 0 &amp;&amp; !sameWeight) {\n            // 如果不是所有的 Invoker 权重都相同,那么基于权重来随机选择。权重越大的,被选中的概率越大\n            int offset = random.nextInt(totalWeight);\n            for (int i = 0; i &lt; length; i++) {\n                offset -= getWeight(invokers.get(i), invocation);\n                if (offset &lt; 0) {\n                    return invokers.get(i);\n                }\n            }\n        }\n        // 如果所有 Invoker 权重相同\n        return invokers.get(random.nextInt(length));\n    }\n}\n</code></pre>\n<h3>2.轮询负载均衡</h3>\n<p>轮询负载均衡,就是依次的调用所有的 Provider。和随机负载均衡策略一样,轮询负载均衡策略也有权重的概念。 轮询负载均衡算法可以让RPC调用严格按照我们设置的比例来分配。不管是少量的调用还是大量的调用。但是轮询负载均衡算法也有不足的地方,存在慢的 Provider 累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上,导致整个系统变慢。</p>\n<h3>3.最少活跃调用数负载均衡</h3>\n<p>官方解释:</p>\n<blockquote>\n<p>最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少。</p>\n</blockquote>\n<p>这个解释好像说的不是太明白。目的是让更慢的机器收到更少的请求,但具体怎么实现的还是不太清楚。举个例子:每个服务维护一个活跃数计数器。当A机器开始处理请求,该计数器加1,此时A还未处理完成。若处理完毕则计数器减1。而B机器接受到请求后很快处理完毕。那么A,B的活跃数分别是1,0。当又产生了一个新的请求,则选择B机器去执行(B活跃数最小),这样使慢的机器A收到少的请求。</p>\n<p>处理一个新的请求时,Consumer 会检查所有 Provider 的活跃数,如果具有最小活跃数的 Invoker 只有一个,直接返回该 Invoker:</p>\n<pre><code>if (leastCount == 1) {\n    // 如果只有一个最小则直接返回\n    return invokers.get(leastIndexs[0]);\n}\n</code></pre>\n<p>如果最小活跃数的 Invoker 有多个,且权重不相等同时总权重大于0,这时随机生成一个权重,范围在 (0,totalWeight) 间内。最后根据随机生成的权重,来选择 Invoker。</p>\n<pre><code>if (! sameWeight &amp;&amp; totalWeight &gt; 0) {\n    // 如果权重不相同且权重大于0则按总权重数随机\n    int offsetWeight = random.nextInt(totalWeight);\n    // 并确定随机值落在哪个片断上\n    for (int i = 0; i &lt; leastCount; i++) {\n        int leastIndex = leastIndexs[i];\n        offsetWeight -= getWeight(invokers.get(leastIndex), invocation);\n        if (offsetWeight &lt;= 0)\n            return invokers.get(leastIndex);\n    }\n}\n</code></pre>\n<h3>4.一致性Hash算法</h3>\n<p>使用一致性 Hash 算法,让相同参数的请求总是发到同一 Provider。 当某一台 Provider 崩溃时,原本发往该 Provider 的请求,基于虚拟节点,平摊到其它 Provider,不会引起剧烈变动。 算法参见:<a href=\"http://en.wikipedia.org/wiki/Consistent_hashing\">http://en.wikipedia.org/wiki/Consistent_hashing</a>。</p>\n<p>缺省只对第一个参数Hash,如果要修改,请配置:</p>\n<pre><code>&lt;dubbo:parameter key=&quot;hash.arguments&quot; value=&quot;0,1&quot; /&gt;\n</code></pre>\n<p>缺省用160份虚拟节点,如果要修改,请配置:</p>\n<pre><code>&lt;dubbo:parameter key=&quot;hash.nodes&quot; value=&quot;320&quot; /&gt;\n</code></pre>\n<p>一致性Hash算法可以和缓存机制配合起来使用。比如有一个服务getUserInfo(String userId)。设置了Hash算法后,相同的userId的调用,都会发送到同一个 Provider。这个 Provider 上可以把用户数据在内存中进行缓存,减少访问数据库或分布式缓存的次数。如果业务上允许这部分数据有一段时间的不一致,可以考虑这种做法。减少对数据库,缓存等中间件的依赖和访问次数,同时减少了网络IO操作,提高系统性能。\b</p>\n<h2>负载均衡配置</h2>\n<p>如果不指定负载均衡,默认使用随机负载均衡。我们也可以根据自己的需要,显式指定一个负载均衡。 可以在多个地方类来配置负载均衡,比如 Provider 端,Consumer端,服务级别,方法级别等。</p>\n<h3>服务端服务级别</h3>\n<pre><code>&lt;dubbo:service interface=&quot;...&quot; loadbalance=&quot;roundrobin&quot; /&gt;\n</code></pre>\n<p>该服务的所有方法都使用roundrobin负载均衡。</p>\n<h3>客户端服务级别</h3>\n<pre><code>&lt;dubbo:reference interface=&quot;...&quot; loadbalance=&quot;roundrobin&quot; /&gt;\n</code></pre>\n<p>该服务的所有方法都使用roundrobin负载均衡。</p>\n<h3>服务端方法级别</h3>\n<pre><code>&lt;dubbo:service interface=&quot;...&quot;&gt;\n    &lt;dubbo:method name=&quot;hello&quot; loadbalance=&quot;roundrobin&quot;/&gt;\n&lt;/dubbo:service&gt;\n</code></pre>\n<p>只有该服务的hello方法使用roundrobin负载均衡。</p>\n<h3>客户端方法级别</h3>\n<pre><code>&lt;dubbo:reference interface=&quot;...&quot;&gt;\n    &lt;dubbo:method name=&quot;hello&quot; loadbalance=&quot;roundrobin&quot;/&gt;\n&lt;/dubbo:reference&gt;\n</code></pre>\n<p>只有该服务的hello方法使用roundrobin负载均衡。</p>\n<p>和Dubbo其他的配置类似,多个配置是有覆盖关系的:</p>\n<ol>\n<li>方法级优先,接口级次之,全局配置再次之。</li>\n<li>如果级别一样,则消费方优先,提供方次之。</li>\n</ol>\n<p>所以,上面4种配置的优先级是:</p>\n<ol>\n<li>客户端方法级别配置。</li>\n<li>客户端接口级别配置。</li>\n<li>服务端方法级别配置。</li>\n<li>服务端接口级别配置。</li>\n</ol>\n<h2>扩展负载均衡</h2>\n<p>Dubbo的4种负载均衡的实现,大多数情况下能满足要求。有时候,因为业务的需要,我们可能需要实现自己的负载均衡策略。本章只说明如何配置负载均衡算法。关于Dubbo扩展机制的更多内容,请前往<a href=\"https://lark.alipay.com/aliware_articles/vtpf9h/pe9pyr\">Dubbo可扩展机制实战</a>。</p>\n<ol>\n<li>实现LoadBalance接口, 以下是Dubbo的LoadBalance接口:</li>\n</ol>\n<pre><code>@SPI(RandomLoadBalance.NAME)\npublic interface LoadBalance {\n    @Adaptive(&quot;loadbalance&quot;)\n    &lt;T&gt; Invoker&lt;T&gt; select(List&lt;Invoker&lt;T&gt;&gt; invokers, URL url, Invocation invocation) throws RpcException;\n}\n</code></pre>\n<p>这是SPI的接口,select方法的参数如下:</p>\n<ul>\n<li>invokers: 所有的服务 Provider 列表。</li>\n<li>url: 一些配置信息,比如接口名,是否check,序列化方式。</li>\n<li>invocation: RPC调用的信息,包括方法名,方法参数类型,方法参数。 下面是我们自己实现的一个LoadBalance,实现很简单,选择第一个 Invoker:</li>\n</ul>\n<pre><code>package com.demo.dubbo;\npublic class DemoLoadBalance implements LoadBalance {\n    @Override\n    public &lt;T&gt; Invoker&lt;T&gt; select(List&lt;Invoker&lt;T&gt;&gt; invokers, URL url, Invocation invocation) throws RpcException {\n        System.out.println(&quot;[DemoLoadBalance]Select the first invoker...&quot;);\n        return invokers.get(0);\n    }\n}\n</code></pre>\n<ol start=\"2\">\n<li>添加资源文件 添加文件:<code>src/main/resource/META-INF/dubbo/com.alibaba.dubbo.rpc.cluster.LoadBalance</code>。这是一个简单的文本文件。文件内容如下:</li>\n</ol>\n<pre><code>demo=my=com.demo.dubbo.DemoLoadBalance\n</code></pre>\n<ol start=\"3\">\n<li>配置使用自定义LoadBalance</li>\n</ol>\n<pre><code>&lt;dubbo:reference id=&quot;helloService&quot; interface=&quot;com.demo.dubbo.api.IHelloService&quot; loadbalance=&quot;demo&quot; /&gt;\n</code></pre>\n<p>在Consumer端的<code>dubbo:reference</code>中配置<code>&lt;loadbalance=&quot;demo&quot;&gt;</code></p>\n<p>经过上面的3个步骤,我们编写了一个自定义的LoadBalance,并告诉Dubbo使用它了。启动Dubbo,我们就能看到Dubbo已经使用了自定义的DemoLoadBalance。</p>\n"
 }
\ No newline at end of file
diff --git a/zh-cn/docs/user/demos/loadbalance.html b/zh-cn/docs/user/demos/loadbalance.html
index 68779996..50caa133 100644
--- a/zh-cn/docs/user/demos/loadbalance.html
+++ b/zh-cn/docs/user/demos/loadbalance.html
@@ -23,7 +23,7 @@ <h3>Random LoadBalance</h3>
 </ul>
 <h3>RoundRobin LoadBalance</h3>
 <ul>
-<li><strong>轮循</strong>,按公约后的权重设置轮循比率。</li>
+<li><strong>轮询</strong>,按公约后的权重设置轮询比率。</li>
 <li>存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。</li>
 </ul>
 <h3>LeastActive LoadBalance</h3>
diff --git a/zh-cn/docs/user/demos/loadbalance.json b/zh-cn/docs/user/demos/loadbalance.json
index b0dc4ee6..c53cb678 100644
--- a/zh-cn/docs/user/demos/loadbalance.json
+++ b/zh-cn/docs/user/demos/loadbalance.json
@@ -1,4 +1,4 @@
 {
   "filename": "loadbalance.md",
-  "__html": "<h1>负载均衡</h1>\n<p>在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 <code>random</code> 随机调用。</p>\n<p>可以自行扩展负载均衡策略,参见:<a href=\"../../dev/impls/load-balance.md\">负载均衡扩展</a></p>\n<h2>负载均衡策略</h2>\n<h3>Random LoadBalance</h3>\n<ul>\n<li><strong>随机</strong>,按权重设置随机概率。</li>\n<li>在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。</li>\n</ul>\n<h3>RoundRobin LoadBalance</h3>\n<ul>\n<li><strong>轮循</strong>,按公约后的权重设置轮循比率。</li>\n<li>存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。</li>\n</ul>\n<h3>LeastActive LoadBalance</h3>\n<ul>\n<li><strong>最少活跃调用数</strong>,相同活跃数的随机,活跃数指调用前后计数差。</li>\n<li>使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。</li>\n</ul>\n<h3>ConsistentHash LoadBalance</h3>\n<ul>\n<li><strong>一致性 Hash</strong>,相同参数的请求总是发到同一提供者。</li>\n<li>当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。</li>\n<li>算法参见:<a href=\"http://en.wikipedia.org/wiki/Consistent_hashing\">http://en.wikipedia.org/wiki/Consistent_hashing</a></li>\n<li>缺省只对第一个参数 Hash,如果要修改,请配置 <code>&lt;dubbo:parameter key=&quot;hash.arguments&quot; value=&quot;0,1&quot; /&gt;</code></li>\n<li>缺省用 160 份虚拟节点,如果要修改,请配置 <code>&lt;dubbo:parameter key=&quot;hash.nodes&quot; value=&quot;320&quot; /&gt;</code></li>\n</ul>\n<h2>配置</h2>\n<h3>服务端服务级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:service</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span> /&gt;</span>\n</code></pre>\n<h3>客户端服务级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:reference</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span> /&gt;</span>\n</code></pre>\n<h3>服务端方法级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:service</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span>&gt;</span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:method</span> <span class=\"hljs-attr\">name</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span>/&gt;</span>\n<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\">dubbo:service</span>&gt;</span>\n</code></pre>\n<h3>客户端方法级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:reference</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span>&gt;</span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:method</span> <span class=\"hljs-attr\">name</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span>/&gt;</span>\n<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\">dubbo:reference</span>&gt;</span>\n</code></pre>\n"
+  "__html": "<h1>负载均衡</h1>\n<p>在集群负载均衡时,Dubbo 提供了多种均衡策略,缺省为 <code>random</code> 随机调用。</p>\n<p>可以自行扩展负载均衡策略,参见:<a href=\"../../dev/impls/load-balance.md\">负载均衡扩展</a></p>\n<h2>负载均衡策略</h2>\n<h3>Random LoadBalance</h3>\n<ul>\n<li><strong>随机</strong>,按权重设置随机概率。</li>\n<li>在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。</li>\n</ul>\n<h3>RoundRobin LoadBalance</h3>\n<ul>\n<li><strong>轮询</strong>,按公约后的权重设置轮询比率。</li>\n<li>存在慢的提供者累积请求的问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。</li>\n</ul>\n<h3>LeastActive LoadBalance</h3>\n<ul>\n<li><strong>最少活跃调用数</strong>,相同活跃数的随机,活跃数指调用前后计数差。</li>\n<li>使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。</li>\n</ul>\n<h3>ConsistentHash LoadBalance</h3>\n<ul>\n<li><strong>一致性 Hash</strong>,相同参数的请求总是发到同一提供者。</li>\n<li>当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。</li>\n<li>算法参见:<a href=\"http://en.wikipedia.org/wiki/Consistent_hashing\">http://en.wikipedia.org/wiki/Consistent_hashing</a></li>\n<li>缺省只对第一个参数 Hash,如果要修改,请配置 <code>&lt;dubbo:parameter key=&quot;hash.arguments&quot; value=&quot;0,1&quot; /&gt;</code></li>\n<li>缺省用 160 份虚拟节点,如果要修改,请配置 <code>&lt;dubbo:parameter key=&quot;hash.nodes&quot; value=&quot;320&quot; /&gt;</code></li>\n</ul>\n<h2>配置</h2>\n<h3>服务端服务级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:service</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span> /&gt;</span>\n</code></pre>\n<h3>客户端服务级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:reference</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span> /&gt;</span>\n</code></pre>\n<h3>服务端方法级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:service</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span>&gt;</span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:method</span> <span class=\"hljs-attr\">name</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span>/&gt;</span>\n<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\">dubbo:service</span>&gt;</span>\n</code></pre>\n<h3>客户端方法级别</h3>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:reference</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"...\"</span>&gt;</span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:method</span> <span class=\"hljs-attr\">name</span>=<span class=\"hljs-string\">\"...\"</span> <span class=\"hljs-attr\">loadbalance</span>=<span class=\"hljs-string\">\"roundrobin\"</span>/&gt;</span>\n<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\">dubbo:reference</span>&gt;</span>\n</code></pre>\n"
 }
\ No newline at end of file
diff --git a/zh-cn/docs/user/maturity.html b/zh-cn/docs/user/maturity.html
index c0e05aae..cda7e891 100644
--- a/zh-cn/docs/user/maturity.html
+++ b/zh-cn/docs/user/maturity.html
@@ -484,7 +484,7 @@ <h2>策略成熟度</h2>
 <tr>
 <td>RoundRobin LoadBalance</td>
 <td>Stable</td>
-<td>轮循,按公约后的权重设置轮循比率</td>
+<td>轮询,按公约后的权重设置轮询比率</td>
 <td>存在慢的机器累积请求问题,极端情况可能产生雪崩</td>
 <td>可用于生产环境</td>
 <td></td>
diff --git a/zh-cn/docs/user/maturity.json b/zh-cn/docs/user/maturity.json
index 6d4a628e..f32bfae6 100644
--- a/zh-cn/docs/user/maturity.json
+++ b/zh-cn/docs/user/maturity.json
@@ -1,4 +1,4 @@
 {
   "filename": "maturity.md",
-  "__html": "<h1>成熟度</h1>\n<h2>功能成熟度</h2>\n<table>\n<thead>\n<tr>\n<th>Feature</th>\n<th>Maturity</th>\n<th>Strength</th>\n<th>Problem</th>\n<th>Advise</th>\n<th>User</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>并发控制</td>\n<td>Tested</td>\n<td>并发控制</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>连接控制</td>\n<td>Tested</td>\n<td>连接数控制</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>直连提供者</td>\n<td>Tested</td>\n<td>点对点直连服务提供方,用于测试</td>\n<td></td>\n<td>测试环境使用</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>分组聚合</td>\n<td>Tested</td>\n<td>分组聚合返回值,用于菜单聚合等服务</td>\n<td>特殊场景使用</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>参数验证</td>\n<td>Tested</td>\n<td>参数验证,JSR303验证框架集成</td>\n<td>对性能有影响</td>\n<td>试用</td>\n<td>LaiWang</td>\n</tr>\n<tr>\n<td>结果缓存</td>\n<td>Tested</td>\n<td>结果缓存,用于加速请求</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>泛化引用</td>\n<td>Stable</td>\n<td>泛化调用,无需业务接口类进行远程调用,用于测试平台,开放网关桥接等</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>泛化实现</td>\n<td>Stable</td>\n<td>泛化实现,无需业务接口类实现任意接口,用于Mock平台</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>回声测试</td>\n<td>Tested</td>\n<td>回声测试</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>隐式传参</td>\n<td>Stable</td>\n<td>附加参数</td>\n<td></td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>异步调用</td>\n<td>Tested</td>\n<td>不可靠异步调用</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>本地调用</td>\n<td>Tested</td>\n<td>本地调用</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>参数回调</td>\n<td>Tested</td>\n<td>参数回调</td>\n<td>特殊场景使用</td>\n<td>试用</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>事件通知</td>\n<td>Tested</td>\n<td>事件通知,在远程调用执行前后触发</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>本地存根</td>\n<td>Stable</td>\n<td>在客户端执行部分逻辑</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>本地伪装</td>\n<td>Stable</td>\n<td>伪造返回结果,可在失败时执行,或直接执行,用于服务降级</td>\n<td>需注册中心支持</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>延迟暴露</td>\n<td>Stable</td>\n<td>延迟暴露服务,用于等待应用加载warmup数据,或等待spring加载完成</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>延迟连接</td>\n<td>Tested</td>\n<td>延迟建立连接,调用时建立</td>\n<td></td>\n<td>试用</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>粘滞连接</td>\n<td>Tested</td>\n<td>粘滞连接,总是向同一个提供方发起请求,除非此提供方挂掉,再切换到另一台</td>\n<td></td>\n<td>试用</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>令牌验证</td>\n<td>Tested</td>\n<td>令牌验证,用于服务授权</td>\n<td>需注册中心支持</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>路由规则</td>\n<td>Tested</td>\n<td>动态决定调用关系</td>\n<td>需注册中心支持</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>配置规则</td>\n<td>Tested</td>\n<td>动态下发配置,实现功能的开关</td>\n<td>需注册中心支持</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>访问日志</td>\n<td>Tested</td>\n<td>访问日志,用于记录调用信息</td>\n<td>本地存储,影响性能,受磁盘大小限制</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>分布式事务</td>\n<td>Research</td>\n<td>JTA/XA三阶段提交事务</td>\n<td>不稳定</td>\n<td>不可用</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h2>策略成熟度</h2>\n<table>\n<thead>\n<tr>\n<th>Feature</th>\n<th>Maturity</th>\n<th>Strength</th>\n<th>Problem</th>\n<th>Advise</th>\n<th>User</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Zookeeper注册中心</td>\n<td>Stable</td>\n<td>支持基于网络的集群方式,有广泛周边开源产品,建议使用dubbo-2.3.3以上版本(推荐使用)</td>\n<td>依赖于Zookeeper的稳定性</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Redis注册中心</td>\n<td>Stable</td>\n<td>支持基于客户端双写的集群方式,性能高</td>\n<td>要求服务器时间同步,用于检查心跳过期脏数据</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Multicast注册中心</td>\n<td>Tested</td>\n<td>去中心化,不需要安装注册中心</td>\n<td>依赖于网络拓普和路由,跨机房有风险</td>\n<td>小规模应用或开发测试环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Simple注册中心</td>\n<td>Tested</td>\n<td>Dogfooding,注册中心本身也是一个标准的RPC服务</td>\n<td>没有集群支持,可能单点故障</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Simple监控中心</td>\n<td>Stable</td>\n<td>支持JFreeChart统计报表</td>\n<td>没有集群支持,可能单点故障,但故障后不影响RPC运行</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Dubbo协议</td>\n<td>Stable</td>\n<td>采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)</td>\n<td>在大文件传输时,单一连接会成为瓶颈</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Rmi协议</td>\n<td>Stable</td>\n<td>可与原生RMI互操作,基于TCP协议</td>\n<td>偶尔会连接失败,需重建Stub</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Hessian协议</td>\n<td>Stable</td>\n<td>可与原生Hessian互操作,基于HTTP协议</td>\n<td>需hessian.jar支持,http短连接的开销大</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Netty Transporter</td>\n<td>Stable</td>\n<td>JBoss的NIO框架,性能较好(推荐使用)</td>\n<td>一次请求派发两种事件,需屏蔽无用事件</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Mina Transporter</td>\n<td>Stable</td>\n<td>老牌NIO框架,稳定</td>\n<td>待发送消息队列派发不及时,大压力下,会出现FullGC</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Grizzly Transporter</td>\n<td>Tested</td>\n<td>Sun的NIO框架,应用于GlassFish服务器中</td>\n<td>线程池不可扩展,Filter不能拦截下一Filter</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Hessian Serialization</td>\n<td>Stable</td>\n<td>性能较好,多语言支持(推荐使用)</td>\n<td>Hessian的各版本兼容性不好,可能和应用使用的Hessian冲突,Dubbo内嵌了hessian3.2.1的源码</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Dubbo Serialization</td>\n<td>Tested</td>\n<td>通过不传送POJO的类元信息,在大量POJO传输时,性能较好</td>\n<td>当参数对象增加字段时,需外部文件声明</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Json Serialization</td>\n<td>Tested</td>\n<td>纯文本,可跨语言解析,缺省采用FastJson解析</td>\n<td>性能较差</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Java Serialization</td>\n<td>Stable</td>\n<td>Java原生支持</td>\n<td>性能较差</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Javassist ProxyFactory</td>\n<td>Stable</td>\n<td>通过字节码生成代替反射,性能比较好(推荐使用)</td>\n<td>依赖于javassist.jar包,占用JVM的Perm内存,Perm可能要设大一些:java -XX:PermSize=128m</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Jdk ProxyFactory</td>\n<td>Stable</td>\n<td>JDK原生支持</td>\n<td>性能较差</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Failover Cluster</td>\n<td>Stable</td>\n<td>失败自动切换,当出现失败,重试其它服务器,通常用于读操作(推荐使用)</td>\n<td>重试会带来更长延迟</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Failfast Cluster</td>\n<td>Stable</td>\n<td>快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作</td>\n<td>如果有机器正在重启,可能会出现调用失败</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Failsafe Cluster</td>\n<td>Stable</td>\n<td>失败安全,出现异常时,直接忽略,通常用于写入审计日志等操作</td>\n<td>调用信息丢失</td>\n<td>可用于生产环境</td>\n<td>Monitor</td>\n</tr>\n<tr>\n<td>Failback Cluster</td>\n<td>Tested</td>\n<td>失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作</td>\n<td>不可靠,重启丢失</td>\n<td>可用于生产环境</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>Forking Cluster</td>\n<td>Tested</td>\n<td>并行调用多个服务器,只要一个成功即返回,通常用于实时性要求较高的读操作</td>\n<td>需要浪费更多服务资源</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Broadcast Cluster</td>\n<td>Tested</td>\n<td>广播调用所有提供者,逐个调用,任意一台报错则报错,通常用于更新提供方本地状态</td>\n<td>速度慢,任意一台报错则报错</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Random LoadBalance</td>\n<td>Stable</td>\n<td>随机,按权重设置随机概率(推荐使用)</td>\n<td>在一个截面上碰撞的概率高,重试时,可能出现瞬间压力不均</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>RoundRobin LoadBalance</td>\n<td>Stable</td>\n<td>轮循,按公约后的权重设置轮循比率</td>\n<td>存在慢的机器累积请求问题,极端情况可能产生雪崩</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>LeastActive LoadBalance</td>\n<td>Stable</td>\n<td>最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少请求</td>\n<td>不支持权重,在容量规划时,不能通过权重把压力导向一台机器压测容量</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>ConsistentHash LoadBalance</td>\n<td>Stable</td>\n<td>一致性Hash,相同参数的请求总是发到同一提供者,当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动</td>\n<td>压力分摊不均</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>条件路由规则</td>\n<td>Stable</td>\n<td>基于条件表达式的路由规则,功能简单易用</td>\n<td>有些复杂多分支条件情况,规则很难描述</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>脚本路由规则</td>\n<td>Tested</td>\n<td>基于脚本引擎的路由规则,功能强大</td>\n<td>没有运行沙箱,脚本能力过于强大,可能成为后门</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Spring Container</td>\n<td>Stable</td>\n<td>自动加载META-INF/spring目录下的所有Spring配置</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Jetty Container</td>\n<td>Stable</td>\n<td>启动一个内嵌Jetty,用于汇报状态</td>\n<td>大量访问页面时,会影响服务器的线程和内存</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Log4j Container</td>\n<td>Stable</td>\n<td>自动配置log4j的配置,在多进程启动时,自动给日志文件按进程分目录</td>\n<td>用户不能控制log4j的配置,不灵活</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n</tbody>\n</table>\n"
+  "__html": "<h1>成熟度</h1>\n<h2>功能成熟度</h2>\n<table>\n<thead>\n<tr>\n<th>Feature</th>\n<th>Maturity</th>\n<th>Strength</th>\n<th>Problem</th>\n<th>Advise</th>\n<th>User</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>并发控制</td>\n<td>Tested</td>\n<td>并发控制</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>连接控制</td>\n<td>Tested</td>\n<td>连接数控制</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>直连提供者</td>\n<td>Tested</td>\n<td>点对点直连服务提供方,用于测试</td>\n<td></td>\n<td>测试环境使用</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>分组聚合</td>\n<td>Tested</td>\n<td>分组聚合返回值,用于菜单聚合等服务</td>\n<td>特殊场景使用</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>参数验证</td>\n<td>Tested</td>\n<td>参数验证,JSR303验证框架集成</td>\n<td>对性能有影响</td>\n<td>试用</td>\n<td>LaiWang</td>\n</tr>\n<tr>\n<td>结果缓存</td>\n<td>Tested</td>\n<td>结果缓存,用于加速请求</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>泛化引用</td>\n<td>Stable</td>\n<td>泛化调用,无需业务接口类进行远程调用,用于测试平台,开放网关桥接等</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>泛化实现</td>\n<td>Stable</td>\n<td>泛化实现,无需业务接口类实现任意接口,用于Mock平台</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>回声测试</td>\n<td>Tested</td>\n<td>回声测试</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>隐式传参</td>\n<td>Stable</td>\n<td>附加参数</td>\n<td></td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>异步调用</td>\n<td>Tested</td>\n<td>不可靠异步调用</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>本地调用</td>\n<td>Tested</td>\n<td>本地调用</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>参数回调</td>\n<td>Tested</td>\n<td>参数回调</td>\n<td>特殊场景使用</td>\n<td>试用</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>事件通知</td>\n<td>Tested</td>\n<td>事件通知,在远程调用执行前后触发</td>\n<td></td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>本地存根</td>\n<td>Stable</td>\n<td>在客户端执行部分逻辑</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>本地伪装</td>\n<td>Stable</td>\n<td>伪造返回结果,可在失败时执行,或直接执行,用于服务降级</td>\n<td>需注册中心支持</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>延迟暴露</td>\n<td>Stable</td>\n<td>延迟暴露服务,用于等待应用加载warmup数据,或等待spring加载完成</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>延迟连接</td>\n<td>Tested</td>\n<td>延迟建立连接,调用时建立</td>\n<td></td>\n<td>试用</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>粘滞连接</td>\n<td>Tested</td>\n<td>粘滞连接,总是向同一个提供方发起请求,除非此提供方挂掉,再切换到另一台</td>\n<td></td>\n<td>试用</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>令牌验证</td>\n<td>Tested</td>\n<td>令牌验证,用于服务授权</td>\n<td>需注册中心支持</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>路由规则</td>\n<td>Tested</td>\n<td>动态决定调用关系</td>\n<td>需注册中心支持</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>配置规则</td>\n<td>Tested</td>\n<td>动态下发配置,实现功能的开关</td>\n<td>需注册中心支持</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>访问日志</td>\n<td>Tested</td>\n<td>访问日志,用于记录调用信息</td>\n<td>本地存储,影响性能,受磁盘大小限制</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>分布式事务</td>\n<td>Research</td>\n<td>JTA/XA三阶段提交事务</td>\n<td>不稳定</td>\n<td>不可用</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h2>策略成熟度</h2>\n<table>\n<thead>\n<tr>\n<th>Feature</th>\n<th>Maturity</th>\n<th>Strength</th>\n<th>Problem</th>\n<th>Advise</th>\n<th>User</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Zookeeper注册中心</td>\n<td>Stable</td>\n<td>支持基于网络的集群方式,有广泛周边开源产品,建议使用dubbo-2.3.3以上版本(推荐使用)</td>\n<td>依赖于Zookeeper的稳定性</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Redis注册中心</td>\n<td>Stable</td>\n<td>支持基于客户端双写的集群方式,性能高</td>\n<td>要求服务器时间同步,用于检查心跳过期脏数据</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Multicast注册中心</td>\n<td>Tested</td>\n<td>去中心化,不需要安装注册中心</td>\n<td>依赖于网络拓普和路由,跨机房有风险</td>\n<td>小规模应用或开发测试环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Simple注册中心</td>\n<td>Tested</td>\n<td>Dogfooding,注册中心本身也是一个标准的RPC服务</td>\n<td>没有集群支持,可能单点故障</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Simple监控中心</td>\n<td>Stable</td>\n<td>支持JFreeChart统计报表</td>\n<td>没有集群支持,可能单点故障,但故障后不影响RPC运行</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Dubbo协议</td>\n<td>Stable</td>\n<td>采用NIO复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率,性能较好(推荐使用)</td>\n<td>在大文件传输时,单一连接会成为瓶颈</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Rmi协议</td>\n<td>Stable</td>\n<td>可与原生RMI互操作,基于TCP协议</td>\n<td>偶尔会连接失败,需重建Stub</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Hessian协议</td>\n<td>Stable</td>\n<td>可与原生Hessian互操作,基于HTTP协议</td>\n<td>需hessian.jar支持,http短连接的开销大</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Netty Transporter</td>\n<td>Stable</td>\n<td>JBoss的NIO框架,性能较好(推荐使用)</td>\n<td>一次请求派发两种事件,需屏蔽无用事件</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Mina Transporter</td>\n<td>Stable</td>\n<td>老牌NIO框架,稳定</td>\n<td>待发送消息队列派发不及时,大压力下,会出现FullGC</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Grizzly Transporter</td>\n<td>Tested</td>\n<td>Sun的NIO框架,应用于GlassFish服务器中</td>\n<td>线程池不可扩展,Filter不能拦截下一Filter</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Hessian Serialization</td>\n<td>Stable</td>\n<td>性能较好,多语言支持(推荐使用)</td>\n<td>Hessian的各版本兼容性不好,可能和应用使用的Hessian冲突,Dubbo内嵌了hessian3.2.1的源码</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Dubbo Serialization</td>\n<td>Tested</td>\n<td>通过不传送POJO的类元信息,在大量POJO传输时,性能较好</td>\n<td>当参数对象增加字段时,需外部文件声明</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Json Serialization</td>\n<td>Tested</td>\n<td>纯文本,可跨语言解析,缺省采用FastJson解析</td>\n<td>性能较差</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Java Serialization</td>\n<td>Stable</td>\n<td>Java原生支持</td>\n<td>性能较差</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Javassist ProxyFactory</td>\n<td>Stable</td>\n<td>通过字节码生成代替反射,性能比较好(推荐使用)</td>\n<td>依赖于javassist.jar包,占用JVM的Perm内存,Perm可能要设大一些:java -XX:PermSize=128m</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Jdk ProxyFactory</td>\n<td>Stable</td>\n<td>JDK原生支持</td>\n<td>性能较差</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Failover Cluster</td>\n<td>Stable</td>\n<td>失败自动切换,当出现失败,重试其它服务器,通常用于读操作(推荐使用)</td>\n<td>重试会带来更长延迟</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Failfast Cluster</td>\n<td>Stable</td>\n<td>快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作</td>\n<td>如果有机器正在重启,可能会出现调用失败</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Failsafe Cluster</td>\n<td>Stable</td>\n<td>失败安全,出现异常时,直接忽略,通常用于写入审计日志等操作</td>\n<td>调用信息丢失</td>\n<td>可用于生产环境</td>\n<td>Monitor</td>\n</tr>\n<tr>\n<td>Failback Cluster</td>\n<td>Tested</td>\n<td>失败自动恢复,后台记录失败请求,定时重发,通常用于消息通知操作</td>\n<td>不可靠,重启丢失</td>\n<td>可用于生产环境</td>\n<td>Registry</td>\n</tr>\n<tr>\n<td>Forking Cluster</td>\n<td>Tested</td>\n<td>并行调用多个服务器,只要一个成功即返回,通常用于实时性要求较高的读操作</td>\n<td>需要浪费更多服务资源</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Broadcast Cluster</td>\n<td>Tested</td>\n<td>广播调用所有提供者,逐个调用,任意一台报错则报错,通常用于更新提供方本地状态</td>\n<td>速度慢,任意一台报错则报错</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Random LoadBalance</td>\n<td>Stable</td>\n<td>随机,按权重设置随机概率(推荐使用)</td>\n<td>在一个截面上碰撞的概率高,重试时,可能出现瞬间压力不均</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>RoundRobin LoadBalance</td>\n<td>Stable</td>\n<td>轮询,按公约后的权重设置轮询比率</td>\n<td>存在慢的机器累积请求问题,极端情况可能产生雪崩</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>LeastActive LoadBalance</td>\n<td>Stable</td>\n<td>最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差,使慢的机器收到更少请求</td>\n<td>不支持权重,在容量规划时,不能通过权重把压力导向一台机器压测容量</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>ConsistentHash LoadBalance</td>\n<td>Stable</td>\n<td>一致性Hash,相同参数的请求总是发到同一提供者,当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动</td>\n<td>压力分摊不均</td>\n<td>可用于生产环境</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>条件路由规则</td>\n<td>Stable</td>\n<td>基于条件表达式的路由规则,功能简单易用</td>\n<td>有些复杂多分支条件情况,规则很难描述</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>脚本路由规则</td>\n<td>Tested</td>\n<td>基于脚本引擎的路由规则,功能强大</td>\n<td>没有运行沙箱,脚本能力过于强大,可能成为后门</td>\n<td>试用</td>\n<td></td>\n</tr>\n<tr>\n<td>Feature</td>\n<td>Maturity</td>\n<td>Strength</td>\n<td>Problem</td>\n<td>Advise</td>\n<td>User</td>\n</tr>\n<tr>\n<td>Spring Container</td>\n<td>Stable</td>\n<td>自动加载META-INF/spring目录下的所有Spring配置</td>\n<td></td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Jetty Container</td>\n<td>Stable</td>\n<td>启动一个内嵌Jetty,用于汇报状态</td>\n<td>大量访问页面时,会影响服务器的线程和内存</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n<tr>\n<td>Log4j Container</td>\n<td>Stable</td>\n<td>自动配置log4j的配置,在多进程启动时,自动给日志文件按进程分目录</td>\n<td>用户不能控制log4j的配置,不灵活</td>\n<td>可用于生产环境</td>\n<td>Alibaba</td>\n</tr>\n</tbody>\n</table>\n"
 }
\ No newline at end of file
diff --git a/zh-cn/docs/user/references/xml/dubbo-consumer.html b/zh-cn/docs/user/references/xml/dubbo-consumer.html
index 2f88dee2..684cf0cd 100644
--- a/zh-cn/docs/user/references/xml/dubbo-consumer.html
+++ b/zh-cn/docs/user/references/xml/dubbo-consumer.html
@@ -98,7 +98,7 @@ <h1>dubbo:consumer</h1>
 <td>可选</td>
 <td>random</td>
 <td>性能调优</td>
-<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>
+<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
 <td>1.0.16以上版本</td>
 </tr>
 <tr>
diff --git a/zh-cn/docs/user/references/xml/dubbo-consumer.json b/zh-cn/docs/user/references/xml/dubbo-consumer.json
index caaee8c8..cfa2cf8d 100644
--- a/zh-cn/docs/user/references/xml/dubbo-consumer.json
+++ b/zh-cn/docs/user/references/xml/dubbo-consumer.json
@@ -1,4 +1,4 @@
 {
   "filename": "dubbo-consumer.md",
-  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:consumer</h1>\n<p>服务消费者缺省值配置。配置类: <code>com.alibaba.dubbo.config.ConsumerConfig</code> 。同时该标签为 <code>&lt;dubbo:reference&gt;</code> 标签的缺省值设置。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>timeout</td>\n<td>default.timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>1000</td>\n<td>性能调优</td>\n<td>远程服务调用超时时间(毫秒)</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>default.retries</td>\n<td>int</td>\n<td>可选</td>\n<td>2</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>default.loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>random</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>default.async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>default.connections</td>\n<td>int</td>\n<td>可选</td>\n<td>100</td>\n<td>性能调优</td>\n<td>每个服务对每个提供者的最大连接数,rmi、http、hessian等短连接协议支持此配置,dubbo协议长连接不支持此配置</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>generic</td>\n<td>generic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>check</td>\n<td>check</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>启动时检查提供者是否存在,true报错,false忽略</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>string</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>生成动态代理方式,可选:jdk/javassist</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>调用服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>default.actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者每服务每方法最大并发调用数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>default.cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>reference.filter</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务消费方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>invoker.listener</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务消费方引用服务监听器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>registry</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺省向所有registry注册</td>\n<td>配置关联</td>\n<td>向指定注册中心注册,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务调用者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n<tr>\n<td>init</td>\n<td>init</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否在afterPropertiesSet()时饥饿初始化引用,否则等到有人注入或引用该实例时再初始化。</td>\n<td>2.0.10以上版本</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>cache</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>validation</td>\n<td>validation</td>\n<td>boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n</tbody>\n</table>\n"
+  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:consumer</h1>\n<p>服务消费者缺省值配置。配置类: <code>com.alibaba.dubbo.config.ConsumerConfig</code> 。同时该标签为 <code>&lt;dubbo:reference&gt;</code> 标签的缺省值设置。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>timeout</td>\n<td>default.timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>1000</td>\n<td>性能调优</td>\n<td>远程服务调用超时时间(毫秒)</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>default.retries</td>\n<td>int</td>\n<td>可选</td>\n<td>2</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>default.loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>random</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>default.async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>default.connections</td>\n<td>int</td>\n<td>可选</td>\n<td>100</td>\n<td>性能调优</td>\n<td>每个服务对每个提供者的最大连接数,rmi、http、hessian等短连接协议支持此配置,dubbo协议长连接不支持此配置</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>generic</td>\n<td>generic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>check</td>\n<td>check</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>启动时检查提供者是否存在,true报错,false忽略</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>string</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>生成动态代理方式,可选:jdk/javassist</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>调用服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>default.actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者每服务每方法最大并发调用数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>default.cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>reference.filter</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务消费方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>invoker.listener</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务消费方引用服务监听器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>registry</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺省向所有registry注册</td>\n<td>配置关联</td>\n<td>向指定注册中心注册,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务调用者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n<tr>\n<td>init</td>\n<td>init</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否在afterPropertiesSet()时饥饿初始化引用,否则等到有人注入或引用该实例时再初始化。</td>\n<td>2.0.10以上版本</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>cache</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>validation</td>\n<td>validation</td>\n<td>boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n</tbody>\n</table>\n"
 }
\ No newline at end of file
diff --git a/zh-cn/docs/user/references/xml/dubbo-method.html b/zh-cn/docs/user/references/xml/dubbo-method.html
index c9567758..022d4998 100644
--- a/zh-cn/docs/user/references/xml/dubbo-method.html
+++ b/zh-cn/docs/user/references/xml/dubbo-method.html
@@ -108,7 +108,7 @@ <h1>dubbo:method</h1>
 <td>可选</td>
 <td>缺省为的loadbalance</td>
 <td>性能调优</td>
-<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>
+<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
 <td>2.0.0以上版本</td>
 </tr>
 <tr>
diff --git a/zh-cn/docs/user/references/xml/dubbo-method.json b/zh-cn/docs/user/references/xml/dubbo-method.json
index 636f7bf6..e7100f0b 100644
--- a/zh-cn/docs/user/references/xml/dubbo-method.json
+++ b/zh-cn/docs/user/references/xml/dubbo-method.json
@@ -1,4 +1,4 @@
 {
   "filename": "dubbo-method.md",
-  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:method</h1>\n<p>方法级配置。对应的配置类: <code>com.alibaba.dubbo.config.MethodConfig</code>。同时该标签为 <code>&lt;dubbo:service&gt;</code> 或 <code>&lt;dubbo:reference&gt;</code> 的子标签,用于控制到方法级。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td></td>\n<td>string</td>\n<td><b>必填</b></td>\n<td></td>\n<td>标识</td>\n<td>方法名</td>\n<td>1.0.8以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>&lt;metodName&gt;.timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省为的timeout</td>\n<td>性能调优</td>\n<td>方法调用超时时间(毫秒)</td>\n<td>1.0.8以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>&lt;metodName&gt;.retries</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省为&lt;dubbo:reference&gt;的retries</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>&lt;metodName&gt;.loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省为的loadbalance</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>&lt;metodName&gt;.async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省为&lt;dubbo:reference&gt;的async</td>\n<td>性能调优</td>\n<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>1.0.9以上版本</td>\n</tr>\n<tr>\n<td>sent</td>\n<td>&lt;methodName&gt;.sent</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>性能调优</td>\n<td>异步调用时,标记sent=true时,表示网络已发出数据</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>&lt;metodName&gt;.actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者最大并发调用限制</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>executes</td>\n<td>&lt;metodName&gt;.executes</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务每方法最大使用线程数限制- -,此属性只在&lt;dubbo:method&gt;作为&lt;dubbo:service&gt;子标签时有效</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>deprecated</td>\n<td>&lt;methodName&gt;.deprecated</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>服务方法是否过时,此属性只在&lt;dubbo:method&gt;作为&lt;dubbo:service&gt;子标签时有效</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>sticky</td>\n<td>&lt;methodName&gt;.sticky</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设置true 该接口上的所有方法使用同一个provider.如果需要更复杂的规则,请使用用路由</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>return</td>\n<td>&lt;methodName&gt;.return</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>性能调优</td>\n<td>方法调用是否需要返回值,async设置为true时才生效,如果设置为true,则返回future,或回调onreturn等方法,如果设置为false,则请求发送成功后直接返回Null</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>oninvoke</td>\n<td>attribute属性,不在URL中体现</td>\n<td>String</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>方法执行前拦截</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>onreturn</td>\n<td>attribute属性,不在URL中体现</td>\n<td>String</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>方法执行返回后拦截</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>onthrow</td>\n<td>attribute属性,不在URL中体现</td>\n<td>String</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>方法执行有异常拦截</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>&lt;methodName&gt;.cache</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>validation</td>\n<td>&lt;methodName&gt;.validation</td>\n<td>boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n</tbody>\n</table>\n<p>比如:</p>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:reference</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"com.xxx.XxxService\"</span>&gt;</span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:method</span> <span class=\"hljs-attr\">name</span>=<span class=\"hljs-string\">\"findXxx\"</span> <span class=\"hljs-attr\">timeout</span>=<span class=\"hljs-string\">\"3000\"</span> <span class=\"hljs-attr\">retries</span>=<span class=\"hljs-string\">\"2\"</span> /&gt;</span>\n<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\">dubbo:reference</span>&gt;</span>\n</code></pre>\n"
+  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:method</h1>\n<p>方法级配置。对应的配置类: <code>com.alibaba.dubbo.config.MethodConfig</code>。同时该标签为 <code>&lt;dubbo:service&gt;</code> 或 <code>&lt;dubbo:reference&gt;</code> 的子标签,用于控制到方法级。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td></td>\n<td>string</td>\n<td><b>必填</b></td>\n<td></td>\n<td>标识</td>\n<td>方法名</td>\n<td>1.0.8以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>&lt;metodName&gt;.timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省为的timeout</td>\n<td>性能调优</td>\n<td>方法调用超时时间(毫秒)</td>\n<td>1.0.8以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>&lt;metodName&gt;.retries</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省为&lt;dubbo:reference&gt;的retries</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>&lt;metodName&gt;.loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省为的loadbalance</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>&lt;metodName&gt;.async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省为&lt;dubbo:reference&gt;的async</td>\n<td>性能调优</td>\n<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>1.0.9以上版本</td>\n</tr>\n<tr>\n<td>sent</td>\n<td>&lt;methodName&gt;.sent</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>性能调优</td>\n<td>异步调用时,标记sent=true时,表示网络已发出数据</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>&lt;metodName&gt;.actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者最大并发调用限制</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>executes</td>\n<td>&lt;metodName&gt;.executes</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务每方法最大使用线程数限制- -,此属性只在&lt;dubbo:method&gt;作为&lt;dubbo:service&gt;子标签时有效</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>deprecated</td>\n<td>&lt;methodName&gt;.deprecated</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>服务方法是否过时,此属性只在&lt;dubbo:method&gt;作为&lt;dubbo:service&gt;子标签时有效</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>sticky</td>\n<td>&lt;methodName&gt;.sticky</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设置true 该接口上的所有方法使用同一个provider.如果需要更复杂的规则,请使用用路由</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>return</td>\n<td>&lt;methodName&gt;.return</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>性能调优</td>\n<td>方法调用是否需要返回值,async设置为true时才生效,如果设置为true,则返回future,或回调onreturn等方法,如果设置为false,则请求发送成功后直接返回Null</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>oninvoke</td>\n<td>attribute属性,不在URL中体现</td>\n<td>String</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>方法执行前拦截</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>onreturn</td>\n<td>attribute属性,不在URL中体现</td>\n<td>String</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>方法执行返回后拦截</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>onthrow</td>\n<td>attribute属性,不在URL中体现</td>\n<td>String</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>方法执行有异常拦截</td>\n<td>2.0.6以上版本</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>&lt;methodName&gt;.cache</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>validation</td>\n<td>&lt;methodName&gt;.validation</td>\n<td>boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n</tbody>\n</table>\n<p>比如:</p>\n<pre><code class=\"language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:reference</span> <span class=\"hljs-attr\">interface</span>=<span class=\"hljs-string\">\"com.xxx.XxxService\"</span>&gt;</span>\n    <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">dubbo:method</span> <span class=\"hljs-attr\">name</span>=<span class=\"hljs-string\">\"findXxx\"</span> <span class=\"hljs-attr\">timeout</span>=<span class=\"hljs-string\">\"3000\"</span> <span class=\"hljs-attr\">retries</span>=<span class=\"hljs-string\">\"2\"</span> /&gt;</span>\n<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\">dubbo:reference</span>&gt;</span>\n</code></pre>\n"
 }
\ No newline at end of file
diff --git a/zh-cn/docs/user/references/xml/dubbo-provider.html b/zh-cn/docs/user/references/xml/dubbo-provider.html
index efdaa028..98cb2361 100644
--- a/zh-cn/docs/user/references/xml/dubbo-provider.html
+++ b/zh-cn/docs/user/references/xml/dubbo-provider.html
@@ -288,7 +288,7 @@ <h1>dubbo:provider</h1>
 <td>可选</td>
 <td>random</td>
 <td>性能调优</td>
-<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>
+<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
 <td>2.0.5以上版本</td>
 </tr>
 <tr>
diff --git a/zh-cn/docs/user/references/xml/dubbo-provider.json b/zh-cn/docs/user/references/xml/dubbo-provider.json
index eea73634..ef26c67d 100644
--- a/zh-cn/docs/user/references/xml/dubbo-provider.json
+++ b/zh-cn/docs/user/references/xml/dubbo-provider.json
@@ -1,4 +1,4 @@
 {
   "filename": "dubbo-provider.md",
-  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:provider</h1>\n<p>服务提供者缺省值配置。对应的配置类: <code>com.alibaba.dubbo.config.ProviderConfig</code>。同时该标签为 <code>&lt;dubbo:service&gt;</code> 和 <code>&lt;dubbo:protocol&gt;</code> 标签的缺省值设置。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo</td>\n<td>配置关联</td>\n<td>协议BeanId,可以在&lt;dubbo:service proivder=&quot;&quot;&gt;中引用此ID</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>protocol</td>\n<td>&lt;protocol&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo</td>\n<td>性能调优</td>\n<td>协议名称</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>host</td>\n<td>&lt;host&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td>自动查找本机IP</td>\n<td>服务发现</td>\n<td>服务主机名,多网卡选择或指定VIP及域名时使用,为空则自动查找本机IP,建议不要配置,让Dubbo自动获取本机IP</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>threads</td>\n<td>threads</td>\n<td>int</td>\n<td>可选</td>\n<td>200</td>\n<td>性能调优</td>\n<td>服务线程池大小(固定大小)</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>payload</td>\n<td>payload</td>\n<td>int</td>\n<td>可选</td>\n<td>8388608(=8M)</td>\n<td>性能调优</td>\n<td>请求及响应数据包大小限制,单位:字节</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>path</td>\n<td>&lt;path&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>提供者上下文路径,为服务path的前缀</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>server</td>\n<td>server</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo协议缺省为netty,http协议缺省为servlet</td>\n<td>性能调优</td>\n<td>协议的服务器端实现类型,比如:dubbo协议的mina,netty等,http协议的jetty,servlet等</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>client</td>\n<td>client</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo协议缺省为netty</td>\n<td>性能调优</td>\n<td>协议的客户端实现类型,比如:dubbo协议的mina,netty等</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>codec</td>\n<td>codec</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo</td>\n<td>性能调优</td>\n<td>协议编码方式</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>serialization</td>\n<td>serialization</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json</td>\n<td>性能调优</td>\n<td>协议序列化方式,当协议支持多种序列化方式时使用,比如:dubbo协议的dubbo,hessian2,java,compactedjava,以及http协议的json,xml等</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>default</td>\n<td></td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>配置关联</td>\n<td>是否为缺省协议,用于多协议</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>service.filter</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务提供方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>exporter.listener</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务提供方导出服务监听器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>threadpool</td>\n<td>threadpool</td>\n<td>string</td>\n<td>可选</td>\n<td>fixed</td>\n<td>性能调优</td>\n<td>线程池类型,可选:fixed/cached</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>accepts</td>\n<td>accepts</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>服务提供者最大可接受连接数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>version</td>\n<td>version</td>\n<td>string</td>\n<td>可选</td>\n<td>0.0.0</td>\n<td>服务发现</td>\n<td>服务版本,建议使用两位数字版本,如:1.0,通常在接口不兼容时版本号才需要升级</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>group</td>\n<td>group</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务分组,当一个接口有多个实现,可以用分组区分</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>delay</td>\n<td>delay</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>延迟注册服务时间(毫秒)- ,设为-1时,表示延迟到Spring容器初始化完成时暴露服务</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>default.timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>1000</td>\n<td>性能调优</td>\n<td>远程服务调用超时时间(毫秒)</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>default.retries</td>\n<td>int</td>\n<td>可选</td>\n<td>2</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>default.connections</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>default.loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>random</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>default.async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>stub</td>\n<td>stub</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省代理类名,即:接口名 + Local后缀。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>mock</td>\n<td>mock</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省Mock类名,即:接口名 + Mock后缀。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>token</td>\n<td>token</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>令牌验证,为空表示不开启,如果为true,表示随机生成动态令牌</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>registry</td>\n<td>registry</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省向所有registry注册</td>\n<td>配置关联</td>\n<td>向指定注册中心注册,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>dynamic</td>\n<td>dynamic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>服务是否动态注册,如果设为false,注册后将显示后disable状态,需人工启用,并且服务提供者停止时,也不会自动取消册,需人工禁用。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>accesslog</td>\n<td>accesslog</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>document</td>\n<td>document</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务文档URL</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>weight</td>\n<td>int</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务权重</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>executes</td>\n<td>executes</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>服务提供者每服务每方法最大可并行执行请求数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>default.actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者每服务每方法最大并发调用数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>string</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>生成动态代理方式,可选:jdk/javassist</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>default.cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>deprecated</td>\n<td>deprecated</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>服务是否过时,如果设为true,消费方引用时将打印服务过时警告error日志</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>queues</td>\n<td>queues</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>线程池队列大小,当线程池满时,排队等待执行的队列大小,建议不要设置,当线程程池时应立即失败,重试其它服务提供机器,而不是排队,除非有特殊需求。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>charset</td>\n<td>charset</td>\n<td>string</td>\n<td>可选</td>\n<td>UTF-8</td>\n<td>性能调优</td>\n<td>序列化编码</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>buffer</td>\n<td>buffer</td>\n<td>int</td>\n<td>可选</td>\n<td>8192</td>\n<td>性能调优</td>\n<td>网络读写缓冲区大小</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>iothreads</td>\n<td>iothreads</td>\n<td>int</td>\n<td>可选</td>\n<td>CPU + 1</td>\n<td>性能调优</td>\n<td>IO线程池,接收网络读写中断,以及序列化和反序列化,不处理业务,业务线程池参见threads配置,此线程池和CPU相关,不建议配置。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>telnet</td>\n<td>telnet</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>所支持的telnet命令,多个命令用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>&lt;dubbo:service&gt;</td>\n<td>contextpath</td>\n<td>contextpath</td>\n<td>String</td>\n<td>可选</td>\n<td>缺省为空串</td>\n<td>服务治理</td>\n<td></td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务提供者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n</tbody>\n</table>\n"
+  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:provider</h1>\n<p>服务提供者缺省值配置。对应的配置类: <code>com.alibaba.dubbo.config.ProviderConfig</code>。同时该标签为 <code>&lt;dubbo:service&gt;</code> 和 <code>&lt;dubbo:protocol&gt;</code> 标签的缺省值设置。</p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo</td>\n<td>配置关联</td>\n<td>协议BeanId,可以在&lt;dubbo:service proivder=&quot;&quot;&gt;中引用此ID</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>protocol</td>\n<td>&lt;protocol&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo</td>\n<td>性能调优</td>\n<td>协议名称</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>host</td>\n<td>&lt;host&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td>自动查找本机IP</td>\n<td>服务发现</td>\n<td>服务主机名,多网卡选择或指定VIP及域名时使用,为空则自动查找本机IP,建议不要配置,让Dubbo自动获取本机IP</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>threads</td>\n<td>threads</td>\n<td>int</td>\n<td>可选</td>\n<td>200</td>\n<td>性能调优</td>\n<td>服务线程池大小(固定大小)</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>payload</td>\n<td>payload</td>\n<td>int</td>\n<td>可选</td>\n<td>8388608(=8M)</td>\n<td>性能调优</td>\n<td>请求及响应数据包大小限制,单位:字节</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>path</td>\n<td>&lt;path&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>提供者上下文路径,为服务path的前缀</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>server</td>\n<td>server</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo协议缺省为netty,http协议缺省为servlet</td>\n<td>性能调优</td>\n<td>协议的服务器端实现类型,比如:dubbo协议的mina,netty等,http协议的jetty,servlet等</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>client</td>\n<td>client</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo协议缺省为netty</td>\n<td>性能调优</td>\n<td>协议的客户端实现类型,比如:dubbo协议的mina,netty等</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>codec</td>\n<td>codec</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo</td>\n<td>性能调优</td>\n<td>协议编码方式</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>serialization</td>\n<td>serialization</td>\n<td>string</td>\n<td>可选</td>\n<td>dubbo协议缺省为hessian2,rmi协议缺省为java,http协议缺省为json</td>\n<td>性能调优</td>\n<td>协议序列化方式,当协议支持多种序列化方式时使用,比如:dubbo协议的dubbo,hessian2,java,compactedjava,以及http协议的json,xml等</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>default</td>\n<td></td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>配置关联</td>\n<td>是否为缺省协议,用于多协议</td>\n<td>1.0.16以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>service.filter</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务提供方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>exporter.listener</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务提供方导出服务监听器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>threadpool</td>\n<td>threadpool</td>\n<td>string</td>\n<td>可选</td>\n<td>fixed</td>\n<td>性能调优</td>\n<td>线程池类型,可选:fixed/cached</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>accepts</td>\n<td>accepts</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>服务提供者最大可接受连接数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>version</td>\n<td>version</td>\n<td>string</td>\n<td>可选</td>\n<td>0.0.0</td>\n<td>服务发现</td>\n<td>服务版本,建议使用两位数字版本,如:1.0,通常在接口不兼容时版本号才需要升级</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>group</td>\n<td>group</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务分组,当一个接口有多个实现,可以用分组区分</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>delay</td>\n<td>delay</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>延迟注册服务时间(毫秒)- ,设为-1时,表示延迟到Spring容器初始化完成时暴露服务</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>default.timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>1000</td>\n<td>性能调优</td>\n<td>远程服务调用超时时间(毫秒)</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>default.retries</td>\n<td>int</td>\n<td>可选</td>\n<td>2</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>default.connections</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>default.loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>random</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>default.async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>stub</td>\n<td>stub</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省代理类名,即:接口名 + Local后缀。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>mock</td>\n<td>mock</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省Mock类名,即:接口名 + Mock后缀。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>token</td>\n<td>token</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>令牌验证,为空表示不开启,如果为true,表示随机生成动态令牌</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>registry</td>\n<td>registry</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省向所有registry注册</td>\n<td>配置关联</td>\n<td>向指定注册中心注册,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>dynamic</td>\n<td>dynamic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>服务是否动态注册,如果设为false,注册后将显示后disable状态,需人工启用,并且服务提供者停止时,也不会自动取消册,需人工禁用。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>accesslog</td>\n<td>accesslog</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>document</td>\n<td>document</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务文档URL</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>weight</td>\n<td>int</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务权重</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>executes</td>\n<td>executes</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>服务提供者每服务每方法最大可并行执行请求数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>default.actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者每服务每方法最大并发调用数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>string</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>生成动态代理方式,可选:jdk/javassist</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>default.cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>deprecated</td>\n<td>deprecated</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>服务是否过时,如果设为true,消费方引用时将打印服务过时警告error日志</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>queues</td>\n<td>queues</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>线程池队列大小,当线程池满时,排队等待执行的队列大小,建议不要设置,当线程程池时应立即失败,重试其它服务提供机器,而不是排队,除非有特殊需求。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>charset</td>\n<td>charset</td>\n<td>string</td>\n<td>可选</td>\n<td>UTF-8</td>\n<td>性能调优</td>\n<td>序列化编码</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>buffer</td>\n<td>buffer</td>\n<td>int</td>\n<td>可选</td>\n<td>8192</td>\n<td>性能调优</td>\n<td>网络读写缓冲区大小</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>iothreads</td>\n<td>iothreads</td>\n<td>int</td>\n<td>可选</td>\n<td>CPU + 1</td>\n<td>性能调优</td>\n<td>IO线程池,接收网络读写中断,以及序列化和反序列化,不处理业务,业务线程池参见threads配置,此线程池和CPU相关,不建议配置。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>telnet</td>\n<td>telnet</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>所支持的telnet命令,多个命令用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>&lt;dubbo:service&gt;</td>\n<td>contextpath</td>\n<td>contextpath</td>\n<td>String</td>\n<td>可选</td>\n<td>缺省为空串</td>\n<td>服务治理</td>\n<td></td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务提供者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n</tbody>\n</table>\n"
 }
\ No newline at end of file
diff --git a/zh-cn/docs/user/references/xml/dubbo-reference.html b/zh-cn/docs/user/references/xml/dubbo-reference.html
index b58b277d..7b2259ba 100644
--- a/zh-cn/docs/user/references/xml/dubbo-reference.html
+++ b/zh-cn/docs/user/references/xml/dubbo-reference.html
@@ -148,7 +148,7 @@ <h1>dubbo:reference</h1>
 <td>可选</td>
 <td>缺省使用&lt;dubbo:consumer&gt;的loadbalance</td>
 <td>性能调优</td>
-<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>
+<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
 <td>2.0.0以上版本</td>
 </tr>
 <tr>
@@ -337,7 +337,7 @@ <h1>dubbo:reference</h1>
 <td>string</td>
 <td>可选</td>
 <td></td>
-<td>服力治理</td>
+<td>服务治理</td>
 <td>只调用指定协议的服务提供方,其它协议忽略。</td>
 <td>2.2.0以上版本</td>
 </tr>
diff --git a/zh-cn/docs/user/references/xml/dubbo-reference.json b/zh-cn/docs/user/references/xml/dubbo-reference.json
index 18f28964..930be991 100644
--- a/zh-cn/docs/user/references/xml/dubbo-reference.json
+++ b/zh-cn/docs/user/references/xml/dubbo-reference.json
@@ -1,4 +1,4 @@
 {
   "filename": "dubbo-reference.md",
-  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:reference</h1>\n<p>服务消费者引用服务配置。对应的配置类: <code>com.alibaba.dubbo.config.ReferenceConfig</code></p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td></td>\n<td>string</td>\n<td><b>必填</b></td>\n<td></td>\n<td>配置关联</td>\n<td>服务引用BeanId</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>interface</td>\n<td></td>\n<td>class</td>\n<td><b>必填</b></td>\n<td></td>\n<td>服务发现</td>\n<td>服务接口名</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>version</td>\n<td>version</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务版本,与服务提供者的版本一致</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>group</td>\n<td>group</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务分组,当一个接口有多个实现,可以用分组区分,必需和服务提供方一致</td>\n<td>1.0.7以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>timeout</td>\n<td>long</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的timeout</td>\n<td>性能调优</td>\n<td>服务方法调用超时时间(毫秒)</td>\n<td>1.0.5以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>retries</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的retries</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>connections</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的connections</td>\n<td>性能调优</td>\n<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的loadbalance</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的async</td>\n<td>性能调优</td>\n<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>generic</td>\n<td>generic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的generic</td>\n<td>服务治理</td>\n<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>check</td>\n<td>check</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的check</td>\n<td>服务治理</td>\n<td>启动时检查提供者是否存在,true报错,false忽略</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>url</td>\n<td>url</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>点对点直连服务提供者地址,将绕过注册中心</td>\n<td>1.0.6以上版本</td>\n</tr>\n<tr>\n<td>stub</td>\n<td>stub</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>mock</td>\n<td>mock</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务接口调用失败Mock实现类名,该Mock类必须有一个无参构造函数,与Local的区别在于,Local总是被执行,而Mock只在出现非业务异常(比如超时,网络异常等)时执行,Local在远程调用之前执行,Mock在远程调用后执行。</td>\n<td>Dubbo1.0.13及其以上版本支持</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>cache</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>validation</td>\n<td>validation</td>\n<td>boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>boolean</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>选择动态代理实现策略,可选:javassist, jdk</td>\n<td>2.0.2以上版本</td>\n</tr>\n<tr>\n<td>client</td>\n<td>client</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>客户端传输类型设置,如Dubbo协议的netty或mina。</td>\n<td>Dubbo2.0.0以上版本支持</td>\n</tr>\n<tr>\n<td>registry</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺省将从所有注册中心获服务列表后合并结果</td>\n<td>配置关联</td>\n<td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>调用服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者每服务每方法最大并发调用数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>reference.filter</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务消费方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>invoker.listener</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务消费方引用服务监听器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务调用者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n<tr>\n<td>init</td>\n<td>init</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否在afterPropertiesSet()时饥饿初始化引用,否则等到有人注入或引用该实例时再初始化。</td>\n<td>2.0.10以上版本</td>\n</tr>\n<tr>\n<td>protocol</td>\n<td>protocol</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服力治理</td>\n<td>只调用指定协议的服务提供方,其它协议忽略。</td>\n<td>2.2.0以上版本</td>\n</tr>\n</tbody>\n</table>\n"
+  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:reference</h1>\n<p>服务消费者引用服务配置。对应的配置类: <code>com.alibaba.dubbo.config.ReferenceConfig</code></p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td></td>\n<td>string</td>\n<td><b>必填</b></td>\n<td></td>\n<td>配置关联</td>\n<td>服务引用BeanId</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>interface</td>\n<td></td>\n<td>class</td>\n<td><b>必填</b></td>\n<td></td>\n<td>服务发现</td>\n<td>服务接口名</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>version</td>\n<td>version</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务版本,与服务提供者的版本一致</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>group</td>\n<td>group</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务分组,当一个接口有多个实现,可以用分组区分,必需和服务提供方一致</td>\n<td>1.0.7以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>timeout</td>\n<td>long</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的timeout</td>\n<td>性能调优</td>\n<td>服务方法调用超时时间(毫秒)</td>\n<td>1.0.5以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>retries</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的retries</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>connections</td>\n<td>int</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的connections</td>\n<td>性能调优</td>\n<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的loadbalance</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的async</td>\n<td>性能调优</td>\n<td>是否异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>generic</td>\n<td>generic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的generic</td>\n<td>服务治理</td>\n<td>是否缺省泛化接口,如果为泛化接口,将返回GenericService</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>check</td>\n<td>check</td>\n<td>boolean</td>\n<td>可选</td>\n<td>缺省使用&lt;dubbo:consumer&gt;的check</td>\n<td>服务治理</td>\n<td>启动时检查提供者是否存在,true报错,false忽略</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>url</td>\n<td>url</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>点对点直连服务提供者地址,将绕过注册中心</td>\n<td>1.0.6以上版本</td>\n</tr>\n<tr>\n<td>stub</td>\n<td>stub</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>mock</td>\n<td>mock</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务接口调用失败Mock实现类名,该Mock类必须有一个无参构造函数,与Local的区别在于,Local总是被执行,而Mock只在出现非业务异常(比如超时,网络异常等)时执行,Local在远程调用之前执行,Mock在远程调用后执行。</td>\n<td>Dubbo1.0.13及其以上版本支持</td>\n</tr>\n<tr>\n<td>cache</td>\n<td>cache</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>以调用参数为key,缓存返回结果,可选:lru, threadlocal, jcache等</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>validation</td>\n<td>validation</td>\n<td>boolean</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>是否启用JSR303标准注解验证,如果启用,将对方法参数上的注解进行校验</td>\n<td>Dubbo2.1.0及其以上版本支持</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>boolean</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>选择动态代理实现策略,可选:javassist, jdk</td>\n<td>2.0.2以上版本</td>\n</tr>\n<tr>\n<td>client</td>\n<td>client</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>客户端传输类型设置,如Dubbo协议的netty或mina。</td>\n<td>Dubbo2.0.0以上版本支持</td>\n</tr>\n<tr>\n<td>registry</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺省将从所有注册中心获服务列表后合并结果</td>\n<td>配置关联</td>\n<td>从指定注册中心注册获取服务列表,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>调用服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>actives</td>\n<td>actives</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>每服务消费者每服务每方法最大并发调用数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>reference.filter</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务消费方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>invoker.listener</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务消费方引用服务监听器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务调用者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n<tr>\n<td>init</td>\n<td>init</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否在afterPropertiesSet()时饥饿初始化引用,否则等到有人注入或引用该实例时再初始化。</td>\n<td>2.0.10以上版本</td>\n</tr>\n<tr>\n<td>protocol</td>\n<td>protocol</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>只调用指定协议的服务提供方,其它协议忽略。</td>\n<td>2.2.0以上版本</td>\n</tr>\n</tbody>\n</table>\n"
 }
\ No newline at end of file
diff --git a/zh-cn/docs/user/references/xml/dubbo-service.html b/zh-cn/docs/user/references/xml/dubbo-service.html
index ef9cef02..1502d9b6 100644
--- a/zh-cn/docs/user/references/xml/dubbo-service.html
+++ b/zh-cn/docs/user/references/xml/dubbo-service.html
@@ -168,7 +168,7 @@ <h1>dubbo:service</h1>
 <td>可选</td>
 <td>random</td>
 <td>性能调优</td>
-<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>
+<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>
 <td>2.0.0以上版本</td>
 </tr>
 <tr>
diff --git a/zh-cn/docs/user/references/xml/dubbo-service.json b/zh-cn/docs/user/references/xml/dubbo-service.json
index f9cff8a3..8a5eedee 100644
--- a/zh-cn/docs/user/references/xml/dubbo-service.json
+++ b/zh-cn/docs/user/references/xml/dubbo-service.json
@@ -1,4 +1,4 @@
 {
   "filename": "dubbo-service.md",
-  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:service</h1>\n<p>服务提供者暴露服务配置。对应的配置类:<code>com.alibaba.dubbo.config.ServiceConfig</code></p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>interface</td>\n<td></td>\n<td>class</td>\n<td><b>必填</b></td>\n<td></td>\n<td>服务发现</td>\n<td>服务接口名</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>ref</td>\n<td></td>\n<td>object</td>\n<td><b>必填</b></td>\n<td></td>\n<td>服务发现</td>\n<td>服务对象实现引用</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>version</td>\n<td>version</td>\n<td>string</td>\n<td>可选</td>\n<td>0.0.0</td>\n<td>服务发现</td>\n<td>服务版本,建议使用两位数字版本,如:1.0,通常在接口不兼容时版本号才需要升级</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>group</td>\n<td>group</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务分组,当一个接口有多个实现,可以用分组区分</td>\n<td>1.0.7以上版本</td>\n</tr>\n<tr>\n<td>path</td>\n<td>&lt;path&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省为接口名</td>\n<td>服务发现</td>\n<td>服务路径 (注意:1.0不支持自定义路径,总是使用接口名,如果有1.0调2.0,配置服务路径可能不兼容)</td>\n<td>1.0.12以上版本</td>\n</tr>\n<tr>\n<td>delay</td>\n<td>delay</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>延迟注册服务时间(毫秒) ,设为-1时,表示延迟到Spring容器初始化完成时暴露服务</td>\n<td>1.0.14以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>1000</td>\n<td>性能调优</td>\n<td>远程服务调用超时时间(毫秒)</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>retries</td>\n<td>int</td>\n<td>可选</td>\n<td>2</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>connections</td>\n<td>int</td>\n<td>可选</td>\n<td>100</td>\n<td>性能调优</td>\n<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>random</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮循,最少活跃调用</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>stub</td>\n<td>stub</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省代理类名,即:接口名 + Local后缀,服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>mock</td>\n<td>mock</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省Mock类名,即:接口名 + Mock后缀,服务接口调用失败Mock实现类,该Mock类必须有一个无参构造函数,与Local的区别在于,Local总是被执行,而Mock只在出现非业务异常(比如超时,网络异常等)时执行,Local在远程调用之前执行,Mock在远程调用后执行。</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>token</td>\n<td>token</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>令牌验证,为空表示不开启,如果为true,表示随机生成动态令牌,否则使用静态令牌,令牌的作用是防止消费者绕过注册中心直接访问,保证注册中心的授权功能有效,如果使用点对点调用,需关闭令牌功能</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>registry</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺省向所有registry注册</td>\n<td>配置关联</td>\n<td>向指定注册中心注册,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>provider</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺使用第一个provider配置</td>\n<td>配置关联</td>\n<td>指定provider,值为&lt;dubbo:provider&gt;的id属性</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>deprecated</td>\n<td>deprecated</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>服务是否过时,如果设为true,消费方引用时将打印服务过时警告error日志</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>dynamic</td>\n<td>dynamic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>服务是否动态注册,如果设为false,注册后将显示后disable状态,需人工启用,并且服务提供者停止时,也不会自动取消册,需人工禁用。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>accesslog</td>\n<td>accesslog</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>document</td>\n<td>document</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务文档URL</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>weight</td>\n<td>int</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务权重</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>executes</td>\n<td>executes</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>服务提供者每服务每方法最大可并行执行请求数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>string</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>生成动态代理方式,可选:jdk/javassist</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>service.filter</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务提供方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>exporter.listener</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务提供方导出服务监听器名称,多个名称用逗号分隔</td>\n<td></td>\n</tr>\n<tr>\n<td>protocol</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>配置关联</td>\n<td>使用指定的协议暴露服务,在多协议时使用,值为&lt;dubbo:protocol&gt;的id属性,多个协议ID用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务提供者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n<tr>\n<td>register</td>\n<td>register</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>该协议的服务是否注册到注册中心</td>\n<td>2.0.8以上版本</td>\n</tr>\n</tbody>\n</table>\n"
+  "__html": "<style>\ntable {\n  width: 100%;\n  max-width: 65em;\n  border: 1px solid #dedede;\n  margin: 15px auto;\n  border-collapse: collapse;\n  empty-cells: show;\n}\ntable th,\ntable td {\n  height: 35px;\n  border: 1px solid #dedede;\n  padding: 0 10px;\n}\ntable th {\n  font-weight: bold;\n  text-align: center !important;\n  background: rgba(158,188,226,0.2);\n  white-space: nowrap;\n}\ntable tbody tr:nth-child(2n) {\n  background: rgba(158,188,226,0.12);\n}\ntable td:nth-child(1) {\n  white-space: nowrap;\n}\ntable tr:hover {\n  background: #efefef;\n}\n.table-area {\n  overflow: auto;\n}\n</style>\n<script type=\"text/javascript\">\n[].slice.call(document.querySelectorAll('table')).forEach(function(el){\n    var wrapper = document.createElement('div');\n    wrapper.className = 'table-area';\n    el.parentNode.insertBefore(wrapper, el);\n    el.parentNode.removeChild(el);\n    wrapper.appendChild(el);\n})\n</script>\n<h1>dubbo:service</h1>\n<p>服务提供者暴露服务配置。对应的配置类:<code>com.alibaba.dubbo.config.ServiceConfig</code></p>\n<table>\n<thead>\n<tr>\n<th>属性</th>\n<th>对应URL参数</th>\n<th>类型</th>\n<th>是否必填</th>\n<th>缺省值</th>\n<th>作用</th>\n<th>描述</th>\n<th>兼容性</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>interface</td>\n<td></td>\n<td>class</td>\n<td><b>必填</b></td>\n<td></td>\n<td>服务发现</td>\n<td>服务接口名</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>ref</td>\n<td></td>\n<td>object</td>\n<td><b>必填</b></td>\n<td></td>\n<td>服务发现</td>\n<td>服务对象实现引用</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>version</td>\n<td>version</td>\n<td>string</td>\n<td>可选</td>\n<td>0.0.0</td>\n<td>服务发现</td>\n<td>服务版本,建议使用两位数字版本,如:1.0,通常在接口不兼容时版本号才需要升级</td>\n<td>1.0.0以上版本</td>\n</tr>\n<tr>\n<td>group</td>\n<td>group</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务发现</td>\n<td>服务分组,当一个接口有多个实现,可以用分组区分</td>\n<td>1.0.7以上版本</td>\n</tr>\n<tr>\n<td>path</td>\n<td>&lt;path&gt;</td>\n<td>string</td>\n<td>可选</td>\n<td>缺省为接口名</td>\n<td>服务发现</td>\n<td>服务路径 (注意:1.0不支持自定义路径,总是使用接口名,如果有1.0调2.0,配置服务路径可能不兼容)</td>\n<td>1.0.12以上版本</td>\n</tr>\n<tr>\n<td>delay</td>\n<td>delay</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>延迟注册服务时间(毫秒) ,设为-1时,表示延迟到Spring容器初始化完成时暴露服务</td>\n<td>1.0.14以上版本</td>\n</tr>\n<tr>\n<td>timeout</td>\n<td>timeout</td>\n<td>int</td>\n<td>可选</td>\n<td>1000</td>\n<td>性能调优</td>\n<td>远程服务调用超时时间(毫秒)</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>retries</td>\n<td>retries</td>\n<td>int</td>\n<td>可选</td>\n<td>2</td>\n<td>性能调优</td>\n<td>远程服务调用重试次数,不包括第一次调用,不需要重试请设为0</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>connections</td>\n<td>connections</td>\n<td>int</td>\n<td>可选</td>\n<td>100</td>\n<td>性能调优</td>\n<td>对每个提供者的最大连接数,rmi、http、hessian等短连接协议表示限制连接数,dubbo等长连接协表示建立的长连接个数</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>loadbalance</td>\n<td>loadbalance</td>\n<td>string</td>\n<td>可选</td>\n<td>random</td>\n<td>性能调优</td>\n<td>负载均衡策略,可选值:random,roundrobin,leastactive,分别表示:随机,轮询,最少活跃调用</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>async</td>\n<td>async</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>性能调优</td>\n<td>是否缺省异步执行,不可靠异步,只是忽略返回值,不阻塞执行线程</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>stub</td>\n<td>stub</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省代理类名,即:接口名 + Local后缀,服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxService xxxService)</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>mock</td>\n<td>mock</td>\n<td>class/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,表示使用缺省Mock类名,即:接口名 + Mock后缀,服务接口调用失败Mock实现类,该Mock类必须有一个无参构造函数,与Local的区别在于,Local总是被执行,而Mock只在出现非业务异常(比如超时,网络异常等)时执行,Local在远程调用之前执行,Mock在远程调用后执行。</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>token</td>\n<td>token</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>令牌验证,为空表示不开启,如果为true,表示随机生成动态令牌,否则使用静态令牌,令牌的作用是防止消费者绕过注册中心直接访问,保证注册中心的授权功能有效,如果使用点对点调用,需关闭令牌功能</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>registry</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺省向所有registry注册</td>\n<td>配置关联</td>\n<td>向指定注册中心注册,在多个注册中心时使用,值为&lt;dubbo:registry&gt;的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>provider</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td>缺使用第一个provider配置</td>\n<td>配置关联</td>\n<td>指定provider,值为&lt;dubbo:provider&gt;的id属性</td>\n<td>2.0.0以上版本</td>\n</tr>\n<tr>\n<td>deprecated</td>\n<td>deprecated</td>\n<td>boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>服务是否过时,如果设为true,消费方引用时将打印服务过时警告error日志</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>dynamic</td>\n<td>dynamic</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>服务是否动态注册,如果设为false,注册后将显示后disable状态,需人工启用,并且服务提供者停止时,也不会自动取消册,需人工禁用。</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>accesslog</td>\n<td>accesslog</td>\n<td>string/boolean</td>\n<td>可选</td>\n<td>false</td>\n<td>服务治理</td>\n<td>设为true,将向logger中输出访问日志,也可填写访问日志文件路径,直接把访问日志输出到指定文件</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>owner</td>\n<td>owner</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务负责人,用于服务治理,请填写负责人公司邮箱前缀</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>document</td>\n<td>document</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务文档URL</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>weight</td>\n<td>int</td>\n<td>可选</td>\n<td></td>\n<td>性能调优</td>\n<td>服务权重</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>executes</td>\n<td>executes</td>\n<td>int</td>\n<td>可选</td>\n<td>0</td>\n<td>性能调优</td>\n<td>服务提供者每服务每方法最大可并行执行请求数</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>proxy</td>\n<td>proxy</td>\n<td>string</td>\n<td>可选</td>\n<td>javassist</td>\n<td>性能调优</td>\n<td>生成动态代理方式,可选:jdk/javassist</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>cluster</td>\n<td>cluster</td>\n<td>string</td>\n<td>可选</td>\n<td>failover</td>\n<td>性能调优</td>\n<td>集群方式,可选:failover/failfast/failsafe/failback/forking</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>filter</td>\n<td>service.filter</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务提供方远程调用过程拦截器名称,多个名称用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>listener</td>\n<td>exporter.listener</td>\n<td>string</td>\n<td>可选</td>\n<td>default</td>\n<td>性能调优</td>\n<td>服务提供方导出服务监听器名称,多个名称用逗号分隔</td>\n<td></td>\n</tr>\n<tr>\n<td>protocol</td>\n<td></td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>配置关联</td>\n<td>使用指定的协议暴露服务,在多协议时使用,值为&lt;dubbo:protocol&gt;的id属性,多个协议ID用逗号分隔</td>\n<td>2.0.5以上版本</td>\n</tr>\n<tr>\n<td>layer</td>\n<td>layer</td>\n<td>string</td>\n<td>可选</td>\n<td></td>\n<td>服务治理</td>\n<td>服务提供者所在的分层。如:biz、dao、intl:web、china:acton。</td>\n<td>2.0.7以上版本</td>\n</tr>\n<tr>\n<td>register</td>\n<td>register</td>\n<td>boolean</td>\n<td>可选</td>\n<td>true</td>\n<td>服务治理</td>\n<td>该协议的服务是否注册到注册中心</td>\n<td>2.0.8以上版本</td>\n</tr>\n</tbody>\n</table>\n"
 }
\ No newline at end of file


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org