首页 > 其他分享 >Apache DolphinScheduler中处理任务/告警/事件相关核心思路曝光

Apache DolphinScheduler中处理任务/告警/事件相关核心思路曝光

时间:2024-08-28 16:26:21浏览次数:11  
标签:Task 处理 DolphinScheduler apache Apache org 告警 dolphinscheduler

最近在看Apache DolphineScheduler,发现DolphinScheduler在处理任务时,通过先将任务快速的存储在数据库中,然后基于对应的Task,将Task放入队列中,然后将Task进行快速消费的思路。

file

这种模型在很多框架中,都有体现。

我们知道在Master模块时处理任务的核心模块,而API模块主要是界面中操作的UI逻辑,而Alert模块是告警模块。

因此如果想要了解里面的逻辑,可以通过查看API中工作流的执行可以找到一些线索之外,可以在Master中可以了解到核心的逻辑。

如果想体验相关功能,可以参考官网的搭建过程和相关视频和公众号,这里不展开赘述。

Fetcher突破口

因此我们可以从Fetcher中找到突破口:

file

告警处理核心

AlertEventFetcher为例来了解Apache DolphineScheduler处理任务/告警/事件等的原理。

首先我们需要问自己一个问题,告警和Task任务之间又是如何串联起来的?即告警Alert和业务处理是如何串联起来的?

两者都是随项目模块启动,触发源自于相关工作流和Task处理的事件产生的告警信息,实现对应的event事件,从而进行告警,而告警是通过启动告警模块,进行队列的Put和Take处理,从而实现对应各个渠道的对接告警。

告警信息的放入:

eventPendingQueue.put(alert)

什么时候会Put?

存在告警数据的时候会put。

List<T> pendingEvents = fetchPendingEvent(eventOffset)

alertMapper.listingAlertByStatus(minAlertId, AlertStatus.WAIT_EXECUTION.getCode(), QUERY\_ALERT\_THRESHOLD)中获取告警数据。

放入到队列中,核心在saveEvent(AbstractListenerEvent event)

而调用saveEvent(AbstractListenerEvent event)的地方:

file

状态:alert_status为等待执行的状态。

从这些监听事件中,我们可以看到这里的监听事件主要和工作流处理和Task处理监听有关,即和Task和Workflow有关,也即我们最核心的业务处理。

可以根据这些事件找到对应的事件找到对应的业务逻辑处理。

eventPendingQueue.take()的地方在哪里?

org.apache.dolphinscheduler.alert.service.AbstractEventLoop#run

而调用org.apache.dolphinscheduler.alert.service.AlertEventLoop#handleEvent的地方:

alertChannel.process(alertInfo)这里会根据对应的渠道类型,进行告警。

doSendEvent的地方中有两个地方:

  • org.apache.dolphinscheduler.alert.service.AbstractEventSender#sendEvent
  • org.apache.dolphinscheduler.alert.service.AlertSender#syncHandler

工作流处理核心

同理我们可以找到处理工作流的核心逻辑,串联的要点在于:

commandFetcher.fetchCommands()

因此我们可以思考如何获取对应的command的逻辑,以及获取之后的处理。

获取command之后,放入到workflowEventQueue队列中。

处理的核心逻辑在:

org.apache.dolphinscheduler.server.master.runner.WorkflowExecuteRunnable#startWorkflow

过程:

  • initTaskQueue
  • processStart
  • submitPostNode

根据这样的思路可以找到上面相关Fetcher的处理的核心逻辑。更多细节和详情,可以去官网了解。

参考:

海豚调度官网:https://dolphinscheduler.apache.org/

Github地址:https://github.com/apache/dolphinscheduler

本文由 白鲸开源 提供发布支持!

标签:Task,处理,DolphinScheduler,apache,Apache,org,告警,dolphinscheduler
From: https://www.cnblogs.com/DolphinScheduler/p/18385015

相关文章

  • Apache Kafka 简介、使用场景及特点
    ApacheKafka简介、使用场景及特点1.什么是ApacheKafka?ApacheKafka是一种开源的分布式流处理平台,最初由LinkedIn开发,并在2011年成为Apache软件基金会的顶级项目。Kafka专为高吞吐量、低延迟的实时数据处理设计,广泛应用于各种数据流处理场景。Kafka的核心组......
  • 兴业证券基于Apache DolphinScheduler的应用实践
    文/兴业证券股份有限公司 刘洋 石良生 柳君 李致琪本文来源于网络,如有侵权,请联系删除任务调度平台,扮演着自动执行预设任务的重要角色,是业务开展过程中不可或缺的一环。随着业务规模的不断扩展,兴业证券每日需要进行数以万计的任务调度,因此,优化和提升任务调度平台的性......
  • 关于告警,要想做好,从这些方面着手
    各类监控系统都会产生告警事件,于是,就产生了FlashDuty、PagerDuty、Opsgenie这类产品,做告警事件的收敛降噪、排班认领升级等。如果你想增强自己公司的告警事件处理能力,参考(chaoxi)这些产品的功能就可以了......
  • Apache RocketMQ 批处理模型演进之路
    作者:谷乂RocketMQ的目标,是致力于打造一个消息、事件、流一体的超融合处理平台。这意味着它需要满足各个场景下各式各样的要求,而批量处理则是流计算领域对于极致吞吐量要求的经典解法,这当然也意味着RocketMQ也有一套属于自己风格的批处理模型。至于什么样的批量模型才叫“属于......
  • Apache RocketMQ 中文社区全新升级丨阿里云云原生 7 月产品月报
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • WAMP(Windows + Apache + MySQL + PHP)是在 Windows 系统上搭建本地 Web 开发环境的一种
    WAMP(Windows+Apache+MySQL+PHP)是在Windows系统上搭建本地Web开发环境的一种方式。下面是WAMP中一些常见的问题及其解决方法:启动问题启动后WAMP托盘图标显示橙色描述:WAMP启动后托盘图标显示为橙色,表示某些服务没有正常启动。解决方法:检查Apache或MySQL......
  • XAMPP 是一个非常流行的本地开发环境,用于搭建 PHP、MySQL、Apache 等服务
    XAMPP是一个非常流行的本地开发环境,用于搭建PHP、MySQL、Apache等服务。在使用XAMPP的过程中,可能会遇到各种问题。这里总结了一些常见的问题及其解决方法:安装与配置问题安装失败描述:安装过程中出现错误或安装完成后无法正常启动。解决方法:确保安装过程中没有中断。......
  • 源代码编译,Apache DolphinScheduler前后端分离部署解决方案
    转载自神龙大侠生产环境部署方案在企业线上生产环境中,普遍的做法是至少实施两套环境。测试环境线上环境测试环境用于验证代码的正确性,当测试环境验证ok后才会部署线上环境。鉴于CI/CD应用的普遍性,源代码一键部署是必要的。本文是探索对DolphinScheduler源代码改造,构建测......
  • Apache SeaTunnel技术架构演进及其在AI领域的应用
    随着数据集成需求的增长,ApacheSeaTunnel作为新一代的数据同步引擎,不仅在技术架构上不断演进,也在AI领域展现出其独特的应用价值。在CommunityOverCodeAsia2024大会上,ApacheSeaTunnelPMCChair高俊深入探讨SeaTunnel的技术演进路径,分析其在AI领域的应用案例,并展望未来的发展......
  • 构建Spring Boot应用的微服务服务监控与告警
    构建SpringBoot应用的微服务服务监控与告警大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!随着微服务架构的普及,服务监控与告警成为了保障系统稳定性的关键环节。本文将探讨如何在SpringBoot应用中构建微服务的监控与告警机制。一、微服务监控的......