用户您好!请先登录!

分类目录工作流

分布式任务调度(xxl-job、Elastic-job、Saturn)

1. 业务场景

  • 保险人管系统每月工资结算,平安有150万代理人,如何快速的进行工资结算(数据运算型)
  • 保险短信开门红/电商双十一 1000w+短信发送(短时汇聚型)

工作中业务场景非常多,所涉及到的场景也各不相同,这使得我们定时任务系统应该集管理、调度、任务分配、监控预警为一体的综合调度系统,如何打造一套健壮的、适应不同场景的系统,技术选型尤其重要。

针对以上场景我们需要我们的分布式任务系统具备以下能力:

  1. 支持多种作业类型(shell作业/Java作业)
  2. 支持作业HA,负载均衡和失败转移
  3. 支持弹性扩容(应对开门红以及促销活动)
  4. 支持Job Timeout 处理
  5. 支持统一监控和告警
  6. 支持作业统一配置
  7. 支持资源隔离和作业隔离

阅读更多

工作流调度工具azkaban 和oozie的对比

工作流调度:一个完整的数据分析系统通常都是由大量任务单元组成:shell脚本程序,java程序,mapreduce程序、hive脚本等,各任务单元之间存在时间先后及前后依赖关系。为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行。

调度工具性能对比:Apache Oozie,其配置工作流的过程是编写大量的XML配置,而且代码复杂度比较高,不易于二次开发。ooize相比azkaban是一个重量级的任务调度系统,功能全面,但配置使用也更复杂。如果可以不在意某些功能的缺失,轻量级调度器azkaban是很不错的候选对象。

阅读更多

工作流引擎参考

引用自  https://github.com/meirwah/awesome-workflow-engines

完整的产品

  • Airflow
    • 基于python的平台,用于运行任务的有向无环图(DAG)
  • Argo
    • 开源容器本地工作流引擎,用于完成Kubernetes上的工作
  • Azkaban
    • -批量工作流作业调度程序创建在LinkedIn运行Hadoop作业。
  • Brigade
    • – Brigade是一个工具,运行脚本,自动化任务在云中-作为您的Kubernetes集群的一部分。
  • Cadence
    • 一个编排引擎,执行由Uber Engineering开发的异步长时间运行的业务逻辑。
  • CloudSlang
    • -工作流引擎自动化您的DevOps用例。

阅读更多

Netflix开源的微服务编排引擎,支持可视化工作流定义

导读:相对于传统架构,微服务架构下更需要通过各微服务之间的协作来实现一个完整的业务流程,可以说服务编排是微服务架构下的必备功能。Netflix Conductor作为服务编排的佼佼者,从推出就引起很大关注。本文深入浅出的介绍了起基本功能和设计。

Netflix内容平台工程团队支撑了许多业务,这些业务流程由微服务任务异步驱动的。 其中一些任务是持续数天的长期进程。 这些进程在为全球观众提供字幕方面发挥着至关重要的作用。

比如:

  • Studio合作伙伴内容集成
  • 来自合作伙伴的基于IMF的内容集成
  • 在Netflix中设置新标题
  • 接收内容,编码和部署到CDN

传统做法中,这些进程是临时编排的,使用pub/sub 组合起来,直接进行REST调用,并使用数据库来管理状态。 然而,随着微服务数量和流程复杂性的增加,如果没有中央协调器,就无法了解这些分布式工作流(workflow)。

阅读更多