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 1fd44d0d8c4 Enhance whatsnew (#1370)
1fd44d0d8c4 is described below
commit 1fd44d0d8c4d453bdc17ead0681f4effceaadc9b
Author: Albumen Kevin <[email protected]>
AuthorDate: Thu Aug 11 15:59:44 2022 +0800
Enhance whatsnew (#1370)
* Enahance whatsnew
* update link
* update link
---
content/zh/_index.html | 5 ++-
content/zh/docs/new-in-dubbo3.md | 2 +-
.../java-sdk/concepts-and-architecture}/mesh.md | 10 ++---
.../java-sdk/concepts-and-architecture}/triple.md | 8 ++--
.../reference-manual/metadata-center/overview.md | 2 +-
content/zh/overview/_index.md | 2 +-
content/zh/overview/what/_index.md | 2 +-
content/zh/overview/what/architecture.md | 6 +--
.../{whatsnew/background.md => what/dubbo3.md} | 22 +++++++++--
content/zh/overview/what/ecosystem.md | 2 +-
content/zh/overview/what/extensibility.md | 2 +-
content/zh/overview/what/overview.md | 8 ++--
content/zh/overview/what/usecases.md | 2 +-
content/zh/overview/whatsnew/_index.md | 21 ----------
content/zh/overview/whatsnew/service-discovery.md | 46 ----------------------
15 files changed, 46 insertions(+), 94 deletions(-)
diff --git a/content/zh/_index.html b/content/zh/_index.html
index 67abf2c5480..f09805b28a2 100644
--- a/content/zh/_index.html
+++ b/content/zh/_index.html
@@ -10,9 +10,12 @@ linkTitle = "Apache Dubbo Website"
<a class="btn btn-lg btn-primary mr-3 mb-4" href='{{< relref
"/overview/quickstart/" >}}'>
快速开始 <i class="fas fa-arrow-alt-circle-right ml-2"></i>
</a>
- <a class="btn btn-lg btn-secondary mr-3 mb-4" href='{{< relref
"/overview/whatsnew/" >}}'>
+ <a class="btn btn-lg btn-success mr-3 mb-4" href='{{< relref
"/overview/what/dubbo3/index.html" >}}'>
Dubbo3 速览<i class="fas fa-book-open ml-2"></i>
</a>
+ <a class="btn btn-lg btn-secondary mr-3 mb-4"
href="https://github.com/apache/dubbo">
+ GITHUB <i class="fab fa-github ml-2 "></i>
+ </a>
<p class="lead mt-5 font-weight-bold">Apache Dubbo 是一款微服务框架,为大规模微服务实践提供高性能
RPC 通信、流量治理、可观测性等解决方案,<br/>
涵盖 Java、Golang 等多种语言 SDK 实现。</p>
</div>
diff --git a/content/zh/docs/new-in-dubbo3.md b/content/zh/docs/new-in-dubbo3.md
index 51f60830d04..a385999902a 100644
--- a/content/zh/docs/new-in-dubbo3.md
+++ b/content/zh/docs/new-in-dubbo3.md
@@ -6,7 +6,7 @@ weight: 2
description: "Dubbo3 相比 2.7 版本进行了全面的升级,以下是新增的一些核心特性"
---
-{{% pageinfo %}}
此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/overview/whatsnew/)。
+{{% pageinfo %}}
此文档已经不再维护。您当前查看的是快照版本。如果想要查看最新版本的文档,请参阅[最新版本](/zh/overview/what/dubbo3/)。
{{% /pageinfo %}}
## 全新服务发现模型
diff --git a/content/zh/overview/whatsnew/mesh.md
b/content/zh/docs3-v2/java-sdk/concepts-and-architecture/mesh.md
similarity index 95%
rename from content/zh/overview/whatsnew/mesh.md
rename to content/zh/docs3-v2/java-sdk/concepts-and-architecture/mesh.md
index 912b3581bb3..5ca65a86207 100644
--- a/content/zh/overview/whatsnew/mesh.md
+++ b/content/zh/docs3-v2/java-sdk/concepts-and-architecture/mesh.md
@@ -2,7 +2,7 @@
type: docs
title: "Dubbo Mesh"
linkTitle: "Dubbo Mesh"
-weight: 4
+weight: 5
---
Dubbo Mesh 从设计理念上更强调控制面的统一管控、标准化与治理能力,而在数据面给出了更多的选择,包括 Sidecar Mesh 与
Proxyless Mesh
等部署模式。多种部署模型给企业提供了更多选择,通过混合部署的模型,在实现服务治理控制面的共享的同时,可以更好的应对不同场景的部署要求(性能、部署复杂性等),适应复杂的基础设施环境并从总体上提升架构的可用性。
@@ -43,8 +43,8 @@ ThinSDK + Sidecar 模式的 Mesh 架构有很多优势,如平滑升级、多
* 部署环境受限,并不是所有的环境都能满足 Sidecar 部署与请求拦截要求。
详细方案设计与示例请参考
-* [Dubbo ThinSDK Proposal](../../tasks/mesh/dubbo-mesh)
-* [使用示例](../../tasks/mesh/dubbo-mesh)
+* [Dubbo ThinSDK Proposal](/zh/overview/tasks/mesh/dubbo-mesh)
+* [使用示例](/zh/overview/tasks/mesh/dubbo-mesh)
### Dubbo Proxyless Mesh
作为 ThinSDK + Sidecar 模式的补充,Dubbo 社区自很早之前就做了 Dubbo 直接对接到控制面的设想与思考,也就是当前所说的
Proxyless Mesh 模式。Proxyless 模式使得微服务又回到了 2.x 时代的部署架构。如下图所示,和我们上面看的 Dubbo
经典服务治理模式非常相似,所以说这个模式并不新鲜, Dubbo 从最开始就是这么样的设计模式。但相比于 Mesh 架构,Dubbo2
并没有强调控制面的统一管控,而这点恰好是 Service Mesh 所强调的,强调对流量、可观测性、证书等的标准化管控与治理,也是 Mesh 理念先进的地方。
@@ -62,8 +62,8 @@ ThinSDK + Sidecar 模式的 Mesh 架构有很多优势,如平滑升级、多
* 适用于几乎所有的部署环境
详细方案设计与示例请参考
-* [Dubbo Proxyless Mesh](../../tasks/mesh/dubbo-mesh)
-* [使用示例](../../tasks/mesh/dubbo-mesh)
+* [Dubbo Proxyless Mesh](/zh/overview/tasks/mesh/dubbo-mesh)
+* [使用示例](/zh/overview/tasks/mesh/dubbo-mesh)
### Dubbo 控制面治理规则
TBD
diff --git a/content/zh/overview/whatsnew/triple.md
b/content/zh/docs3-v2/java-sdk/concepts-and-architecture/triple.md
similarity index 76%
rename from content/zh/overview/whatsnew/triple.md
rename to content/zh/docs3-v2/java-sdk/concepts-and-architecture/triple.md
index 5663f0fca2e..b58fa8babe2 100644
--- a/content/zh/overview/whatsnew/triple.md
+++ b/content/zh/docs3-v2/java-sdk/concepts-and-architecture/triple.md
@@ -2,7 +2,7 @@
type: docs
title: "Triple 协议"
linkTitle: "Triple 协议"
-weight: 2
+weight: 6
---
Triple 是 Dubbo3 提出的基于 HTTP2 的开放协议,旨在解决 Dubbo2 私有协议带来的互通性问题。相比于原有 Dubbo2
协议,Triple 有以下优势:
@@ -14,10 +14,10 @@ Triple 是 Dubbo3 提出的基于 HTTP2 的开放协议,旨在解决 Dubbo2
目前 Java 和 Go 的 Dubbo SDK 已全面支持 Triple 协议。在阿里巴巴,Triple
协议广泛用于跨环境、跨语言、跨生态互通,已有数十万容器生产级使用。
-Java SDK 支持 [IDL 生成 Stub](../../../docs3-v2/java-sdk/quick-start/idl)
-和 [Java Interface](../../../docs3-v2/java-sdk/quick-start/idl)
两种方式,多语言、生态互通、流式需求推荐使用 IDL 方式,现有服务平滑升级推荐使用
+Java SDK 支持 [IDL 生成 Stub](/zh/docs3-v2/java-sdk/quick-start/idl)
+和 [Java Interface](/zh/docs3-v2/java-sdk/quick-start/idl)
两种方式,多语言、生态互通、流式需求推荐使用 IDL 方式,现有服务平滑升级推荐使用
Interface 方式。
- Dubbo2 老用户如何从现有协议升级至 Triple(TBD)
-- 新用户或业务参考[Dubbo3 Triple Quick
Start](../../../docs3-v2/java-sdk/quick-start/idl/)
+- 新用户或业务参考[Dubbo3 Triple Quick Start](/zh/docs3-v2/java-sdk/quick-start/idl/)
- 深入了解 Triple 协议:[Dubbo3 Triple
协议设计与原理](https://github.com/apache/dubbo-awesome/blob/master/proposals/D0-triple.md)
diff --git
a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview.md
b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview.md
index 0183abb1759..8b8476836c5 100644
--- a/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview.md
+++ b/content/zh/docs3-v2/java-sdk/reference-manual/metadata-center/overview.md
@@ -16,7 +16,7 @@ weight: 1
关于如何配置开启元数据中心请参考具体实现文档。
## 1 地址发现元数据
-Dubbo3 中引入了 [应用级服务发现机制](/zh/overview/whatsnew/service-discovery/)
用来解决异构微服务体系互通与大规模集群实践的性能问题,应用级服务发现将全面取代 2.x 是时代的接口级服务发现。
+Dubbo3 中引入了
[应用级服务发现机制](/zh/docs3-v2/java-sdk/concepts-and-architecture/service-discovery/#应用级服务发现简介)
用来解决异构微服务体系互通与大规模集群实践的性能问题,应用级服务发现将全面取代 2.x 是时代的接口级服务发现。
同时为了保持 Dubbo 面向服务/接口的易用性、服务治理的灵活性,Dubbo 围绕应用级服务发现构建了一套元数据机制,即 `接口 - 应用映射关系` 与
`接口配置元数据`。
### 1.1 接口 - 应用映射关系
diff --git a/content/zh/overview/_index.md b/content/zh/overview/_index.md
index 4c7b7addd3a..638a35f681e 100755
--- a/content/zh/overview/_index.md
+++ b/content/zh/overview/_index.md
@@ -24,7 +24,7 @@ Dubbo 是一款包含多种语言实现(Java、Golang等)的 RPC 服务框
* 想了解更多 Dubbo 特性与使用细节?
* 选择相应 [**多语言 SDK 实现**](mannual/),并参考**高级特性**或**参考手册**
* 老用户,想快速了解 **Dubbo 3.0** 相关知识
- * [3.0 特性一览](whatsnew/)
+ * [3.0 特性一览](what/dubbo3/)
* 查看相应[多语言 SDK 实现](mannual/),了解升级与兼容性
#### 相关链接
diff --git a/content/zh/overview/what/_index.md
b/content/zh/overview/what/_index.md
index 066fd9fc802..e1d4805a4aa 100644
--- a/content/zh/overview/what/_index.md
+++ b/content/zh/overview/what/_index.md
@@ -11,7 +11,7 @@ Apache Dubbo 是一款 RPC 微服务框架,提供了包括 Java、Golang 等
* 想快速体验 Dubbo,请参考 [快速开始](../quickstart)
* 高级用法请参考 [多语言 SDK 文档](../mannual)
* 关注 Dubbo3
- * [3.0 设计理念与核心功能](../whatsnew/background)
+ * [3.0 设计理念与核心功能](./dubbo3/)
* [如何迁移到 Dubbo3](/zh/docs3-v2/java-sdk/upgrades-and-compatibility)
diff --git a/content/zh/overview/what/architecture.md
b/content/zh/overview/what/architecture.md
index a8da9f9e2b4..c4fed173bc5 100644
--- a/content/zh/overview/what/architecture.md
+++ b/content/zh/overview/what/architecture.md
@@ -2,7 +2,7 @@
type: docs
title: "概念与架构"
linkTitle: "概念与架构"
-weight: 2
+weight: 3
---
## RPC 通信
Dubbo3 的 Triple 协议构建在 HTTP/2 协议之上,因此具有更好的穿透性与通用性,Triple 协议兼容 gRPC,提供 Request
Response、Request Streaming、Response Streaming、Bi-directional Streaming 等通信模型;从
Triple 协议开始,Dubbo 还支持基于 IDL 的服务定义。
@@ -10,7 +10,7 @@ Dubbo3 的 Triple 协议构建在 HTTP/2 协议之上,因此具有更好的穿
此外,Dubbo 还集成了业界主流的大部分协议,使得用户可以在 Dubbo
框架范围内使用这些通信协议,为用户提供了统一的编程模型与服务治理模型,这些协议包括 rest、hessian2、jsonrpc、thrift 等,注意不同语言
SDK 实现支持的范围会有一些差异。
具体可查看
-* [Triple 速览](../../whatsnew/triple)
+* [Triple 速览](/zh/docs3-v2/java-sdk/concepts-and-architecture/triple/)
*
[Specification](https://github.com/apache/dubbo-awesome/blob/master/proposals/D0-triple.md)
## 服务发现
@@ -26,7 +26,7 @@ Dubbo 基于消费端的自动服务发现能力,其基本工作原理如下
在云原生背景下,比如当应用部署在 Kubernetes
等平台,由于平台自身维护了应用/服务与实例间的映射关系,因此注册中心与注册动作在一定程度上被下沉到了基础设施层,因此框架自身的注册动作有时并不是必须的。
Dubbo3 提供了全新的应用级服务发现模型,该模型在设计与实现上区别于 Dubbo2 的接口级服务发现模型。可在此查看:
-* [应用级服务发现](../../whatsnew/service-discovery)
+*
[应用级服务发现](/zh/docs3-v2/java-sdk/concepts-and-architecture/service-discovery/#应用级服务发现简介)
## 流量治理
Dubbo2 开始 Dubbo 就提供了丰富服务治理规则,包括路由规则、动态配置等。
diff --git a/content/zh/overview/whatsnew/background.md
b/content/zh/overview/what/dubbo3.md
similarity index 90%
rename from content/zh/overview/whatsnew/background.md
rename to content/zh/overview/what/dubbo3.md
index 1e8c62cf7b9..dc69d19fd6e 100644
--- a/content/zh/overview/whatsnew/background.md
+++ b/content/zh/overview/what/dubbo3.md
@@ -1,9 +1,25 @@
+
---
type: docs
-title: "背景"
-linkTitle: "背景"
-weight: 1
+title: "3.0 速览"
+linkTitle: "3.0 速览"
+weight: 2
---
+
+本文将带你快速了解 Dubbo3 的设计背景、总体架构与核心特性、与典型用户如阿里巴巴 HSF2 的关系等。也可以通过如下部分了解更多:
+* 小白用户,**快速浏览 Dubbo3 核心特性:**
+ * [下一代通信协议 - Triple](/zh/docs3-v2/java-sdk/concepts-and-architecture/triple/)
+ * [百万实例集群的秘密 -
应用级服务发现](/zh/docs3-v2/java-sdk/concepts-and-architecture/service-discovery/)
+ * [Dubbo Mesh](/zh/docs3-v2/java-sdk/concepts-and-architecture/mesh/)
+* Dubbo3 的兼容性与迁移成本?
+ * [Java - 迁移指南](/zh/docs3-v2/java-sdk/upgrades-and-compatibility)
+ * [Golang - 迁移指南](/zh/docs3-v2/golang-sdk/)
+* 其他 **Dubbo3 相关资源:**
+ * 更多资料,如性能指标、高级特性说明等请参考 [多语言 SDK 实现](/zh/overview/mannual/)
+ * 演讲与线下活动
+
+### 背景
+
Dubbo3 的设计与开发有两个大的背景。
**首先,如何更好的满足企业实践诉求。** Dubbo 自 2011
由阿里巴巴捐献开源以来,一直是众多大型企业微服务实践的首选开源服务框架。在此期间,企业架构经历了从 SOA 架构到微服务架构变迁,Dubbo
社区自身也在不断的更新迭代以更好的满足企业诉求。然而 Dubbo2 架构上的局限逐渐在实践中凸显:1.协议,Dubbo2
协议以性能、简洁著称,但却在云原生时代遇到越来越多的通用性、穿透性问题;2.可伸缩性,Dubbo2
在可伸缩性上依旧远超很多其他框架,但随着微服务带来更多应用与实例我们不得不思考如何应对更大规模集群的实战;3.服务治理易用性,如更丰富的流量治理、可观测性、智能负载均衡等。
diff --git a/content/zh/overview/what/ecosystem.md
b/content/zh/overview/what/ecosystem.md
index 6aef24362fa..d71cc9b76a7 100644
--- a/content/zh/overview/what/ecosystem.md
+++ b/content/zh/overview/what/ecosystem.md
@@ -2,7 +2,7 @@
type: docs
title: "Dubbo 生态"
linkTitle: "生态系统"
-weight: 4
+weight: 5
---
### Dashboard
diff --git a/content/zh/overview/what/extensibility.md
b/content/zh/overview/what/extensibility.md
index 647b1b0a70d..cbb3eed6305 100644
--- a/content/zh/overview/what/extensibility.md
+++ b/content/zh/overview/what/extensibility.md
@@ -2,7 +2,7 @@
type: docs
title: "可扩展性"
linkTitle: "可扩展性"
-weight: 3
+weight: 4
---
## 扩展设计理念
diff --git a/content/zh/overview/what/overview.md
b/content/zh/overview/what/overview.md
index bc0f792977f..17945929268 100644
--- a/content/zh/overview/what/overview.md
+++ b/content/zh/overview/what/overview.md
@@ -14,11 +14,11 @@ Dubbo3 定义为面向云原生的下一代 RPC 服务框架。3.0 基于 [Dubbo
### Dubbo 是什么
Apache Dubbo 最初在 2008 年由 Alibaba 捐献开源,很快成为了国内开源服务框架选型的事实标准框架
,得到了各行各业的广泛应用。在 2017 年,Dubbo 正式捐献到 Apache 软件基金会并成为 Apache 顶级项目,目前 Dubbo3
已经是一站式的微服务解决方案提供:
-* 基于 HTTP/2 的 [Triple 协议](../../whatsnew/triple)以及面向代理 API 的编程体验。
+* 基于 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 解决方案](../../whatsnew/mesh),同时支持 Sidecar、Proxyless 等灵活的 Mesh 部署方案。
+* [Dubbo Mesh
解决方案](/zh/docs3-v2/java-sdk/concepts-and-architecture/mesh/),同时支持
Sidecar、Proxyless 等灵活的 Mesh 部署方案。
Apache Dubbo
总体架构能很好的满足企业的大规模微服务实践,因为它从设计之初就是为了解决超大规模微服务集群实践问题,不论是阿里巴巴还是工商银行、中国平安、携程等社区用户,它们都通过多年的大规模生产环境流量对
Dubbo 的稳定性与性能进行了充分验证,因此,Dubbo 在解决业务落地与规模化实践方面有着无可比拟的优势:
* 开箱即用
@@ -57,7 +57,7 @@ Dubbo 首先是一款 RPC 框架,它定义了自己的 RPC 通信协议与编
* 提供端响应流(Response Streaming)
* 双向流式通信(Bidirectional Streaming)
-具体可参见各语言 SKDK 实现的可选协议列表 或 [Triple协议](../../whatsnew/triple)
+具体可参见各语言 SKDK 实现的可选协议列表 或
[Triple协议](/zh/docs3-v2/java-sdk/concepts-and-architecture/triple/)
#### 自动服务(地址)发现
Dubbo 的服务发现机制,让微服务组件之间可以独立演进并任意部署,消费端可以在无需感知对端部署位置与 IP 地址的情况下完成通信。Dubbo 提供的是
Client-Based 的服务发现机制,使用者可以有多种方式启用服务发现:
@@ -81,7 +81,7 @@ Dubbo 从设计上是完全遵循云原生微服务开发理念的,这体现
结合当前版本,本节主要从以下两点展开 Dubbo 的云原生特性
* [容器调度平台(Kubernetes)](../../tasks/kubernetes/deploy-on-k8s)
-* [Dubbo Mesh](../../whatsnew/mesh)
+* [Dubbo Mesh](/zh/docs3-v2/java-sdk/concepts-and-architecture/mesh/)
##### Kubernetes
Dubbo 微服务要支持 Kubernetes 平台调度,最基础的就是实现 dubbo 服务生命周期与容器生命周期的对齐,这包括 Dubbo
的启动、销毁、服务注册等生命周期事件。相比于以往 Dubbo 自行定义生命周期事件,并要求开发人员在运维实践过程中遵守约定,Kubernetes
底层基础设施定义了严格的组件生命周期事件(probe),转而要求 Dubbo 去按约定适配。
diff --git a/content/zh/overview/what/usecases.md
b/content/zh/overview/what/usecases.md
index d2a5bf18609..8f17c6c042d 100644
--- a/content/zh/overview/what/usecases.md
+++ b/content/zh/overview/what/usecases.md
@@ -2,7 +2,7 @@
type: docs
title: "用户案例"
linkTitle: "用户案例"
-weight: 5
+weight: 6
manualLinkRelref: ../../../users/
manualLinkTarget: _blank
_build: { render: link }
diff --git a/content/zh/overview/whatsnew/_index.md
b/content/zh/overview/whatsnew/_index.md
deleted file mode 100755
index 0e1a4f156e6..00000000000
--- a/content/zh/overview/whatsnew/_index.md
+++ /dev/null
@@ -1,21 +0,0 @@
-
----
-type: docs
-title: "3.0 速览"
-linkTitle: "3.0 速览"
-weight: 3
-cascade:
- - show_banner: true
----
-
-[背景](background) 部分带你快速了解 Dubbo3 的设计背景、总体架构与核心特性、与典型用户如阿里巴巴 HSF2
的关系等。也可以通过如下部分了解更多:
-* 小白用户,**快速浏览 Dubbo3 核心特性:**
- * [下一代通信协议 - Triple](triple)
- * [百万实例集群的秘密 - 应用级服务发现](service-discovery)
- * [Dubbo Mesh](mesh)
-* Dubbo3 的兼容性与迁移成本?
- * [Java - 迁移指南](/zh/docs3-v2/java-sdk/upgrades-and-compatibility)
- * [Golang - 迁移指南](/zh/docs3-v2/golang-sdk/)
-* 其他 **Dubbo3 相关资源:**
- * 更多资料,如性能指标、高级特性说明等请参考 [多语言 SDK 实现](../mannual/)
- * 演讲与线下活动
diff --git a/content/zh/overview/whatsnew/service-discovery.md
b/content/zh/overview/whatsnew/service-discovery.md
deleted file mode 100644
index 3e3b17fbe2c..00000000000
--- a/content/zh/overview/whatsnew/service-discovery.md
+++ /dev/null
@@ -1,46 +0,0 @@
----
-type: docs
-title: "应用级服务发现"
-linkTitle: "应用级服务发现"
-weight: 3
----
-
-在这里查看更多文档
-*
[应用级服务发现详细设计](https://github.com/apache/dubbo-awesome/blob/master/proposals/D1-application-level-service-discovery.md)
-* [应用级服务发现解读
(blog)](/zh/blog/2021/06/02/dubbo3-%E5%BA%94%E7%94%A8%E7%BA%A7%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0/)
-*
[如何从接口级服务发现迁移到应用级服务发现](../../../docs3-v2/java-sdk/upgrades-and-compatibility/service-discovery/migration-service-discovery)
-* [饿了么应用级服务发现实践](../../../users/eleme)
-* [工商银行应用级服务发现实践](../../../users/icbc)
-
-概括来说,Dubbo3 引入的应用级服务发现主要有以下优势
-* 适配云原生微服务变革。云原生时代的基础设施能力不断向上释放,像 Kubernetes 等平台都集成了微服务概念抽象,Dubbo3
的应用级服务发现是适配各种微服务体系的通用模型。
-* 提升性能与可伸缩性。支持超大规模集群的服务治理一直以来都是 Dubbo
的优势,通过引入应用级服务发现模型,从本质上解决了注册中心地址数据的存储与推送压力,相应的 Consumer
侧的地址计算压力也成数量级下降;集群规模也开始变得可预测、可评估(与 RPC 接口数量无关,只与实例部署规模相关)。
-
-下图是 Dubbo2 的服务发现模型:Provider 注册服务地址,Consumer
经过注册中心协调并发现服务地址,进而对地址发起通信,这是被绝大多数微服务框架的经典服务发现流程。而 Dubbo2 的特殊之处在于,它把 “RPC
接口”的信息也融合在了地址发现过程中,而这部分信息往往是和具体的业务定义密切相关的。
-
-
-
-而在接入云原生基础设施后,基础设施融入了微服务概念的抽象,容器化微服务被编排、调度的过程即完成了在基础设施层面的注册。如下图所示,基础设施既承担了注册中心的职责,又完成了服务注册的动作,而
“RPC 接口”这部分信息,由于与具体的业务相关,不可能也不适合被基础设施托管。
-
-
-
-在这样的场景下,对 Dubbo3 的服务注册发现机制提出了两个要求:
-Dubbo3 需要在原有服务发现流程中抽象出通用的、与业务逻辑无关的地址映射模型,并确保这部分模型足够合理,以支持将地址的注册行为和存储委托给下层基础设施
-Dubbo3 特有的业务接口同步机制,是 Dubbo3 需要保留的优势,需要在 Dubbo3 中定义的新地址模型之上,通过框架内的自有机制予以解决。
-
-这样设计的全新的服务发现模型,在架构兼容性、可伸缩性上都给 Dubbo3 带来了更大的优势。
-
-
-
-在架构兼容性上,如上文所述,Dubbo3 复用下层基础设施的服务抽象能力成为了可能;另一方面,如 Spring Cloud
等业界其它微服务解决方案也沿用这种模型,
-在打通了地址发现之后,使得用户探索用 Dubbo 连接异构的微服务体系成为了一种可能。
-
-Dubbo3 服务发现模型更适合构建可伸缩的服务体系,这点要如何理解?
-这里先举个简单的例子,来直观的对比 Dubbo2 与 Dubbo3 在地址发现流程上的数据流量变化:假设一个微服务应用定义了 100 个接口(Dubbo
中的服务),
-则需要往注册中心中注册 100 个服务,如果这个应用被部署在了 100 台机器上,那这 100 个服务总共会产生 100 * 100 = 10000
个虚拟节点;而同样的应用,
-对于 Dubbo3 来说,新的注册发现模型只需要 1 个服务(只和应用有关和接口无关), 只注册和机器实例数相等的 1 * 100 = 100
个虚拟节点到注册中心。
-在这个简单的示例中,Dubbo 所注册的地址数量下降到了原来的 1 / 100,对于注册中心、订阅方的存储压力都是一个极大的释放。更重要的是,
-地址发现容量彻底与业务 RPC 定义解耦开来,整个集群的容量评估对运维来说将变得更加透明:部署多少台机器就会有多大负载,不会像 Dubbo2 一样,
-因为业务 RPC 重构就会影响到整个集群服务发现的稳定性。
-
-