Add docs (#3007)

diff --git a/content/zh-cn/overview/mannual/golang-sdk/quickstart/rpc.md b/content/zh-cn/overview/mannual/golang-sdk/quickstart/rpc.md
index 9b34f73..ee09bdd 100644
--- a/content/zh-cn/overview/mannual/golang-sdk/quickstart/rpc.md
+++ b/content/zh-cn/overview/mannual/golang-sdk/quickstart/rpc.md
@@ -27,7 +27,7 @@
 
     ```shell
     go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
-    go install github.com/dubbogo/protoc-gen-go-triple@v3.0.0
+    go install dubbo.apache.org/dubbo-go/v3/cmd/protoc-gen-go-triple@v3.0.1
     ```
 
     确保 `protoc-gen-go`、`protoc-gen-go-triple` 在你的 `PATH` 中。这可以通过 `which protoc-gen-go` 验证,如果该命令不能正常工作的话,请执行以下命令:
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/async.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/async.md
index b926bfe..4bc6449 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/async.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/async.md
@@ -226,3 +226,5 @@
 @DubboReference(methods = {@Method(name = "sayHello", timeout = 5000, return = false)})
 private AsyncService asyncService;
 ```
+
+
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/auth.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/auth.md
index d3e8b6c..91fac6c 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/auth.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/auth.md
@@ -6,7 +6,7 @@
 linkTitle: 服务鉴权
 title: 服务鉴权
 type: docs
-weight: 23
+weight: 100
 ---
 
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/echo-service.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/echo-service.md
index 9761f7c..0c760f1 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/echo-service.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/echo-service.md
@@ -6,14 +6,11 @@
 linkTitle: 回声测试
 title: 回声测试
 type: docs
-weight: 12
+weight: 3
 ---
 
 
 
-
-
-
 ## 特性说明
 回声测试用于检测服务是否可用,回声测试按照正常请求流程执行,能够测试整个调用是否通畅,可用于监控。执行回声测试,客户端发送一个包含特定值(如字符串)的请求。服务器应使用相同的值进行响应,从而验证请求是否已成功接收和处理。如果响应与请求不匹配,则表示服务运行不正常,应进一步调查。要求 Dubbo 服务器正在运行,并且服务器和客户端之间具有网络连接。在客户端,必须配置 Dubbo 客户端以连接到服务器,客户端将向服务器发送请求,然后服务器应返回与请求相同的响应。
 
@@ -28,16 +25,15 @@
 ## 使用方式
 所有服务自动实现 `EchoService` 接口,只需将任意服务引用强制转型为 `EchoService`,即可使用。
 
-### Spring 配置
-```xml
-<dubbo:reference id="memberService" interface="com.xxx.MemberService" />
+如有以下 Dubbo proxy 实例:
+
+```java
+@DubboReference
+private MemberService memberService;
 ```
 
 ### 代码示例
 ```java
-// 远程服务引用
-MemberService memberService = ctx.getBean("memberService"); 
- 
 EchoService echoService = (EchoService) memberService; // 强制转型为EchoService
 
 // 回声测试可用性
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/explicit-target.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/explicit-target.md
index 4f9b8cf..4e414f2 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/explicit-target.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/explicit-target.md
@@ -10,20 +10,20 @@
 ---
 
 
-
-
-
-
-{{% pageinfo %}} 此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/specify-ip/)。
-{{% /pageinfo %}}
-
 在开发及测试环境下,经常需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连方式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表。
 
 ![/user-guide/images/dubbo-directly.jpg](/imgs/user/dubbo-directly.jpg)
 
-## 通过 XML 配置
+如果是线上需求需要点对点,可在 `reference` 节点中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
 
-如果是线上需求需要点对点,可在 `<dubbo:reference>` 中配置 url 指向提供者,将绕过注册中心,多个地址用分号隔开,配置如下:
+## 注解配置方式
+
+```java
+@DubboReference(url="tri://localhost:50051")
+private XxxService xxxService
+```
+
+## xml配置方式
 
 ```xml
 <dubbo:reference id="xxxService" interface="com.alibaba.xxx.XxxService" url="dubbo://localhost:20890" />
@@ -33,7 +33,12 @@
 `1.0.6` 及以上版本支持
 {{% /alert %}}
 
-## 通过 -D 参数指定
+## 更多配置方式
+{{% alert title="注意" color="warning" %}}
+请注意以下配置方式是为了兼容老版本 Dubbo2 而保留,在部分 Dubbo3 版本中可能存在问题,请尽量使用文档前面推荐的配置方式。
+{{% /alert %}}
+
+### 通过 -D 参数指定
 
 在 JVM 启动参数中加入-D参数映射服务地址,如:
 
@@ -45,7 +50,7 @@
 key 为服务名,value 为服务提供者 url,此配置优先级最高,`1.0.15` 及以上版本支持
 {{% /alert %}}
 
-## 通过文件映射
+### 通过文件映射
 
 如果服务比较多,也可以用文件映射,用 `-Ddubbo.resolve.file` 指定映射文件路径,此配置优先级高于 `<dubbo:reference>` 中的配置 [^3],如:
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/generic-impl.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/generic-impl.md
new file mode 100644
index 0000000..4b0edd4
--- /dev/null
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/generic-impl.md
@@ -0,0 +1,76 @@
+---
+aliases:
+    - /zh/overview/tasks/develop/generic/
+    - /zh/docs3-v2/java-sdk/advanced-features-and-usage/service/generic-reference/
+    - /zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/generic/
+    - /zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/generic-reference/
+description: 泛化实现,用于在提供方没有 API(SDK)的情况下,对外提供和发布服务
+linkTitle: 泛化实现
+title: 泛化实现
+type: docs
+weight: 1
+---
+
+{{% alert title="注意" color="warning" %}}
+请注意区分上一篇文档介绍的 [泛化调用](../generic),泛化调用是给消费端用的,而泛化实现是给提供端用的。
+{{% /alert %}}
+
+泛接口实现方式主要用于服务器端没有 API 接口及模型类元的情况,参数及返回值中的所有 POJO 均用 Map 表示,通常用于框架集成,比如:实现一个通用的远程服务 Mock 框架,可通过实现 GenericService 接口处理所有服务请求。
+
+## 使用场景
+* 注册服务: 服务提供者在服务注册表中注册服务,例如 Zookeeper,服务注册表存储有关服务的信息,例如其接口、实现类和地址。
+
+* 部署服务: 服务提供商将服务部署在服务器并使其对消费者可用。
+
+* 调用服务: 使用者使用服务注册表生成的代理调用服务,代理将请求转发给服务提供商,服务提供商执行服务并将响应发送回消费者。
+
+* 监视服务:提供者和使用者可以使用 Dubbo 框架监视服务,允许他们查看服务的执行情况,并在必要时进行调整。
+
+
+## 使用方式
+在 Java 代码中实现 `GenericService` 接口
+
+```java
+package com.foo;
+public class MyGenericService implements GenericService {
+
+    public Object $invoke(String methodName, String[] parameterTypes, Object[] args) throws GenericException {
+        if ("sayHello".equals(methodName)) {
+            return "Welcome " + args[0];
+        }
+    }
+}
+```
+
+### 通过 Spring 暴露泛化实现
+
+在 Spring XML 配置申明服务的实现
+
+```xml
+<bean id="genericService" class="com.foo.MyGenericService" />
+<dubbo:service interface="com.foo.BarService" ref="genericService" />
+```
+
+### 通过 API 方式暴露泛化实现
+
+```java
+...
+// 用org.apache.dubbo.rpc.service.GenericService可以替代所有接口实现
+GenericService xxxService = new XxxGenericService();
+
+// 该实例很重量,里面封装了所有与注册中心及服务提供方连接,请缓存
+ServiceConfig<GenericService> service = new ServiceConfig<GenericService>();
+// 弱类型接口名
+service.setInterface("com.xxx.XxxService");
+// if you need to set different version for service
+service.setVersion("1.0.0");
+// 指向一个通用服务实现
+service.setRef(xxxService);
+
+// 暴露及注册服务
+service.export();
+```
+
+1. 在设置 `ServiceConfig` 时,使用`setGeneric("true")`来开启泛化调用
+2. 在设置 `ServiceConfig` 时,使用 setRef 指定实现类时,要设置一个 `GenericService` 的对象。而不是真正的服务实现类对象
+3. 其他设置与正常 Api 服务启动一致即可
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/generic.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/generic.md
index 6f114cc..ad6f18d 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/generic.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/generic.md
@@ -6,20 +6,23 @@
     - /zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/generic/
     - /zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/generic-service/
     - /zh-cn/overview/mannual/java-sdk/advanced-features-and-usage/service/generic-reference/
-description: 在调用方没有服务方提供的 API(SDK)的情况下,对服务方进行调用
+description: 泛化调用,用于在调用方没有服务方提供的 API(SDK)的情况下,对服务方进行调用
 linkTitle: 泛化调用
-title: 开发服务
+title: 泛化调用
 type: docs
-weight: 6
+weight: 1
 ---
 
-
-## 泛化调用
-泛化调用(客户端泛化调用)是指在调用方没有服务方提供的 API(SDK)的情况下,对服务方进行调用,并且可以正常拿到调用结果。
+泛化调用(客户端泛化调用)是指在调用方没有服务方提供的 API(SDK)的情况下,对服务方进行调用,并且可以正常拿到调用结果。调用方没有接口及模型类元,知道服务的接口的全限定类名和方法名的情况下,可以通过泛化调用调用对应接口。
 
 ## 使用场景
-调用方没有接口及模型类元,知道服务的接口的全限定类名和方法名的情况下,可以通过泛化调用调用对应接口。
-比如:实现一个通用的服务测试框架
+
+泛化调用可通过一个通用的 GenericService 接口对所有服务发起请求。典型使用场景如下:
+
+1. 网关服务:如果要搭建一个网关服务,那么服务网关要作为所有 RPC 服务的调用端。但是网关本身不应该依赖于服务提供方的接口 API(这样会导致每有一个新的服务发布,就需要修改网关的代码以及重新部署),所以需要泛化调用的支持。
+
+2. 测试平台:如果要搭建一个可以测试 RPC 调用的平台,用户输入分组名、接口、方法名等信息,就可以测试对应的 RPC 服务。那么由于同样的原因(即会导致每有一个新的服务发布,就需要修改网关的代码以及重新部署),所以平台本身不应该依赖于服务提供方的接口 API。所以需要泛化调用的支持。
+
 
 ## 使用方式
 
@@ -28,7 +31,7 @@
 接口定义:
 ```java
 public interface DevelopService {
-    String invoke(String param);
+    String hello(String param);
 }
 ```
 
@@ -37,7 +40,7 @@
 @DubboService(group = "group1",version = "1.0")
 public class DevelopProviderServiceV1 implements DevelopService{
     @Override
-    public String invoke(String param) {
+    public String hello(String param) {
         StringBuilder s = new StringBuilder();
         s.append("ServiceV1 param:").append(param);
         return s.toString();
@@ -55,7 +58,7 @@
     public void run(String... args) throws Exception {
         GenericService genericService = buildGenericService("org.apache.dubbo.samples.develop.DevelopService","group2","2.0");
         //传入需要调用的方法,参数类型列表,参数列表
-        Object result = genericService.$invoke("invoke", new String[]{"java.lang.String"}, new Object[]{"g1"});
+        Object result = genericService.$invoke("hello", new String[]{"java.lang.String"}, new Object[]{"g1"});
         System.out.println("GenericTask Response: " + JSON.toJSONString(result));
     }
 
@@ -67,7 +70,7 @@
         reference.setGeneric("true");
         reference.setTimeout(30000);
         reference.setGroup(group);
-        ReferenceCache cache = SimpleReferenceCache.getCache();
+        ReferenceCache cache = DubboBootstrap.getInstance().getCache();
         try {
             return cache.get(reference);
         } catch (Exception e) {
@@ -77,210 +80,12 @@
 }
 ```
 
-
-
-
-
-
-## 特性说明
-
-泛化调用是指在调用方没有服务方提供的 API(SDK)的情况下,对服务方进行调用,并且可以正常拿到调用结果。
-
-## 使用场景
-
-泛化调用主要用于实现一个通用的远程服务 Mock 框架,可通过实现 GenericService 接口处理所有服务请求。比如如下场景:
-
-1. 网关服务:如果要搭建一个网关服务,那么服务网关要作为所有 RPC 服务的调用端。但是网关本身不应该依赖于服务提供方的接口 API(这样会导致每有一个新的服务发布,就需要修改网关的代码以及重新部署),所以需要泛化调用的支持。
-
-2. 测试平台:如果要搭建一个可以测试 RPC 调用的平台,用户输入分组名、接口、方法名等信息,就可以测试对应的 RPC 服务。那么由于同样的原因(即会导致每有一个新的服务发布,就需要修改网关的代码以及重新部署),所以平台本身不应该依赖于服务提供方的接口 API。所以需要泛化调用的支持。
-
-## 使用方式
-
-demo 可见 [dubbo 项目中的示例代码](https://github.com/apache/dubbo-samples/tree/master/2-advanced/dubbo-samples-generic)
-
-API 部分以此 demo 为例讲解使用方式。
-
-### 服务定义
-
-#### 服务接口
-
-``` java
-public interface HelloService {
-
-    String sayHello(String name);
-
-    CompletableFuture<String> sayHelloAsync(String name);
-
-    CompletableFuture<Person> sayHelloAsyncComplex(String name);
-
-    CompletableFuture<GenericType<Person>> sayHelloAsyncGenericComplex(String name);
-}
-
-```
-
-#### 服务实现类
-
-``` java
-public class HelloServiceImpl implements HelloService {
-
-    @Override
-    public String sayHello(String name) {
-        return "sayHello: " + name;
-    }
-
-    @Override
-    public CompletableFuture<String> sayHelloAsync(String name) {
-        CompletableFuture<String> future = new CompletableFuture<>();
-        new Thread(() -> {
-            try {
-                Thread.sleep(5000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            future.complete("sayHelloAsync: " + name);
-        }).start();
-
-        return future;
-    }
-
-    @Override
-    public CompletableFuture<Person> sayHelloAsyncComplex(String name) {
-        Person person = new Person(1, "sayHelloAsyncComplex: " + name);
-        CompletableFuture<Person> future = new CompletableFuture<>();
-        new Thread(() -> {
-            try {
-                Thread.sleep(5000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            future.complete(person);
-        }).start();
-
-        return future;
-    }
-
-    @Override
-    public CompletableFuture<GenericType<Person>> sayHelloAsyncGenericComplex(String name) {
-        Person person = new Person(1, "sayHelloAsyncGenericComplex: " + name);
-        GenericType<Person> genericType = new GenericType<>(person);
-        CompletableFuture<GenericType<Person>> future = new CompletableFuture<>();
-        new Thread(() -> {
-            try {
-                Thread.sleep(5000);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            future.complete(genericType);
-        }).start();
-
-        return future;
-    }
-}
-
-```
-
-### 通过API使用泛化调用
-
-#### 服务启动方
-
-1. 在设置 `ServiceConfig` 时,使用`setGeneric("true")`来开启泛化调用
-
-2. 在设置 `ServiceConfig` 时,使用 setRef 指定实现类时,要设置一个 `GenericService` 的对象。而不是真正的服务实现类对象
-
-3. 其他设置与正常 Api 服务启动一致即可
-
-``` java
-private static String zookeeperAddress = "zookeeper://" + System.getProperty("zookeeper.address", "127.0.0.1") + ":2181";
-
-    public static void main(String[] args) throws Exception {
-        new EmbeddedZooKeeper(2181, false).start();
-
-        //创建ApplicationConfig
-        ApplicationConfig applicationConfig = new ApplicationConfig();
-        applicationConfig.setName("generic-impl-provider");
-        //创建注册中心配置
-        RegistryConfig registryConfig = new RegistryConfig();
-        registryConfig.setAddress(zookeeperAddress);
-
-        //新建服务实现类,注意要使用GenericService接收
-        GenericService helloService = new GenericImplOfHelloService();
-
-        //创建服务相关配置
-        ServiceConfig<GenericService> service = new ServiceConfig<>();
-        service.setApplication(applicationConfig);
-        service.setRegistry(registryConfig);
-        service.setInterface("org.apache.dubbo.samples.generic.call.api.HelloService");
-        service.setRef(helloService);
-        //重点:设置为泛化调用
-        //注:不再推荐使用参数为布尔值的setGeneric函数
-        //应该使用referenceConfig.setGeneric("true")代替
-        service.setGeneric("true");
-        service.export();
-
-        System.out.println("dubbo service started");
-
-        new CountDownLatch(1).await();
-    }
-}
-```
-
-#### 泛化调用方
-步骤:
-
 1. 在设置 `ReferenceConfig` 时,使用 `setGeneric("true")` 来开启泛化调用
-
 2. 配置完 `ReferenceConfig` 后,使用 `referenceConfig.get()` 获取到 `GenericService` 类的实例
-
 3. 使用其 `$invoke` 方法获取结果
+4. 其他设置与正常服务调用配置一致即可
 
-4. 其他设置与正常 Api 服务启动一致即可
-
-``` java
-    //定义泛化调用服务类
-    private static GenericService genericService;
-    public static void main(String[] args) throws Exception {
-        //创建ApplicationConfig
-        ApplicationConfig applicationConfig = new ApplicationConfig();
-        applicationConfig.setName("generic-call-consumer");
-        //创建注册中心配置
-        RegistryConfig registryConfig = new RegistryConfig();
-        registryConfig.setAddress("zookeeper://127.0.0.1:2181");
-        //创建服务引用配置
-        ReferenceConfig<GenericService> referenceConfig = new ReferenceConfig<>();
-        //设置接口
-        referenceConfig.setInterface("org.apache.dubbo.samples.generic.call.api.HelloService");
-        applicationConfig.setRegistry(registryConfig);
-        referenceConfig.setApplication(applicationConfig);
-        //重点:设置为泛化调用
-        //注:不再推荐使用参数为布尔值的setGeneric函数
-        //应该使用referenceConfig.setGeneric("true")代替
-        referenceConfig.setGeneric(true);
-        //设置异步,不必须,根据业务而定。
-        referenceConfig.setAsync(true);
-        //设置超时时间
-        referenceConfig.setTimeout(7000);
-
-        //获取服务,由于是泛化调用,所以获取的一定是GenericService类型
-        genericService = referenceConfig.get();
-
-        //使用GenericService类对象的$invoke方法可以代替原方法使用
-        //第一个参数是需要调用的方法名
-        //第二个参数是需要调用的方法的参数类型数组,为String数组,里面存入参数的全类名。
-        //第三个参数是需要调用的方法的参数数组,为Object数组,里面存入需要的参数。
-        Object result = genericService.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{"world"});
-        //使用CountDownLatch,如果使用同步调用则不需要这么做。
-        CountDownLatch latch = new CountDownLatch(1);
-        //获取结果
-        CompletableFuture<String> future = RpcContext.getContext().getCompletableFuture();
-        future.whenComplete((value, t) -> {
-            System.err.println("invokeSayHello(whenComplete): " + value);
-            latch.countDown();
-        });
-        //打印结果
-        System.err.println("invokeSayHello(return): " + result);
-        latch.await();
-    }
-```
+## 更多用法
 
 ### 通过 Spring 使用泛化调用
 Spring 中服务暴露与服务发现有多种使用方式,如 xml,注解。这里以 xml 为例。
@@ -451,63 +256,3 @@
 ```
 
 3. 对于其他序列化格式,需要特殊配置
-
-
-
-
-
-## 特性说明
-泛接口实现方式主要用于服务器端没有 API 接口及模型类元的情况,参数及返回值中的所有 POJO 均用 Map 表示,通常用于框架集成,比如:实现一个通用的远程服务 Mock 框架,可通过实现 GenericService 接口处理所有服务请求。
-
-## 使用场景
-注册服务: 服务提供者在服务注册表中注册服务,例如 Zookeeper,服务注册表存储有关服务的信息,例如其接口、实现类和地址。
-
-部署服务: 服务提供商将服务部署在服务器并使其对消费者可用。
-
-调用服务: 使用者使用服务注册表生成的代理调用服务,代理将请求转发给服务提供商,服务提供商执行服务并将响应发送回消费者。
-
-监视服务:提供者和使用者可以使用 Dubbo 框架监视服务,允许他们查看服务的执行情况,并在必要时进行调整。
-
-
-## 使用方式
-在 Java 代码中实现 `GenericService` 接口
-
-```java
-package com.foo;
-public class MyGenericService implements GenericService {
-
-    public Object $invoke(String methodName, String[] parameterTypes, Object[] args) throws GenericException {
-        if ("sayHello".equals(methodName)) {
-            return "Welcome " + args[0];
-        }
-    }
-}
-```
-
-### 通过 Spring 暴露泛化实现
-
-在 Spring 配置申明服务的实现
-
-```xml
-<bean id="genericService" class="com.foo.MyGenericService" />
-<dubbo:service interface="com.foo.BarService" ref="genericService" />
-```
-
-### 通过 API 方式暴露泛化实现
-
-```java
-...
-// 用org.apache.dubbo.rpc.service.GenericService可以替代所有接口实现
-GenericService xxxService = new XxxGenericService();
-
-// 该实例很重量,里面封装了所有与注册中心及服务提供方连接,请缓存
-ServiceConfig<GenericService> service = new ServiceConfig<GenericService>();
-// 弱类型接口名
-service.setInterface("com.xxx.XxxService");
-service.setVersion("1.0.0");
-// 指向一个通用服务实现
-service.setRef(xxxService);
-
-// 暴露及注册服务
-service.export();
-```
\ No newline at end of file
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/parameter-validation.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/parameter-validation.md
index af42861..64e170b 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/parameter-validation.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/parameter-validation.md
@@ -6,13 +6,9 @@
 linkTitle: 参数校验
 title: 参数校验
 type: docs
-weight: 2
+weight: 100
 ---
 
-
-
-
-
 ## 特性说明
 参数验证功能是基于 [JSR303](https://jcp.org/en/jsr/detail?id=303) 实现的,用户只需标识 JSR303 标准的验证 annotation,并通过声明 filter 来实现验证。
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reactive.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reactive.md
index 77f9f5b..edf3d62 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reactive.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reactive.md
@@ -6,13 +6,12 @@
 linkTitle: 响应式编程
 title: 响应式编程
 type: docs
-weight: 1
+weight: 100
 ---
 
-
-
-
-
+{{% alert title="过时风险提醒" color="warning" %}}
+请注意,本文档描述的 Reactive 响应式使用方法可能存在过时的情况,请随时参考 apache/dubbo-samples 中的最新 reactive 示例了解用法。
+{{% /alert %}}
 
 ## 特性说明
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reference-config-cache.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reference-config-cache.md
index df65403..407cab2 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reference-config-cache.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/reference-config-cache.md
@@ -6,7 +6,7 @@
 linkTitle: 服务引用配置对象缓存
 title: 服务引用配置对象缓存
 type: docs
-weight: 2
+weight: 50
 ---
 
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/result-cache.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/result-cache.md
index faac2d8..83bb09f 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/result-cache.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/result-cache.md
@@ -6,7 +6,7 @@
 linkTitle: 调用结果缓存
 title: 调用结果缓存
 type: docs
-weight: 7
+weight: 50
 ---
 
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot.md
index 5e09827..850a102 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/router-snapshot.md
@@ -6,7 +6,7 @@
 linkTitle: 路由状态采集
 title: 路由状态采集
 type: docs
-weight: 2
+weight: 50
 ---
 
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/specify-ip.md b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/specify-ip.md
index b1cfc62..83e87ac 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/specify-ip.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/framework/more/specify-ip.md
@@ -6,13 +6,10 @@
 linkTitle: 运行时动态指定 IP 调用
 title: 动态指定 IP 调用
 type: docs
-weight: 5
+weight: 4
 ---
 
 
-
-
-
 ## 特性说明
 使用 Dubbo 的扩展,实现指定 IP 调用。
 
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture.md b/content/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture.md
new file mode 100644
index 0000000..0191c16
--- /dev/null
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/gateway/architecture.md
@@ -0,0 +1,41 @@
+---
+description: |
+    本文讲述前端 http 流量接入后端 Dubbo 微服务的的基本架构,包括移动端、浏览器、桌面应用、异构的微服务体系等。
+linkTitle: 基本架构
+title: 前端 http 流量接入 Dubbo 后端微服务体系的基础架构
+type: docs
+weight: 1
+---
+
+不论你开发的是什么样的产品(电子商城、管理系统、手机 app 等),绝大多数下产品的流量入口都会是 http,用户可能通过浏览器、手机移动设备、桌面软件等来访问产品。在这种情况下,如何将后端开发的 Dubbo 微服务集群接入前端访问设备就成为一个需要解决的问题,其实也就是 http 与 rpc 之间的转换与连接问题。
+
+总的来说,有中心化和去中心化两种架构模式。其中,中心化接入模式更具通用性,对后端 rpc 协议、前端网关没有太多特殊要求,但保证中心化应用的性能、稳定性是一个较大的挑战;去中心化模式由于不需要维护入口应用,因此可适应更大流量、更大规模的集群。
+
+## 中心化接入方式
+中心化接入方式的架构图如下:
+* 在后端服务与前端设备之间有一层网关,负责流量过滤、路由、限流等流量管理工作
+* 在后端集群中有一个连接 http 与 dubbo 服务的 “统一微服务入口应用”(通常也叫做 BFF,即Backend for Frontend)。
+
+<img style="max-width:800px;height:auto;" src="/imgs/v3/tasks/gateway/arch-centralized-bff.png"/>
+
+BFF 应用通常可以使用 Spring Web 等常用框架开发,应用发布一系列的 http 服务,接收网关或前端设备流量,同时负责按需发起 dubbo 调用。
+
+{{% alert title="注意" color="info" %}}
+`dubbo`、`triple` 协议都支持这种接入架构。另外,在配置 BFF 应用调用 dubbo 服务时,可以使用普通的 dubbo 配置方式,也可以使用泛化调用等方式:
+* 配置接入 dubbo 协议时,使用 [泛化调用]() 的优势是可以避免对服务二进制包的依赖,实现配置动态生效的效果。
+* 配置接入 triple 协议时,可以使用 http 调用方式,同样可避免对服务二进制包的依赖,实现配置动态生效的效果。
+{{% /alert %}}
+
+## 去中心化接入方式
+与中心化架构相比,此方式并没有太大的差异,唯一的区别在于不需要额外的 BFF 应用,我们可以在网关直接调用后端 dubbo 服务。
+
+但这种方式对网关有特别要求。如果后端是 dubbo 协议的话,则要求网关具备 `http -> dubbo` 协议转换的能力,但你会在接下来的文档中发现,我们可以通过多协议发布绕过协议转换,让网关直接通过 http 访问后端服务;如果后端是 triple 协议,就会更简单了,因为 triple 协议支持 application/json 格式的 http 请求。
+
+<img style="max-width:800px;height:auto;" src="/imgs/v3/tasks/gateway/arch-decentralized-dubbo.png"/>
+
+## 总结
+使用不同的协议也会影响架构选择,triple 协议由于原生支持 HTTP 访问,因此对两种架构方式都可以无差别支持,并且接入原理上也会更简单直接。而 dubbo 协议作为 Dubbo2 时代主推的协议,由于是基于 tcp 的二进制协议,因此在接入方式上存在一些不同。
+
+我们将在接下来的两篇文档中介绍 dubbo、triple 两种协议的具体前端流量接入方式,文档同样适用于中心化、去中心化架构。
+
+
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/gateway/triple.md b/content/zh-cn/overview/mannual/java-sdk/tasks/gateway/triple.md
index b3eb132a..4adcc67 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/gateway/triple.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/gateway/triple.md
@@ -7,7 +7,7 @@
 linkTitle: triple协议
 title: 通过网关将 http 流量接入 Dubbo 后端服务
 type: docs
-weight: 2
+weight: 3
 ---
 
 在 [triple协议规范](/zh-cn/overview/reference/protocols/triple-spec/) 中我们曾详细介绍了 triple 对于浏览器、网关的友好性设计,其中非常重要的一点是 triple 同时支持跑在 HTTP/1、HTTP/2 上:
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/_index.md b/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/_index.md
index cc1b584..fdfd578 100755
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/_index.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/_index.md
@@ -1,7 +1,5 @@
 ---
-aliases:
-    - /zh/overview/tasks/traffic-management/
-    - /zh-cn/overview/tasks/traffic-management/
+
 description: 演示 Dubbo 流量治理特性的使用方式。
 linkTitle: 流量管控
 no_list: true
@@ -10,86 +8,7 @@
 weight: 5
 ---
 
-
-
-此任务基于一个简单的线上商城微服务系统演示了 Dubbo 的流量管控能力。
-
-线上商城的架构图如下:
-
-![shop-arc](/imgs/v3/traffic/shop-arc.png)
-
-系统由 5 个微服务应用组成:
-* `Frontend 商城主页`,作为与用户交互的 web 界面,通过调用 `User`、`Detail`、`Order` 等提供用户登录、商品展示和订单管理等服务。
-* `User 用户服务`,负责用户数据管理、身份校验等。
-* `Order 订单服务`,提供订订单创建、订单查询等服务,依赖 `Detail` 服务校验商品库存等信息。
-* `Detail 商品详情服务`,展示商品详情信息,调用 `Comment` 服务展示用户对商品的评论记录。
-* `Comment 评论服务`,管理用户对商品的评论数据。
-
-## 部署商场系统
-
-为方便起见,我们将整个系统部署在 Kubernetes 集群,执行以下命令即可完成商城项目部署,项目源码示例在 [dubbo-samples/task](https://github.com/apache/dubbo-samples/tree/master/10-task/dubbo-samples-shop)。
-
-```sh
-kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/All.yml
-```
-
-完整的部署架构图如下:
-
-![shop-arc](/imgs/v3/traffic/shop-arc-deploy2.png)
-
-`Order 订单服务`有两个版本 `v1` 和 `v2`,`v2` 是订单服务优化后发布的新版本。
-* 版本 v1 只是简单的创建订单,不展示订单详情
-* 版本 v2 在订单创建成功后会展示订单的收货地址详情
-
-`Detail` 和 `Comment` 服务也分别有两个版本 `v1` 和 `v2`,我们通过多个版本来演示流量导流后的效果。
-* 版本 `v1` 默认为所有请求提供服务
-* 版本 `v2` 模拟被部署在特定的区域的服务,因此 `v2` 实例会带有特定的标签
-
-执行以下命令,确定所有服务、Pod都已正常运行:
-```sh
-$ kubectl get services -n dubbo-demo
-
-```
-
-```sh
-$ kubectl get pods -n dubbo-demo
-
-```
-
-为了保障系统完整性,除了商城相关的几个微服务应用,示例还在后台拉起了 Nacos 注册配置中心、Dubbo Admin 控制台 和 Skywalking 全链路追踪系统。
-
-```sh
-$ kubectl get services -n dubbo-system
-
-```
-
-```sh
-$ kubectl get pods -n dubbo-system
-
-```
-
-## 获得访问地址
-执行以下命令,将集群端口映射到本地端口:
-
-```sh
-kubectl port-forward -n dubbo-demo deployment/shop-frontend 8080:8080
-```
-
-```sh
-kubectl port-forward -n dubbo-system service/dubbo-admin 38080:38080
-```
-
-```sh
-kubectl port-forward -n dubbo-system service/skywalking-oap-dashboard 8082:8082
-```
-
-此时,打开浏览器,即可通过以下地址访问:
-* 商城首页 `http://localhost:8080`
-* Dubbo Admin 控制台 `http://localhost:38080`
-* Skywalking 控制台 `http://localhost:8082`
-
-## 任务项
-接下来,试着通过如下任务项给商城增加一些流量管控规则吧。
+我们通过一个使用 Dubbo 开发的商城微服务项目,演示 Dubbo 流量管控规则的基本使用方法,包括如下场景:
 
 {{< blocks/section color="white" height="auto">}}
 <div class="td-content list-page">
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/architecture.md b/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/architecture.md
new file mode 100755
index 0000000..b52f3ba
--- /dev/null
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/architecture.md
@@ -0,0 +1,201 @@
+---
+aliases:
+    - /zh/overview/tasks/traffic-management/
+    - /zh-cn/overview/tasks/traffic-management/
+description: 演示 Dubbo 流量治理特性的使用方式。
+linkTitle: 示例应用架构
+title: 示例应用架构
+type: docs
+weight: 1
+---
+
+此任务基于一个简单的线上商城微服务系统演示了 Dubbo 的流量管控能力。
+
+{{% alert title="注意" color="warning" %}}
+本示例展示的所有能力均基于 [Dubbo 路由规则](/zh-cn/overview/what/core-features/traffic/introduction/) 实现,如想了解具体工作原理可查看详情。
+{{% /alert %}}
+
+
+线上商城的架构图如下:
+
+![shop-arc](/imgs/v3/traffic/shop-arc.png)
+
+系统由 5 个微服务应用组成:
+* `Frontend 商城主页`,作为与用户交互的 web 界面,通过调用 `User`、`Detail`、`Order` 等提供用户登录、商品展示和订单管理等服务。
+* `User 用户服务`,负责用户数据管理、身份校验等。
+* `Order 订单服务`,提供订订单创建、订单查询等服务,依赖 `Detail` 服务校验商品库存等信息。
+* `Detail 商品详情服务`,展示商品详情信息,调用 `Comment` 服务展示用户对商品的评论记录。
+* `Comment 评论服务`,管理用户对商品的评论数据。
+
+## 部署商场系统
+
+为方便起见,我们将整个系统部署在 Kubernetes 集群,执行以下命令即可完成商城项目部署,项目源码示例在 [dubbo-samples/task](https://github.com/apache/dubbo-samples/tree/master/10-task/dubbo-samples-shop)。
+
+```sh
+kubectl apply -f https://raw.githubusercontent.com/apache/dubbo-samples/master/10-task/dubbo-samples-shop/deploy/All.yml
+```
+
+完整的部署架构图如下:
+
+![shop-arc](/imgs/v3/traffic/shop-arc-deploy2.png)
+
+`Order 订单服务`有两个版本 `v1` 和 `v2`,`v2` 是订单服务优化后发布的新版本。
+* 版本 v1 只是简单的创建订单,不展示订单详情
+* 版本 v2 在订单创建成功后会展示订单的收货地址详情
+
+`Detail` 和 `Comment` 服务也分别有两个版本 `v1` 和 `v2`,我们通过多个版本来演示流量导流后的效果。
+* 版本 `v1` 默认为所有请求提供服务
+* 版本 `v2` 模拟被部署在特定的区域的服务,因此 `v2` 实例会带有特定的标签
+
+执行以下命令,确定所有服务、Pod都已正常运行:
+```sh
+$ kubectl get services -n dubbo-demo
+
+```
+
+```sh
+$ kubectl get pods -n dubbo-demo
+
+```
+
+为了保障系统完整性,除了商城相关的几个微服务应用,示例还在后台拉起了 Nacos 注册配置中心、Dubbo Admin 控制台 和 Skywalking 全链路追踪系统。
+
+```sh
+$ kubectl get services -n dubbo-system
+
+```
+
+```sh
+$ kubectl get pods -n dubbo-system
+
+```
+
+## 获得访问地址
+执行以下命令,将集群端口映射到本地端口:
+
+```sh
+kubectl port-forward -n dubbo-demo deployment/shop-frontend 8080:8080
+```
+
+```sh
+kubectl port-forward -n dubbo-system service/dubbo-admin 38080:38080
+```
+
+```sh
+kubectl port-forward -n dubbo-system service/skywalking-oap-dashboard 8082:8082
+```
+
+此时,打开浏览器,即可通过以下地址访问:
+* 商城首页 `http://localhost:8080`
+* Dubbo Admin 控制台 `http://localhost:38080`
+* Skywalking 控制台 `http://localhost:8082`
+
+## 任务项
+接下来,试着通过如下任务项给商城增加一些流量管控规则吧。
+
+{{< blocks/section color="white" height="auto">}}
+<div class="td-content list-page">
+    <div class="lead"></div><header class="article-meta">
+    </header><div class="row">
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow" href="#">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./timeout/" >}}'>调整超时时间</a>
+                </h4>
+                <p>通过在运行期动态的调整服务超时时间,可以有效的应对超时设置不合理、系统突发情况等导致的服务频繁超时、服务阻塞等问题,提升系统稳定性。</p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./retry/" >}}'>增加重试次数</a>
+                </h4>
+                <p>在服务初次调用失败后,通过重试能有效的提升总体调用成功率。</p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./accesslog/" >}}'>访问日志</a>
+                </h4>
+                <p>访问日志可以很好的记录某台机器在某段时间内处理的所有服务请求信息,运行态动态的开启访问日志对于排查问题非常有帮助。
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./region/" >}}'>同机房/区域优先</a>
+                </h4>
+                <p>同机房/区域优先是指应用调用服务时,优先调用同机房/区域的服务提供者,避免了跨区域带来的网络延时,从而减少了调用的响应时间。
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./isolation/" >}}'>环境隔离</a>
+                </h4>
+                <p>通过为集群中的某一个或多个应用划分逻辑隔离环境,可用于灰度环境或多套测试环境搭建。
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./arguments/" >}}'>参数路由</a>
+                </h4>
+                <p>如基于用户 ID 路由流量,将一小部分用户请求转发到最新发布的产品版本,以验证新版本的稳定性、获取用户的产品体验反馈等。
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./weight/" >}}'>权重比例</a>
+                </h4>
+                <p>通过规则动态调整单个或一组机器的权重,可以在运行态改变请求流量的分布,实现动态的按比例的流量路由。
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./mock/" >}}'>服务降级</a>
+                </h4>
+                <p>服务降级的核心目标就是针对这些弱依赖项,在弱依赖不可用或调用失败时,通过返回降级结果尽可能的维持功能完整。
+                </p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4">
+        <div class="h-100 card shadow">
+            <div class="card-body">
+                <h4 class="card-title">
+                    <a href='{{< relref "./host/" >}}'>固定机器导流</a>
+                </h4>
+                <p>通过将请求固定的转发某一台提供者机器,帮助快速复现开发或线上问题。
+                </p>
+            </div>
+        </div>
+    </div>
+</div>
+<hr>
+</div>
+
+{{< /blocks/section >}}
diff --git a/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout.md b/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout.md
index 3295104..eb11f1c 100644
--- a/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout.md
+++ b/content/zh-cn/overview/mannual/java-sdk/tasks/traffic-management/timeout.md
@@ -6,11 +6,9 @@
 linkTitle: 调整超时时间
 title: 动态调整服务超时时间
 type: docs
-weight: 1
+weight: 2
 ---
 
-
-
 Dubbo 提供动态调整服务超时时间的能力,在无需重启应用的情况下调整服务的超时时间,这对于临时解决一些服务上下游依赖不稳定而导致的调用失败问题非常有效。
 
 ## 开始之前
diff --git a/content/zh-cn/overview/mannual/rust-sdk/service-discovery.md b/content/zh-cn/overview/mannual/rust-sdk/service-discovery.md
index 1171d74..d22c335 100644
--- a/content/zh-cn/overview/mannual/rust-sdk/service-discovery.md
+++ b/content/zh-cn/overview/mannual/rust-sdk/service-discovery.md
@@ -3,10 +3,6 @@
     - /zh/docs3-v2/rust-sdk/service-discovery/
     - /zh-cn/docs3-v2/rust-sdk/service-discovery/
 description: 服务发现
-feature:
-    description: |
-        Dubbo Rust依赖第三方注册中心组件来协调服务发现过程,支持的注册中心: Nacos、Zookeeper。
-    title: 服务发现
 linkTitle: 服务发现
 title: 服务发现
 type: docs
diff --git a/static/imgs/v3/tasks/gateway/arch-centralized-bff.png b/static/imgs/v3/tasks/gateway/arch-centralized-bff.png
new file mode 100644
index 0000000..20e8265
--- /dev/null
+++ b/static/imgs/v3/tasks/gateway/arch-centralized-bff.png
Binary files differ
diff --git a/static/imgs/v3/tasks/gateway/arch-decentralized-dubbo.png b/static/imgs/v3/tasks/gateway/arch-decentralized-dubbo.png
new file mode 100644
index 0000000..17e5a6b
--- /dev/null
+++ b/static/imgs/v3/tasks/gateway/arch-decentralized-dubbo.png
Binary files differ