This is an automated email from the ASF dual-hosted git repository.
zhongjiajie 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 9eab881e21 Updata blog (#918)
9eab881e21 is described below
commit 9eab881e21c51d979dbc917d9b8a43938488d7e2
Author: Niko-Zeng <[email protected]>
AuthorDate: Mon Oct 16 20:22:01 2023 +0800
Updata blog (#918)
---
blog/img/2023-10-16/1.png | Bin 0 -> 454775 bytes
blog/img/2023-10-16/10.png | Bin 0 -> 60492 bytes
blog/img/2023-10-16/11.png | Bin 0 -> 315784 bytes
blog/img/2023-10-16/12.png | Bin 0 -> 187587 bytes
blog/img/2023-10-16/13.png | Bin 0 -> 135592 bytes
blog/img/2023-10-16/14.png | Bin 0 -> 125316 bytes
blog/img/2023-10-16/15.png | Bin 0 -> 120515 bytes
blog/img/2023-10-16/16.png | Bin 0 -> 190121 bytes
blog/img/2023-10-16/17.png | Bin 0 -> 59775 bytes
blog/img/2023-10-16/18.png | Bin 0 -> 48560 bytes
blog/img/2023-10-16/19.png | Bin 0 -> 48247 bytes
blog/img/2023-10-16/2.png | Bin 0 -> 70543 bytes
blog/img/2023-10-16/20.png | Bin 0 -> 88241 bytes
blog/img/2023-10-16/21.png | Bin 0 -> 183789 bytes
blog/img/2023-10-16/22.png | Bin 0 -> 88914 bytes
blog/img/2023-10-16/23.png | Bin 0 -> 33517 bytes
blog/img/2023-10-16/24.png | Bin 0 -> 72360 bytes
blog/img/2023-10-16/25.png | Bin 0 -> 21974 bytes
blog/img/2023-10-16/26.png | Bin 0 -> 75064 bytes
blog/img/2023-10-16/27.png | Bin 0 -> 261412 bytes
blog/img/2023-10-16/28.png | Bin 0 -> 158755 bytes
blog/img/2023-10-16/29.png | Bin 0 -> 84653 bytes
blog/img/2023-10-16/3.png | Bin 0 -> 108416 bytes
blog/img/2023-10-16/30.png | Bin 0 -> 77981 bytes
blog/img/2023-10-16/31.png | Bin 0 -> 100420 bytes
blog/img/2023-10-16/4.png | Bin 0 -> 38687 bytes
blog/img/2023-10-16/5.png | Bin 0 -> 334660 bytes
blog/img/2023-10-16/6.png | Bin 0 -> 376538 bytes
blog/img/2023-10-16/7.png | Bin 0 -> 320659 bytes
blog/img/2023-10-16/8.png | Bin 0 -> 280564 bytes
blog/img/2023-10-16/9.png | Bin 0 -> 185408 bytes
...sformation_based_on_Apache_DolphinScheduler.md} | 2 +-
...ler_as_a_unified_scheduling_center_in_Lenovo.md | 380 +++++++++++++++++++++
config/blog/zh-cn/user.json | 9 +-
34 files changed, 389 insertions(+), 2 deletions(-)
diff --git a/blog/img/2023-10-16/1.png b/blog/img/2023-10-16/1.png
new file mode 100644
index 0000000000..fbe2f957d3
Binary files /dev/null and b/blog/img/2023-10-16/1.png differ
diff --git a/blog/img/2023-10-16/10.png b/blog/img/2023-10-16/10.png
new file mode 100644
index 0000000000..76831e8bea
Binary files /dev/null and b/blog/img/2023-10-16/10.png differ
diff --git a/blog/img/2023-10-16/11.png b/blog/img/2023-10-16/11.png
new file mode 100644
index 0000000000..723bdb67de
Binary files /dev/null and b/blog/img/2023-10-16/11.png differ
diff --git a/blog/img/2023-10-16/12.png b/blog/img/2023-10-16/12.png
new file mode 100644
index 0000000000..6038d3cc29
Binary files /dev/null and b/blog/img/2023-10-16/12.png differ
diff --git a/blog/img/2023-10-16/13.png b/blog/img/2023-10-16/13.png
new file mode 100644
index 0000000000..1698b91fa0
Binary files /dev/null and b/blog/img/2023-10-16/13.png differ
diff --git a/blog/img/2023-10-16/14.png b/blog/img/2023-10-16/14.png
new file mode 100644
index 0000000000..d457642cb4
Binary files /dev/null and b/blog/img/2023-10-16/14.png differ
diff --git a/blog/img/2023-10-16/15.png b/blog/img/2023-10-16/15.png
new file mode 100644
index 0000000000..df8bcabd8e
Binary files /dev/null and b/blog/img/2023-10-16/15.png differ
diff --git a/blog/img/2023-10-16/16.png b/blog/img/2023-10-16/16.png
new file mode 100644
index 0000000000..cd14027644
Binary files /dev/null and b/blog/img/2023-10-16/16.png differ
diff --git a/blog/img/2023-10-16/17.png b/blog/img/2023-10-16/17.png
new file mode 100644
index 0000000000..da2cb92304
Binary files /dev/null and b/blog/img/2023-10-16/17.png differ
diff --git a/blog/img/2023-10-16/18.png b/blog/img/2023-10-16/18.png
new file mode 100644
index 0000000000..db0bc2f3ae
Binary files /dev/null and b/blog/img/2023-10-16/18.png differ
diff --git a/blog/img/2023-10-16/19.png b/blog/img/2023-10-16/19.png
new file mode 100644
index 0000000000..b602dc49d2
Binary files /dev/null and b/blog/img/2023-10-16/19.png differ
diff --git a/blog/img/2023-10-16/2.png b/blog/img/2023-10-16/2.png
new file mode 100644
index 0000000000..c2b25b3d5a
Binary files /dev/null and b/blog/img/2023-10-16/2.png differ
diff --git a/blog/img/2023-10-16/20.png b/blog/img/2023-10-16/20.png
new file mode 100644
index 0000000000..00591168fc
Binary files /dev/null and b/blog/img/2023-10-16/20.png differ
diff --git a/blog/img/2023-10-16/21.png b/blog/img/2023-10-16/21.png
new file mode 100644
index 0000000000..8619553f3b
Binary files /dev/null and b/blog/img/2023-10-16/21.png differ
diff --git a/blog/img/2023-10-16/22.png b/blog/img/2023-10-16/22.png
new file mode 100644
index 0000000000..3461e030dc
Binary files /dev/null and b/blog/img/2023-10-16/22.png differ
diff --git a/blog/img/2023-10-16/23.png b/blog/img/2023-10-16/23.png
new file mode 100644
index 0000000000..44f32b8ec2
Binary files /dev/null and b/blog/img/2023-10-16/23.png differ
diff --git a/blog/img/2023-10-16/24.png b/blog/img/2023-10-16/24.png
new file mode 100644
index 0000000000..0dd93459de
Binary files /dev/null and b/blog/img/2023-10-16/24.png differ
diff --git a/blog/img/2023-10-16/25.png b/blog/img/2023-10-16/25.png
new file mode 100644
index 0000000000..a7966dc757
Binary files /dev/null and b/blog/img/2023-10-16/25.png differ
diff --git a/blog/img/2023-10-16/26.png b/blog/img/2023-10-16/26.png
new file mode 100644
index 0000000000..c35589c9d4
Binary files /dev/null and b/blog/img/2023-10-16/26.png differ
diff --git a/blog/img/2023-10-16/27.png b/blog/img/2023-10-16/27.png
new file mode 100644
index 0000000000..95c1533ca4
Binary files /dev/null and b/blog/img/2023-10-16/27.png differ
diff --git a/blog/img/2023-10-16/28.png b/blog/img/2023-10-16/28.png
new file mode 100644
index 0000000000..498393b86b
Binary files /dev/null and b/blog/img/2023-10-16/28.png differ
diff --git a/blog/img/2023-10-16/29.png b/blog/img/2023-10-16/29.png
new file mode 100644
index 0000000000..e91d7eb679
Binary files /dev/null and b/blog/img/2023-10-16/29.png differ
diff --git a/blog/img/2023-10-16/3.png b/blog/img/2023-10-16/3.png
new file mode 100644
index 0000000000..02815c53b3
Binary files /dev/null and b/blog/img/2023-10-16/3.png differ
diff --git a/blog/img/2023-10-16/30.png b/blog/img/2023-10-16/30.png
new file mode 100644
index 0000000000..8e76d40cfb
Binary files /dev/null and b/blog/img/2023-10-16/30.png differ
diff --git a/blog/img/2023-10-16/31.png b/blog/img/2023-10-16/31.png
new file mode 100644
index 0000000000..8302af8f01
Binary files /dev/null and b/blog/img/2023-10-16/31.png differ
diff --git a/blog/img/2023-10-16/4.png b/blog/img/2023-10-16/4.png
new file mode 100644
index 0000000000..1baa278d8b
Binary files /dev/null and b/blog/img/2023-10-16/4.png differ
diff --git a/blog/img/2023-10-16/5.png b/blog/img/2023-10-16/5.png
new file mode 100644
index 0000000000..278e4aacf6
Binary files /dev/null and b/blog/img/2023-10-16/5.png differ
diff --git a/blog/img/2023-10-16/6.png b/blog/img/2023-10-16/6.png
new file mode 100644
index 0000000000..a631f05946
Binary files /dev/null and b/blog/img/2023-10-16/6.png differ
diff --git a/blog/img/2023-10-16/7.png b/blog/img/2023-10-16/7.png
new file mode 100644
index 0000000000..23957426b3
Binary files /dev/null and b/blog/img/2023-10-16/7.png differ
diff --git a/blog/img/2023-10-16/8.png b/blog/img/2023-10-16/8.png
new file mode 100644
index 0000000000..f1e4bf9de0
Binary files /dev/null and b/blog/img/2023-10-16/8.png differ
diff --git a/blog/img/2023-10-16/9.png b/blog/img/2023-10-16/9.png
new file mode 100644
index 0000000000..787b9528b1
Binary files /dev/null and b/blog/img/2023-10-16/9.png differ
diff --git
a/blog/zh-cn/How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler?.md
b/blog/zh-cn/How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler.md
similarity index 99%
rename from
blog/zh-cn/How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler?.md
rename to
blog/zh-cn/How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler.md
index 989323df24..285d8dd2e2 100644
---
a/blog/zh-cn/How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler?.md
+++
b/blog/zh-cn/How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler.md
@@ -195,4 +195,4 @@ description: 在数据驱动转型的过程中,会存在海量的数据集成
同时,我们也会积极地与社区互动,通过周、月会查看社区动向。对于技术研发资源有限的企业,应该去找一个契合企业内部实际使用情况的开源产品,要真正理解并把开源精神落到实处。开源的力量非常强大,可以解决很多内部根本无法解决的问题,也会发现内部不会发现的问题。所以,企业内部需要把参与开源的流程落到实处,与社区共同成长。
-我的分享就到这里,感谢!
\ No newline at end of file
+我的分享就到这里,感谢!
diff --git
a/blog/zh-cn/The_implementation_practice_of_Apache_DolphinScheduler_as_a_unified_scheduling_center_in_Lenovo.md
b/blog/zh-cn/The_implementation_practice_of_Apache_DolphinScheduler_as_a_unified_scheduling_center_in_Lenovo.md
new file mode 100644
index 0000000000..4bb105a60d
--- /dev/null
+++
b/blog/zh-cn/The_implementation_practice_of_Apache_DolphinScheduler_as_a_unified_scheduling_center_in_Lenovo.md
@@ -0,0 +1,380 @@
+```yaml
+title: Apache DolphinScheduler 在联想作为统一调度中心的落地实践
+keywords: Apache DolphinScheduler, 联想, 最佳实践
+description: 在 ApacheCon Asia 2022 Meetup上,来自联想的数据架构师、Apache DolphinScheduler
PMC & Committer 、Apache Local Community 北京成员 李岗 老师分享了 Apache DolphinScheduler
在联想作为统一调度中心的落地实践。
+```
+
+点亮 ⭐️ Star · 照亮开源之路
+
+**GitHub:**[https://github.com/apache/dolphinscheduler](https://github.com/apache/dolphinscheduler)
+
+
+
+在 ApacheCon Asia 2022 Meetup上,来自联想的数据架构师、Apache DolphinScheduler PMC &
Committer 、Apache Local Community 北京成员 李岗 老师分享了 Apache DolphinScheduler
在联想作为统一调度中心的落地实践。
+
+感谢本文整理者 关博 对社区的贡献,您的贡献是社区不断前进的动力!
+
+**本次演讲主要包含以下四个部分:**
+
+- 统一调度中心的需求背景介绍
+- 为什么会选择 Apache DolphinScheduler 作为统一调度中心
+- Apache DolphinScheduler 在联想的落地实践中涉及的改造点
+- 后期规划(Roadmap)
+
+# 统一调度中心的需求背景介绍
+
+定时任务对每个开发人员来讲是一个常见的业务场景,我们通常都会遇到需要对数据进行备份、同步。一般的解决方式最开始会选用 Linux Crontab、基于
Spring 开发定时的任务,随着定时任务的需求越来越多,如何更好更方便的管理定时任务的生命周期,这时候统一调度系统的需求就呼之欲出了。
+
+## 需求收集
+
+在联想内部也是基于以上类似的背景需求,收集到公司其他业务部门一些迫切的需求,如下所示:
+
+**支持丰富的任务类型的需求:**
+
+- 支持定时通知任务。
+
+- 支持 ETL 任务。
+
+- 支持 HTTP 任务执行链。
+
+**方便对任务进行监控、统一管理类的需求:**
+
+- 对任务实时监控。
+
+- 管理多种任务类型。
+
+- 业务系统开发的定时任务方便统一管理。
+
+- 任务脚本便于管理和维护。
+
+**保证多任务正确、准时触发类需求:**
+
+- 任务调度需要保证可靠性。
+
+- 上下游依赖的任务需要事件通知触发机制。
+
+## 需求抽象汇总
+
+
+
+**高可用:**
+
+- Master 节点支持 HA 模式。
+
+- Worker 节点支持分布式。
+
+**支持丰富的任务类型和用户友好性能:**
+
+- 支持多种任务类型。
+
+- 轻松定义复杂的任务依赖关系。
+
+**轻量化:**
+
+- 易操作,通过 UI 方便手动调度、手动暂停/停止/恢复,同时支持失败重试/告警、从指定节点恢复失败、Kill 任务等操作。
+
+**支持业务隔离性:**
+
+- 支持多租户。
+
+**资源线性可扩展:**
+
+- 随着业务任务接入越来越多,方便线性扩展集群,保证任务的性能。
+
+**业务可扩展:**
+
+- 便于业务系统二次开发。
+
+# 为什么会选择Apache DolphinScheduler 作为统一调度中心?
+
+通过以下点四点来介绍,我们最终选择 Apache DolphinScheduler 作为统一调度中心的原因:
+
+- 调度系统调研对比
+
+- DolphinScheduler 核心功能介绍
+
+- DolphinScheduler 架构设计
+
+- DolphinScheduler 社区发展
+
+## 调度系统调研对比
+
+
+
+
+
+当时,我们通过调研 Apache DolphinScheduler、XXL-JOB、AirFlow,并基于以下几点选用了 Apache
DolphinScheduler:
+
+- 高可靠,支持集群HA,集群去中心化。
+
+- 简单易用,DAG 监控界面,所有流程定义可视化,通过托拉拽任务定制 DAG,通过 API 与第三方系统对接,支持一键部署。
+
+- 丰富的使用场景,支持多租户、多种任务类型、支持暂定恢复等操作。
+
+- 高扩展,Master 和 Worker 支持动态上下线、支持自定义任务类型。
+
+- 社区活跃度高。
+
+## DolphinScheduler 核心功能介绍
+
+**DAG 编排**
+
+DolphinScheduler 通过拖拽将 Task 以 DAG 的方式组装起来。通过 UI
可以实时监控任务的运行状态,同时支持重试、从指定的节点恢复失败、暂定以及 Kill 任务等操作。支持丰富的使用场景,提供近20多种任务类型。
+
+任务类型主要分为两个类:逻辑任务和物理任务,逻辑任务包含子流程、依赖节点、条件任务等。物理任务包含 Flink、Spark, Hive, M/R,
Python、Shell 任务等。
+
+
+
+上图是工作流编排页面,保存之后会生成工作流定义。
+
+**工作流定义**
+
+工作流定义列表提供了编辑、上线、下线、定时、运行、删除等操作等操作功能。
+
+
+
+对某个工作流定义点击按钮,操作之后会生成工作流实例。
+
+**工作流实例**
+
+工作流实例中可以看到任务的运行类型、调度时间、运行时常、运行状态等。我们可以对正在运行工作流进行停止、暂停等操作,也可以对已经终止的流程进行重跑、删除等操作。
+
+
+
+每个工作流实例包含1个或者多个任务实例。
+
+**任务实例**
+
+点击工作流实例名称,可跳转到工作流实例 DAG 图查看任务状态,或者点击操作列中的“查看日志”按钮,可以查看任务执行的日志情况。
+
+
+
+**2.X 版本新特性**
+
+- 任务结果参数的传递。
+
+- 新增工作流血缘关系 UI,可以清晰的看到工作流的状态(在线、下线)。
+
+- 新增任务类型:Switch(分支节点)、SeaTunnel(原名WaterDrop)(ETL节点)。
+
+- 拆分工作流定义和任务之间的关系。
+
+- 新增工作流版本管理。
+
+
+
+
+
+# Apache DolphinScheduler 架构设计
+
+## 社区贡献
+
+### Apache **DolphinScheduler1.2 架构**
+
+
+
+在 1.2 版本中,Master、Worker 采用无中心设计,Master 主要负责 DAG 切分,任务的提交以及监控,监听与其他 Master 和
Worker 的健康状态以及容错处理。Worker 主要负责维护任务的生命周期管理,Worker 启动的时候会向 ZooKeeper 注册临时节点并维持心跳。
+
+1.2 架构的不足之处,在于任务队列基于 ZooKeeper 实现。Master 将任务数据存放到任务队列,Worker
通过分布式锁的方式去消费任务队列来执行任务,造成了延迟任务开始执行的时间。另外为保证任务队列的性能,ZooKeeper
节点中并未存储执行任务所需的全部数据。许多任务的元数据如租户,队列和任务实例信息等都需要由 Worker
操作数据库进行获取,对于复杂的工作流,时效性、任务的吞吐量、数据库压力都会成为调度系统的瓶颈。所以在 1.3 的架构设计中,我们着重考虑到减少 Worker
的压力,设计了如下新架构。
+
+### **DolphinScheduler 1.3 架构**
+
+
+
+在 1.3版本中,Master 职能更加丰富,Worker 则更加专注于执行。
+
+任务队列基于 Netty 实现。Worker 去除数据库操作,只负责任务的运行,职责更单一。Master 和 Worker
直接通信进行任务分发,降低调度延迟。Master 多种策略分发任务,Worker 节点负载均衡策略:随机、轮询以及 CPU 和内存的线性加权多种负载均衡。
+
+### **DolphinScheduler 2.X 架构**
+
+
+
+- 新增可扩展设计能力
+
+
+
+所有扩展点都采用 SPI 插件化实现,如:注册中心 SPI、数据源 SPI、任务插件 SPI、资源存储 SPI 、告警 SPI,SPI
设计保持简洁,不过多依赖第三方 JAR 包,各个插件保持独立。
+
+- 高性能:Master 重构
+
+2.0版本对 Master 进行了重构,主要优化点是去分布式锁和减少线程的利用。
+
+- - Master 重构-去分布式锁方案
+
+
+
+在 1.0 的架构中多个 Master 共同工作,和 DB 交互需要借助分布式锁,导致并发会降低。2.0架构中,去掉了分布式锁,当 Master
上下线的时候会根据自己的分片编号用合适的算发计算出自己的 command 的槽位,Master 根据槽位查询数据库获得
command,并生成工作流实例,然后来构建 DAG,生成任务实例,提交执行任务。
+
+- - Master 重构-线程池工作关系
+
+
+
+1.0 架构中的线程池使用比较多,每个工作流都会创建一个任务线程池,造成资源的大量浪费。2.0架构减少了线程池的使用。
+
+MasterSchedulerService 负责从 Command 表中分片获取 command,构建工作流实例,启动
WorkflowExecuteThread 处理,WorkflowExecuteThread 负责构建 DAG、DAG
切分、生成任务实例、提交到任务队列。同时负责处理任务状态和工作流状态变化。StateEventProcessor 负责接收 Master 和 Worker
发过来的任务状态和工作流状态变化事件,并提交 WorkflowExecuteThread 处理状态,StateWheelExecuteThread
负责任务或者工作流的超时监控。
+
+## Apache DolphinScheduler 社区发展
+
+
+
+通过以上关键性的指标可以看到从进入孵化器、从孵化器毕业,一直到现在,DolphinScheduler 在持续不断地健康发展。
+
+## 为什么选择DolphinScheduler?
+
+基于以上的几点,我们最终选择了 Apache DolphinScheduler,以下特性非常符合我们的业务需求:
+
+- 支持复杂的依赖调度。
+
+- 支持任务失败重试。
+
+- 任务告警机制。
+
+- 支持资源文件在线上传和管理。
+
+- 支持更多的丰富任务类型,如:Spark、shell、MR、Hive、python 等。
+
+- 支持集群高可用。
+
+- 可视化 DAG 界面。
+
+- 支持多租户、权限管理。
+
+- 简单易用、高扩展。
+
+# Apache DolphinScheduler 在联想的
+
+落地实践中涉及的改造点
+
+为了支持业务部门的需求,联想内部对 Apache DolphinScheduler 做了如下几点的改造:
+
+- HTTP 任务参数传递
+
+- 引入 Java Client
+
+- 接入安全认证
+
+- 项目全局参数改造
+
+## HTTP 任务参数传递
+
+在 2.X 的版本中 DolphinScheduler 已经支持了 shell、sql 任务参数的传递,但是 http 任务的参数传递还需要自研。
+
+
+
+上面的图中可以看到,在上一个 Http 任务请求参数定义时,通过 OUT 来指定输出结果的变量。
+
+
+
+而在下一个 Http 任务请求参数中来引用上一个 Http 输出结果的变量,这样就实现上下游依赖的 Http 任务参数的传递。
+
+## 引入 Java Client
+
+Java Client(执行器)是基于 Spring 开发。
+
+执行器任务不会纳入到 DolphinScheduler 的集群里来管理。Worker 可以调用 Java Client
进程的多个业务任务。另外,执行器的日志可以通过 SDK提供的日志类 TaskLogger.log 来打印出来,通过 UI 去查看。
+
+
+
+Worker 如何调用 Java Client 进程的多个业务任务呢?
+
+示例:我们在开发执行器的时候,定义业务任务方法
lenovoDemoJobHandler,在方法名上面加上类似的注@DolphinJavaMethodTask("lenovoDemoJobHandler"),通过以下
UI 指定业务任务方法以及执行器的地址,Worker 就会调用执行器对应的业务任务方法了。
+
+
+
+## 接入安全认证
+
+接入联想内部的认证,这块就不过多介绍了。
+
+## 项目全局参数改造
+
+我们首先看下在 DolphinScheduler 里面支持那些参数。
+
+首先是任务级别的参数,支持在每个任务里面自定义任务的局部参数,设置任务级别的参数后,参数优先级别是:任务参数\> 工作流定义全局参数 。
+
+**下图是设置任务参数:**
+
+
+
+如果在引入项目全局参数后,参数优先级别是:任务参数> 工作流定义全局参数 \> 项目全局参数,下图是设置:
+
+
+
+下图是任务参数、工作流定义全局参数 、项目全局参数优先级顺序。
+
+
+
+我们也可以修改工作流定义的启动参数,下图是设置工作流定义的启动参数:
+
+
+
+加入工作流定义的启动参数后,参数的优先级别谁发生稍微的变化,任务参数 > 工作流定义启动参数 >工作流定义参数 \> 项目全局参数。下图是优先级顺序:
+
+
+
+# 后期规划(Roadmap)
+
+目前社区已经支持了 3.0 版本,有以下几个改进点:
+
+- UI 重构
+
+- 支持数据质量
+
+- 支持任务组
+
+- 多种任务类型
+
+## UI 重构
+
+全新 UI,前端代码更健壮。
+
+
+
+## 数据质量
+
+通过拖拉拽生成数据质量任务,内嵌十种数据集校验规则。
+
+支持在工作流运行前进行数据质量校验过程,通过在数据质量功能模块中,由用户自定义数据质量的校验规则,实现了任务运行过程中对数据质量的严格控制和运行结果的监控。
+
+
+
+## 任务组
+
+任务组主要用于控制任务实例并发并明确组内优先级。用户在新建任务定义时,可配置当前任务对应的任务组,并配置任务在任务组内运行的优先级。当任务配置了任务组后,任务的执行除了要满足上游任务全部成功外,还需要满足当前任务组正在运行的任务小于资源池的大小。当大于或者等于资源池大小时,任务会进入等待状态等待下一次检查。当任务组中多个任务同时进到待运行队列中时,会先运行优先级高的任务。
+
+
+
+
+
+## Roadmap
+
+
+
+
+
+最后非常欢迎大家加入 DolphinScheduler 大家庭,融入开源世界!
+
+我们鼓励任何形式的参与社区,最终成为 Committer 或 PPMC,如:
+
+- 将遇到的问题通过 GitHub 上 issue 的形式反馈出来。
+
+- 回答别人遇到的 issue 问题。
+
+- 帮助完善文档。
+
+- 帮助项目增加测试用例。
+
+- 为代码添加注释。
+
+- 提交修复 Bug 或者 Feature 的 PR。
+
+- 发表应用案例实践、调度流程分析或者与调度相关的技术文章。
+
+- 帮助推广 DolphinScheduler,参与技术大会或者 meetup 的分享等。
+
+欢迎加入贡献的队伍,加入开源从提交第一个 PR 开始。
+
+- 比如添加代码注释或找到带有 ”easy to fix” 标记或一些非常简单的 issue(拼写错误等) 等等,先通过第一个简单的 PR 熟悉提交流程。
+
+注:贡献不仅仅限于 PR 哈,对促进项目发展的都是贡献。
+
+相信参与 DolphinScheduler,一定会让您从开源中受益!
\ No newline at end of file
diff --git a/config/blog/zh-cn/user.json b/config/blog/zh-cn/user.json
index 08b749b3b5..fcdc91b211 100644
--- a/config/blog/zh-cn/user.json
+++ b/config/blog/zh-cn/user.json
@@ -1,5 +1,12 @@
{
-"How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler?":
{
+"The_implementation_practice_of_Apache_DolphinScheduler_as_a_unified_scheduling_center_in_Lenovo":
{
+ "title": "Apache DolphinScheduler 在联想作为统一调度中心的落地实践",
+ "author": "Niko Zeng",
+ "dateStr": "2023-10-16",
+ "desc": "在 ApacheCon Asia 2022 Meetup上,来自联想的数据架构师、Apache
DolphinScheduler PMC & Committer 、Apache Local Community 北京成员 李岗 老师分享了 Apache
DolphinScheduler 在联想作为统一调度中心的落地实践。...",
+ "img": "/img/2023-10-16/1.png"
+ },
+"How_does_the_national_dairy_giant_Yili_open_up_a_path_for_enterprise_digital_transformation_based_on_Apache_DolphinScheduler":
{
"title": "国民乳业巨头伊利如何基于 DolphinScheduler 开辟企业数字化转型“蹊径”?",
"author": "Niko Zeng",
"dateStr": "2023-10-11",