分布式任务调度框架和微服务的区别

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 分布式大行其下的时代,让大家彻底的抛弃了传统陈旧的技术框架。几乎每一个技术人都知道和掌握了微服务架构,微服务自然有它的美,但是所以技术框架都必须服务于业务,结合自身业务选取甚至自研适合自身的技术框架也是技术人必须首先考虑的事情。分布式作业调度框架,是一个开发迅速、学习简单、轻量级、易扩展、高可用分布式任务调度框架。

01前言


分布式大行其下的时代,让大家彻底的抛弃了传统陈旧的技术框架。几乎每一个技术人都知道和掌握了微服务架构,微服务自然有它的美,但是所以技术框架都必须服务于业务,结合自身业务选取甚至自研适合自身的技术框架也是技术人必须首先考虑的事情。分布式作业调度框架,是一个开发迅速、学习简单、轻量级、易扩展、高可用分布式任务调度框架。

02分布式任务调度框架


2.1 任务调度框架的简介

任务调度是指基于给定的时间点,给定的时间间隔或者给定执行次数自动的执行任务。任务调度涉及到多线程并发、运行时间规则定制及解析、线程池的维护等诸多方面的工作。

  • 同一服务多个实例的任务存在互斥时,需要统一协调
  • 定时任务的执行需要支持高可用、监控运维、故障告警
  • 需要统一管理和追踪各个服务节点定时任务的运行情况,以及任务属性信息,例如任务所属服务、所属责任人

2.2 常见分布式任务调度框架

目前主流的分布式作业调度平台,主要有:当当网开源项目Elastic-job、大众点评开源项目xxl-job、唯品会开源项目Saturn、阿里巴巴早期开源项目TBSchedule等。

e320050a245c0eac1f0e1c4eef4b7efd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2.3 实现原理

Java有个标准定时任务Quartz,它的关注点在于定时任务而非数据,并无一套根据数据处理而定制化的流程。虽然Quartz可以基于数据库实现作业的高可用,但缺少分布式并行调度的功能。

分布式任务调度框架,就是基于Quartz的理念,支持任务动态分片、集群部署、轻量级易上手的分布式定时作业调度架构。

详细查看另一篇文章,专门介绍Saturn:唯品会开源分布式作业调度平台Saturn

03分布式微服务框架


3.1 微服务框架的简介

官方对于微服务并没有一个详细的定义,最初是有从传统的单体式应用架构,可以做垂直于水平拆分而衍生出的一种架构理念。于是,分布式微服务技术就因运而生了。一个去中心化的多业务独立部署和运维的SOA(面向服务的架构)集群。

3.2 主流的微服务框架

目前主流的微服务框架有:国外开源项目SpringCloud、阿里巴巴开源项目Dubbo和SpringCloudAlibaba(基于SpringCloud)、新浪微博Motan、腾讯开源项目Tars等。

国内用的最多的框架是SpringCloud和Dubbo,详细查看另一篇文章:SpringCloud与Dubbo的比较

3.3 原理简介

简单来说,微服务就是一种将一个单一应用程序拆分为一组小型服务的方法,拆分完成后,每一个服务都运行在独立的进程中,服务于服务之间采用轻量级的通信机制来进行沟通(Spring Cloud 中采用基于HTTP 的 RESTful API)。

微服务可以理解为是 SOA (面向服务的体系结构) 的一个传承,一个本质的区别是微服务是一个真正分布式、去中心化的,微服务的拆分比 SOA 更加彻底。

3.4 微服务的优势

  1. 复杂度可控
  2. 独立部署
  3. 技术选型灵活
  4. 较好的容错性
  5. 较强的可扩展性


04任务调度和微服务的区别


任务调度可用于精确至时分秒定时执行的作业,可重复执行,可动态设置分片参数来设置任务的并发大小数。

1、轻量级,支持通过Web页面对任务进行动态CRUD操作,操作简单,一分钟上手,这点应该都差不多
2、只依赖数据库作为集群注册中心,接入开发简单,不需要ZK
3、高可用、解耦、高性能、监控报警、分片、重试、故障转移
4、团队持续开发
5、支持后台直接查看每个任务执行实时日志

微服务:去中心化,基于业务拆分的某个独立部署和运行的模块,高可用高扩展。

●单一职责原则

指的是每一个微服务模块,只关心自己的业务规则。例如订单模块只关心订单的相关业务,不牵扯其他业务的逻辑。

●服务自治原则

每一个微服务模块的开发,需要有自己的开发、测试、运维、部署这一条独立的栈,并且有自己的数据库等一切,完全把其当成一个单独的项目来做,不牵扯到其它无关业务。

●轻量级通信原则

微服务的通信协议需要跨平台、跨语言的通信协议,因为微服务是不绑定技术栈的,不论使用Java、PHP还是.net去开发Web系统,它们之间的通信一定是去语言特色的。

●接口明确原则

前面提到了微服务的“接口调整成本高”,那么怎么去避免它呢?我们一开始就应该规划好微服务的模块是一种什么样的模型,尽量去避免A接口的改动会导致B接口的改动这种情况。

05总结


技术框架没有好坏之分,只有适合于不适合的概念。基于各自业务和场景,选择适合的技术框架是每一个技术人必须要首先考虑的事情。业务驱动技术,技术为业务服务,每一个伟大的技术架构的诞生都是从业务本身抽象和发展而来。随着时代的发展,先进的技术架构必然淘汰陈旧的技术框架。保持持续学习的热情和心态才能让我们跟随科技发展的脚步。

相关文章
|
2月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
2月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
24天前
|
存储 监控 数据可视化
常见的分布式定时任务调度框架
分布式定时任务调度框架用于在分布式系统中管理和调度定时任务,确保任务按预定时间和频率执行。其核心概念包括Job(任务)、Trigger(触发器)、Executor(执行器)和Scheduler(调度器)。这类框架应具备任务管理、任务监控、良好的可扩展性和高可用性等功能。常用的Java生态中的分布式任务调度框架有Quartz Scheduler、ElasticJob和XXL-JOB。
329 66
|
17天前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
56 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
5天前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
38 7
|
17天前
|
Java 关系型数据库 数据库
微服务SpringCloud分布式事务之Seata
SpringCloud+SpringCloudAlibaba的Seata实现分布式事务,步骤超详细,附带视频教程
40 1
|
1月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
81 2
|
1月前
|
存储 运维 数据可视化
如何为微服务实现分布式日志记录
如何为微服务实现分布式日志记录
89 1
|
2月前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
125 6
|
2月前
|
数据库
如何在Seata框架中配置分布式事务的隔离级别?
总的来说,配置分布式事务的隔离级别是实现分布式事务管理的重要环节之一,需要认真对待和仔细调整,以满足业务的需求和性能要求。你还可以进一步深入研究和实践 Seata 框架的配置和使用,以更好地应对各种分布式事务场景的挑战。
61 6