目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

存档: 2023 年 12 月 (3)

XXL-Job

定时任务 通过时间表达式这一方式来进行任务调度的被称为定时任务。 在平常的业务场景当中,经常有一些场景需要使用到定时任务,比如:在某个时间点会发送优惠券、发送短信等等的一些业务操作。又比如:比如一些支付系统,需要在每天的凌晨1点来进行对前一天的清算。 分类 单机定时任务 单机的容易实现,但应用于集群环境做分布式部署,就会带来重复执行 解决重复执行的方案有很多,比如加锁、数据库等,但是增加了很多非业务逻辑 分布式调度(分布式定时任务) 把需要处理的计划任务放入到统一的平台,实现集群管理调度与分布式部署的定时任务 叫做分布式定时任务 支持集群部署、高可用、并行调度、分片处理等 常见定时任务 单机:Java 自带的 java.util.Timer 类配置比较麻烦,时间延后问题 单机:ScheduledExecutorService 是基于线程池来进行设计的定时任务类,在这里每个调度的任务都会分配到线程池里的一个线程去执行该任务,并发执行,互不影响 单机:SpringBoot 框架自带 SpringBoot 使用注解方式开启定时任务 启动类里面 @EnableSc....

Kafka

为什么要序列化? 序列化:把对象转化为可传输的字节序列过程称为序列化。 反序列化:把字节序列还原为对象的过程称为反序列化。 如果光看定义我想你很难一下子理解序列化的意义,那么我们可以从另一个角度来推导出什么是序列化, 那么究竟序列化的目的是什么? 其实序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。 因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回来的,所以我们必须在把对象转成字节数组的时候就制定一种规则(序列化),那么我们从IO流里面读出数据的时候再以这种规则把对象还原回来(反序列化)。 如果我们要把一栋房子从一个地方运输到另一个地方去,序列化就是我把房子拆成一个个的砖块放到车子里,然后留下一张房子原来结构的图纸,反序列化就是我们把房子运输到了目的地以后,根据图纸把一块块砖头还原成房子原来面目的过程。 MQ 使用场景 跨平台 、多语言、分布式事务、最终一致性 RPC调用上下游对接,数据源变动->通知下属 解耦:订单系统....

ElasticStack

该文章已经加密。