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

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


The following commit(s) were added to refs/heads/master by this push:
     new a90ac41f06a Enhance docs (#1365)
a90ac41f06a is described below

commit a90ac41f06add2a5d25320c3209f0ddc67225a55
Author: Albumen Kevin <[email protected]>
AuthorDate: Thu Aug 11 15:44:42 2022 +0800

    Enhance docs (#1365)
    
    * Enhance docs
    
    * update link
---
 content/zh/docs3-v2/dubbo-go-pixiu/_index.md       |   2 +-
 content/zh/docs3-v2/erlang-sdk/_index.md           |   2 +-
 content/zh/docs3-v2/golang-sdk/_index.md           |   2 +-
 content/zh/docs3-v2/java-sdk/_index.md             |   2 +-
 .../service/service-downgrade.md                   |   2 +-
 .../java-sdk/quick-start/eco-system/_index.md      |   8 -
 .../2.x-to-3.x-compatibility-guide.md              |  14 +-
 content/zh/docs3-v2/rust-sdk/_index.md             |   2 +-
 content/zh/overview/tasks/ecosystem/_index.md      |  19 +-
 .../tasks/ecosystem}/rate-limit.md                 |   2 +-
 .../tasks/ecosystem}/transaction.md                |   6 +-
 .../tasks/migration/2to3.md}                       |  18 +-
 content/zh/overview/tasks/migration/_index.md      |   9 +-
 .../overview/tasks/migration/migration-triple.md   |  38 ++++
 .../tasks/migration/service-discovery-samples.md   |  76 ++++++++
 content/zh/overview/tasks/triple/_index.md         |  23 ++-
 content/zh/overview/tasks/triple/grpc.md           |   9 +
 content/zh/overview/tasks/triple/idl.md            |   2 +-
 content/zh/overview/tasks/triple/streaming.md      | 196 +--------------------
 content/zh/overview/tasks/triple/wrap.md           |   9 +
 20 files changed, 187 insertions(+), 254 deletions(-)

diff --git a/content/zh/docs3-v2/dubbo-go-pixiu/_index.md 
b/content/zh/docs3-v2/dubbo-go-pixiu/_index.md
index 5470505ab89..f4a60e28a3a 100755
--- a/content/zh/docs3-v2/dubbo-go-pixiu/_index.md
+++ b/content/zh/docs3-v2/dubbo-go-pixiu/_index.md
@@ -3,7 +3,7 @@
 type: docs
 title: "Dubbo Go Pixiu"
 linkTitle: "Dubbo Go Pixiu"
-weight: 500
+weight: 30
 description: "Dubbo Go Pixiu"
 ---
 
diff --git a/content/zh/docs3-v2/erlang-sdk/_index.md 
b/content/zh/docs3-v2/erlang-sdk/_index.md
index 1f969c9d472..65e5966292b 100755
--- a/content/zh/docs3-v2/erlang-sdk/_index.md
+++ b/content/zh/docs3-v2/erlang-sdk/_index.md
@@ -3,7 +3,7 @@
 type: docs
 title: "Erlang"
 linkTitle: "Erlang"
-weight: 200
+weight: 500
 description: "Erlang 支持"
 ---
 
diff --git a/content/zh/docs3-v2/golang-sdk/_index.md 
b/content/zh/docs3-v2/golang-sdk/_index.md
index 25fcee02c38..0c88c0dfaf2 100755
--- a/content/zh/docs3-v2/golang-sdk/_index.md
+++ b/content/zh/docs3-v2/golang-sdk/_index.md
@@ -3,5 +3,5 @@
 type: docs
 title: "Golang"
 linkTitle: "Golang"
-weight: 3
+weight: 20
 ---
\ No newline at end of file
diff --git a/content/zh/docs3-v2/java-sdk/_index.md 
b/content/zh/docs3-v2/java-sdk/_index.md
index 59f0101dcf3..e45190f1b12 100755
--- a/content/zh/docs3-v2/java-sdk/_index.md
+++ b/content/zh/docs3-v2/java-sdk/_index.md
@@ -2,7 +2,7 @@
 ---
 type: docs
 title: "Java"
-weight: 3
+weight: 10
 #no_list: true
 #hide_summary: true
 content:
diff --git 
a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/service-downgrade.md
 
b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/service-downgrade.md
index 0ddb716b591..684d89555ec 100644
--- 
a/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/service-downgrade.md
+++ 
b/content/zh/docs3-v2/java-sdk/advanced-features-and-usage/service/service-downgrade.md
@@ -6,7 +6,7 @@ weight: 3
 description: "降级 Dubbo 服务"
 ---
 
-推荐使用相关限流降级组件(如 
[Sentinel](https://sentinelguard.io/zh-cn/docs/open-source-framework-integrations.html))以达到最佳体验。
+推荐使用相关限流降级组件(如 
[Sentinel](https://sentinelguard.io/zh-cn/docs/open-source-framework-integrations.html))以达到最佳体验。参考示例实践:[微服务治理/限流降级](/zh/overview/tasks/ecosystem/rate-limit/);
 
 ## 特性说明
 
diff --git a/content/zh/docs3-v2/java-sdk/quick-start/eco-system/_index.md 
b/content/zh/docs3-v2/java-sdk/quick-start/eco-system/_index.md
deleted file mode 100755
index f7aac6354df..00000000000
--- a/content/zh/docs3-v2/java-sdk/quick-start/eco-system/_index.md
+++ /dev/null
@@ -1,8 +0,0 @@
-
----
-type: docs
-title: "周边生态接入"
-linkTitle: "周边生态接入"
-weight: 1000
-description: ""
----
diff --git 
a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md
 
b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md
index 08c9c61f0a1..e0eb497a643 100644
--- 
a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md
+++ 
b/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md
@@ -14,7 +14,7 @@ description: "快速了解 Dubbo 3 的升级步骤与兼容性"
 <dependency>
     <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo</artifactId>
-    <version>3.0.0</version>
+    <version>3.0.10</version>
 </dependency>
 ```
 
@@ -33,12 +33,12 @@ description: "快速了解 Dubbo 3 的升级步骤与兼容性"
 Dubbo 3.0 提供的新特性包括:
 
 * **新的地址发现模型(应用级服务发现)。**
-  * 查看[应用级服务发现迁移示例](../service-discovery/service-discovery-samples/)。
-   * 查看[应用级服务发现的迁移步骤](../service-discovery/migration-service-discovery/)
-   * 查看[应用级服务发现地址迁移规则说明](../service-discovery/service-discovery-rule/)
+  * 
查看[应用级服务发现迁移示例](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-samples/)。
+   * 
查看[应用级服务发现的迁移步骤](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery/)
+   * 
查看[应用级服务发现地址迁移规则说明](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule/)
 * **下一代基于 HTTP/2 的 Triple 协议。**
-   * 查看[Triple 协议迁移步骤](../migration-triple/)
-   * 查看 [Triple 协议使用方式](../../reference-manual/protocol/triple/guide/)
-   * 查看 [Triple 协议设计与实现](../../reference-manual/protocol/triple/overview/)。
+   * 查看[Triple 
协议迁移步骤](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/migration-triple/)
+   * 查看 [Triple 
协议使用方式](/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/guide/)
+   * 查看 [Triple 
协议设计与实现](/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/overview/)。
 * **统一的路由规则。**
    * 
查看[统一路由规则设计与实现](/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/)
\ No newline at end of file
diff --git a/content/zh/docs3-v2/rust-sdk/_index.md 
b/content/zh/docs3-v2/rust-sdk/_index.md
index db1ab965196..fa9b2272607 100755
--- a/content/zh/docs3-v2/rust-sdk/_index.md
+++ b/content/zh/docs3-v2/rust-sdk/_index.md
@@ -3,7 +3,7 @@
 type: docs
 title: "Rust"
 linkTitle: "Rust"
-weight: 200
+weight: 100
 description: "Rust SDK 使用手册"
 ---
 
diff --git a/content/zh/overview/tasks/ecosystem/_index.md 
b/content/zh/overview/tasks/ecosystem/_index.md
index 072c827e1b7..a1e1f331eb8 100755
--- a/content/zh/overview/tasks/ecosystem/_index.md
+++ b/content/zh/overview/tasks/ecosystem/_index.md
@@ -16,8 +16,7 @@ no_list: true
         <div class="h-100 card shadow" href="#">
             <div class="card-body">
                 <h4 class="card-title">
-<!--                     <a href='{{< relref "./" >}}'>平滑升级到 Dubbo3 </a> -->
-                <p>事务管理(文档建设中)</p>
+                     <a href='{{< relref "./transaction/" >}}'>事务管理</a>
                 </h4>
                 <p>本示例演示如何通过 Seata 实现分布式 Dubbo 服务的事务管理,保证数据一致性。</p>
             </div>
@@ -27,19 +26,7 @@ no_list: true
         <div class="h-100 card shadow">
             <div class="card-body">
                 <h4 class="card-title">
-<!--                     <a href='{{< relref "./" >}}'>迁移到 Dubbo3 应用级服务发现</a> 
-->
-                <p>注册中心&配置中心&元数据中心(文档建设中)</p>
-                </h4>
-                <p>本示例演示如何配置和使用 Nacos 作为 Dubbo 注册中心、配置中心和元数据中心,<br/><br/> 
如果您倾向更云原生、更简介的部署方式,请参考 Kubernetes 或 Mesh 部署模式</p>
-            </div>
-        </div>
-    </div>
-    <div class="col-sm col-md-6 mb-4 mb-md-0">
-        <div class="h-100 card shadow">
-            <div class="card-body">
-                <h4 class="card-title">
-<!--                     <a href='{{< relref "./" >}}'>迁移到 Triple 协议</a> -->
-                <p>限流降级(文档建设中)</p>
+                     <a href='{{< relref "./rate-limit/" >}}'>限流降级</a>
                 </h4>
                 <p>使用 Sentinel 保护您的应用,防止应用因个别服务的突发流量过载而出现稳定性问题。</p>
             </div>
@@ -49,7 +36,6 @@ no_list: true
          <div class="h-100 card shadow">
              <div class="card-body">
                  <h4 class="card-title">
- <!--                     <a href='{{< relref "./" >}}'>迁移到 Triple 协议</a> -->
                  <p>http 网关接入(文档建设中)</p>
                  </h4>
                  <p>通过网关 http 到 dubbo 协议转换,实现前端流量接入后端 dubbo 服务。</p>
@@ -60,7 +46,6 @@ no_list: true
          <div class="h-100 card shadow">
              <div class="card-body">
                  <h4 class="card-title">
- <!--                     <a href='{{< relref "./" >}}'>迁移到 Triple 协议</a> -->
                  <p>Spring Cloud 体系互通(文档建设中)</p>
                  </h4>
                  <p>演示如何通过 Dubbo3 应用级服务发现机制,实现和 Spring Cloud 的 rest 协议互通。</p>
diff --git a/content/zh/docs3-v2/java-sdk/quick-start/eco-system/rate-limit.md 
b/content/zh/overview/tasks/ecosystem/rate-limit.md
similarity index 94%
rename from content/zh/docs3-v2/java-sdk/quick-start/eco-system/rate-limit.md
rename to content/zh/overview/tasks/ecosystem/rate-limit.md
index 76068534764..c349f9d646e 100644
--- a/content/zh/docs3-v2/java-sdk/quick-start/eco-system/rate-limit.md
+++ b/content/zh/overview/tasks/ecosystem/rate-limit.md
@@ -3,7 +3,7 @@ type: docs
 title: "限流降级"
 linkTitle: "限流降级"
 weight: 2
-description: "快速玩转 Dubbo 生态之一致性限流降级篇(Sentinel)"
+description: "使用 Sentinel 保护您的应用,防止应用因个别服务的突发流量过载而出现稳定性问题。"
 ---
 
 ## Sentinel 是什么
diff --git a/content/zh/docs3-v2/java-sdk/quick-start/eco-system/transaction.md 
b/content/zh/overview/tasks/ecosystem/transaction.md
similarity index 97%
rename from content/zh/docs3-v2/java-sdk/quick-start/eco-system/transaction.md
rename to content/zh/overview/tasks/ecosystem/transaction.md
index 53efe245f5a..4c3488447ae 100644
--- a/content/zh/docs3-v2/java-sdk/quick-start/eco-system/transaction.md
+++ b/content/zh/overview/tasks/ecosystem/transaction.md
@@ -1,9 +1,9 @@
 ---
 type: docs
-title: "一致性事务"
-linkTitle: "一致性事务"
+title: "事务管理"
+linkTitle: "事务管理"
 weight: 1
-description: "快速玩转 Dubbo 生态之一致性事务篇(Seata)"
+description: "本示例演示如何通过 Seata 实现分布式 Dubbo 服务的事务管理,保证数据一致性。"
 ---
 
 ## Seata 是什么
diff --git 
a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md
 b/content/zh/overview/tasks/migration/2to3.md
similarity index 61%
copy from 
content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md
copy to content/zh/overview/tasks/migration/2to3.md
index 08c9c61f0a1..9c3280e7c2a 100644
--- 
a/content/zh/docs3-v2/java-sdk/upgrades-and-compatibility/2.x-to-3.x-compatibility-guide.md
+++ b/content/zh/overview/tasks/migration/2to3.md
@@ -1,7 +1,7 @@
 ---
 type: docs
-title: "2.x 升级至 3.x 操作指南"
-linkTitle: "2.x 升级至 3.x 操作指南"
+title: "升级到 Dubbo3"
+linkTitle: "升级到 Dubbo3"
 weight: 1
 description: "快速了解 Dubbo 3 的升级步骤与兼容性"
 ---
@@ -14,7 +14,7 @@ description: "快速了解 Dubbo 3 的升级步骤与兼容性"
 <dependency>
     <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo</artifactId>
-    <version>3.0.0</version>
+    <version>3.0.10</version>
 </dependency>
 ```
 
@@ -33,12 +33,12 @@ description: "快速了解 Dubbo 3 的升级步骤与兼容性"
 Dubbo 3.0 提供的新特性包括:
 
 * **新的地址发现模型(应用级服务发现)。**
-  * 查看[应用级服务发现迁移示例](../service-discovery/service-discovery-samples/)。
-   * 查看[应用级服务发现的迁移步骤](../service-discovery/migration-service-discovery/)
-   * 查看[应用级服务发现地址迁移规则说明](../service-discovery/service-discovery-rule/)
+  * 
查看[应用级服务发现迁移示例](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-samples/)。
+   * 
查看[应用级服务发现的迁移步骤](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery/)
+   * 
查看[应用级服务发现地址迁移规则说明](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule/)
 * **下一代基于 HTTP/2 的 Triple 协议。**
-   * 查看[Triple 协议迁移步骤](../migration-triple/)
-   * 查看 [Triple 协议使用方式](../../reference-manual/protocol/triple/guide/)
-   * 查看 [Triple 协议设计与实现](../../reference-manual/protocol/triple/overview/)。
+   * 查看[Triple 
协议迁移步骤](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/migration-triple/)
+   * 查看 [Triple 
协议使用方式](/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/guide/)
+   * 查看 [Triple 
协议设计与实现](/zh/docs3-v2/java-sdk/reference-manual/protocol/triple/overview/)。
 * **统一的路由规则。**
    * 
查看[统一路由规则设计与实现](/zh/docs3-v2/java-sdk/advanced-features-and-usage/traffic/mesh-style/)
\ No newline at end of file
diff --git a/content/zh/overview/tasks/migration/_index.md 
b/content/zh/overview/tasks/migration/_index.md
index 8d182107528..826b7eb2e7d 100755
--- a/content/zh/overview/tasks/migration/_index.md
+++ b/content/zh/overview/tasks/migration/_index.md
@@ -16,8 +16,7 @@ no_list: true
         <div class="h-100 card shadow" href="#">
             <div class="card-body">
                 <h4 class="card-title">
-<!--                     <a href='{{< relref "./" >}}'>平滑升级到 Dubbo3 </a> -->
-                <p>平滑升级到 Dubbo3(文档建设中)</p>
+                     <a href='{{< relref "./2to3/" >}}'>平滑升级到 Dubbo3 </a> 
                 </h4>
                 <p>平滑升级到 Dubbo3 版本。</p>
             </div>
@@ -27,8 +26,7 @@ no_list: true
         <div class="h-100 card shadow">
             <div class="card-body">
                 <h4 class="card-title">
-<!--                     <a href='{{< relref "./" >}}'>迁移到 Dubbo3 应用级服务发现</a> 
-->
-                <p>迁移到 Dubbo3 应用级服务发现(文档建设中)</p>
+                     <a href='{{< relref "./service-discovery-samples/" 
>}}'>迁移到 Dubbo3 应用级服务发现</a>
                 </h4>
                 <p>迁移到 Dubbo3 应用级服务发现。</p>
             </div>
@@ -38,8 +36,7 @@ no_list: true
         <div class="h-100 card shadow">
             <div class="card-body">
                 <h4 class="card-title">
-<!--                     <a href='{{< relref "./" >}}'>迁移到 Triple 协议</a> -->
-                <p>迁移到 Dubbo3 Triple 协议(文档建设中)</p>
+                     <a href='{{< relref "./migration-triple/" >}}'>迁移到 Triple 
协议</a>
                 </h4>
                 <p>迁移到 Dubbo3 Triple 协议</p>
             </div>
diff --git a/content/zh/overview/tasks/migration/migration-triple.md 
b/content/zh/overview/tasks/migration/migration-triple.md
new file mode 100644
index 00000000000..90fda127807
--- /dev/null
+++ b/content/zh/overview/tasks/migration/migration-triple.md
@@ -0,0 +1,38 @@
+---
+type: docs
+linkTitle: "Triple 协议"
+title: "Dubbo 协议迁移至 Triple 协议指南"
+weight: 2
+description: "Triple 协议迁移指南"
+---
+
+## Triple 介绍
+
+`Triple` 协议的格式和原理请参阅 [RPC 通信协议](/zh/docs/concepts/rpc-protocol/)
+
+根据 Triple 设计的目标,`Triple` 协议有以下优势:
+
+- 具备跨语言交互的能力,传统的多语言多 SDK 模式和 Mesh 化跨语言模式都需要一种更通用易扩展的数据传输协议。
+- 提供更完善的请求模型,除了支持传统的 Request/Response 模型(Unary 单向通信),还支持 Stream(流式通信) 和 
Bidirectional(双向通信)。
+- 易扩展、穿透性高,包括但不限于 Tracing / Monitoring 等支持,也应该能被各层设备识别,网关设施等可以识别数据报文,对 Service 
Mesh 部署友好,降低用户理解难度。
+- 完全兼容 grpc,客户端/服务端可以与原生grpc客户端打通。
+- 可以复用现有 grpc 生态下的组件, 满足云原生场景下的跨语言、跨环境、跨平台的互通需求。
+
+当前使用其他协议的 Dubbo 用户,框架提供了兼容现有序列化方式的迁移能力,在不影响线上已有业务的前提下,迁移协议的成本几乎为零。
+
+需要新增对接 Grpc 服务的 Dubbo 用户,可以直接使用 Triple 协议来实现打通,不需要单独引入 grpc client 
来完成,不仅能保留已有的 Dubbo 易用性,也能降低程序的复杂度和开发运维成本,不需要额外进行适配和开发即可接入现有生态。
+
+对于需要网关接入的 Dubbo 用户,Triple 协议提供了更加原生的方式,让网关开发或者使用开源的 grpc 网关组件更加简单。网关可以选择不解析 
payload ,在性能上也有很大提高。在使用 Dubbo 协议时,语言相关的序列化方式是网关的一个很大痛点,而传统的 HTTP 转 Dubbo 
的方式对于跨语言序列化几乎是无能为力的。同时,由于 Triple 的协议元数据都存储在请求头中,网关可以轻松的实现定制需求,如路由和限流等功能。
+
+
+## Dubbo2 协议迁移流程
+
+Dubbo2 的用户使用 dubbo 协议 + 自定义序列化,如 hessian2 完成远程调用。
+
+而 Grpc 的默认仅支持 Protobuf 序列化,对于 Java 语言中的多参数以及方法重载也无法支持。
+
+Dubbo3的之初就有一条目标是完美兼容 Dubbo2,所以为了 Dubbo2 能够平滑升级, Dubbo 
框架侧做了很多工作来保证升级的无感,目前默认的序列化和 Dubbo2 保持一致为`hessian2`。
+
+**所以,如果决定要升级到 Dubbo3 的 `Triple` 协议,只需要修改配置中的协议名称为 `tri` (注意: 不是triple)即可。**
+
+关于 `Triple` 协议更多使用说明可以参考 [Triple 
协议迁移指南](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/migration-triple/)。
\ No newline at end of file
diff --git a/content/zh/overview/tasks/migration/service-discovery-samples.md 
b/content/zh/overview/tasks/migration/service-discovery-samples.md
new file mode 100644
index 00000000000..81f5e9995fa
--- /dev/null
+++ b/content/zh/overview/tasks/migration/service-discovery-samples.md
@@ -0,0 +1,76 @@
+---
+type: docs
+title: "Dubbo3 应用级服务发现"
+linkTitle: "应用级服务发现"
+weight: 5
+description: "本文具体说明了用户在升级到 Dubbo 3.0 之后如何快速开启应用级服务发现新特性。"
+---
+
+应用级服务发现为应用间服务发现的协议,因此使用应用级服务发现需要消费端和服务端均升级到 Dubbo 3.0 
版本并开启新特性(默认开启)才能在链路中使用应用级服务发现,真正发挥应用级服务发现的优点。
+## 开启方式
+## 服务端
+应用升级到 Dubbo 3.0 后,服务端自动开启接口级 + 应用级双注册功能,默认无需开发者修改任何配置
+
+### 消费端
+应用升级到 Dubbo 3.0 后,消费端自动始接口级 + 应用级双订阅功能,默认无需开发者修改任何配置。建议在服务端都升级到 Dubbo 3.0 
并开启应用级注册以后通过规则配置消费端关闭接口级订阅,释放对应的内存空间。
+
+## 详细说明
+### 服务端配置
+
+1. 全局开关
+
+应用配置(可以通过配置文件或者 -D 指定)`dubbo.application.register-mode` 为 
instance(只注册应用级)、all(接口级+应用级均注册)开启全局的注册开关,配置此开关后,默认会向所有的注册中心中注册应用级的地址,供消费端服务发现使用。
+> 
示例:[https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-provider2/src/main/resources/dubbo.properties](https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-provider2/src/main/resources/dubbo.properties)
+
+```
+# 双注册
+dubbo.application.register-mode=all
+```
+```
+# 仅应用级注册
+dubbo.application.register-mode=instance
+```
+
+2. 注册中心地址参数配置
+
+注册中心的地址上可以配置 `registry-type=service` 
来显示指定该注册中心为应用级服务发现的注册中心,带上此配置的注册中心将只进行应用级服务发现。
+> 
示例:[https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml](https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml)
+
+```xml
+<dubbo:registry 
address="nacos://${nacos.address:127.0.0.1}:8848?registry-type=service"/>
+```
+### 消费端订阅模式
+FORCE_INTERFACE:仅接口级订阅,行为和 Dubbo 2.7 及以前版本一致。
+APPLICATION_FIRST:接口级 + 
应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证迁移过程中最大的兼容性。(注:由于存在同时进行订阅的行为,此模式下内存占用会有一定的增长,因此在所有服务端都升级到
 Dubbo 3.0 以后建议迁移到 FORCE_APPLICATION 模式降低内存占用)
+FORCE_APPLICATION:仅应用级订阅,将只采用全新的服务发现模型。
+### 消费端配置
+
+1. 默认配置(不需要配置)
+
+升级到 Dubbo 3.0 
后默认行为为接口级+应用级多订阅,如果应用级能订阅到地址就使用应用级的订阅,如果订阅不到地址则使用接口级的订阅,以此保证最大的兼容性。
+
+2. 订阅参数配置
+
+应用配置(可以通过配置文件或者 -D 指定)`dubbo.application.service-discovery.migration` 为 
`APPLICATION_FIRST` 可以开启多订阅模式,配置为 `FORCE_APPLICATION` 可以强制为仅应用级订阅模式。
+具体接口订阅可以在 `ReferenceConfig` 中的 `parameters` 中配置 Key 为 `migration.step`,Value 为 
`APPLICATION_FIRST` 或 `FORCE_APPLICATION` 的键值对来对单一订阅进行配置。
+> 
示例:[https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-consumer/src/test/java/org/apache/dubbo/demo/consumer/DemoServiceConfigIT.java](https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-consumer/src/test/java/org/apache/dubbo/demo/consumer/DemoServiceConfigIT.java)
+
+```java
+System.setProperty("dubbo.application.service-discovery.migration", 
"APPLICATION_FIRST");
+```
+```java
+ReferenceConfig<DemoService> referenceConfig = new 
ReferenceConfig<>(applicationModel.newModule());
+referenceConfig.setInterface(DemoService.class);
+referenceConfig.setParameters(new HashMap<>());
+referenceConfig.getParameters().put("migration.step", mode);
+return referenceConfig.get();
+```
+
+3. 动态配置(优先级最高,可以在运行时修改配置)
+
+此配置需要基于配置中心进行推送,Key 为应用名 + `.migration` (如 `demo-application.migraion`),Group 
为 
`DUBBO_SERVICEDISCOVERY_MIGRATION`。规则体配置详见[接口级服务发现迁移至应用级服务发现指南](/zh/docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/service-discovery-rule/)。
+> 
示例:[https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-consumer/src/main/java/org/apache/dubbo/demo/consumer/UpgradeUtil.java](https://github.com/apache/dubbo-samples/blob/master/dubbo-samples-cloud-native/dubbo-servicediscovery-migration/dubbo-servicediscovery-migration-consumer/src/main/java/org/apache/dubbo/demo/consumer/UpgradeUtil.java)
+
+```java
+step: FORCE_INTERFACE
+```
diff --git a/content/zh/overview/tasks/triple/_index.md 
b/content/zh/overview/tasks/triple/_index.md
index b1224d84a95..f52021dc5fe 100755
--- a/content/zh/overview/tasks/triple/_index.md
+++ b/content/zh/overview/tasks/triple/_index.md
@@ -26,13 +26,32 @@ no_list: true
         <div class="h-100 card shadow" href="#">
             <div class="card-body">
                 <h4 class="card-title">
-<!--                     <a href='{{< relref "./streaming/" >}}'>Streaming 通信 
(TBD)</a> -->
-                <p>Stream 通信模式 (文档建设中)</p>
+                     <a href='{{< relref "./wrap/" >}}'>Wrapped 序列化兼容模式</a>
+                </h4>
+                <p>Wrapped 序列化兼容模式</p>
+            </div>
+        </div>
+    </div>
+    <div class="col-sm col-md-6 mb-4 mb-md-0">
+        <div class="h-100 card shadow" href="#">
+            <div class="card-body">
+                <h4 class="card-title">
+                     <a href='{{< relref "./streaming/" >}}'>Streaming 通信</a>
                 </h4>
                 <p>Stream 通信模式</p>
             </div>
         </div>
     </div>
+    <div class="col-sm col-md-6 mb-4 mb-md-0">
+        <div class="h-100 card shadow" href="#">
+            <div class="card-body">
+                <h4 class="card-title">
+                     <a href='{{< relref "./grpc/" >}}'>Triple 与 gRPC 通信</a>
+                </h4>
+                <p>Triple 与 gRPC 通信</p>
+            </div>
+        </div>
+    </div>
 </div>
 <hr>
 </div>
diff --git a/content/zh/overview/tasks/triple/grpc.md 
b/content/zh/overview/tasks/triple/grpc.md
new file mode 100644
index 00000000000..cecc6625127
--- /dev/null
+++ b/content/zh/overview/tasks/triple/grpc.md
@@ -0,0 +1,9 @@
+---
+type: docs
+title: "Triple 与 gRPC 通信"
+linkTitle: "Triple 与 gRPC 通信"
+weight: 4
+description: ""
+---
+
+TBD
\ No newline at end of file
diff --git a/content/zh/overview/tasks/triple/idl.md 
b/content/zh/overview/tasks/triple/idl.md
index 86e4b9a829e..4936e3ab541 100644
--- a/content/zh/overview/tasks/triple/idl.md
+++ b/content/zh/overview/tasks/triple/idl.md
@@ -2,7 +2,7 @@
 type: docs
 title: "使用 IDL + Protobuf 跨语言定义服务"
 linkTitle: "使用 IDL + Protobuf 跨语言定义服务"
-weight: 4
+weight: 1
 description: ""
 ---
 
diff --git a/content/zh/overview/tasks/triple/streaming.md 
b/content/zh/overview/tasks/triple/streaming.md
index 947eb96ea48..93d4c1a0d45 100644
--- a/content/zh/overview/tasks/triple/streaming.md
+++ b/content/zh/overview/tasks/triple/streaming.md
@@ -2,200 +2,8 @@
 type: docs
 title: "Streaming 通信模式"
 linkTitle: "Streaming 通信模式"
-weight: 4
+weight: 3
 description: ""
-toc_hide: true
 ---
 
-服务是 Dubbo 中的核心概念,一个服务代表一组 RPC 方法的集合,服务是面向用户编程、服务发现机制等的基本单位。Dubbo 开发的基本流程是:用户定义 
RPC 服务,通过约定的配置
-方式将 RPC 声明为 Dubbo 服务,然后就可以基于服务 API 进行编程了。对服务提供者来说是提供 RPC 
服务的具体实现,而对服务消费者来说则是使用特定数据发起服务调用。
-
-下面从定义服务、编译服务、配置并加载服务三个方面说明如何快速的开发 Dubbo 服务。
-
-## 定义服务
-Dubbo3 推荐使用 IDL 定义跨语言服务,如您更习惯使用特定语言的服务定义方式,请移步[多语言 SDK](/zh/docs3-v2/)查看。
-
-```text
-syntax = "proto3";
-
-option java_multiple_files = true;
-option java_package = "org.apache.dubbo.demo";
-option java_outer_classname = "DemoServiceProto";
-option objc_class_prefix = "DEMOSRV";
-
-package demoservice;
-
-// The demo service definition.
-service DemoService {
-  rpc SayHello (HelloRequest) returns (HelloReply) {}
-}
-
-// The request message containing the user's name.
-message HelloRequest {
-  string name = 1;
-}
-
-// The response message containing the greetings
-message HelloReply {
-  string message = 1;
-}
-
-```
-
-以上是使用 IDL 定义服务的一个简单示例,我们可以把它命名为 `DemoService.proto`,proto 文件中定义了 RPC 服务名称 
`DemoService` 与方法签名
-`SayHello (HelloRequest) returns (HelloReply) {}`,同时还定义了方法的入参结构体、出参结构体 
`HelloRequest` 与 `HelloReply`。
-IDL 格式的服务依赖 Protobuf 编译器,用来生成可以被用户调用的客户端与服务端编程 API,Dubbo 在原生 Protobuf Compiler 
的基础上提供了适配多种语言的特有插件,用于适配 Dubbo 框架特有的 API 与编程模型。
-
-> 使用 Dubbo3 IDL 定义的服务只允许一个入参与出参,这种形式的服务签名有两个优势,一是对多语言实现更友好,二是可以保证服务的向后兼容性,依赖于 
Protobuf 序列化的兼容性,我们可以很容易的调整传输的数据结构如增、删字段等,完全不用担心接口的兼容性。
-
-## 编译服务
-根据当前采用的语言,配置相应的 Protobuf 插件,编译后将生产语言相关的服务定义 stub。
-
-### Java
-Java 语言生成的 stub 如下,核心是一个接口定义
-```java
[email protected](
-value = "by Dubbo generator",
-comments = "Source: DemoService.proto")
-public interface DemoService {
-    static final String JAVA_SERVICE_NAME = 
"org.apache.dubbo.demo.DemoService";
-    static final String SERVICE_NAME = "demoservice.DemoService";
-
-    org.apache.dubbo.demo.HelloReply 
sayHello(org.apache.dubbo.demo.HelloRequest request);
-
-    CompletableFuture<org.apache.dubbo.demo.HelloReply> 
sayHelloAsync(org.apache.dubbo.demo.HelloRequest request);
-}
-```
-
-### Golang
-
-Go 语言生成的 stub 如下,这个 stub 里存了用户定义的接口和数据的类型。
-
-```go
-func _DUBBO_Greeter_SayHello_Handler(srv interface{}, ctx context.Context, dec 
func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, 
error) {
-       in := new(HelloRequest)
-       if err := dec(in); err != nil {
-               return nil, err
-       }
-       base := srv.(dgrpc.Dubbo3GrpcService)
-       args := []interface{}{}
-       args = append(args, in)
-       invo := invocation.NewRPCInvocation("SayHello", args, nil)
-       if interceptor == nil {
-               result := base.GetProxyImpl().Invoke(ctx, invo)
-               return result.Result(), result.Error()
-       }
-       info := &grpc.UnaryServerInfo{
-               Server:     srv,
-               FullMethod: "/main.Greeter/SayHello",
-       }
-       handler := func(ctx context.Context, req interface{}) (interface{}, 
error) {
-               result := base.GetProxyImpl().Invoke(context.Background(), invo)
-               return result.Result(), result.Error()
-       }
-       return interceptor(ctx, in, info, handler)
-}
-```
-
-
-## 配置并加载服务
-提供端负责提供具体的 Dubbo 服务实现,也就是遵循 RPC 签名所约束的格式,去实现具体的业务逻辑代码。在实现服务之后,要将服务实现注册为标准的 
Dubbo 服务,
-之后 Dubbo 框架就能根据接收到的请求转发给服务实现,执行方法,并将结果返回。
-
-消费端的配置会更简单一些,只需要声明 IDL 定义的服务为标准的 Dubbo 服务,框架就可以帮助开发者生成相应的 proxy,开发者将完全面向 proxy 
编程,
-基本上 Dubbo 所有语言的实现都保证了 proxy 依据 IDL 服务定义暴露标准化的接口。
-
-### Java
-提供端,实现服务
-```java
-public class DemoServiceImpl implements DemoService {
-    private static final Logger logger = 
LoggerFactory.getLogger(DemoServiceImpl.class);
-
-    @Override
-    public HelloReply sayHello(HelloRequest request) {
-        logger.info("Hello " + request.getName() + ", request from consumer: " 
+ RpcContext.getContext().getRemoteAddress());
-        return HelloReply.newBuilder()
-                .setMessage("Hello " + request.getName() + ", response from 
provider: "
-                        + RpcContext.getContext().getLocalAddress())
-                .build();
-    }
-
-    @Override
-    public CompletableFuture<HelloReply> sayHelloAsync(HelloRequest request) {
-        return CompletableFuture.completedFuture(sayHello(request));
-    }
-}
-```
-
-提供端,注册服务(以 Spring XML 为例)
-```xml
-<bean id="demoServiceImpl" 
class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
-<dubbo:service serialization="protobuf" 
interface="org.apache.dubbo.demo.DemoService" ref="demoServiceImpl"/>
-```
-
-消费端,引用服务
-```xml
-<dubbo:reference scope="remote" id="demoService" check="false" 
interface="org.apache.dubbo.demo.DemoService"/>
-```
-
-消费端,使用服务 proxy
-```java
-public void callService() throws Exception {
-    ...
-    DemoService demoService = context.getBean("demoService", 
DemoService.class);
-    HelloRequest request = HelloRequest.newBuilder().setName("Hello").build();
-    HelloReply reply = demoService.sayHello(request);
-    System.out.println("result: " + reply.getMessage());
-}
-```
-
-### Golang
-
-提供端,实现服务
-
-```go
-type User struct {
-       ID   string
-       Name string
-       Age  int32
-       Time time.Time
-}
-
-type UserProvider struct {
-}
-
-func (u *UserProvider) GetUser(ctx context.Context, req []interface{}) (*User, 
error) {
-       gxlog.CInfo("req:%#v", req)
-       rsp := User{"A001", "Alex Stocks", 18, time.Now()}
-       gxlog.CInfo("rsp:%#v", rsp)
-       return &rsp, nil
-}
-
-func (u *UserProvider) Reference() string {
-       return "UserProvider"
-}
-
-func (u User) JavaClassName() string {
-       return "org.apache.dubbo.User"
-}
-
-func main() {
-    hessian.RegisterPOJO(&User{})
-       config.SetProviderService(new(UserProvider))
-}
-```
-
-消费端,使用服务 proxy
-
-```go
-func main() {
-       config.Load()
-       user := &pkg.User{}
-       err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
-       if err != nil {
-               os.Exit(1)
-               return
-       }
-       gxlog.CInfo("response result: %v\n", user)
-}
-```
+TBD
\ No newline at end of file
diff --git a/content/zh/overview/tasks/triple/wrap.md 
b/content/zh/overview/tasks/triple/wrap.md
new file mode 100644
index 00000000000..130a1f4d11b
--- /dev/null
+++ b/content/zh/overview/tasks/triple/wrap.md
@@ -0,0 +1,9 @@
+---
+type: docs
+title: "Wrapped 序列化兼容模式"
+linkTitle: "Wrapped 序列化兼容模式"
+weight: 2
+description: ""
+---
+
+TBD
\ No newline at end of file

Reply via email to