ITPub博客

首页 > 数据库 > 数据库开发技术 > 分布式调度系统剖析与实践

分布式调度系统剖析与实践

原创 数据库开发技术 作者:greencoatman 时间:2024-06-29 09:30:00 0 删除 编辑

服务运行环境

RPC服务端

  • 服务管理平台SDK

RPC客户端

  • 服务管理平台SDK

服务管理平台运行环境

控制中心

  • 服务状态维护

  • 配置数据同步

  • 监控数据同步

  • 指令数据下发

数据收集中心

  • 流量计数器

  • 统计任务

  • 落地任务

  • 流量控制

  • 告警

可视化平台

  • 服务方管理

  • 调用方管理

  • 关系管理

  • 配置管理

  • 流量视图

  • 质量视图

  • 服务降级

  • 服务熔断

  • 流程工单

  • 告警管理

嵌入式模块

  • 统计模块

  • 流量把控

平台环境

  • 质量与监控:

    • 计数器

    • 统计任务

    • 落地任务

    • 监控报表

  • 管理平台:

    • 服务管理

    • 调用管理

    • 关系管理

    • 工单管理

    • 配置管理

  • 控制中心:

    • 服务状态维护

    • 配置数据同步

    • 监控指令发送

数据层

  • WCache:高速缓存

  • MySQL:业务模型、统计数据

  • ESB:解耦消息


分布式调度系统

分布式调度系统剖析与实

中心化架构

  • 调度中心

    • 作为核心控制节点,负责协调和调度各个执行器的操作。

  • 执行器A

  • 执行器B

  • 执行器C

  • 执行器D

  • 执行器E

在中心化架构中,各个执行器(A、B、C、D、E)通过调度中心进行协调和管理,调度中心是系统的核心部分。

去中心化架构

  • 调度-执行器A

  • 调度-执行器B

  • 调度-执行器C

  • 调度-执行器D

  • 调度-执行器E

在去中心化架构中,每个执行器(A、B、C、D、E)都包含调度功能,彼此之间可以独立运作,不依赖于一个中心节点来进行调度和管理。

总结

  • 中心化架构:依赖于一个核心调度中心来管理和协调所有执行器。

  • 去中心化架构:每个执行器都具有调度功能,系统更具弹性和独立性,不依赖单点控制。

资源管理和任务优先级

  1. 应用级别资源管理:

  • 可以控制一个应用同时运行的最大任务数量,防止资源过度占用。

  • 任务优先级队列:

    • 通过任务优先级实现类似于 Yarn 的任务调度。高优先级任务会抢占低优先级任务的资源,从而优先执行高优先级任务。

    • 超过并发数的任务在队列中等待,按优先级顺序调度。

    扩展 Kubernetes (K8s),而不仅仅是 Mesos

    • 扩展 Elastic-Job 的支持范围,增加对 Kubernetes (K8s) 的支持,而不仅限于 Mesos。Kubernetes 是目前流行的容器编排工具,扩展对其支持能更好地满足现代应用部署和管理需求。

    集群资源利用率最大化

    1. 资源利用率最大化:

    • 优化集群资源的使用,使得资源利用率达到最大化。

  • 资源等待时间最小化:

    • 每个任务的资源等待时间最小化,提升任务调度和执行效率。

  • 分组控制资源配额:

    • 能分组控制资源分配和使用,灵活管理资源。

  • 支持临时紧急任务:

    • 能支持临时的紧急任务,确保在需要时可以快速响应和处理。

    总结

    Elastic-Job 的未来发展方向包括:

    • 提升资源管理和任务调度的智能化和灵活性。

    • 扩展对 Kubernetes 的支持,提升适应性和兼容性。

    • 最大化集群资源利用率,优化资源等待时间,并能支持分组管理和临时紧急任务。

    原文作者:二进制跳动;如有侵权,请联系管理员删除。

    请登录后发表评论 登录
    全部评论

    注册时间:2022-07-08

    • 博文量
      312
    • 访问量
      141133