加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 大数据 > 正文

架构迭代无法一蹴而就 做开源亦是这样

发布时间:2022-09-03 09:24:23 所属栏目:大数据 来源:互联网
导读:Apache DolphinScheduler是基于Apache开源社区理念打造的知名DataOps 领域开源项目。作为一个分布式去中心化,易扩展的可视化工作流任务调度平台,Apache DolphinScheduler目前已累计在1000多家公司生产环境中作为企业的核心调度系统。在近日的【TTalk】系
  Apache DolphinScheduler是基于Apache开源社区理念打造的知名DataOps 领域开源项目。作为一个分布式去中心化,易扩展的可视化工作流任务调度平台,Apache DolphinScheduler目前已累计在1000多家公司生产环境中作为企业的核心调度系统。在近日的【T·Talk】系列技术分享活动中,Apache Member、Apache DolphinScheduler PMC Chair、白鲸开源联合创始人代立冬老师详细介绍了Apache DolphinScheduler架构迭代中的经验与教训,并分享了自己对开源的理解与思考。【T·Talk】也将本次分享的精彩内容进行了整理,希望大家喜欢。

  能够拥有如此多的用户群体,主要由于Apache DolphinScheduler拥有着以下几个关键优势:
 
  高可靠性:调度最重要的能力是可靠性。Apache DolphinScheduler在架构上采用了去中心化的多Master和多Worker的设计。所有的Master Server都会同时工作,包括Worker也是无中心的。且在这样的架构下采用了任务队列机制去避免过负载,这样可以有效避免机器卡死。
  简单易上手:ApacheDolphinScheduler的前身是EasyScheduler,Easy和Simple一直是我们的核心理念。ApacheDolphinScheduler拥有可视化的拖拉拽界面,所有的定义都是通过拖拉拽形成的,同时也有OpenAPI与第三方系统对接。有一些习惯于使用Python的小伙伴,也可以使用PY DolphinScheduler去创建工作流定义。

  在此之下还有数个对等的Master Server,Master Server会根据一些算法,例如随机、轮询或是基于CPU和内存的线性加权等给Worker分任务,WorkerServer则会在接收任务时响应,并在完成任务时回应Response。大数据调度很重要的特点是很多任务是离线的,任务的运行时间较长,大部分任务都会超过30分钟甚至几个小时,所以需要分响应和Response。Master Server和Worker Server都会注册ZK集群,主要负责服务的注册、监听。如果Master或Worker Server挂了,需要恢复,包括一些容错的机制,以及极个别情况下,会用到分布式锁。去分布式锁、减少数据库轮询是架构改造的核心目标之一。Master Server在工作时,先抢一把锁,谁抢到锁谁工作。这时ZK在充当分布式锁的过程中,性能是比较低的,对此我们做了去分布式锁的优化,大幅减少线程的使用。
 
  1.3架构与1.2架构也存在一个明显的区别,1.3架构在1.2架构的基础上删除了TaskQueue。之所以如此设计,是因为越来越多的用户发现,在任务较多的时候,Worker Server能够到达上百台。由于其用TaskQueue做了缓冲,因此会给数据库造成极大的压力,仅是维护一个数据库连接池就有可能都会把数据库的连接池耗尽。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读