You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by GitBox <gi...@apache.org> on 2022/01/26 06:19:32 UTC

[GitHub] [dolphinscheduler-website] zhongjiajie commented on a change in pull request #649: [improve] Design of architecture

zhongjiajie commented on a change in pull request #649:
URL: https://github.com/apache/dolphinscheduler-website/pull/649#discussion_r792338099



##########
File path: docs/zh-cn/2.0.2/user_doc/architecture/design.md
##########
@@ -1,116 +1,67 @@
-## 系统架构设计
-本章节介绍Apache DolphinScheduler调度系统架构
+架构概念
+=============================

Review comment:
       Same length would be better
   ```suggestion
   架构概念
   ======
   ```

##########
File path: docs/zh-cn/2.0.2/user_doc/architecture/design.md
##########
@@ -1,116 +1,67 @@
-## 系统架构设计
-本章节介绍Apache DolphinScheduler调度系统架构
+架构概念
+=============================
 
+## 架构概述
 
-### 1.系统架构
+DolphinScheduler 是一个分布式易扩展、去中心化的可视化DAG工作流任务调度系统,以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持执行重试、kill等任务。
 
-#### 1.1 系统架构图
 <p align="center">
   <img src="/img/architecture-1.3.0.jpg" alt="系统架构图"  width="70%" />
   <p align="center">
         <em>系统架构图</em>
   </p>
 </p>
 
-#### 1.2 启动流程活动图
-<p align="center">
-  <img src="/img/master-process-2.0-zh_cn.png" alt="Start process activity diagram"  width="70%" />
-  <p align="center">
-        <em>启动流程活动图</em>
-  </p>
-</p>
+#### MasterServer
 
-#### 1.3 架构说明
+  MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交监控,并同时监听其它MasterServer和WorkerServer的健康状态。
+  MasterServer服务启动时向Zookeeper注册临时节点,通过监听Zookeeper临时节点变化来进行容错处理。
+  MasterServer基于netty提供监听服务。
 
-* **MasterServer** 
 
-    MasterServer采用分布式无中心设计理念,MasterServer主要负责 DAG 任务切分、任务提交监控,并同时监听其它MasterServer和WorkerServer的健康状态。
-    MasterServer服务启动时向Zookeeper注册临时节点,通过监听Zookeeper临时节点变化来进行容错处理。
-    MasterServer基于netty提供监听服务。
+  MasterServer由以下组件组成:
 
-    ##### 该服务内主要包含:
+- **Distributed Quartz**分布式调度组件,主要负责定时任务的启停操作,当quartz调起任务后,Master内部会有线程池具体负责处理任务的后续操作
+- **MasterSchedulerService**是一个扫描线程,定时扫描数据库中的 **command** 表,生成工作流实例,根据不同的**命令类型**进行不同的业务操作
+- **WorkflowExecuteThread**主要是负责DAG任务切分、任务提交、各种不同命令类型的逻辑处理,处理任务状态和工作流状态事件
+- **EventExecuteService**处理master负责的工作流实例所有的状态变化事件,使用线程池处理工作流的状态事件
+- **StateWheelExecuteThread**处理依赖任务和超时任务的定时状态更新
 
-    - **Distributed Quartz**分布式调度组件,主要负责定时任务的启停操作,当quartz调起任务后,Master内部会有线程池具体负责处理任务的后续操作
 
-    - **MasterSchedulerService**是一个扫描线程,定时扫描数据库中的 **command** 表,生成工作流实例,根据不同的**命令类型**进行不同的业务操作
 
-    - **WorkflowExecuteThread**主要是负责DAG任务切分、任务提交、各种不同命令类型的逻辑处理,处理任务状态和工作流状态事件
+#### WorkerServer
 
-    - **EventExecuteService**处理master负责的工作流实例所有的状态变化事件,使用线程池处理工作流的状态事件
-    
-    - **StateWheelExecuteThread**处理依赖任务和超时任务的定时状态更新
+  WorkerServer也采用分布式无中心设计理念,支持自定义任务插件,主要负责任务的执行和提供日志服务。
+  WorkerServer服务启动时向Zookeeper注册临时节点,并维持心跳。
 
-* **WorkerServer** 
 
-     WorkerServer也采用分布式无中心设计理念,支持自定义任务插件,主要负责任务的执行和提供日志服务。
-     WorkerServer服务启动时向Zookeeper注册临时节点,并维持心跳。
-     
-     ##### 该服务包含:
-     
-     - **WorkerManagerThread**主要通过netty领取master发送过来的任务,并根据不同任务类型调用**TaskExecuteThread**对应执行器。
-     
-     - **RetryReportTaskStatusThread**主要通过netty向master汇报任务状态,如果汇报失败,会一直重试汇报
+  WorkerServer由以下组件组成:
+- **WorkerManagerThread**主要通过netty领取master发送过来的任务,并根据不同任务类型调用**TaskExecuteThread**对应执行器。
+- **RetryReportTaskStatusThread**主要通过netty向master汇报任务状态,如果汇报失败,会一直重试汇报
+- **LoggerServer**是一个日志服务,提供日志分片查看、刷新和下载等功能
 
-     - **LoggerServer**是一个日志服务,提供日志分片查看、刷新和下载等功能
-     
-* **Registry** 
 
-    注册中心,使用插件化实现,默认支持Zookeeper, 系统中的MasterServer和WorkerServer节点通过注册中心来进行集群管理和容错。另外系统还基于注册中心进行事件监听和分布式锁。
-    
-* **Alert** 
+#### Registry
+  注册中心,使用插件化实现,默认支持Zookeeper, 系统中的MasterServer和WorkerServer节点通过注册中心来进行集群管理和容错。另外系统还基于注册中心进行事件监听和分布式锁。
 
-    提供告警相关功能,仅支持单机服务。支持自定义告警插件。
+#### Alert
+  提供告警相关功能,仅支持单机服务。支持自定义告警插件。
 
-* **API** 
+#### API
+  API接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。
+  接口包括工作流的创建、定义、查询、修改、发布、下线、手工启动、停止、暂停、恢复、从该节点开始执行等等。
 
-    API接口层,主要负责处理前端UI层的请求。该服务统一提供RESTful api向外部提供请求服务。
-    接口包括工作流的创建、定义、查询、修改、发布、下线、手工启动、停止、暂停、恢复、从该节点开始执行等等。
-
-* **UI** 
+#### UI
 
   系统的前端页面,提供系统的各种可视化操作界面,详见[功能介绍](../guide/homepage.md)部分。
 
-#### 1.4 架构设计思想
-
-##### 一、去中心化vs中心化 
-
-###### 中心化思想
-
-中心化的设计理念比较简单,分布式集群中的节点按照角色分工,大体上分为两种角色:
-<p align="center">
-   <img src="https://analysys.github.io/easyscheduler_docs_cn/images/master_slave.png" alt="master-slave角色"  width="50%" />
- </p>
-
-- Master的角色主要负责任务分发并监督Slave的健康状态,可以动态的将任务均衡到Slave上,以致Slave节点不至于“忙死”或”闲死”的状态。
-- Worker的角色主要负责任务的执行工作并维护和Master的心跳,以便Master可以分配任务给Slave。
-
-
-
-中心化思想设计存在的问题:
-
-- 一旦Master出现了问题,则群龙无首,整个集群就会崩溃。为了解决这个问题,大多数Master/Slave架构模式都采用了主备Master的设计方案,可以是热备或者冷备,也可以是自动切换或手动切换,而且越来越多的新系统都开始具备自动选举切换Master的能力,以提升系统的可用性。
-- 另外一个问题是如果Scheduler在Master上,虽然可以支持一个DAG中不同的任务运行在不同的机器上,但是会产生Master的过负载。如果Scheduler在Slave上,则一个DAG中所有的任务都只能在某一台机器上进行作业提交,则并行任务比较多的时候,Slave的压力可能会比较大。
-
-
-
-###### 去中心化
- <p align="center">
-   <img src="https://analysys.github.io/easyscheduler_docs_cn/images/decentralization.png" alt="去中心化"  width="50%" />
- </p>

Review comment:
       Same as I comment above when you remove img content

##########
File path: docs/zh-cn/2.0.2/user_doc/architecture/design.md
##########
@@ -1,116 +1,67 @@
-## 系统架构设计
-本章节介绍Apache DolphinScheduler调度系统架构
+架构概念
+=============================
 
+## 架构概述
 
-### 1.系统架构
+DolphinScheduler 是一个分布式易扩展、去中心化的可视化DAG工作流任务调度系统,以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持执行重试、kill等任务。
 
-#### 1.1 系统架构图
 <p align="center">
   <img src="/img/architecture-1.3.0.jpg" alt="系统架构图"  width="70%" />
   <p align="center">
         <em>系统架构图</em>
   </p>
 </p>
 
-#### 1.2 启动流程活动图
-<p align="center">
-  <img src="/img/master-process-2.0-zh_cn.png" alt="Start process activity diagram"  width="70%" />
-  <p align="center">
-        <em>启动流程活动图</em>
-  </p>
-</p>

Review comment:
       If you delete img assert, you should delete the img file if without use in others place




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@dolphinscheduler.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org