自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ddppfamily

你在我的航程上,我在你的视线里

  • 博客(35)
  • 资源 (2)
  • 问答 (17)
  • 收藏
  • 关注

原创 JWT | 一分钟掌握JWT | 概念及实例

JWT的全称是Json Web Token。是基于RFC 7519开放标准的,它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以用作验证和相互信任,因为它是经过数字签名的。JWT 可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。

2023-05-30 08:53:08 392 3

原创 Java | 一分钟掌握定时任务 | 9 - PowerJob分布式定时任务

我们选择一套框架或者技术的时候,一定要知道它的特点和功能,不能为了(学习)技术而(选择)技术,那是对产品的不负责任。有定时执行需求的业务场景:如每天凌晨全量同步数据、生成业务报表、未支付订单超时取消等。有需要​​全部机器一同执行​​的业务场景:如使用广播执行模式清理集群日志。有需要​​分布式处理​​的业务场景:比如需要更新一大批数据,单机执行耗时非常长,可以使用Map/MapReduce 处理器完成任务的分发,调动整个集群加速计算。有需要​​延迟执行​​某些任务的业务场景:比如订单过期处理等。

2023-05-26 10:15:22 3227 1

原创 Java | 一分钟掌握定时任务 | 8 - XXL-Job分布式定时任务

java定时任务的框架可真是多啊,XXL-JOB也是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,还是开源的,Mars酱只好下载下来看看了。xxl-job我省略了很多的其他的细节,比如分片流程。总的来说,xxl-job分两个部分,一个是调度中心,一个是执行器,调度中心就是admin服务,执行器需要自己写,官方提供了两个例子,一个基于springboot的,一个无框架的,任务整体的流转流程我还是补个网图:执行器往调度中心注册,并持久化;执行的时候下发到指定的执行器;

2023-05-23 10:04:56 1406 1

原创 Java | 一分钟掌握定时任务 | 7 - ElasticJob分布式定时任务

ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案。它通过弹性调度、资源管控、以及任务治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的任务生态。它的各个产品使用统一的任务 API,开发者仅需一次开发,即可随意部署。那么,追踪完源代码,大致的流程就应该是如下:1.组装基本参数(任务、频率等)->2. ScheduleJobBootstrap初始化->3.配置任务属性->4.设置各种facade->5.初始化ElasticJobExecutor。

2023-05-22 12:43:48 1583 1

原创 Java | 一分钟掌握定时任务 | 6 - Quartz定时任务

前几篇介绍了单体架构的定时任务解决方式,但是现代软件架构由于业务复杂度高,业务的耦合性太强,已经由单体架构拆分成了分布式架构。因此,定时任务的架构也随之修改。而Quartz是分布式定时任务解决方案中使用简单,结构清晰,且不依赖第三方分布式调度中间件的。上车,mars酱带你车里细说~Scheduler:调度器。用来负责任务的调度;Job:任务。这是一个接口,业务代码继承Job接口并实现它的execute方法,是业务执行的主体部分;Trigger: 触发器。也是个接口,有两个触发器比较关键,一个是,另一个是。

2023-05-18 19:02:03 2194 1

原创 Java | 一分钟掌握定时任务 | 5 - Spring Task

多线程解决了并发阻塞问题,但是不能方便的表达我们的定时方式,目前单体架构定时任务用的多的就应该是Spring Task中的注解方式了吧?Spring Scheduled注解做定时任务已经支持得很完美了,满足大部分单体架构的定时任务需要。到站下车,下一站见了~

2023-05-17 09:56:39 705 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 491

原创 Java | 一分钟掌握定时任务 | 2 - 分类

作者:Mars酱声明:本文章由Mars酱原创,部分内容来源于网络,如有疑问请联系本人。转载:欢迎转载,转载前先请联系我!

2023-05-14 09:57:36 69

原创 Java | 一分钟掌握定时任务 | 1 - 基本概念

定时任务就是在指定时间执行的一个或一串动作的行为。现实世界中,比如我们向自己心爱的女友送上祝福;给自己的好友送上祝福。那么,我们为了准时送祝福,会怎么做?当然是定好闹钟,或者是跟蛋糕店或花点预先下好订单,然后在指定好的当天,让蛋糕店和花店准时送上蛋糕 + 鲜花。这就是定时任务在现实世界中的形式,虚拟世界中,我们会定时出报表、定闹钟等等。

2023-05-13 12:19:17 205 1

原创 Go | 一分钟掌握Go | 10 - 反射

反射你以为只在Java中有吗?Go也有反射机制,很多的标准库中,也使用了反射机制,比如fmt包中的encoding包,都是依赖反射机制的。Go的反射比Java的更简单,就只依赖两两个对象:一个Type,一个Value,前者是得到定义对象的类型,比如定义int类型的变量a,反射之后得到int这个类型;后者是得到该变量的值,如果a没有赋值,那么反射得到的a的值就是0。

2023-05-03 21:20:42 525 1

原创 Go | 一分钟掌握Go | 9 - 通道

在Java中,多线程之间的通信方式有哪些?记得吗?Java多线程间通信的解决方案有很多种,比如:synchronized。使用锁来防止资源乱来,一人一个按顺序来,要么使用JDK提供的原子对象,那些Atomic关键字开头的对象,比如:AtomicInteger,这样可以在多个线程中读写值的时候保证是安全的,还有很多其他的方式,在go中,就一种:通道。

2023-04-30 00:08:35 719 1

原创 Go | 一分钟掌握Go | 8 - 并发

当今编程界,一个好的编译型语言如果不支持并发,那必然不是一个好的程序员。

2023-04-29 09:52:56 1116

原创 Go | 一分钟掌握Go | 7 - defer

defer是Go提供的关键字,defer用于资源的释放。一般在return之前执行,如果有多个defer,那么越靠后的defer越先执行。来我这里,我晚上辅导你~

2023-04-28 09:20:53 53

原创 Go | 一分钟掌握Go | 6 - 指针

go的指针相比c++里面的已经容易很多了。c++的指针定义太多了:空指针、野指针、常量指针、指针常量,还有结构体指针,c++在指针这一块就复杂很多。

2023-04-27 12:30:12 72

原创 Go | 一分钟掌握Go | 5 - 切片

也可以使用makevar sliceName [ ] type = make([ ] type , length) // 可以简写为 sliceName := make([ ] type , length)make函数的定义是这样的[]T:T类型的切片length:切片的长度capacity:指定容量的大小切片是真的很灵活的,copy函数不太容易理解,我的理解实际是把源位置的值拷贝给目标位置的值,这应该就是java中的深层拷贝吧?

2023-04-26 09:12:02 446 1

原创 Go | 一分钟掌握Go | 4 - 数组

先解释数组的目的是Go里面的切片和数组很像,所以搞懂数组可以更好的理解和使用切片和数组。

2023-04-25 11:26:12 378

原创 Go | 一分钟掌握Go | 3 - 学习路线

既然有了好的工具,Go SDK也安装好了,那么我们需要给自己制定一下学习路线,学习路线最好按阶段执行,然后让自己的水平最终达到一个目标我是javaer,所以对于我来说我的学习目标是必须掌握Go基本语法,懂基础框架,并没有要求自己完全使用Go去替代现在的工作,只是用Go来补充,所以我对自己的学习路线并要求达到专家级的Goer。以上学习路线仅供大家参考,除了Go语法是必要前提,其余的学习路径都不一定是最佳的,所以如果有更好更便捷的学习路径,可以告诉我,我会认真记录下来并做好学习笔记。

2023-04-24 00:33:47 683

原创 Go | 一分钟掌握Go | 2 - 集成开发工具

编码是一门传统手艺活,手艺好不好很重要,器物的辅助更能让效率和质量翻倍提升。

2023-04-23 08:40:31 447

原创 Go | 一分钟掌握Go | 1 - 安装Go

作者:Mars酱声明:本文章由Mars酱原创,部分内容来源于网络,如有疑问请联系本人。转载:欢迎转载,转载前先请联系我!

2023-04-21 10:17:06 413

原创 Java | 一分钟掌握JDK命令行工具 | 4 - 可视化分析工具

我们其实在分析的时候,也并不是必须使用命令行工具才能可以分析。JDK还提供了可视化工具让大家可以在图形化的操作系统中使用。命令行工具的作用主要作用是为了监控和分析故障。我们既可以使用JDK自带的命令行工具,也可以使用可视化分析工具,选择都很多,优点缺点都有。大家可以根据自己的选择去使用。

2023-04-16 21:03:50 411

原创 Java | 一分钟掌握JDK命令行工具 | 3 - 实战

前一篇罗列了一些JDK命令行工具,我们没有必要把所有命令行工具全部介绍,那样对于开发者来说不实用也没有任何价值,所有功能介绍,这件事情由且只能由JDK的发行方自己做。

2023-04-14 21:05:53 230

原创 Java | 一分钟掌握JDK命令行工具 | 2- 分类

最后就是使用上面的命令排列组合,来应对各种各样的场景了。不过感觉基本上很少人使用主要工具命令行去做编译工作,毕竟现代编码需要集成性编译环境,但是我们掌握如何使用这些命令行工具,可以帮助我们分析系统的性能还是很有用的。

2023-04-13 18:36:39 131

原创 Java | 一分钟掌握JDK命令行工具 | 1- 基础

一个优秀的开发语言,除了语法、运行环境、集成开发工具等等之外,还需要有命令行工具的加持,这样才算得上是一个强大的编译型语言。以下是官方对JDK命令行工具的说明:JDK命令行工具是Java Development Kit(JDK)提供的一组命令行实用程序,可用于开发和调试Java应用程序。这些工具包括编译器(javac),打包工具(jar),调试器(jdb),文档生成器(javadoc)等,它们都可以通过命令行或终端窗口使用。

2023-04-13 10:51:43 166

原创 Java | 一分钟掌握异步编程 | 7 - 其他异步方式

实现异步方式还有很多,我认为Spring 的 @Async注解 和 ApplicationEvent 事件机制也是异步实现的一种可选方案。废话很多,上车再废话~总算爽完了~,来总结一下:实现异步的方式有很多,可以使用JDK原生的,也可以使用消息中间件的,还能使用开源框架的,具体看你的需求了,如果你单体架构,也不关心返回值,那么直接线程异步吧。如果任务之间的依赖多,改变多,那可以选择JDK的Future、CompletableFuture。

2023-04-12 12:06:11 54

原创 Java | 一分钟掌握异步编程 | 6 - 消息队列异步

前面几篇都是讲的JDK提供的原生的异步实现方式,其实在互联网行业中,用得最多的属消息队列了。消息队列开源的也多:Kalfka、RabbitMQ、RocketMQ等等。我只知道RocketMQ 😅。网上关于RocketMQ使用的资料很多,这里没写代码了,所以这一分钟是不是觉得舒爽?

2023-04-10 09:52:06 228

原创 Java | 一分钟掌握异步编程 | 5 - CompletableFuture异步

继续讲,前面讲了Future实现异步,优点缺点也都有,这里讲使用CompletableFuture机制,目前为止,应该说JDK原生提供的异步方式的最优方案就是CompletableFuture了,已知的开源框架Dubbo中的RPC协议实现、常用的注册配置中心Nacos中CP协议的具体实现JRaft模块,也使用CompletableFuture。好了,名气大,不多说了。

2023-04-07 00:59:39 126 2

原创 Java | 一分钟掌握异步编程 | 4 - Future异步

前篇Java | 一分钟掌握异步编程 | 3 - 线程异步 - 掘金 (juejin.cn)介绍了实现多线程异步处理业务的方式,但是我们无法获取到线程返回的结果,这是在JDK 5之前Java版本的小小缺陷,在Java 5之后,增加了Future机制。看来Future对于结果的获取也不是很友好,虽然相比线程池异步提升了很大的执行效率,但是结果的获取遇到计算量大的情况只能通过阻塞或者轮询的方式得到任务的结果。

2023-04-06 00:25:58 446

原创 Java | 一分钟掌握异步编程 | 3 - 线程异步

前两篇介绍了理论,这篇讲具体的实现方式。前言都是废话,直接上车~废话很少,让你拥有充足的一分钟,连代码中互撩的环节也省去了。线程池队列当中未被处理的任务要如何处理?正在执行的那些任务要如何处理?我认为在设计上应该保证,队列中未被处理的任务是可以随时丢弃的。下次启动线程池后,这些未处理的任务可以重新再提交给线程池,业务上不受影响。所有已经作出的状态变更都会回滚,下次执行这个任务又可以再开始。例如:使用数据库事务这个任务可以从中间状态继续执行,比如:下载文件中的断点续传。

2023-04-05 10:23:34 267

原创 Java | 一分钟掌握异步编程 | 2 - 异步的实现方式

废话不多说,因为废话已经在前一篇Java | 一分钟掌握异步编程 | 1 - 基本概念 - 掘金 (juejin.cn)多说。但是,这篇还是废话多~你又快乐的来了一分钟,体力还能再来一分钟吗?行的话v我50。

2023-04-04 01:16:24 80

原创 Java | 一分钟掌握异步编程 | 1 - 基本概念

同步、异步、阻塞、非阻塞,这些词是不是听过很多遍,但是究竟是什么意思?编码界黑话吗?哥带你搞懂基本概念,一分钟之后你将会超越99%的同行!是不是有点小激动,来,上车!同步:事情之间相互依赖,A、B、C三个事情按顺序执行,C的开始需要依赖于B的结果,B的开始需要依赖于A的结果,这个过程叫做同步。现实世界中,你想约你在Java | 动态代理及作用 - 掘金 (juejin.cn)里面撩到的女友出去吃饭,给她打电话,一直不接,于是你继续打,直到她接听了你的电话,然后她同意和你一起出去吃饭。

2023-04-03 13:11:28 44

原创 Java | 一分钟掌握动态代理 | 实例及作用

代理实际上是一种处理问题的方式。在现实世界中,你登录不同的社交app去撩漂亮小姐姐,经过长时间的努力和你撩力值的提升,最终有一位小姐姐的心被你捕获,也终于有天,你们决定线下见面完成线下###活动。于是,你俩一次又一次的完成线下###活动。久而久之,你和小姐姐产生了深厚的情感,你俩觉得很舒服很开心,应该持续下去,于是她决定成为你的女友,一起奋(tong)斗(ju)。

2023-03-29 23:24:25 154

原创 Postman | 一分钟掌握Pre-request Script | 外部库的使用

Postman内部提供了13种外部库,可以直接在前置请求脚本和后置请求脚本中使用,如果需要其他外部库,只需要使用如下方式引入即可:一些内部库使用的例子postman可用的外部库官网列出了13种,分别为:ajv、atob、btoa、chai、cheerio、crypto-js、csv-parse/lib/sync、lodash、moment、postman-collection、tv4、uuid、xml2js为Node.js和浏览器提供最快的JSON验证器。此外部库是个英文首字母缩写,a表示ascii格式

2023-03-25 15:59:47 1031

原创 Postman | 一分钟掌握Pre-request Script | 入门篇

Postman 有一个基于 Node.js 的强大运行时,它允许我们向请求和集合中添加动态行为。允许我们编写 API 测试、构建可以包含动态参数的请求、在请求之间传递数据等等。

2023-03-24 09:47:17 3118 2

原创 JMeter | 一分钟掌握BeanShell | 入门篇

JMeter Beanshell 的基础使用,JMeter内置变量的基础使用方式

2023-03-24 09:15:43 1665

Ubuntu操作手册

比较全面的Ubuntu操作手册,从ubuntu的安装到ubuntu的高级操作,很详细,很透彻

2009-09-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除