You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2022/11/21 02:55:39 UTC

[dubbo-website] 01/03: docs

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

commit 340c50710a08570f5eb9293486b9781506521c87
Author: chickenlj <ke...@gmail.com>
AuthorDate: Mon Nov 21 10:05:26 2022 +0800

    docs
---
 config.toml                                        |  2 +-
 content/zh/overview/home/_index.md                 | 59 +++++++++------
 content/zh/overview/what/_index.md                 | 53 +++++++++++---
 content/zh/overview/what/advantages/_index.md      |  7 ++
 .../what/{ => advantages}/extensibility.md         |  0
 .../what/{ => advantages}/observability.md         |  0
 .../overview/what/{ => advantages}/performance.md  |  0
 .../what/{ => advantages}/traffic-management.md    |  0
 .../zh/overview/what/{ => advantages}/usability.md |  0
 content/zh/overview/what/overview.md               | 83 ++++++++++++----------
 content/zh/overview/what/xyz-difference.md         | 62 ++++++++++++++++
 11 files changed, 195 insertions(+), 71 deletions(-)

diff --git a/config.toml b/config.toml
index dad876f9eff..3700a12f919 100644
--- a/config.toml
+++ b/config.toml
@@ -1,4 +1,4 @@
-baseURL = "https://chickenlj.github.io/incubator-dubbo-website/"
+baseURL = "https://dubbo.apache.org/"
 languageCode = "en-us"
 title = "Apache Dubbo"
 theme = ["docsy"]
diff --git a/content/zh/overview/home/_index.md b/content/zh/overview/home/_index.md
index 44d052e7c1e..3668dbd7467 100644
--- a/content/zh/overview/home/_index.md
+++ b/content/zh/overview/home/_index.md
@@ -15,39 +15,56 @@ menu:
 description: Apache Dubbo 是一款支持多语言的、易用的 web 和 rpc 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。
 content:
   - 快速开始:
-    - name: "[了解 Dubbo](quick-start/spring-boot/)"
+    - name: "了解 Dubbo"
       description: aaa
       links:
-        - "[aaa](reference-manual/config/)"
-    - name: "[尝试用 Dubbo 开发](quick-start/spring-boot/)"
+        - "[概述](../what/overview/)"
+        - "[高性能通信](reference-manual/config/)"
+        - "[服务治理](reference-manual/config/)"
+    - name: "尝试使用 Dubbo 开发微服务"
       description: aaa
       links:
-        - "[aaa](reference-manual/config/)"
-    - name: "[体验 Dubbo 服务治理](quick-start/spring-boot/)"
+        - "[Java 微服务开发](../../docs3-v2/java-sdk/quick-start/)"
+        - "[Golang 微服务开发](../../docs3-v2/golang-sdk/quick-start/)"
+    - name: "跟随示例学习 Dubbo"
       description: aaa
       links:
-        - "[aaa](reference-manual/config/)"
-    - name: "[Dubbo 微服务生态](quick-start/spring-boot/)"
+        - "[服务定义与管理](../tasks/api-management/)"
+        - "[通信协议 (RPC&HTTP)](../tasks/triple/)"
+        - "[流量管理](../tasks/traffic-management/)"
+        - "[其他](../tasks/ecosystem/)"
+    - name: "生产环境的 Dubbo 微服务生态"
       description: aaa
       links:
-        - "[aaa](reference-manual/config/)"
-    - name: "[用 Admin 观测服务](quick-start/spring-boot/)"
+        - "[HTTP 网关](../tasks/ecosystem/)"
+        - "[限流降级](../tasks/ecosystem/)"
+        - "[保证数据一致性](../tasks/ecosystem/)"
+        - "[Tracing 链路追踪](../tasks/ecosystem/)"
+    - name: "用 Admin 观测服务状态"
       description: aaa
       links:
-        - "[aaa](reference-manual/config/)"
-    - name: "[Mesh 架构下的 Dubbo](quick-start/spring-boot/)"
+        - "[服务查询](reference-manual/config/)"
+        - "[服务测试](reference-manual/config/)"
+        - "[文档管理](reference-manual/config/)"
+        - "[规则下发](reference-manual/config/)"
+        - "[Metrics 指标](reference-manual/config/)"
+    - name: "Dubbo 与服务网格"
       description: aaa
       links:
-        - "[aaa](reference-manual/config/)"
+        - "[Istio & Dubbo](reference-manual/config/)"
+        - "[Istio & Dubbo Proxyless](reference-manual/config/)"
+        - "[定制](reference-manual/config/)"
+    - name: "查阅参考手册"
+      description: aaa
+      links:
+        - "[Java 参考手册](reference-manual/config/)"
+        - "[Golang 参考手册](reference-manual/config/)"
+        - "[Rust 参考手册](reference-manual/config/)"
+        - "[Node 参考手册](reference-manual/config/)"
 ---
-* **如果你是第一次接触 Dubbo**,可以通过以下链接快速了解 Dubbo:
-  * [什么是 Dubbo](what/overview)
-  * [用户案例与生态](/zh/users/)
-  * 通过 [**快速开始**](quickstart/) 体验 Dubbo
-* 想了解更多 Dubbo 特性与使用细节?
-  * 选择相应 [**多语言 SDK 实现**](mannual/),并参考**高级特性**或**参考手册**
-* 老用户,想快速了解 **Dubbo 3.0** 相关知识
-  * [3.0 特性一览](what/dubbo3/)
-  * 查看相应[多语言 SDK 实现](mannual/),了解升级与兼容性
+Apache Dubbo 是一款易用的、提供高性能通信和服务治理能力的微服务开发框架,Dubbo 提供多种语言实现,请通过以下链接跳转到对应语言示例。
+<br/>
+<br/>
+<br/>
 
 {{% docs/document_box %}}
diff --git a/content/zh/overview/what/_index.md b/content/zh/overview/what/_index.md
index 160a87107ab..fa89bbbc1f1 100644
--- a/content/zh/overview/what/_index.md
+++ b/content/zh/overview/what/_index.md
@@ -1,16 +1,49 @@
 ---
 type: docs
-title: "了解 Dubbo 概念及优势"
+title: "Dubbo 介绍"
 linkTitle: "介绍"
 weight: 20
 description: ""
+no_list: true
+hide_summary: true
 ---
-    
-Apache Dubbo 是一款 RPC 微服务框架,提供了包括 Java、Golang 等在内的多种语言 SDK 实现。
-
-* 第一次接触 Dubbo,请继续阅读本章了解 Dubbo 提供的丰富功能及核心概念;
-* 想快速体验 Dubbo,请参考 [快速开始](../quickstart)
-* Dubbo3 高级用法参考 [多语言 SDK 文档](../mannual)
-* Dubbo3 的设计和迁移
-  * [3.0 设计理念与核心功能](./dubbo3/)
-  * [如何迁移到 Dubbo3](/zh/docs3-v2/java-sdk/upgrades-and-compatibility)
+
+Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力,
+利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。
+
+在云原生时代,Dubbo 相继衍生出了 Dubbo3、Proxyless Mesh 等架构与解决方案,在易用性、超大规模微服务实践、云原生基础设施适配、安全性等几大方向上进行了全面升级。
+
+## Dubbo 的开源故事
+
+Apache Dubbo 最初是为了解决阿里巴巴内部的微服务架构问题而设计并开发的,在十多年的时间里,它在阿里巴巴公司内部的很多业务系统的到了非常广泛的应用。最早在 2008 年,阿里巴巴就将 Dubbo 捐献到开源社区,它很快成为了国内开源服务框架选型的事实标准框架,得到了业界更广泛的应用。在 2017 年,Dubbo 被正式捐献 Apache 软件基金会并成为 Apache 顶级项目,开始了一段新的征程。
+
+Dubbo 被证实能很好的满足企业的大规模微服务实践,并且能有效降低微服务建设的开发与管理成本,不论是阿里巴巴还是工商银行、中国平安、携程、海尔等社区用户,它们都通过多年的大规模生产环境流量对 Dubbo 的稳定性与性能进行了充分验证。后来 Dubbo 在很多大企业内部衍生出了独立版本,比如在阿里巴巴内部就基于 Dubbo 衍生出了 HSF,HSF 见证了阿里巴巴以电商业务为守的微服务系统的快速发展。自云原生概念推广以来,各大厂商都开始拥抱开源标准实现,阿里巴巴将其内部 HSF 系统与开源社区 Dubbo 相融合,与社区一同推出了云原生时代的 Dubbo3 架构,截止 2022 年双十一结束,**Dubbo3 已经在阿里巴巴内部全面取代 HSF 系统,包括电商核心、阿里云等核心系统已经全面运行在 Dubbo3 之上**。
+
+## 为什么需要 Dubbo,它能做什么?
+按照微服务架构的定义,采用它的组织能够很好的提高业务迭代效率与系统稳定性,但前提是要先能保证微服务按照期望的方式运行,要做到这一点需要解决服务拆分与定义、数据通信、地址发现、流量管理、数据一致性、系统容错能力等一系列问题。
+
+Dubbo 可以帮助解决如下微服务实践问题:
+
+* **微服务编程范式和工具**
+
+Dubbo 支持基于 IDL 或语言特定方式的服务定义,提供多种形式的服务调用形式(如同步、异步、流式等)
+
+* **高性能的 RPC 通信**
+
+Dubbo 帮助解决微服务组件之间的通信问题,提供了基于 HTTP、HTTP/2、TCP 等的多种高性能通信协议实现,并支持序列化协议扩展,在实现上解决网络连接管理、数据传输等基础问题。
+
+* **微服务监控与治理**
+
+Dubbo 官方提供的服务发现、动态配置、负载均衡、流量路由等基础组件可以很好的帮助解决微服务基础实践的问题。除此之外,您还可以用 Admin 控制台监控微服务状态,通过周边生态完成限流降级、数据一致性、链路追踪等能力。
+
+* **部署在多种环境**
+
+Dubbo 服务可以直接部署在容器、Kubernetes、Service Mesh等多种架构下。
+
+* **活跃的社区**
+
+Dubbo 项目托管在 Apache 社区,有来自国际、国内的活跃贡献者维护着超 10 个生态项目,贡献者来自阿里巴巴、工商银行、携程、蚂蚁、腾讯等知名企业技术专家,这确保 Dubbo 及时解决项目缺陷、需求及安全漏洞,跟进业界最新技术发展趋势。
+
+* **庞大的用户群体**
+
+Dubbo 的用户群体是其稳定性、需求来源、先进性的基础。
diff --git a/content/zh/overview/what/advantages/_index.md b/content/zh/overview/what/advantages/_index.md
new file mode 100644
index 00000000000..914d72612dd
--- /dev/null
+++ b/content/zh/overview/what/advantages/_index.md
@@ -0,0 +1,7 @@
+---
+type: docs
+title: "核心特性"
+linkTitle: "核心特性"
+weight: 20
+description: ""
+---
\ No newline at end of file
diff --git a/content/zh/overview/what/extensibility.md b/content/zh/overview/what/advantages/extensibility.md
similarity index 100%
rename from content/zh/overview/what/extensibility.md
rename to content/zh/overview/what/advantages/extensibility.md
diff --git a/content/zh/overview/what/observability.md b/content/zh/overview/what/advantages/observability.md
similarity index 100%
rename from content/zh/overview/what/observability.md
rename to content/zh/overview/what/advantages/observability.md
diff --git a/content/zh/overview/what/performance.md b/content/zh/overview/what/advantages/performance.md
similarity index 100%
rename from content/zh/overview/what/performance.md
rename to content/zh/overview/what/advantages/performance.md
diff --git a/content/zh/overview/what/traffic-management.md b/content/zh/overview/what/advantages/traffic-management.md
similarity index 100%
rename from content/zh/overview/what/traffic-management.md
rename to content/zh/overview/what/advantages/traffic-management.md
diff --git a/content/zh/overview/what/usability.md b/content/zh/overview/what/advantages/usability.md
similarity index 100%
rename from content/zh/overview/what/usability.md
rename to content/zh/overview/what/advantages/usability.md
diff --git a/content/zh/overview/what/overview.md b/content/zh/overview/what/overview.md
index b78694f04cd..bc0e39f5a50 100644
--- a/content/zh/overview/what/overview.md
+++ b/content/zh/overview/what/overview.md
@@ -1,55 +1,50 @@
 ---
 type: docs
-title: "了解 Dubbo 特点"
-linkTitle: "了解 Dubbo"
+title: "了解 Dubbo 的核心概念和架构"
+linkTitle: "概念与架构"
 weight: 10
 description: ""
 ---
 
-Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力,
-利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。
-
-Dubbo3 定义为面向云原生的下一代 RPC 服务框架。3.0 基于 [Dubbo 2.x](/zh/docsv2.7) 演进而来,在保持原有核心功能特性的同时, Dubbo3 在易用性、超大规模微服务实践、云原生基础设施适配、安全性等几大方向上进行了全面升级。
-
-### Dubbo 是什么
-
-Apache Dubbo 最初在 2008 年由 Alibaba 捐献开源,很快成为了国内开源服务框架选型的事实标准框架    ,得到了各行各业的广泛应用。在 2017 年,Dubbo 正式捐献到 Apache 软件基金会并成为 Apache 顶级项目,目前 Dubbo3 已经是一站式的微服务解决方案提供:
-* 基于 HTTP/2 的 [Triple 协议](/zh/docs3-v2/java-sdk/concepts-and-architecture/triple/)以及面向代理 API 的编程体验。
-* 强大的[流量治理能力](../../tasks/traffic-management),如地址发现、负载均衡、路由选址、动态配置等。
-* [多语言 SDK 实现](../../mannual/),涵盖 Java、Golang、Javascript 等,更多语言实现将会陆续发布。
-* 灵活的适配与扩展能力,可轻松与微服务体系其他组件如 Tracing、Transaction 等适配。
-* [Dubbo Mesh 解决方案](/zh/docs3-v2/java-sdk/concepts-and-architecture/mesh/),同时支持 Sidecar、Proxyless 等灵活的 Mesh 部署方案。
-
-Apache Dubbo 总体架构能很好的满足企业的大规模微服务实践,因为它从设计之初就是为了解决超大规模微服务集群实践问题,不论是阿里巴巴还是工商银行、中国平安、携程等社区用户,它们都通过多年的大规模生产环境流量对 Dubbo 的稳定性与性能进行了充分验证,因此,Dubbo 在解决业务落地与规模化实践方面有着无可比拟的优势:
-* 开箱即用
-    * 易用性高,如 Java 版本的面向接口代理特性能实现本地透明调用
-    * 功能丰富,基于原生库或轻量扩展即可实现绝大多数的微服务治理能力
-* 面向超大规模微服务集群设计
-    * 极致性能,高性能的 RPC 通信协议设计与实现
-    * 横向可扩展,轻松支持百万规模集群实例的地址发现与流量治理
-* [高度可扩展](../extensibility)
-  * 调用过程中对流量及协议的拦截扩展,如 Filter、Router、LB 等
-  * 微服务治理组件扩展,如 Registry、Config Center、Metadata Center 等
-* 企业级微服务治理能力
-    * 国内公有云厂商支持的事实标准服务框架
-    * 多年企业实践经验考验,参考[用户实践案例](../../../users)
-    
-### Dubbo 基本工作流程
+## 基本架构
+![arch-service-discovery](/imgs/architecture.png)
+
+以上是 Dubbo 的工作原理架构图,有三个核心的抽象角色:服务消费者 (Client/Consumer)、服务提供者 (Server/Provider)、服务治理中心。
+* **代表业务服务的消费者和提供者统称为 Dubbo 数据面**,组成数据面的业务服务之间依赖 Dubbo 实现数据传输,即某个服务 (消费者) 以 RPC 或 HTTP 形式发起调用,目标服务 (提供者) 收到并回复对方的请求,Dubbo 定义了微服务开发与调用规范并完成数据传输的编解码工作。
+* **服务治理中心控制 Dubbo 数据面的行为**,比如作为注册中心协调服务组件间的地址自动发现、作为规则管控中心下发流量治理策略等。治理中心不是指如注册中心类的单个具体组件,而是 对 Dubbo 治理体系的抽象表达。
+
+## Dubbo 数据面
+从数据面的视角,Dubbo 帮我们完成如下事项:
+* Dubbo 作为**服务开发框架**定义了微服务定义、开发与调用的规范
+* Dubbo 作为 **RPC 协议实现**解决服务间通信的编解码工作
+
+<架构图>
+
+### 服务开发框架
+就好比 Java 体系的 Spring 定义了
+服务定义:IDL、Java、Golang 等
+调用方式:同步、异步、Reactive
+服务行为:超时、延迟注册、预热、治理中心等
+配置:xml yaml properties
+多语言:Java Spring、Golang xx
+
+### 通信协议
+不绑定通信协议
+流式通信模型
+不绑定序列化协议
+多协议暴露、同时支持单端口上的协议自动识别
+高性能实现:benchmark 图
 
 ![dubbo-rpc](/imgs/v3/concepts/rpc.png)
 
 Dubbo 首先是一款 RPC 框架,它定义了自己的 RPC 通信协议与编程方式。如上图所示,用户在使用 Dubbo 时首先需要定义好 Dubbo 服务;其次,是在将 Dubbo 服务部署上线之后,依赖 Dubbo 的应用层通信协议实现数据交换,Dubbo 所传输的数据都要经过序列化,而这里的序列化协议是完全可扩展的。
 使用 Dubbo 的第一步就是定义 Dubbo 服务,服务在 Dubbo 中的定义就是完成业务功能的一组方法的集合,可以选择使用与某种语言绑定的方式定义,如在 Java 中 Dubbo 服务就是有一组方法的 Interface 接口,也可以使用语言中立的 Protobuf Buffers  [IDL 定义服务](../../tasks/triple/idl/)。定义好服务之后,服务端(Provider)需要提供服务的具体实现,并将其声明为 Dubbo 服务,而站在服务消费方(Consumer)的视角,通过调用 Dubbo 框架提供的 API 可以获得一个服务代理(stub)对象,然后就可以像使用本地服务一样对服务方法发起调用了。
-在消费端对服务方法发起调用后,Dubbo 框架负责将请求发送到部署在远端机器上的服务提供方,提供方收到请求后会调用服务的实现类,之后将处理结果返回给消费端,这样就完成了一次完整的服务调用。如图中的 Request、Response 数据流程所示。
+在消费端对服务方法发起调用后,
+Dubbo 框架负责将请求发送到部署在远端机器上的服务提供方,提供方收到请求后会调用服务的实现类,之后将处理结果返回给消费端,这样就完成了一次完整的服务调用。如图中的 Request、Response 数据流程所示。
 >需要注意的是,在 Dubbo 中,我们提到服务时,通常是指 RPC 粒度的、提供某个具体业务增删改功能的接口或方法,与一些微服务概念书籍中泛指的服务并不是一个概念。
 
 在分布式系统中,尤其是随着微服务架构的发展,应用的部署、发布、扩缩容变得极为频繁,作为 RPC 消费方,如何动态的发现服务提供方地址成为 RPC 通信的前置条件。Dubbo 提供了自动的地址发现机制,用于应对分布式场景下机器实例动态迁移的问题。如下图所示,通过引入注册中心来协调提供方与消费方的地址,提供者启动之后向注册中心注册自身地址,消费方通过拉取或订阅注册中心特定节点,动态的感知提供方地址列表的变化。
 
-![arch-service-discovery](/imgs/architecture.png)
-
-### Dubbo 核心特性
-
-#### 高性能 RPC 通信协议
 跨进程或主机的服务通信是 Dubbo 的一项基本能力,Dubbo RPC 以预先定义好的协议编码方式将请求数据(Request)发送给后端服务,并接收服务端返回的计算结果(Response)。RPC 通信对用户来说是完全透明的,使用者无需关心请求是如何发出去的、发到了哪里,每次调用只需要拿到正确的调用结果就行。除了同步模式的 Request-Response 通信模型外,Dubbo3 还提供更丰富的通信模型选择:
 * 消费端异步请求(Client Side Asynchronous Request-Response)
 * 提供端异步执行(Server Side Asynchronous Request-Response)
@@ -57,11 +52,18 @@ Dubbo 首先是一款 RPC 框架,它定义了自己的 RPC 通信协议与编
 * 提供端响应流(Response Streaming)
 * 双向流式通信(Bidirectional Streaming)
 
-具体可参见各语言 SDK 实现的可选协议列表 或 [Triple协议](/zh/docs3-v2/java-sdk/concepts-and-architecture/triple/)
+## 服务治理
+
+服务发现
+负载均衡
+动态配置
+流量路由
+链路追踪
+服务网格
 
 #### 自动服务(地址)发现
 Dubbo 的服务发现机制,让微服务组件之间可以独立演进并任意部署,消费端可以在无需感知对端部署位置与 IP 地址的情况下完成通信。Dubbo 提供的是 Client-Based 的服务发现机制,使用者可以有多种方式启用服务发现:
-* 使用独立的注册中心组件,如 [Nacos](https://nacos.io/)、Zookeeper、Consul、Etcd 等。
+* 使用独立的注册中心组件,如 Nacos、Zookeeper、Consul、Etcd 等。
 * 将服务的组织与注册交给底层容器平台,如 Kubernetes,这被理解是一种更云原生的使用方式
 
 #### 运行态流量管控
@@ -105,3 +107,6 @@ Service Mesh 在业界得到了广泛的传播与认可,并被认为是下一
 可以设想,在不同的组织、不同的发展阶段,未来以 Dubbo 构建的微服务将会允许有三种部署架构:传统 SDK、基于 Sidecar 的 Service Mesh、脱离 Sidecar 的 Proxyless Mesh。基于 Sidecar 的 Service Mesh,即经典的 Mesh 架构,独立的 sidecar 运行时接管所有的流量,脱离 Sidecar 的 Proxyless Mesh,副 SDK 直接通过 xDS 与控制面通信。Dubbo 微服务允许部署在物理机、容器、Kubernetes 平台之上,能做到以 Admin 为控制面,以统一的流量治理规则进行治理。
 
 
+
+
+
diff --git a/content/zh/overview/what/xyz-difference.md b/content/zh/overview/what/xyz-difference.md
new file mode 100644
index 00000000000..f56523f596f
--- /dev/null
+++ b/content/zh/overview/what/xyz-difference.md
@@ -0,0 +1,62 @@
+---
+type: docs
+title: "与 gRPC、Spring Cloud、Service Mesh 的关系"
+linkTitle: "对比 gRPC、Spring Cloud、Service Mesh"
+weight: 30
+description: ""
+---
+
+很多开发者经常会问到 Apache Dubbo 与 Spring Cloud、gRPC 以及一些 Service Mesh 项目如 Istio 的关系,要解释清楚它们的关系并不困难,你只需要跟随这篇文章和 Dubbo 文档做一些更深入的了解,但总的来说,它们有些能力与 Dubbo 是重合的,但在一些场景你可以把它们放在一起使用。虽然这是一篇 Dubbo 维护者写的文档,我们仍会尽力将 Dubbo 与其他组件之间的联系与差异客观、透明的展现出来,但考虑到每个人对不同产品的熟悉程度不一,这里的个别表述可能并不完全准确,希望能给开发者带来帮助。
+
+## Dubbo 与 Spring Cloud
+
+架构图
+
+从上图我们可以看出,Dubbo 和 Spring Cloud 有很多相似之处,它们都在整个架构图的相同位置并提供一些相似的功能。
+
+* **Dubbo 和 Spring Cloud 都侧重在对分布式系统中常见问题模式的抽象(如服务发现、负载均衡、动态配置等)**,同时对每一个问题都提供了配套组件实现,形成了一套微服务整体解决方案,让使用 Dubbo 及 Spring Cloud 的用户在开发微服务应用时可以专注在业务逻辑开发上。
+* **Dubbo 和 Spring Cloud 都完全兼容 Spring 体系的应用开发模式**,Dubbo 对 Spring 应用开发框架、Spring Boot 微服务框架都做了很好的适配,由于 Spring Cloud 出自 Spring 体系,在这一点上自然更不必多说。
+
+虽然两者有很多相似之处,但由于它们在诞生背景与架构设计上的巨大差异,两者在性能、适用的微服务集群规模、生产稳定性保障、服务治理等方面都有很大差异。
+
+Spring Cloud 的优势在于:
+* 同样都支持 Sprig 开发体系的情况下,Spring Cloud 得到更多的原生支持
+* 对一些常用的微服务模式做了抽象如服务发现、动态配置、异步消息等,同时包括一些批处理任务、定时任务、持久化数据访问等领域也有涉猎。
+* 基于 HTTP 的通信模式,加上相对比较完善的入门文档和演示 demo 和 starters,让开发者在第一感觉上更易于上手
+
+Spring Cloud 的问题有:
+* 只提供抽象模式的定义不提供官方稳定实现,开发者只能寻求类似 Netflix、Alibaba、Azure 等不同厂商的实现套件,而每个厂商支持的完善度、稳定性、活跃度各异
+* 有微服务全家桶却不是能拿来就用的全家桶,demo 上手容易,但落地推广与长期使用的成本非常高
+* 欠缺服务治理能力,尤其是流量管控方面如负载均衡、流量路由方便能力都比较弱
+* 编程模型与通信协议绑定 HTTP,在性能、与其他 RPC 体系互通上存在障碍
+* 总体架构与实现只适用于小规模微服务集群实践,当集群规模增长后就会遇到地址推送效率、内存占用等各种瓶颈的问题,但此时迁移到其他体系却很难实现
+* 很多微服务实践场景的问题需要用户独自解决,比如优雅停机、启动预热、服务测试,再比如双注册、双订阅、延迟注册、服务按分组隔离、集群容错等
+
+而以上这些点,都是 **Dubbo 的优势**所在:
+* 完全支持 Spring & Spring Boot 开发模式,同时在服务发现、动态配置等基础模式上提供与 Spring Cloud 对等的能力。
+* 是企业级微服务实践方案的整体输出,Dubbo 考虑到了企业微服务实践中会遇到的各种问题如优雅上下线、多注册中心、流量管理等,因此其在生产环境的长期维护成本更低
+* 在通信协议和编码上选择更灵活,包括 rpc 通信层协议如 HTTP、HTTP/2(Triple、gRPC)、TCP 二进制协议、rest等,序列化编码协议Protobuf、JSON、Hessian2 等,支持单端口多协议。
+* Dubbo 从设计上突出服务服务治理能力,如权重动态调整、标签路由、条件路由等,支持 Proxyless 等多种模式接入 Service Mesh 体系
+* 高性能的 RPC 协议编码与实现,
+* Dubbo 是在超大规模微服务集群实践场景下开发的框架,可以做到百万实例规模的集群水平扩容,应对集群增长带来的各种问题
+* Dubbo 提供 Java 外的多语言实现,使得构建多语言异构的微服务体系成为可能
+
+Dubbo 也有一些欠缺的地方,尤其是资料的欠缺使得入门门槛略高,体现在依赖配置管理、文档、demo 示例完善度上,当前整个社区在重点投入这一部分的建设,期望能降低用户在第一天体验和学习 Dubbo 时的门槛。
+
+如果您的目标是构建企业级应用,并期待在未来的持久维护中能够更省心、更稳定,我们建议你能更深入的了解 Dubbo 的使用和其提供的能力。
+
+## Dubbo 与 gRPC
+gRPC 定位为一款 RPC 框架,而 Dubbo
+
+Dubbo 完全兼容 gRPC,并将 gRPC 设计为内置支持的最重要的协议之一。
+
+## Dubbo 与 Service Mesh
+Dubbo Service Mesh
+
+<架构图>
+
+从**数据面**的视角,Dubbo 与 Istio、Consul、Linkerd 等控制面之间是无缝接入和合作关系,
+* 作为,Dubbo 将作为编程框架 & 通信组件而存在,
+* 对于 Dubbo Proxyless 模式,Dubbo 可以通过标准 xDS 协议接入 Istio、Consul、Linkerd 等控制面组件,
+
+从**控制面**视角,Dubbo 体系基于 Istio 给出了自己的定制版本控制面实现,