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:38 UTC
[dubbo-website] branch refactor/next updated (1dbd1f16ffb -> 6d86f33e7e3)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a change to branch refactor/next
in repository https://gitbox.apache.org/repos/asf/dubbo-website.git
from 1dbd1f16ffb Update baseURL
add 3e4b88a85ec update base url
add 11f0577bfd1 brand new homepage
add 7faf0651295 brand new homepage
add b2f01559c07 Merge pull request #1 from chickenlj/1114-homepage
add 0139cba5e0d Merge branch 'master' of https://github.com/chickenlj/incubator-dubbo-website
add 9afcd9dd0a0 update
add f087cb372da homepage improvement
add 8d5fec7d29e update
add daf7f430a75 make it work
add 4a07575dac6 fix
add aaf6050b0d1 fix
add f371433c35a fix links
add 856a2fe82d1 fix links
add 89d67df5be0 documentation menu refactor
add 51d71a42b9e fix baseURL
new 340c50710a0 docs
add 0d12617883f Update 4.md (#1604)
new 5c7c3f7207c Merge branch 'master' of https://github.com/apache/dubbo-website
new 6d86f33e7e3 Merge branch 'master' into refactor/next
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
content/zh/docs3-v2/java-sdk/faq/1/4.md | 17 +++--
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, 202 insertions(+), 79 deletions(-)
create mode 100644 content/zh/overview/what/advantages/_index.md
rename content/zh/overview/what/{ => advantages}/extensibility.md (100%)
copy content/zh/overview/what/{ => advantages}/observability.md (100%)
rename content/zh/overview/what/{ => advantages}/performance.md (100%)
rename content/zh/overview/what/{ => advantages}/traffic-management.md (100%)
rename content/zh/overview/what/{ => advantages}/usability.md (100%)
create mode 100644 content/zh/overview/what/xyz-difference.md
[dubbo-website] 02/03: Merge branch 'master' of https://github.com/apache/dubbo-website
Posted by li...@apache.org.
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 5c7c3f7207cd039a201e816eadbec44302df37de
Merge: 340c50710a0 0d12617883f
Author: chickenlj <ke...@gmail.com>
AuthorDate: Mon Nov 21 10:09:55 2022 +0800
Merge branch 'master' of https://github.com/apache/dubbo-website
.../service/isolation-executor.md | 25 +++++++++--------
content/zh/docs3-v2/java-sdk/faq/1/4.md | 17 ++++++------
.../3.1-to-3.2-compatibility-guide.md | 32 ++++++++++++++++++----
3 files changed, 48 insertions(+), 26 deletions(-)
[dubbo-website] 03/03: Merge branch 'master' into refactor/next
Posted by li...@apache.org.
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 6d86f33e7e370124a0b0b6a32db8cfe5a88d9683
Merge: 1dbd1f16ffb 5c7c3f7207c
Author: chickenlj <ke...@gmail.com>
AuthorDate: Mon Nov 21 10:50:59 2022 +0800
Merge branch 'master' into refactor/next
content/zh/docs3-v2/java-sdk/faq/1/4.md | 17 +++--
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
.../zh/overview/what/advantages/observability.md | 6 ++
.../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, 208 insertions(+), 79 deletions(-)
[dubbo-website] 01/03: docs
Posted by li...@apache.org.
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 基本工作流程
+## 基本架构
+
+
+以上是 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 框架,它定义了自己的 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 提供了自动的地址发现机制,用于应对分布式场景下机器实例动态迁移的问题。如下图所示,通过引入注册中心来协调提供方与消费方的地址,提供者启动之后向注册中心注册自身地址,消费方通过拉取或订阅注册中心特定节点,动态的感知提供方地址列表的变化。
-
-
-### 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 给出了自己的定制版本控制面实现,