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

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


The following commit(s) were added to refs/heads/refactor/next by this push:
     new 069f1e94fa3 update docs (#1657)
069f1e94fa3 is described below

commit 069f1e94fa36fdb5ce38e67afbe526109dc35356
Author: Ken Liu <[email protected]>
AuthorDate: Mon Dec 5 20:04:40 2022 +0800

    update docs (#1657)
---
 README.md                                          |   9 +
 content/zh/overview/core-features/extensibility.md |   3 +-
 content/zh/overview/quickstart/_index.md           | 508 +++++++++++++++++++--
 .../extensibility}/extensibility.md                |  28 +-
 content/zh/overview/tasks/observability/admin.md   |   8 +
 content/zh/overview/tasks/observability/grafana.md |   8 +
 .../zh/overview/tasks/observability/prometheus.md  |   8 +
 .../zh/overview/what/advantages/extensibility.md   | 101 +---
 .../zh/overview/what/advantages/observability.md   |  38 +-
 content/zh/overview/what/advantages/performance.md |   2 +
 .../overview/what/advantages/traffic-management.md |  18 +-
 content/zh/overview/what/advantages/usability.md   |   6 +
 .../imgs/v3/concepts/extensibility-echosystem.png  | Bin 0 -> 196478 bytes
 13 files changed, 596 insertions(+), 141 deletions(-)

diff --git a/README.md b/README.md
index 4c1e635da4e..2bd6b268087 100644
--- a/README.md
+++ b/README.md
@@ -50,6 +50,15 @@ npm install
 ```sh
 hugo server --disableFastRender
 ```
+
+> Troubleshooting. If you run into error like `fatal error: pipe failed` on 
MacOS, try the following command first:
+> ```sh
+> sudo launchctl limit maxfiles 65535 200000
+> ulimit -n 65535
+> sudo sysctl -w kern.maxfiles=100000
+> sudo sysctl -w kern.maxfilesperproc=65535
+> ```
+
 2. Navigate to `http://localhost:1313`
 
 ## Update docs
diff --git a/content/zh/overview/core-features/extensibility.md 
b/content/zh/overview/core-features/extensibility.md
index 733721d5127..e7bf27b0532 100644
--- a/content/zh/overview/core-features/extensibility.md
+++ b/content/zh/overview/core-features/extensibility.md
@@ -8,4 +8,5 @@ feature:
   title: 可扩展性
   description: >
     以插件形式定义所有关键微服务组件,用户可基于 Filter、Router、Service Discovery、Configuration 
等扩展点对接、适配自建或开源微服务生态。
----
\ No newline at end of file
+---
+
diff --git a/content/zh/overview/quickstart/_index.md 
b/content/zh/overview/quickstart/_index.md
index fcb827412a3..68b308ff1e3 100755
--- a/content/zh/overview/quickstart/_index.md
+++ b/content/zh/overview/quickstart/_index.md
@@ -1,38 +1,482 @@
-
 ---
 type: docs
-title: "快速开始"
+title: "一文了解 Dubbo 微服务开发、部署全流程"
 linkTitle: "入门"
 weight: 15
 ---
+本文可帮助开发者了解 Dubbo 微服务项目构建、开发、部署、观测、治理的全生命周期基本流程,这篇文档更多的是展示 Dubbo 的开发流程与开发模式。
+
+如果您需要可实际动手实践的示例,期望能跟随示例讲解一步步的完成开发,请参考以下每个语言的快速开始:
+* [Java 快速开始]()
+* [Go 快速开始]()
+* [Rust 快速开始]()
+
+## 第一步,初始化项目
+如果您正在使用 Java 或 Go 开发微服务,则可以使用 Dubbo 提供的脚手架快速创建项目骨架,骨架项目包含开发 Dubbo 
必须的依赖和配置,同时还包含一些对应的微服务开发的常用模式:
+* Java 项目脚手架
+* Go 项目脚手架
+
+以下是一个脚手架示例项目结构:
+
+![骨架项目截图]()
+
+可以直接导入 IDE 开始微服务业务开发。对于除 Java 和 Go 之外的其他语言,您也可以基于 Dubbo 提供的指引快速的创建项目。
+
+## 第二步,定义服务
+服务是 Dubbo 开发、通信和治理的基本单位,通常我们讲的 Dubbo 
服务是一个类似编程语言接口的概念,它是一系列可以被调用的方法的集合。通常来说,服务提供者 (Server) 负责提供服务定义的实现,而服务消费者 
(Client) 基于服务定义对服务提供者发起 RPC 调用。
+
+Dubbo 提供多种语言实现,开发者既可以选择以语言特有的方式定义服务,也可以选择使用语言中立的 IDL (Proto Buffers) 定义服务。
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+public interface DemoService {
+    String sayHello(String name);
+}
+{{< /tab >}}
+{{< tab header="Go" >}}
+type DemoService struct {
+       SayHello func(req []string) (string, error)
+}
+{{< /tab >}}
+{{< tab header="IDL" >}}
+syntax = "proto3";
+
+option java_multiple_files = true;
+option java_package = "org.apache.dubbo.demo.hello";
+option java_outer_classname = "HelloWorldProto";
+option objc_class_prefix = "HLW";
+
+package helloworld;
+
+service Greeter{
+  // unary
+  rpc greet(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;
+}
+{{< /tab >}}
+{{< /tabpane >}}
+
+## 第三步,开发服务提供者
+服务提供者(Server)需要完成两件事情:
+1. 基于上一步的服务定义给出业务逻辑实现
+2. 启动一个 Dubbo Server 监听来自客户端的请求并返回服务响应
+<br/><br/>
+
+首先,开发者遵循服务定义规范编写业务逻辑实现,如业务类需要实现特定接口或者抽象某个抽象类等。
+<br/><br/>
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+public class DemoServiceImpl implements DemoService {
+    @Override
+    public String sayHello(String name) {
+        return "Hello " + name + ", response from provider: " + 
RpcContext.getServiceContext().getLocalAddress();
+    }
+}
+{{< /tab >}}
+{{< tab header="Go" >}}
+type DemoServiceImpl struct {
+}
+
+func (u *DemoServiceImpl) SayHello(msg string) (string, error) {
+       return "Response message!", nil
+}
+{{< /tab >}}
+{{< tab header="IDL Java" lang="Java" >}}
+// Code generated by Dubbo plugin of protoc compiler
+// Greeter.java
+public interface Greeter {
+    String JAVA_SERVICE_NAME = "org.apache.dubbo.demo.hello.Greeter";
+    String SERVICE_NAME = "helloworld.Greeter";
+
+    org.apache.dubbo.demo.hello.HelloReply 
greet(org.apache.dubbo.demo.hello.HelloRequest request);
+
+    default CompletableFuture<org.apache.dubbo.demo.hello.HelloReply> 
greetAsync(org.apache.dubbo.demo.hello.HelloRequest request){
+        return CompletableFuture.completedFuture(greet(request));
+    }
+    // ......
+}
+
+// Code generated by Dubbo plugin of protoc compiler
+// DubboGreeterTriple.java
+public static abstract class GreeterImplBase implements Greeter, 
ServerService<Greeter> {
+    @Override
+    public org.apache.dubbo.demo.hello.HelloReply 
greet(org.apache.dubbo.demo.hello.HelloRequest request){
+        throw unimplementedMethodException(greetMethod);
+    }
+   // ......
+}
+
+// The actual business logic that is written and provided by Dubbo user
+public class GreeterServiceImpl extends DubboGreeterTriple.GreeterImplBase {
+    @Override
+    public HelloReply greet(HelloRequest request) {
+        return HelloReply.newBuilder()
+            .setMessage("Hello " + request.getName())
+            .build();
+    }
+}
+{{< /tab >}}
+{{< tab header="IDL Go" lang="Go" >}}
+// Paste the protoc generated and user provided code snippet here.
+{{< /tab >}}
+{{< tab header="IDL Rust" lang="Rust" >}}
+use ...
+
+#[allow(dead_code)]
+#[derive(Default, Clone)]
+struct GreeterServerImpl {
+    name: String,
+}
+
+// #[async_trait]
+#[async_trait]
+impl Greeter for GreeterServerImpl {
+    async fn greet(
+        &self,
+        request: Request<GreeterRequest>,
+    ) -> Result<Response<GreeterReply>, dubbo::status::Status> {
+        println!("GreeterServer::greet {:?}", request.metadata);
+
+        Ok(Response::new(GreeterReply {
+            message: "hello, dubbo-rust".to_string(),
+        }))
+    }
+}
+{{< /tab >}}
+{{< tab header="IDL Node.js" >}}
+// Paste the protoc generated and user provided code snippet here.
+{{< /tab >}}
+{{< /tabpane >}}
+
+<br/>
+配置并注册以上服务实现类,同时,还可以指定服务参数、注册中心地址、协议与端口等配置,以下是支持几种配置格式示例:
+<br/><br/>
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="YAML" lang="yaml" >}}
+dubbo:
+  application:
+    name: demo-provider
+  protocol:
+    name: dubbo
+    port: -1
+  registry:
+    address: zookeeper://127.0.0.1:2181
+{{< /tab >}}
+{{< tab header="API" lang="java" >}}
+public static void main(String[] args) throws Exception {
+    ServiceConfig<DemoServiceImpl> service = new ServiceConfig<>();
+    service.setInterface(DemoService.class);
+    service.setRef(new DemoServiceImpl());
+
+    DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+    bootstrap.application(new ApplicationConfig("dubbo-demo-api-provider"))
+        .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
+        .protocol(new ProtocolConfig(CommonConstants.DUBBO, -1))
+        .service(service)
+        .start()
+        .await();
+}
+{{< /tab >}}
+{{< tab header="Spring XML" >}}
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo";
+       xmlns="http://www.springframework.org/schema/beans";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+       http://dubbo.apache.org/schema/dubbo 
http://dubbo.apache.org/schema/dubbo/dubbo.xsd";>
+
+    <!-- Process related configurations -->
+    <dubbo:application name="demo-provider"/>
+
+    <!-- Registry address for service discovery-->
+    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
+
+    <!-- Specifies the RPC protocol to use and the TCP port to listen on -->
+    <dubbo:protocol name="dubbo" port="-1"/>
+
+    <!-- Put all services need to be exported here -->
+    <dubbo:service interface="org.apache.dubbo.demo.DemoService" 
timeout="3000" ref="demoService"/>
+    <bean id="demoService" 
class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
+</beans>
+{{< /tab >}}
+{{< tab header="Java Annotation" lang="Java" >}}
+@DubboService
+public class DemoServiceImpl implements DemoService {
+    // business implementation
+}
+
+public class DemoServiceComponent implements DemoService {
+    @DubboReference
+    private DemoService demoService;
+}
+{{< /tab >}}
+{{< tab header="dubbo.properties" lang="properties" >}}
+dubbo.application.name=dubbo-demo-annotation-provider
+dubbo.protocol.name=dubbo
+dubbo.protocol.port=-1
+dubbo.registry.address=zookeeper://127.0.0.1:2181
+{{< /tab >}}
+{{< /tabpane >}}
+
+<br/>
+启动 Server 监听服务
+<br/><br/>
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+public static void main(String[] args) throws Exception {
+    ServiceConfig<DemoServiceImpl> service = new ServiceConfig<>();
+    service.setInterface(DemoService.class);
+    service.setRef(new DemoServiceImpl());
+
+    DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+    bootstrap.application(new ApplicationConfig("dubbo-demo-api-provider"))
+        .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
+        .protocol(new ProtocolConfig(CommonConstants.DUBBO, -1))
+        .service(service)
+        .start()
+        .await();
+}
+{{< /tab >}}
+{{< tab header="Go" >}}
+func main() {
+       config.SetProviderService(&DemoServiceImpl{})
+       if err := config.Load(); err != nil {
+               panic(err)
+       }
+       select {}
+}
+{{< /tab >}}
+{{< tab header="Rust" >}}
+#[tokio::main]
+async fn main() {
+    register_server(GreeterServerImpl {
+        name: "greeter".to_string(),
+    });
+
+    // Dubbo::new().start().await;
+    Dubbo::new()
+        .with_config({
+            let r = RootConfig::new();
+            match r.load() {
+                Ok(config) => config,
+                Err(_err) => panic!("err: {:?}", _err), // response was droped
+            }
+        })
+        .start()
+        .await;
+}
+{{< /tab >}}
+{{< tab header="Node.js" >}}
+// Put node.js server bootstrapping snippet here
+{{< /tab >}}
+{{< /tabpane >}}
+
+<br/>
+至此,能监听请求并提供特定服务的 Dubbo Server 就开发和启动完成了。
+
+## 第四步,开发服务消费者
+
+接下来就是开发一个调用服务的 Client 了
+
+> 在 Client 调用服务的前提是需要有服务定义的依赖,这可以通过语言特定的依赖分发系统或 IDL 管理系统实现。
+
+通过配置/API声明服务调用,告诉 Dubbo 要生成 Proxy 的服务,同时可以指定服务发现的注册中心等配置:
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="YAML" lang="yaml" >}}
+dubbo:
+  application:
+    name: demo-consumer
+  registry:
+    address: zookeeper://127.0.0.1:2181
+{{< /tab >}}
+{{< tab header="API" lang="java" >}}
+private static void main(String[] args) {
+    ReferenceConfig<DemoService> reference = new ReferenceConfig<>();
+    reference.setInterface(DemoService.class);
+    reference.setGeneric("true");
+
+    DubboBootstrap bootstrap = DubboBootstrap.getInstance();
+    bootstrap.application(new ApplicationConfig("demo-consumer"))
+        .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
+        .reference(reference)
+        .start();
+}
+{{< /tab >}}
+{{< tab header="Spring XML" >}}
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo";
+       xmlns="http://www.springframework.org/schema/beans";
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+       http://dubbo.apache.org/schema/dubbo 
http://dubbo.apache.org/schema/dubbo/dubbo.xsd";>
+
+    <dubbo:application name="demo-consumer"/>
+
+    <dubbo:registry id="demo1" address="zookeeper://127.0.0.1:2181"/>
+
+    <dubbo:reference id="demoService" check="false" 
interface="org.apache.dubbo.demo.DemoService"/>
+</beans>
+{{< /tab >}}
+{{< tab header="Java Annotation" lang="Java" >}}
+public class SpringApplication {
+    @DubboReference
+    private DemoService demoService;
+}
+{{< /tab >}}
+{{< tab header="dubbo.properties" lang="properties" >}}
+dubbo.application.name=dubbo-demo-annotation-provider
+dubbo.registry.address=zookeeper://127.0.0.1:2181
+{{< /tab >}}
+{{< /tabpane >}}
+
+<br/>
+启动 Client
+<br/><br/>
+
+{{< tabpane langEqualsHeader=true >}}
+{{< tab header="Java" >}}
+public static void main(String[] args) throws Exception {
+    // ...
+    DemoService demoService = bootstrap.getCache().get(reference);
+    String message = demoService.sayHello("dubbo");
+    System.out.println("Result: " + message);
+}
+{{< /tab >}}
+{{< tab header="Go" >}}
+func main() {
+       config.SetProviderService(&DemoServiceImpl{})
+       if err := config.Load(); err != nil {
+               panic(err)
+       }
+       select {}
+}
+{{< /tab >}}
+{{< tab header="Rust" >}}
+#[tokio::main]
+async fn main() {
+    let mut cli = 
GreeterClient::new().with_uri("http://127.0.0.1:8888".to_string());
+
+    println!("# unary call");
+    let resp = cli
+        .greet(Request::new(GreeterRequest {
+            name: "message from client".to_string(),
+        }))
+        .await;
+    let resp = match resp {
+        Ok(resp) => resp,
+        Err(err) => return println!("{:?}", err),
+    };
+    let (_parts, body) = resp.into_parts();
+    println!("Response: {:?}", body);
+}
+{{< /tab >}}
+{{< tab header="Node.js" >}}
+// Put node.js client snippet here
+{{< /tab >}}
+{{< /tabpane >}}
+
+服务调用
+
+## 第五步,打包部署
+
+#### 语言特定形式分发包
+
+您可以选择以语言特定方式打包 Dubbo 开发的服务 (如 Java Jar、Go Module 
等),并以语言提供的发机制将二进制包分发出去。一般来讲,要注意一以下几点:
+* 服务定义最好作为单独的二进制包由 Server 端定义并打包分发,以便所有 Client 都能依赖并基于服务定义编码;
+* Dubbo Server 和 Dubbo Client 的打包与分发与普通应用完全一样,如 Java 应用就可以用 Maven 或 Gradle 
直接打包分发;
+* 如果您是以 IDL 方式定义服务,还需要考虑 IDL 的分发与管理方式;
+
+#### Docker 镜像
+
+在当今容器时代,打包为 Docker 镜像已变为更通用的分发形式
+
+```sh
+docker build -t ${your-organization}/${project-name}:${tag-or-version} .
+```
+
+> 通常,在脚手架生成的根目录下 `/deploy` 有预先生成的镜像打包 Dockerfile 模版,可以按需修改后直接用来打包。
+
+
+## 第六步,部署
+Dubbo 微服务支持多种部署架构,与云原生基础设施做了很好的适配:
+* 传统的自建服务治理体系模式,需自行维护微服务需要的注册中心集群、配置中心集群等
+* 基于 Kubernetes Native Service 微服务体系,此时 Kubernetes 集群承担服务抽象、注册中心、配置中心等角色
+* 服务网格架构,服务治理角色由控制面承担,Dubbo 作为数据面组件与 Sidecar 部署在一起,或者采用无 Sidecar 的 Proxyless 架构
+
+#### 传统自建注册、配置中心模式
+
+Dubbo 微服务需要依赖一些中心化集群协调状态,以下是一个抽象的 Dubbo 部署架构图:
+
+![三中心部署架构图]()
+
+图:部署在虚拟机或 Kubernetes 集群的传统 Dubbo 微服务架构
+
+* 注册中心。协调 Consumer 与 Provider 之间的地址注册与发现
+* 配置中心 (可选)
+  * 存储 Dubbo 启动阶段的全局配置,保证配置的跨环境共享与全局一致性
+  * 负责服务治理规则(路由规则、动态配置等)的存储与推送。
+* 元数据中心 (可选)
+  * 接收 Provider 上报的服务接口元数据,为 Admin 等控制台提供运维能力(如服务测试、接口文档等)
+  * 作为服务发现机制的补充,提供额外的接口/方法级别配置信息的同步能力,相当于注册中心的额外扩展
+
+以上三个中心集群并不是运行 Dubbo 
的必要条件,用户完全可以根据自身业务情况决定只启用其中一个或多个,以达到简化部署的目的。通常情况下,所有用户都会从独立的注册中心开始 Dubbo 
服务开发,而配置中心、元数据中心则会在微服务演进的过程中逐步的按需被引入进来。注册中心、配置中心和元数据中心都是逻辑概念,它们完全可以是同一个物理集群,如部署一个
 Zookeeper 集群同时作为注册中心、配置中心和元数据中心。
+
+如您是在 Kubernetes 搭建 Dubbo 微服务集群,请参考 [如何在 Kubernetes 集群部署 Dubbo 服务]() 了解更多。
+
+#### Kubernetes 原生服务
+
+![参考下 Spring Kubernetes 等的架构图]()
+
+在这种模式下,Dubbo 服务将与 Kubernetes 原生服务实现概念对齐,同时,开发者也不再需要部署独立的注册、配置中心集群,这部分职责由 
Kubernetes 及相应组件如 Service、ConfigMap、Deployment 等承担。具体是原理上,是由 Dubbo 节点直接与 
Kubernete api-server 或 DNS 通信实现。
+
+请参考 [Dubbo Kubernetes 原生服务任务]() 了解更多
+
+#### 服务网格
+
+Dubbo 服务可以无缝接入 Istio 体系,并且,Dubbo 支持更灵活的数据面部署形式
+* Sidecar 模式,Dubbo 可以与 Envoy 等代理部署在一起,实现流量拦截和治理
+* Proxyless 模式,Dubbo 通过直接与 Istio 等控制面通信,实现与 Sidecar 模式对等能力的同时,减少了部署成本和性能损耗。
+
+![服务网格部署架构图](/imgs/v3/mesh/thinsdk-envoy.png)
+
+具体可参见 [Dubbo 服务网格]() 部分说明。
+
+## 第七步,观测服务状态
+
+可以通过 Dubbo 官方提供的 Admin 控制台非常方便的观测服务运行状态。
+
+![Admin 截图]()
+
+请参考 [如何部署 Admin]() 了解如何将 Admin 部署您的开发或生产环境。
+
+> 注意:部署过程中必须要配置 Admin 连接到您正在使用的注册中心或配置中心集群,保证 Admin 和 Dubbo 微服务集群共享相同数据源。
+
+如果您将 Dubbo 部署在服务网格架构,则还可以使用对应控制面产品支持的控制台来观测 Dubbo 服务状态,如 Istio、Kiali。更多可观测能力如 
Accessing Log、Tracing 等,请参考[可观测性]()文档。
+
+## 第八步,服务治理
+为了使 Dubbo 服务稳定、可控的运行,我们需要在运行态对 Dubbo 服务进行治理。
+
+首先,可以通过 Dubbo Admin 完成绝大多数的治理需求,如查看服务状态、下发流量规则等
+
+![Dubbo Admin 治理效果图]()
+
+对于更高阶的治理诉求,可通过以下内容了解:
+
+* [网关流量接入](),通过网关实现前端 HTTP 流量接入 Dubbo 服务
+* [限流降级](),通过 Sentinel 等突发流量,就要用到限流降级能力,
+* [数据一致性](),了解 Dubbo 服务的分布式事物解决方案
+* [全链路追踪](),了解 Dubbo 服务如何接入 Zipkin、Skywalking、OpenTracing 等全链路监控组件
+* [服务发现](),了解 Dubbo 的服务发现机制和扩展实现
+* [流量管控](),了解 Dubbo 丰富的流量管控规则定义及使用方式
 
-{{< 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 mb-md-0">
-        <div class="h-100 card shadow" href="#">
-            <div class="card-body">
-                <h4 class="card-title">
-                    <a target="_blank" href='{{< relref 
"../../docs3-v2/java-sdk/quick-start/spring-boot/" >}}'>Java SDK</a>
-                </h4>
-                <p>Dubbo Java SDK Quick start</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 target="_blank" href='{{< relref 
"../../docs3-v2/golang-sdk/quickstart/" >}}'>Golang SDK</a>
-                </h4>
-                <p>Dubbo Golang SDK Quick start</p>
-            </div>
-        </div>
-    </div>
-
-</div>
-<hr>
-</div>
-
-{{< /blocks/section >}}
\ No newline at end of file
diff --git a/content/zh/overview/what/advantages/extensibility.md 
b/content/zh/overview/tasks/extensibility/extensibility.md
similarity index 86%
copy from content/zh/overview/what/advantages/extensibility.md
copy to content/zh/overview/tasks/extensibility/extensibility.md
index 2e7538c2af5..ad282841a69 100644
--- a/content/zh/overview/what/advantages/extensibility.md
+++ b/content/zh/overview/tasks/extensibility/extensibility.md
@@ -1,10 +1,16 @@
 ---
 type: docs
-title: "可扩展性"
-linkTitle: "可扩展性"
+title: "Kubernetes"
+linkTitle: "Kubernetes"
+description: "演示如何将 Dubbo 部署到 Kubernetes 并复用 Kubernetes Native Service。"
 weight: 60
+no_list: true
 ---
 
+## 以下是老文档内容存档
+
+Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 [SPI 
扩展实现](/zh/docs3-v2/java-sdk/reference-manual/spi/description/)
+
 ## 扩展设计理念
 
 可扩展性是任何一个系统所追求的,对于 Dubbo 来说是同样适用。
@@ -81,20 +87,4 @@ public class TripleHttp2Protocol extends Http2WireProtocol {
 <dubbo:protocol name="tri" />
 ```
 
-从上面的扩展步骤可以看出,用户基本在黑盒下就完成了扩展。
-
-## Dubbo 扩展的应用
-
-Dubbo 的扩展能力非常灵活,在自身功能的实现上无处不在。
-
-![//imgs/v3/concepts/extension-use.png](/imgs/v3/concepts/extension-use.png)
-
-Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo 
原生实现,来满足自身业务需求。
-
-## 使用场景
-
-* 如果你需要自定义负载均衡策略,你可以使用 Dubbo 扩展能力。
-* 如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。
-* 如果你需要实现自定义的过滤器,你可以使用 Dubbo 扩展能力。
-
-Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 [SPI 
扩展实现](/zh/docs3-v2/java-sdk/reference-manual/spi/description/)
\ No newline at end of file
+从上面的扩展步骤可以看出,用户基本在黑盒下就完成了扩展。
\ No newline at end of file
diff --git a/content/zh/overview/tasks/observability/admin.md 
b/content/zh/overview/tasks/observability/admin.md
new file mode 100644
index 00000000000..43900e85082
--- /dev/null
+++ b/content/zh/overview/tasks/observability/admin.md
@@ -0,0 +1,8 @@
+---
+type: docs
+title: "Kubernetes"
+linkTitle: "Kubernetes"
+description: "演示如何将 Dubbo 部署到 Kubernetes 并复用 Kubernetes Native Service。"
+weight: 60
+no_list: true
+---
diff --git a/content/zh/overview/tasks/observability/grafana.md 
b/content/zh/overview/tasks/observability/grafana.md
new file mode 100644
index 00000000000..43900e85082
--- /dev/null
+++ b/content/zh/overview/tasks/observability/grafana.md
@@ -0,0 +1,8 @@
+---
+type: docs
+title: "Kubernetes"
+linkTitle: "Kubernetes"
+description: "演示如何将 Dubbo 部署到 Kubernetes 并复用 Kubernetes Native Service。"
+weight: 60
+no_list: true
+---
diff --git a/content/zh/overview/tasks/observability/prometheus.md 
b/content/zh/overview/tasks/observability/prometheus.md
new file mode 100644
index 00000000000..43900e85082
--- /dev/null
+++ b/content/zh/overview/tasks/observability/prometheus.md
@@ -0,0 +1,8 @@
+---
+type: docs
+title: "Kubernetes"
+linkTitle: "Kubernetes"
+description: "演示如何将 Dubbo 部署到 Kubernetes 并复用 Kubernetes Native Service。"
+weight: 60
+no_list: true
+---
diff --git a/content/zh/overview/what/advantages/extensibility.md 
b/content/zh/overview/what/advantages/extensibility.md
index 2e7538c2af5..6e10b668d2a 100644
--- a/content/zh/overview/what/advantages/extensibility.md
+++ b/content/zh/overview/what/advantages/extensibility.md
@@ -5,96 +5,35 @@ linkTitle: "可扩展性"
 weight: 60
 ---
 
-## 扩展设计理念
+Dubbo 在设计上是高度可扩展的,通过这些扩展点你可以做到:
+* 拦截流量并控制流量行为
+* 按需调优 Dubbo 的一些默认策略与实现
+* 将 Dubbo 服务适配到自己内部微服务集群或其他主流的开源组件
 
-可扩展性是任何一个系统所追求的,对于 Dubbo 来说是同样适用。
+## 扩展点定义
 
-### 什么是可扩展性
-
-可扩展性是一种设计理念,代表了我们对未来的一种预想,我们希望在现有的架构或设计基础上,当未来某些方面发生变化的时候,我们能够以最小的改动来适应这种变化。
-
-### 可扩展性的优点
-
-可扩展性的优点主要表现模块之间解耦,它符合开闭原则,对扩展开放,对修改关闭。当系统增加新功能时,不需要对现有系统的结构和代码进行修改,仅仅新增一个扩展即可。
-
-### 扩展实现方式
-
-一般来说,系统会采用 Factory、IoC、OSGI 等方式管理扩展(插件)生命周期。考虑到 Dubbo 的适用面,不想强依赖 Spring 等 IoC 
容器。
-而自己造一个小的 IoC 容器,也觉得有点过度设计,所以选择最简单的 Factory 方式管理扩展(插件)。在 Dubbo 
中,所有内部实现和第三方实现都是平等的。
-
-### Dubbo 中的可扩展性
-
-* 平等对待第三方的实现。在 Dubbo 中,所有内部实现和第三方实现都是平等的,用户可以基于自身业务需求,替换 Dubbo 提供的原生实现。
-* 
每个扩展点只封装一个变化因子,最大化复用。每个扩展点的实现者,往往都只是关心一件事。如果用户有需求需要进行扩展,那么只需要对其关注的扩展点进行扩展就好,极大的减少用户的工作量。
-
-## Dubbo 扩展的特性
-
-Dubbo 中的扩展能力是从 JDK 标准的 SPI 扩展点发现机制加强而来,它改进了 JDK 标准的 SPI 以下问题:
-
-* JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源。
-* 如果扩展点加载失败,连扩展点的名称都拿不到了。比如:JDK 标准的 ScriptEngine,通过 getName() 获取脚本类型的名称,但如果 
RubyScriptEngine 因为所依赖的 jruby.jar 不存在,导致 RubyScriptEngine 类加载失败,这个失败原因被吃掉了,和 
ruby 对应不起来,当用户执行 ruby 脚本时,会报不支持 ruby,而不是真正失败的原因。
-
-用户能够基于 Dubbo 提供的扩展能力,很方便基于自身需求扩展其他协议、过滤器、路由等。下面介绍下 Dubbo 扩展能力的特性。
-
-* 按需加载。Dubbo 的扩展能力不会一次性实例化所有实现,而是用哪个扩展类则实例化哪个扩展类,减少资源浪费。
-* 增加扩展类的 IOC 能力。Dubbo 的扩展能力并不仅仅只是发现扩展服务实现类,而是在此基础上更进一步,如果该扩展类的属性依赖其他对象,则 Dubbo 
会自动的完成该依赖对象的注入功能。
-* 增加扩展类的 AOP 能力。Dubbo 扩展能力会自动的发现扩展类的包装类,完成包装类的构造,增强扩展类的功能。
-* 具备动态选择扩展实现的能力。Dubbo 扩展会基于参数,在运行时动态选择对应的扩展类,提高了 Dubbo 的扩展能力。
-* 可以对扩展实现进行排序。能够基于用户需求,指定扩展实现的执行顺序。
-* 提供扩展点的 Adaptive 能力。该能力可以使的一些扩展类在 consumer 端生效,一些扩展类在 provider 端生效。
-
-从 Dubbo 扩展的设计目标可以看出,Dubbo 实现的一些例如动态选择扩展实现、IOC、AOP 等特性,能够为用户提供非常灵活的扩展能力。
-
-## Dubbo 扩展加载流程
-
-Dubbo 加载扩展的整个流程如下:
-
-![//imgs/v3/concepts/extension-load.png](/imgs/v3/concepts/extension-load.png)
-
-主要步骤为 4 个:
-* 读取并解析配置文件
-* 缓存所有扩展实现
-* 基于用户执行的扩展名,实例化对应的扩展实现
-* 进行扩展实例属性的 IOC 注入以及实例化扩展的包装类,实现 AOP 特性
-
-## 如何使用 Dubbo 扩展能力进行扩展
-
-下面以扩展协议为例进行说明如何利用 Dubbo 提供的扩展能力扩展 Triple 协议。
-
-(1) 在协议的实现 jar 
包内放置文本文件:META-INF/dubbo/org.apache.dubbo.remoting.api.WireProtocol
-```text
-tri=org.apache.dubbo.rpc.protocol.tri.TripleHttp2Protocol
-```
-
-(2) 实现类内容
-```java
-@Activate
-public class TripleHttp2Protocol extends Http2WireProtocol {
-    // ...
-}
-```
+Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo 
原生实现,来满足自身业务需求。
 
-说明下:Http2WireProtocol 实现了 WireProtocol 接口
+![/imgs/v3/concepts/extension-use.png](/imgs/v3/concepts/extension-use.png)
 
-(3) Dubbo 配置模块中,扩展点均有对应配置属性或标签,通过配置指定使用哪个扩展实现。比如:
-```text
-<dubbo:protocol name="tri" />
-```
+基于以上扩展点定义,可以实现如下功能的灵活拓展:通信协议、序列化编码协议、流量统计、集群容错策略、路由规则、负载均衡、注册中心、线程池策略、配置中心、分布式事务实现、全链路追踪、监控系统、熔断策略、限流降级等。
 
-从上面的扩展步骤可以看出,用户基本在黑盒下就完成了扩展。
+## 部分官方扩展实现
 
-## Dubbo 扩展的应用
+以下是官方或官方生态项目提供的一些默认实现,更多实现可以在 [apache/dubbo-spi-extensions]() 中了解。
 
-Dubbo 的扩展能力非常灵活,在自身功能的实现上无处不在。
+![extensibility-echosystem.png](/imgs/v3/concepts/extensibility-echosystem.png)
 
-![//imgs/v3/concepts/extension-use.png](/imgs/v3/concepts/extension-use.png)
+## 扩展示例
 
-Dubbo 扩展能力使得 Dubbo 项目很方便的切分成一个一个的子模块,实现热插拔特性。用户完全可以基于自身需求,替换 Dubbo 
原生实现,来满足自身业务需求。
+以下演示了如何扩展 Dubbo 来解决实际问题,可以跟随示例学习。
 
-## 使用场景
+* [自定义负载均衡策略]()
+* [自定义的注册中心]()
+* [拦截流量]()
 
-* 如果你需要自定义负载均衡策略,你可以使用 Dubbo 扩展能力。
-* 如果你需要实现自定义的注册中心,你可以使用 Dubbo 扩展能力。
-* 如果你需要实现自定义的过滤器,你可以使用 Dubbo 扩展能力。
+还有如下一些高级扩展示例:
 
-Dubbo 扩展平等的对待内部实现和第三方实现。更多使用场景,参见 [SPI 
扩展实现](/zh/docs3-v2/java-sdk/reference-manual/spi/description/)
\ No newline at end of file
+* [全链路追踪]()
+* [数据一致性]()
+* [限流降级]()
\ No newline at end of file
diff --git a/content/zh/overview/what/advantages/observability.md 
b/content/zh/overview/what/advantages/observability.md
index e267b506b23..2045fdbb099 100644
--- a/content/zh/overview/what/advantages/observability.md
+++ b/content/zh/overview/what/advantages/observability.md
@@ -4,12 +4,40 @@ title: "可观测性"
 linkTitle: "可观测性"
 weight: 50
 ---
-Istio generates detailed telemetry for all service communications within a 
mesh. This telemetry provides observability of service behavior, empowering 
operators to troubleshoot, maintain, and optimize their applications – without 
imposing any additional burdens on service developers. Through Istio, operators 
gain a thorough understanding of how monitored services are interacting, both 
with other services and with the Istio components themselves.
 
-可观测性分为三个维度度量、链路追踪以及日志,Dubbo从这三个方面为开发者提供了全面的可观测性解决方案。
+Dubbo 内部维护了多个纬度的可观测指标,并且支持多种方式的可视化监测。可观测性指标从总体上来说分为三个度量纬度:
+
+* **Metrics。** Dubbo 统计了一系列的流量指标如 
QPS、RT、成功请求数、失败请求数等,还包括一系列的内部组件状态如线程池数、服务健康状态等。
+
+* **Tracing。** Dubbo 与业界主流的链路追踪工作做了适配,包括 Skywalking、Zipkin、Jaeger 都支持 Dubbo 
服务的链路追踪。
+
+* **Logging。** Dubbo 支持多种日志框架适配。以 Java 体系为例,支持包括 
Slf4j、Log4j2、Log4j、Logback、Jcl 等,用户可以基于业务需要选择合适的框架;同时 Dubbo 还支持 Access Log 
记录请求踪迹。
+
+## Metrics
+Dubbo 运行时统计了包括 qps、rt、调用总数、成功数、失败数,失败原因统计等在内的核心服务指标,同时,为了更好的监测服务运行状态,Dubbo 
还提供了对核心组件状态的监控,如线程池数量、服务健康状态等。
+
+可以通过 Dubbo Admin 可视化的查看 Metrics 指标
+
+![Admin 效果图]()
+
+也可以使用 Grafana、Prometheus 等实现可视化指标监测,具体请参考以下可视化任务示例:
+
+* [Admin 任务链接]()
+* [Grafana 任务链接]()
+* [Prometheus 任务链接]()
+
+## Tracing
+全链路追踪对于监测分布式系统运行状态具有非常重要的价值,Dubbo 通过 Filter 拦截器实现了请求运行时的埋点跟踪,通过将跟踪数据导出到一些主流实现如 
Zipkin、Skywalking、Jaeger 等,可以实现全链路跟踪数据的分析与可视化展示。
+
+只需要简单的一行配置即可切换链路跟踪的后端实现,并且,你可以随时通过 Dubbo Admin 等治理平台动态调整 Dubbo 
的链路追踪采样率,对于问题排查都非常有价值。
+
+* [基于 Skywalking 实现全链路追踪]()
+* [基于 Zipkin 实现全链路追踪]()
+
+## Logging
+访问日志可以帮助分析系统的流量情况,在有些场景下,开启访问日志对于排查问题也非常有帮助。
+
+* [开启 Access Log]()
 
-Metrics:Dubbo集成了prometheus监控系统,在指标数据上Dubbo支持多维度的RT指标数据,包括Max、Min、Avg、P99、P95等维度,支持多维度的请求量指标数据,包括QPS、调用成功的请求量、调用失败的请求量等。除此之外,Dubbo还能够通过SPI扩展来完成集成其他监控系统。
 
-Tracing:Dubbo提供了链路追踪所需的必备数据,为Dubbo集成各类链路追踪系统提供了便捷,以辅助用户完成更加强大的链路追踪能力。目前流行的skywalking、zipkin、jaeger都支持Dubbo服务的链路追踪。
 
-Logging:Dubbo支持多种的日志框架的适配。包括常见的slf4j、log4j2、log4j、jcl等。用户可以在这些框架中自由切换。
\ No newline at end of file
diff --git a/content/zh/overview/what/advantages/performance.md 
b/content/zh/overview/what/advantages/performance.md
index 4e425e88f4e..3c8744d0ed6 100644
--- a/content/zh/overview/what/advantages/performance.md
+++ b/content/zh/overview/what/advantages/performance.md
@@ -23,6 +23,8 @@ Triple benchmark 性能指标
 通过以下内容了解更多协议详情:
 * [Dubbo 协议支持详情](../../../core-features/protocols)
 
+## 流式通信
+
 ## 构建可伸缩的微服务集群
 
业务增长带来了集群规模的快速增长,而集群规模的增长会对服务治理架构带来挑战,这包括注册中心的存储容量、节点动态变化带来的地址推送与解析效率、高效的网络链接管理、高峰期的流量无损上下线、异常节点的自动节点管理、消费端存储大量网络地址的资源开销等。
 
diff --git a/content/zh/overview/what/advantages/traffic-management.md 
b/content/zh/overview/what/advantages/traffic-management.md
index afecb39aaec..02048d15e9f 100644
--- a/content/zh/overview/what/advantages/traffic-management.md
+++ b/content/zh/overview/what/advantages/traffic-management.md
@@ -5,11 +5,23 @@ linkTitle: "流量治理"
 weight: 40
 ---
 
-按标签的条件路由
+bla bla bla ...
 
-Service Mesh 路由
+## 1 如何配置规则
 
-路由规则可扩展
+* dubboctl
+* dubbo admin
+* kubectl
+
+### 2.1 传统部署架构
+
+### 2.2 云原生部署架构
+
+## 2 支持的规则
+
+
+
+## 3 流量管控支持的场景
 
 * 超时
 * 重试
diff --git a/content/zh/overview/what/advantages/usability.md 
b/content/zh/overview/what/advantages/usability.md
index 3a2d82515f7..1cefef23dc3 100644
--- a/content/zh/overview/what/advantages/usability.md
+++ b/content/zh/overview/what/advantages/usability.md
@@ -49,6 +49,12 @@ dubbo:
 * 支持服务 Mock
 * Admin 服务查询
 
+### gRPC over Dubbo
+
+### Dubbo 与 Spring Cloud 互通
+
+
+### Dubbo HTTP
 
 ## 部署
 Dubbo 原生服务可打包部署到 Docker 容器、Kubernetes、Service Mesh 等云原生基础设施和微服务架构。
diff --git a/static/imgs/v3/concepts/extensibility-echosystem.png 
b/static/imgs/v3/concepts/extensibility-echosystem.png
new file mode 100644
index 00000000000..3055d729b05
Binary files /dev/null and 
b/static/imgs/v3/concepts/extensibility-echosystem.png differ


Reply via email to