![](https://img-blog.csdnimg.cn/7bdb8ea8f540492ca513a0db1c38e9e5.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 80
Java 就是 Java
Mars酱
成就自己
展开
-
Java | 一分钟掌握定时任务 | 9 - PowerJob分布式定时任务
我们选择一套框架或者技术的时候,一定要知道它的特点和功能,不能为了(学习)技术而(选择)技术,那是对产品的不负责任。有定时执行需求的业务场景:如每天凌晨全量同步数据、生成业务报表、未支付订单超时取消等。有需要全部机器一同执行的业务场景:如使用广播执行模式清理集群日志。有需要分布式处理的业务场景:比如需要更新一大批数据,单机执行耗时非常长,可以使用Map/MapReduce 处理器完成任务的分发,调动整个集群加速计算。有需要延迟执行某些任务的业务场景:比如订单过期处理等。原创 2023-05-26 10:15:22 · 3279 阅读 · 1 评论 -
Java | 一分钟掌握定时任务 | 8 - XXL-Job分布式定时任务
java定时任务的框架可真是多啊,XXL-JOB也是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,还是开源的,Mars酱只好下载下来看看了。xxl-job我省略了很多的其他的细节,比如分片流程。总的来说,xxl-job分两个部分,一个是调度中心,一个是执行器,调度中心就是admin服务,执行器需要自己写,官方提供了两个例子,一个基于springboot的,一个无框架的,任务整体的流转流程我还是补个网图:执行器往调度中心注册,并持久化;执行的时候下发到指定的执行器;原创 2023-05-23 10:04:56 · 1409 阅读 · 1 评论 -
Java | 一分钟掌握定时任务 | 7 - ElasticJob分布式定时任务
ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案。它通过弹性调度、资源管控、以及任务治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的任务生态。它的各个产品使用统一的任务 API,开发者仅需一次开发,即可随意部署。那么,追踪完源代码,大致的流程就应该是如下:1.组装基本参数(任务、频率等)->2. ScheduleJobBootstrap初始化->3.配置任务属性->4.设置各种facade->5.初始化ElasticJobExecutor。原创 2023-05-22 12:43:48 · 1632 阅读 · 1 评论 -
Java | 一分钟掌握定时任务 | 6 - Quartz定时任务
前几篇介绍了单体架构的定时任务解决方式,但是现代软件架构由于业务复杂度高,业务的耦合性太强,已经由单体架构拆分成了分布式架构。因此,定时任务的架构也随之修改。而Quartz是分布式定时任务解决方案中使用简单,结构清晰,且不依赖第三方分布式调度中间件的。上车,mars酱带你车里细说~Scheduler:调度器。用来负责任务的调度;Job:任务。这是一个接口,业务代码继承Job接口并实现它的execute方法,是业务执行的主体部分;Trigger: 触发器。也是个接口,有两个触发器比较关键,一个是,另一个是。原创 2023-05-18 19:02:03 · 2228 阅读 · 1 评论 -
Java | 一分钟掌握定时任务 | 5 - Spring Task
多线程解决了并发阻塞问题,但是不能方便的表达我们的定时方式,目前单体架构定时任务用的多的就应该是Spring Task中的注解方式了吧?Spring Scheduled注解做定时任务已经支持得很完美了,满足大部分单体架构的定时任务需要。到站下车,下一站见了~原创 2023-05-17 09:56:39 · 706 阅读 · 1 评论 -
Java | 一分钟掌握定时任务 | 4 - 多线程的Timer
JDK自带的Timer是无法做到多任务并发的,那么我们怎么处理多任务定时的并发问题呢?这章节Mars酱来研究下。Mars酱能想到的就是多线程、线程池这些关键字。原创 2023-05-16 13:07:49 · 306 阅读 · 1 评论 -
Java | 一分钟掌握定时任务 | 3 - 单机定时之Timer
这个是个JDK远古时代的api了,据考证,可以追溯到JDK 1.3 的时候,历史就不讲了,毕竟我们不是技术考古。还是按照我们以前的方式,废话少说直接上车吧。Timer和TimerTask是JDK原生提供的定时任务实现方案,简单易用,但是平时的场景也经常会有业务处理过程较长的情况,但是单个任务的执行不能影响其他任务的定时情况,所以如果处理定时任务的并发,我们可以使用线程池,下个站见。原创 2023-05-15 10:45:58 · 495 阅读 · 0 评论 -
Java | 一分钟掌握定时任务 | 2 - 分类
作者:Mars酱声明:本文章由Mars酱原创,部分内容来源于网络,如有疑问请联系本人。转载:欢迎转载,转载前先请联系我!原创 2023-05-14 09:57:36 · 70 阅读 · 0 评论 -
Java | 一分钟掌握定时任务 | 1 - 基本概念
定时任务就是在指定时间执行的一个或一串动作的行为。现实世界中,比如我们向自己心爱的女友送上祝福;给自己的好友送上祝福。那么,我们为了准时送祝福,会怎么做?当然是定好闹钟,或者是跟蛋糕店或花点预先下好订单,然后在指定好的当天,让蛋糕店和花店准时送上蛋糕 + 鲜花。这就是定时任务在现实世界中的形式,虚拟世界中,我们会定时出报表、定闹钟等等。原创 2023-05-13 12:19:17 · 206 阅读 · 1 评论 -
Java | 一分钟掌握异步编程 | 7 - 其他异步方式
实现异步方式还有很多,我认为Spring 的 @Async注解 和 ApplicationEvent 事件机制也是异步实现的一种可选方案。废话很多,上车再废话~总算爽完了~,来总结一下:实现异步的方式有很多,可以使用JDK原生的,也可以使用消息中间件的,还能使用开源框架的,具体看你的需求了,如果你单体架构,也不关心返回值,那么直接线程异步吧。如果任务之间的依赖多,改变多,那可以选择JDK的Future、CompletableFuture。原创 2023-04-12 12:06:11 · 55 阅读 · 0 评论 -
Java | 一分钟掌握异步编程 | 6 - 消息队列异步
前面几篇都是讲的JDK提供的原生的异步实现方式,其实在互联网行业中,用得最多的属消息队列了。消息队列开源的也多:Kalfka、RabbitMQ、RocketMQ等等。我只知道RocketMQ 😅。网上关于RocketMQ使用的资料很多,这里没写代码了,所以这一分钟是不是觉得舒爽?原创 2023-04-10 09:52:06 · 230 阅读 · 0 评论 -
Java | 一分钟掌握异步编程 | 5 - CompletableFuture异步
继续讲,前面讲了Future实现异步,优点缺点也都有,这里讲使用CompletableFuture机制,目前为止,应该说JDK原生提供的异步方式的最优方案就是CompletableFuture了,已知的开源框架Dubbo中的RPC协议实现、常用的注册配置中心Nacos中CP协议的具体实现JRaft模块,也使用CompletableFuture。好了,名气大,不多说了。原创 2023-04-07 00:59:39 · 127 阅读 · 2 评论 -
Java | 一分钟掌握异步编程 | 4 - Future异步
前篇Java | 一分钟掌握异步编程 | 3 - 线程异步 - 掘金 (juejin.cn)介绍了实现多线程异步处理业务的方式,但是我们无法获取到线程返回的结果,这是在JDK 5之前Java版本的小小缺陷,在Java 5之后,增加了Future机制。看来Future对于结果的获取也不是很友好,虽然相比线程池异步提升了很大的执行效率,但是结果的获取遇到计算量大的情况只能通过阻塞或者轮询的方式得到任务的结果。原创 2023-04-06 00:25:58 · 450 阅读 · 0 评论 -
Java | 一分钟掌握异步编程 | 3 - 线程异步
前两篇介绍了理论,这篇讲具体的实现方式。前言都是废话,直接上车~废话很少,让你拥有充足的一分钟,连代码中互撩的环节也省去了。线程池队列当中未被处理的任务要如何处理?正在执行的那些任务要如何处理?我认为在设计上应该保证,队列中未被处理的任务是可以随时丢弃的。下次启动线程池后,这些未处理的任务可以重新再提交给线程池,业务上不受影响。所有已经作出的状态变更都会回滚,下次执行这个任务又可以再开始。例如:使用数据库事务这个任务可以从中间状态继续执行,比如:下载文件中的断点续传。原创 2023-04-05 10:23:34 · 267 阅读 · 0 评论 -
Java | 一分钟掌握异步编程 | 2 - 异步的实现方式
废话不多说,因为废话已经在前一篇Java | 一分钟掌握异步编程 | 1 - 基本概念 - 掘金 (juejin.cn)多说。但是,这篇还是废话多~你又快乐的来了一分钟,体力还能再来一分钟吗?行的话v我50。原创 2023-04-04 01:16:24 · 82 阅读 · 0 评论 -
Java | 一分钟掌握异步编程 | 1 - 基本概念
同步、异步、阻塞、非阻塞,这些词是不是听过很多遍,但是究竟是什么意思?编码界黑话吗?哥带你搞懂基本概念,一分钟之后你将会超越99%的同行!是不是有点小激动,来,上车!同步:事情之间相互依赖,A、B、C三个事情按顺序执行,C的开始需要依赖于B的结果,B的开始需要依赖于A的结果,这个过程叫做同步。现实世界中,你想约你在Java | 动态代理及作用 - 掘金 (juejin.cn)里面撩到的女友出去吃饭,给她打电话,一直不接,于是你继续打,直到她接听了你的电话,然后她同意和你一起出去吃饭。原创 2023-04-03 13:11:28 · 45 阅读 · 0 评论 -
Java | 一分钟掌握JDK命令行工具 | 4 - 可视化分析工具
我们其实在分析的时候,也并不是必须使用命令行工具才能可以分析。JDK还提供了可视化工具让大家可以在图形化的操作系统中使用。命令行工具的作用主要作用是为了监控和分析故障。我们既可以使用JDK自带的命令行工具,也可以使用可视化分析工具,选择都很多,优点缺点都有。大家可以根据自己的选择去使用。原创 2023-04-16 21:03:50 · 413 阅读 · 0 评论 -
Java | 一分钟掌握JDK命令行工具 | 3 - 实战
前一篇罗列了一些JDK命令行工具,我们没有必要把所有命令行工具全部介绍,那样对于开发者来说不实用也没有任何价值,所有功能介绍,这件事情由且只能由JDK的发行方自己做。原创 2023-04-14 21:05:53 · 232 阅读 · 0 评论 -
Java | 一分钟掌握JDK命令行工具 | 2- 分类
最后就是使用上面的命令排列组合,来应对各种各样的场景了。不过感觉基本上很少人使用主要工具命令行去做编译工作,毕竟现代编码需要集成性编译环境,但是我们掌握如何使用这些命令行工具,可以帮助我们分析系统的性能还是很有用的。原创 2023-04-13 18:36:39 · 131 阅读 · 0 评论 -
Java | 一分钟掌握JDK命令行工具 | 1- 基础
一个优秀的开发语言,除了语法、运行环境、集成开发工具等等之外,还需要有命令行工具的加持,这样才算得上是一个强大的编译型语言。以下是官方对JDK命令行工具的说明:JDK命令行工具是Java Development Kit(JDK)提供的一组命令行实用程序,可用于开发和调试Java应用程序。这些工具包括编译器(javac),打包工具(jar),调试器(jdb),文档生成器(javadoc)等,它们都可以通过命令行或终端窗口使用。原创 2023-04-13 10:51:43 · 166 阅读 · 0 评论 -
Java | 一分钟掌握动态代理 | 实例及作用
代理实际上是一种处理问题的方式。在现实世界中,你登录不同的社交app去撩漂亮小姐姐,经过长时间的努力和你撩力值的提升,最终有一位小姐姐的心被你捕获,也终于有天,你们决定线下见面完成线下###活动。于是,你俩一次又一次的完成线下###活动。久而久之,你和小姐姐产生了深厚的情感,你俩觉得很舒服很开心,应该持续下去,于是她决定成为你的女友,一起奋(tong)斗(ju)。原创 2023-03-29 23:24:25 · 156 阅读 · 0 评论