You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2024/08/01 11:53:36 UTC

(servicecomb-docs) branch master updated: update zone aware docs (#352)

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-docs.git


The following commit(s) were added to refs/heads/master by this push:
     new 8563b4e  update zone aware docs (#352)
8563b4e is described below

commit 8563b4eae57c0f0b9bd5d628687c02b5fd59cbb5
Author: liubao68 <bi...@qq.com>
AuthorDate: Thu Aug 1 19:53:31 2024 +0800

    update zone aware docs (#352)
---
 .../zh_CN/docs/references-handlers/loadbalance.md  | 43 ++++++++++++++--------
 1 file changed, 28 insertions(+), 15 deletions(-)

diff --git a/java-chassis-reference/zh_CN/docs/references-handlers/loadbalance.md b/java-chassis-reference/zh_CN/docs/references-handlers/loadbalance.md
index 1300a84..d6ddd88 100644
--- a/java-chassis-reference/zh_CN/docs/references-handlers/loadbalance.md
+++ b/java-chassis-reference/zh_CN/docs/references-handlers/loadbalance.md
@@ -1,11 +1,10 @@
 # 负载均衡
-
 Java Chassis提供了强大的负载均衡能力, 在实例数非常多的场景,也能提供很好的性能。负载均衡的核心数据结构是 `DiscoveryTree`,`DiscoveryTree` 包含了一系列 `DiscoveryFilter`。  下图展示了负载均衡的处理过程:
 
 ![](discovery-tree.png)
 
-## 按照数据中心信息进行路由转发
-服务提供者和消费者都可以通过在microservice.yaml中声明自己的数据中心信息:
+## 按照数据中心信息进行亲和路由
+服务提供者和消费者都可以通过配置项声明自己的数据中心信息:
 ```yaml
 servicecomb:
   datacenter:
@@ -14,19 +13,32 @@ servicecomb:
     availableZone: my-Zone
 ```
 
-消费者通过比较自己的数据中心信息和提供者的信息,优先将请求转发到region和availableZone都相同的实例;如果不存在,则转发到region相同的实例;如果仍然不存在,则转发到其他实例。
-
-这里的region和availableZone是一般性的概念,用户可以自行确定其业务含义以便应用于资源隔离的场景中。可以参见[微服务实例之间的逻辑隔离关系](../build-provider/definition/isolate-relationship.md),了解更多其他实例发现相关的隔离机制。
+消费者通过比较自己的数据中心信息和提供者的信息,优先将请求转发到region和availableZone都相同的实例;如果不存在,则转发到region相同的实例;如果仍然不存在,则转发到其他实例。这种路由方式一般称为数据中心亲和路由。
 
 该规则默认启用,如果不需要使用,可以通过 `servicecomb.loadbalance.filter.zoneaware.enabled` 进行关闭。数据中心信息隔离功能在 `ZoneAwareDiscoveryFilter` 实现。
 
+```yaml
+servicecomb:
+  loadbalance:
+    filter:
+      zoneaware:
+        enabled: true
+        ratio: 30
+        ratioCeiling: 70
+```
+
+`ratio` 和 `ratioCeiling` 分别控制分组实例个数的最小比例和最大比例。如果实例个数小于最小比例或者大于最大比例,那么该分组不启用数据中心亲和路由。它们通常用于防止亲和路由造成实例负载过高的问题。
+
+> 这两个配置项在3.2.1及其以后版本提供。
+
 ## 根据实例属性进行路由转发
 
 微服务可以指定实例的属性。实例属性可以在microservice.yaml中指定,也可以通过服务中心的API进行修改。
+
 ```yaml
-instance_description:
-  properties:
-    tags:
+servicecomb:
+  service:
+    properties:
       tag_key: tag_value
 ```
 
@@ -37,10 +49,10 @@ servicecomb:
     provider:   # 这里表示配置对名为"provider"的服务生效,如果是跨应用调用,则还需要加上AppID,如"AppIDOfProvider:provider"
       transactionControl:
         options:
-          tags:
-            tag_key: expected_tag_value
+          tag_key: expected_tag_value
 ```
-上面的配置表示只访问myservice所有实例中`tag_key`属性为`expected_tag_value`的实例。
+
+上面的配置表示只访问`provider`所有实例中`tag_key`属性为`expected_tag_value`的实例。
 
 该规则需要给每个服务单独配置,未配置表示不启用该规则,不支持对于所有服务的全局配置。
 
@@ -53,9 +65,10 @@ servicecomb:
 微服务的实例属性可以定义为具备优先级的格式,通过`.`符号进行分割。
 
 ```yaml
-instance_description:
-  properties:
-    KEY: a.b.c
+servicecomb:
+  service:
+    properties:
+      KEY: a.b.c
 ```
 
 消费者需要指定用于优先级匹配的实例属性key,默认的key为`environment`。