当前位置: 首页 > news >正文

漳州网站开发制作棋牌展览中心近期展会

漳州网站开发制作棋牌,展览中心近期展会,昆明网站搜索优化,紧急大通知狼拿笔记好目录 一、前言 二、定时任务调度框架概述 2.1 为什么需要定时任务调度框架 2.2 定时任务调度使用场景 三、PowerJob 介绍 3.1 PowerJob 概述 3.2 PowerJob 功能特性 3.3 PowerJob 应用场景 3.4 PowerJob 与其他同类产品对比 四、PowerJob 部署 4.1 PowerJob 架构 4.…目录 一、前言 二、定时任务调度框架概述 2.1 为什么需要定时任务调度框架 2.2 定时任务调度使用场景 三、PowerJob 介绍 3.1 PowerJob 概述 3.2 PowerJob 功能特性 3.3 PowerJob 应用场景 3.4 PowerJob 与其他同类产品对比 四、PowerJob 部署 4.1 PowerJob 架构 4.2 部署方式介绍 4.3 idea本地部署 4.3.1 获取源码 4.3.2 导入idea 4.3.3 创建数据库 4.3.4 修改配置文件 4.3.5 启动服务 4.3.6 用户注册 4.4 linux部署 4.4.1 本地打包 4.4.2 上传服务器并启动 五、PowerJob快速使用 5.1 新建任务 5.2 修改配置文件并启动服务 5.3 任务执行日志 六、springboot接入PowerJob 6.1 springboot接入PowerJob操作过程 6.1.1 引入依赖包 6.1.2 配置连接信息 6.1.3 自定义执行器类 6.1.4 新建任务并使用自定义执行器 6.1.5 执行任务 七、写在文末 一、前言 定时调度这类需求在很多项目的业务场景中基本上都会涉及到尤其是分布式微服务项目涉及到调度的场景随处可见。对一个运行中的项目来说接入定时调度技术难度并不大比如像spring自带的Scheduled 注解老牌调度框架Quartz 以及Spring 提供了 TaskScheduler 和 ThreadPoolTaskScheduler 接口都可用于调度任务的执行。 但是随着项目架构的微服务化改造之后传统的只有单一调度功能的技术组件很难再满足复杂业务场景下的调度需求比如任务重试任务转移等这就需要功能更强大的带有分布式调度的组件像xxl-jobElasticJobPowerJob 等不仅功能更强大而且提供了可视化的UI配置界面能够更好的适配分布式调度任务下的各种场景。 二、定时任务调度框架概述 2.1 为什么需要定时任务调度框架 定时调度任务框架在实际应用中有非常重要的作用具体来说 自动化操作 定时调度任务框架能够自动执行预定的操作如数据备份、系统监控等减少人为干预的需要提高效率。 任务管理 通过任务框架可以对各种任务进行管理和监控包括任务执行状态、时间安排以及错误处理等。 资源优化 合理地安排任务的执行时间可以更好地利用系统资源避免任务之间的冲突和资源浪费。 提高可靠性 通过定时调度任务框架可以确保重要任务按时执行从而提高系统的可靠性和稳定性。 2.2 定时任务调度使用场景 定时任务调度框架适用于很多场景包括但不限于以下几个方面 数据处理和清洗 定时任务可以用于对数据进行周期性的处理和清洗例如数据备份、数据同步、数据转换等操作。 定时任务调度 显而易见定时任务框架最主要的用途就是调度各种类型的定时任务确保任务按照预定的时间和规则执行。 系统监控和报告 定时任务可用于收集系统指标、生成报告和执行健康检查帮助监控系统的运行状态并及时发现问题。 发送通知 定时任务可以用于定期发送邮件通知短信例如定时发送报表、定时提醒等。 定时数据采集 定时任务可用于周期性地从外部数据源获取数据用于分析、处理或展示。 缓存刷新 定时任务可用于定期刷新缓存数据保持缓存数据的最新性提高系统性能。 三、PowerJob 介绍 3.1 PowerJob 概述 PowerJob 是一个基于分布式任务调度和数据处理框架用于解决任务调度和数据处理的问题。它使用 Spring Boot 和 Spring Cloud 进行开发支持多种任务类型包括定时任务、异步任务、数据处理等。 官网地址PowerJob 具体来说 它提供了可靠的任务调度、分布式计算、高可用性和自动扩展等功能使得分布式任务调度更加方便、高效和可靠 PowerJob 基于分布式协调服务如ZooKeeper和分布式消息队列如RocketMQ实现任务的调度和执行 PowerJob 支持将任务分布在多台机器上执行通过对任务的监控和管理实现任务的可靠执行 PowerJob还提供了丰富的任务调度功能如定时触发、依赖关系、失败重试、超时控制等满足不同业务场景下的任务调度需求 3.2 PowerJob 功能特性 PowerJob原OhMyScheduler是全新一代分布式任务调度与计算框架其主要功能特性如下 使用简单 提供前端Web界面允许开发者可视化地完成调度任务的管理增、删、改、查、任务运行状态监控和运行日志查看等功能。 定时策略完善 支持 CRON 表达式、固定频率、固定延迟和API四种定时调度策略。 执行模式丰富 支持单机、广播、Map、MapReduce 四种执行模式其中 Map/MapReduce 处理器能使开发者寥寥数行代码便获得集群分布式计算的能力。 工作流支持 支持在线配置任务依赖关系DAG以可视化的方式对任务进行编排同时还支持上下游任务间的数据传递以及多种节点类型判断节点 嵌套工作流节点。 执行器支持广泛 支持 Spring Bean、内置/外置 Java 类另外可以通过引入官方提供的依赖包一键集成 Shell、Python、HTTP、SQL 等处理器应用范围广。 运维便捷 支持在线日志功能执行器产生的日志可以在前端控制台页面实时显示降低 debug 成本极大地提高开发效率。 依赖精简 最小仅依赖关系型数据库MySQL/**PostgreSQL/Oracle/MS SQLServer...** 高可用 高性能 调度服务器经过精心设计一改其他调度框架基于数据库锁的策略实现了无锁化调度。部署多个调度服务器可以同时实现高可用和性能的提升支持无限的水平扩展。 故障转移与恢复 任务执行失败后可根据配置的重试策略完成重试只要执行器集群有足够的计算节点任务就能顺利完成。 3.3 PowerJob 应用场景 PowerJob 具备其他的任务调度框架的功能同时还加入了一些其他的新功能特性比如工作流分布式处理业务等官方给出的场景应用如下 有定时执行需求的业务场景如每天凌晨全量同步数据、生成业务报表、未支付订单超时取消等 有需要全部机器一同执行的业务场景如使用广播执行模式清理集群日志 有需要分布式处理的业务场景比如需要更新一大批数据单机执行耗时非常长可以使用Map/MapReduce 处理器完成任务的分发调动整个集群加速计算 有需要延迟执行某些任务的业务场景比如订单过期处理等。 更通用来说PowerJob 具备如下普适的使用场景 定时任务调度 PowerJob 提供了灵活的定时任务调度功能可以按照设定的时间规则执行任务适用于定时统计、数据备份等场景。 分布式任务协调 PowerJob 可以协调和管理分布式系统中的各个任务节点确保任务的顺利执行和结果的一致性。 数据处理和计算 PowerJob 可用于处理大规模数据集的计算和处理任务支持并行计算和分布式处理提高任务执行效率。 实时数据处理 PowerJob 支持实时数据处理任务可以满足对数据处理速度要求较高的应用场景如实时监控、实时报表生成等。 弹性扩展 PowerJob 可以根据任务负载自动进行弹性扩展提高系统的稳定性和可靠性。 3.4 PowerJob 与其他同类产品对比 PowerJob 的设计目标为企业级的分布式任务调度平台即成为公司内部的任务调度中间件。整个公司统一部署调度中心 powerjob-server旗下所有业务线应用只需要依赖 powerjob-worker 即可接入调度中心获取任务调度与分布式计算能力。 在任务调度的解决方案中行业内也有不少知名成熟的组件比如xxl-jobelastic-job等下面列举几种常用的任务调度技术框架方便进行学习和对比。 QuartZxxl-jobSchedulerX 2.0PowerJob定时类型CRONCRONCRON、固定频率、固定延迟、OpenAPICRON、固定频率、固定延迟、OpenAPI任务类型内置Java内置Java、GLUE Java、Shell、Python等脚本内置Java、外置JavaFatJar、Shell、Python等脚本内置Java、外置Java容器、Shell、Python等脚本分布式任务无静态分片MapReduce 动态分片MapReduce 动态分片在线任务治理不支持支持支持支持日志白屏化不支持支持不支持支持调度方式及性能基于数据库锁有性能瓶颈基于数据库锁有性能瓶颈不详无锁化设计性能强劲无上限报警监控无邮件短信邮件提供接口允许开发者扩展系统依赖关系型数据库MySQL、Oracle...MySQL人民币任意 Spring Data Jpa支持的关系型数据库MySQL、Oracle...DAG 工作流不支持不支持支持不支持 四、PowerJob 部署 4.1 PowerJob 架构 下图是powerjob官方架构图从架构图颜色可以看出主体就分了两个大块和一小条调度中心、执行器、Akka关于其核心的组件做如下介绍说明 调度中心 powerjob-server PowerJob 的设计目标为企业级的分布式任务调度平台即成为调度中间件让任意业务线的应用仅需要依赖 powerjob-worker 即可获取任务调度与分布式计算的能力。因此PowerJob 的理想部署模式为一个公司统一部署 powerjob-server 集群各业务线应用直接接入使用。 执行器 powerjob-worker 根据以前对定时任务的理解用过Quartz的话这里相当于Job这个接口用过ElasticJob的话最起码相当于Job接口中的一种比如SimpleJob接口用过xxl-job的话这里也是同理相当于使用了注解XxlJob的方法。因此所有需要执行的任务mars酱的理解都需要依赖powerjob-worker的。 Akka ActorSystem 基于Actor模型设计的专用于构建高度并发、分布式和弹性的工具包号称单台机器上高达 200 亿条消息/秒。从架构图来看PowerJob用来做数据交换传输这么牛逼的中间协议处理者看来PowerJob团队一定是想往大了搞的。 4.2 部署方式介绍 PowerJob 提供了多种部署方式比如以jar包的方式在服务器部署运行也可以进行docker容器部署。那么部署的是什么呢实际上就是在上面架构图中介绍的即powerjob-server。简单理解就是说powerjob-server就是一个任务调度中心的服务端通过 powerjob-server用户可以方便地管理和调度分布式任务实现任务的高效执行和监控。同时它支持任务的依赖关系配置、任务失败重试、任务超时处理等功能能够帮助用户构建稳定可靠的任务调度系统。 可对比理解很多技术中间件的服务端像mysqles等都需要先搭建一个服务端然后应用才能接入进去执行自身的业务操作。 powerjob部署方式 本地idea部署 即本地直接运行工程启动服务端 开发或测试的时候可以使用生产环境不允许 linux部署 将源码下载之后进行打包构建然后在linux上启动 docker部署 通过docker命令启动powerjob-server的镜像 4.3 idea本地部署 4.3.1 获取源码 通过git或gitee下载源码到本地 这里我使用4.3.9的版本 4.3.2 导入idea 将工程导入idea之后工程结构如下部署测试阶段重点关注下面标注的两个模块 4.3.3 创建数据库 powerjob运行过程中产生的调度数据需要进行持久化存储因此需要提前创建数据库在powerjob-server启动时会自动创建数据表。 CREATE DATABASE IF NOT EXISTS powerjob-daily DEFAULT CHARSET utf8mb4; 4.3.4 修改配置文件 找到下面这个配置文件 修改位置1数据库连接 修改数据库连接地址jdbc-url指向自己的数据库地址 修改数据库连接的用户名和密码 ####### 外部数据库配置需要用户更改为自己的数据库配置 ####### spring.datasource.core.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.core.jdbc-urljdbc:mysql://IP:3306/powerjob-daily?useUnicodetruecharacterEncodingUTF-8serverTimezoneAsia/Shanghai spring.datasource.core.usernameroot spring.datasource.core.passwordroot spring.datasource.core.maximum-pool-size20 spring.datasource.core.minimum-idle5 修改位置2 可以使用mongodb只需开启一下即可 也可以使用mysql配置连接一下mysql的连接即可 ####### mongoDB配置非核心依赖通过配置 oms.mongodb.enablefalse 来关闭 ####### #oms.storage.dfs.mongodb.urimongodbsrv://zqq:No1Bug2Please3!cluster0.wie54.gcp.mongodb.net/powerjob_daily?retryWritestruewmajority oms.storage.dfs.mysql_series.drivercom.mysql.cj.jdbc.Driver oms.storage.dfs.mysql_series.urljdbc:mysql://IP:3306/powerjob-daily?useUnicodetruecharacterEncodingUTF-8serverTimezoneAsia/Shanghai oms.storage.dfs.mysql_series.usernameroot oms.storage.dfs.mysql_series.passwordroot oms.storage.dfs.mysql_series.auto_create_tabletrue 修改位置3邮件设置 ####### 邮件配置不需要邮件报警可以删除以下配置来避免报错 ####### spring.mail.hostsmtp.163.com spring.mail.usernamezqq163.com spring.mail.passwordGOFZPNARMVKCGONV spring.mail.properties.mail.smtp.authtrue spring.mail.properties.mail.smtp.starttls.enabletrue spring.mail.properties.mail.smtp.starttls.requiredtrue 其他的配置保持默认即可用到的时候再配置也可以。 4.3.5 启动服务 powerjob-server-starter模块是一个springboot工程直接启动即可启动完成后可以看到相关的数据表初始化出来了 访问地址http://127.0.0.1:7700来到下面的控制台界面 4.3.6 用户注册 注册一个应用这个应用可以理解为一个账户注册完成之后用这个应用账号和密码登录 登录之后就来到控制台主页 界面上功能的的具体使用后文将会陆续提到。 4.4 linux部署 4.4.1 本地打包 使用maven命令打出jar包 4.4.2 上传服务器并启动 这里做下模拟找到打好的jar然后使用java -jar命令启动即可 五、PowerJob快速使用 5.1 新建任务 在任务管理 —新建任务创建一个新的任务 填写表单参数注意标注的是非必填的内容如果不清楚参数含义的话 在上面的表单项中任务每隔10秒执行一次创建完成之后在任务列表页就可以看到这条新建的任务。 5.2 修改配置文件并启动服务 找到工程中的worker-samples模块该模块提供了一些测试用的任务样例即任务的处理器示例可直接使用 使用之前首先要修改配置文件中的应用名称使用上午中创建的那个应用 我们选择样例中的StandaloneProcessorDemo这个类作为测试在上面的任务表单参数中也使用的是这个类的全类名以上配置都完成之后运行SampleApplication即可。然后在任务列表中点击运行。 稍等一会在控制台上面就能看到类中输出的日志信息而后按照没10秒的频率输出同时还将任务中的参数输出了出来。 5.3 任务执行日志 点击任务后的更多—运行记录可以查看任务运行时的日志信息。 点击每一条日志记录进去可以查看每一条执行日志的详情如果任务执行过程中有报错也可以通过检查日志进行分析定位。 六、springboot接入PowerJob 如何基于当前的springboot项目接入PowerJob呢下面看具体的操作步骤。 6.1 springboot接入PowerJob操作过程 6.1.1 引入依赖包 依赖包的版本可以根据自身的需求选择这里选择版本时尽量与powerjob服务端版本保持一致 dependencygroupIdtech.powerjob/groupIdartifactIdpowerjob-worker-spring-boot-starter/artifactIdversion4.3.8/version /dependency 6.1.2 配置连接信息 注意应用名称填写上面注册的那个应用名称这里推荐直接将源码中样例的配置文件拿过来稍做修改即可 server.port7788 spring.jpa.open-in-viewfalse powerjob.worker.enabledtrue powerjob.worker.allow-lazy-connect-serverfalse powerjob.worker.port27777 powerjob.worker.app-nameapp_test powerjob.worker.server-address127.0.0.1:7700,127.0.0.1:7701 powerjob.worker.protocolhttp powerjob.worker.store-strategydisk powerjob.worker.max-result-length4096 powerjob.worker.max-appended-wf-context-length4096 6.1.3 自定义执行器类 自定义一个执行器实现BasicProcessor接口然后重写里面的process方法可以参考上面的源码工程中的示例类变现 import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor;Component Slf4j public class MyProcessor implements BasicProcessor {Overridepublic ProcessResult process(TaskContext taskContext) throws Exception {log.info(MyProcessor fetch ...);return new ProcessResult(true, taskContext : ProcessResult fetch success );} } 6.1.4 新建任务并使用自定义执行器 在控制台创建一个新的任务并使用上述自定义的执行器如下图 6.1.5 执行任务 运行springboot工程启动完成后选择任务列表中上面的这个自定义执行器任务点击执行 然后就能看到任务开始执行了控制台可以看到代码中的日志输出   同时任务的执行日志也可以看到详细的执行信息  七、写在文末 分布式调度任务在越来越多的业务场景中发挥着重要的作用在一些大型的平台中任务调度甚至可以作为一个重要的业务板块承担着不可替代的角色不管是哪种任务调度框架掌握其核心的设计思想才能根据自身的场景选择合理的任务调度框架进行使用本篇到此结束感谢观看
http://www.hkea.cn/news/14377506/

相关文章:

  • seo做子网站淘宝关键词排名是怎么做的
  • 山西设计网站公司wordpress外贸 一灯
  • 网站建设储蓄卡海南省建设监理协会网站
  • 营销型网站的目标是网站 建立目录出错
  • 网站域名备案更改吗搭建合作平台
  • 黄石网站建设多少钱优异网站
  • 法律网站模板怎么做一个网站app吗
  • 苏州优化网站公司地方网站模板
  • 免费软件漫画搜索引擎优化的根本目的
  • 外贸营销型网站策划中seo层面包括电子商务做网站实训体会
  • 口碑好的黄石网站建设重庆网站建设技术支持重庆互联网
  • 苏州高新区建设局网站管网郑州网站制作公司汉狮
  • 网站页面规范广东广州快速网站制作平台
  • 直播网站源码免费下载郑州模板建站系统
  • php网站开发有什么软件陕西省建设监理协会网站
  • 企业网站建设协议寄生虫网站排名代做
  • 做网站 如何注册公司网站被降权会发生什么
  • 建一个在线商城网站wordpress seo 优化
  • 中英文网站建设大概多少钱网站改版意见
  • 中国煤炭建设协会网站公司网站创建
  • 那个网站可以做logowordpress首页无法找到
  • 哪些大学网站做的比较好通付盾 建设网站
  • wordpress怎么首页幻灯片淘宝关键词优化软件
  • 设计师兼职网站网站设计如何收费
  • 晋中公司做网站邯郸贴吧网站
  • 做网站需要用服务器吗怎样建设自己网站的后台
  • 网站关键词快速排名技术浅谈博物馆网站建设的意义
  • 网站备案的原则免费公司注册网站吗
  • lunix安装wordpressseo变现培训
  • 可以自己做网站经营吗个人网站免费域名