This is an automated email from the ASF dual-hosted git repository.
kirs pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler-website.git
The following commit(s) were added to refs/heads/master by this push:
new ab35ab4 introduction of architecture evolution for version
1.2/1.3/2.0 (#406)
ab35ab4 is described below
commit ab35ab4d9a76baada1972057505c47a08d5d3eca
Author: xuweiyi0923 <[email protected]>
AuthorDate: Sun Jul 18 21:42:37 2021 +0800
introduction of architecture evolution for version 1.2/1.3/2.0 (#406)
* Add files via upload
create architecture_evolution.md
* Add files via upload
upload architecture1.2.x
* Update blog.js
---
blog/zh-cn/DS_architecture_evolution.md | 102 ++++++++++++++++++++++++++++++++
img/architecture-1.2.0.jpg | Bin 0 -> 64444 bytes
site_config/blog.js | 7 +++
3 files changed, 109 insertions(+)
diff --git a/blog/zh-cn/DS_architecture_evolution.md
b/blog/zh-cn/DS_architecture_evolution.md
new file mode 100644
index 0000000..8338463
--- /dev/null
+++ b/blog/zh-cn/DS_architecture_evolution.md
@@ -0,0 +1,102 @@
+# Apache DolphinScheduler 架构演进及开源经验分享
+
+[toc]
+
+## 演讲者介绍
+
+阮文俊,eBay开发工程师,DolphinScheduler贡献者。
+
+视频分享参见https://www.bilibili.com/video/BV11M4y1T7VT?from=search&seid=4448322552403036491
+
+
+
+## Apache DolphinScheduler介绍
+
+Apache
DolphinScheduler是一个分布式去中心化,易扩展的可视化DAG工作流任务调度平台。致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。DolphinScheduler以有向无环图的方式将任务连接起来,可实时监控任务的运行状态,同时支持取消、暂停、恢复、从指定任务节点重跑等操作。
+
+DolphinScheduler具有以下几个优良功能特性:
+
+- **简单易用**,提供可视化的工作流编排能力,可通过拖拉拽任务定制DAG,支持一键部署
+- **高可靠性**,整个调度系统高度可用,各个组件具备自我容错能力
+- **高可扩展性**,采用去中心化的多master+多worker的设计框架,集群可用横向扩展,并支持节点的动态上下线
+- **丰富的使用场景**,DolphinScheduler为面向复杂的使用场景,所有扩展点都采用插件化的实现方式
+
+关于DolphinSheduler更多功能介绍和开发文档请查阅官网详细信息https://dolphinscheduler.apache.org/zh-cn/。
+
+
+
+## 架构演进过程
+
+**1.2.x架构**
+
+DolphinScheduler最初进入Apache孵化器的版本是1.2,在这一版本中采用的架构由以下几个重要部分组成:
+
+- 去中心化的master节点,负责工作流调度、DAG任务切分、任务提交监控和监听其它节点健康状态等任务
+- 去中心化的worker节点,负责执行任务和维护任务的生命周期等
+- 数据库,存储工作流元数据,运行实例数据
+- Zookeeper,主要负责注册中心、分布式锁、任务队列等工作任务
+
+1.2版本基本实现了高可靠的工作流调度系统,但是也存在多个问题:
+
+- **重量级的worker**,worker节点需要负责多种任务
+- 异步派发任务会导致**任务执行延迟**
+- 由于masker和worker都需要依赖数据库,导致数据库压力大
+
+[](https://imgtu.com/i/W15rAH)
+
+
+
+**1.3.x架构**
+
+针对1.2版本存在的问题,1.3架构进行了如下改进:
+
+- 去任务队列,保证master节点同步派发任务,降低任务执行延迟
+- 轻量级worker,worker节点只负责执行任务,单一化worker职责
+- 减小数据库压力,worker不再连接数据库
+- 采用多任务负载均衡策略,master根据worker节点资源使用情况分配任务,提高worker资源利用率
+
+这些改进有效改进了1.2版本的缺陷,但仍存在一些问题,例如:
+
+- master调度工作流时需要依赖**分布式锁**,导致工作流吞吐量难以提升
+- 因为需要创建大量线程池,多数线程处于轮询数据库,导致**master资源利用率低**
+- master轮询数据库,仍然导致**数据库压力大**
+- 各组件存在**耦合**情况
+
+
+
+
+
+
+
+**2.0架构**
+
+针对1.3版本的缺陷,2.0架构进一步做出改进:
+
+- **去分布式锁**,对master进行分区编号,实现错位查询数据库,避免多个节点同时访问同一个工作流造成的冲突问题
+- 重构master线程模型,对所有工作流使用**统一的线程池**
+- 重构数据库中**DAG元数据**模型
+- **彻底的插件化**,所有扩展点都采用插件化实现
+- **数据血缘关系分析**
+
+
+
+
+
+## Apache DolphinScheduler发展方向
+
+开发者阮文俊针对dolphinsheduler的未来发展方向,也分享了一些看法:
+
+- 系统更稳、速度更快(高吞吐、低延迟、智能化运维、高可用)
+- 支持更多的任务集成(深度学习任务、CI/CD等其它系统集成、存储过程和数据质量任务、容器调度任务、复杂调度场景等)
+- 轻量化dolphinscheduler内核,提供基础调度服务
+
+
+
+## 如何参与开源贡献
+
+最后,开发者阮文俊针对入门新手如何参与开源贡献的问题,提出了宝贵的指导意见:
+
+- 从小事做起,积累开发经验
+- 关注社区动态,积极参与讨论,更好融入社区
+- 坚持开源精神,乐于帮助他人
+- 持之以恒
\ No newline at end of file
diff --git a/img/architecture-1.2.0.jpg b/img/architecture-1.2.0.jpg
new file mode 100644
index 0000000..ce60c2b
Binary files /dev/null and b/img/architecture-1.2.0.jpg differ
diff --git a/site_config/blog.js b/site_config/blog.js
index 9493eb8..a98d6c8 100644
--- a/site_config/blog.js
+++ b/site_config/blog.js
@@ -41,6 +41,13 @@ export default {
postsTitle: '所有文章',
list: [
{
+ title: 'Apache DolphinScheduler 架构演进及开源经验分享',
+ author: '徐玮毅',
+ dateStr: '2021-07-18',
+ desc: 'DolphinScheduler 1.2.x/1.3.x/2.0架构演进及开源经验分享(阮文俊)',
+ link: '/zh-cn/blog/DS_architecture_evolution.html',
+ },
+ {
title: '伴鱼数据质量平台实践',
author: '伴鱼技术团队',
editor: '太空人',