This is an automated email from the ASF dual-hosted git repository.
lidongdai pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler-website.git
The following commit(s) were added to refs/heads/master by this push:
new 9b8859c [doc-zh-cn]load-balance doc (#288)
9b8859c is described below
commit 9b8859ca4e62686d82e9a0bf9e7e50d9aec7e40c
Author: Kirs <[email protected]>
AuthorDate: Sun Jan 31 13:19:46 2021 +0800
[doc-zh-cn]load-balance doc (#288)
---
docs/zh-cn/1.3.4/user_doc/load-balance.md | 62 +++++++++++++++++++++++++++++++
site_config/docs1-3-4.js | 10 +++++
2 files changed, 72 insertions(+)
diff --git a/docs/zh-cn/1.3.4/user_doc/load-balance.md
b/docs/zh-cn/1.3.4/user_doc/load-balance.md
new file mode 100644
index 0000000..b4ac771
--- /dev/null
+++ b/docs/zh-cn/1.3.4/user_doc/load-balance.md
@@ -0,0 +1,62 @@
+### 负载均衡
+负载均衡即通过路由算法(通常是集群环境),合理的分摊服务器压力,达到服务器性能的最大优化。
+
+### DolphinScheduler-Worker负载均衡算法
+
+DolphinScheduler-Master分配任务至worker,默认提供了三种算法:
+
+加权随机(random)
+
+平滑轮询(roundrobin)
+
+线性负载(lowerweight)
+
+默认配置为线性加权负载。
+
+由于路由是在客户端做的,即master服务,因此你可以更改master.properties
中的master.host.selector来配置你所想要的算法。
+
+eg:master.host.selector=random(不区分大小写)
+
+### Worker 负载均衡配置
+
+配置文件 worker.properties
+
+#### 权重
+
+上述所有的负载算法都是基于权重来进行加权分配的,权重影响分流结果。你可以在 修改worker.weight的值来给不同的机器设置不同的权重。
+
+#### 预热
+
+考虑到JIT优化,我们会让worker在启动后低功率的运行一段时间,使其逐渐达到最佳状态,这段过程我们称之为预热。感兴趣的同学可以去阅读JIT相关的文章。
+
+因此worker在启动后,他的权重会随着时间逐渐达到最大(默认十分钟,我们没有提供配置项,如果需要,你可以修改并提交相关的PR)。
+
+### 负载均衡算法细述
+
+#### 随机(加权)
+
+该算法比较简单,即在符合的worker中随机选取一台(权重会影响他的比重)。
+
+#### 平滑轮询(加权)
+
+加权轮询算法一个明显的缺陷。即在某些特殊的权重下,加权轮询调度会生成不均匀的实例序列,这种不平滑的负载可能会使某些实例出现瞬时高负载的现象,导致系统存在宕机的风险。为了解决这个调度缺陷,我们提供了平滑加权轮询算法。
+
+每台worker都有两个权重,即weight(预热完成后保持不变),current_weight(动态变化),每次路由。都会遍历所有的worker,使其current_weight+weight,同时累加所有worker的weight,计为total_weight,然后挑选current_weight最大的作为本次执行任务的worker,于此同时,将这台worker的current_weight-total_weight。
+
+#### 线性加权(默认算法)
+
+该算法每隔一段时间会向注册中心上报自己的负载信息。我们主要根据两个信息来进行判断
+
+* load平均值(默认是CPU核数*2)
+* 可用物理内存 (默认是0.3,单位是G)
+
+如果两者任何一个低于配置项,那么这台worker将不参与负载。(即不分配流量)
+
+你可以在worker.properties修改下面的属性来自定义配置
+
+* worker.max.cpuload.avg= -1(only less than cpu avg load, worker server can
work. default value -1: the number of cpu cores * 2
+)
+
+* worker.reserved.memory=0.3(only larger than reserved memory, worker server
can work. default value : physical memory * 1/6, unit is G.
+)
+
diff --git a/site_config/docs1-3-4.js b/site_config/docs1-3-4.js
index c4eecea..0237c04 100644
--- a/site_config/docs1-3-4.js
+++ b/site_config/docs1-3-4.js
@@ -112,6 +112,12 @@ export default {
title: '用户手册',
link: '/zh-cn/docs/1.3.4/user_doc/system-manual.html',
},
+
+ ],
+ },
+ {
+ title: '架构设计',
+ children: [
{
title: '元数据文档',
link: '/zh-cn/docs/1.3.4/user_doc/metadata-1.3.html',
@@ -128,6 +134,10 @@ export default {
title: '任务结构',
link: '/zh-cn/docs/1.3.4/user_doc/task-structure.html',
},
+ {
+ title: '负载均衡',
+ link: '/zh-cn/docs/1.3.4/user_doc/load-balance.html',
+ },
],
},
{