自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 初识XXL-JOB分布式任务调度

将调度行为抽象形成"调度中心"公共平台,而平台自身并不承担业务逻辑,"调度中心"负责发起调度请求。将任务抽象成分散的JobHandler,交由"执行器"统一管理,"执行器"负责接收调度请求并执行对应的JobHandler中的业务逻辑。因此,"调度"和"任务"两部分可以相互解耦,提高系统整体稳定性和拓展性。

2025-03-22 18:50:29 791

原创 Kafka消息队列

作为流处理平台,Kafka集成了Kafka Streams库,该库使得开发者能够构建轻量级的实时流处理应用,直接在Kafka内部执行数据转换和聚合操作,无需依赖外部复杂系统。总而言之,Kafka不仅仅是一个消息队列,而是一个全面的分布式流式处理生态系统,广泛应用于日志聚合、实时监控数据分析、事件驱动架构以及大规模数据管道构建等多个领域,为企业提供了一站式的解决方案来应对现代数据处理的挑战。在Broker上持久化的事件是不可变的、只可追加的,即使是删除也被模拟为删除事件,而不是直接从磁盘上删除数据。

2025-03-13 18:32:19 791

原创 JDK源码系列(二)

/...和ArrayList集合一样,LinkedList集合也实现了Cloneable接口和Serializable接口,分别用来支持克隆以及序列化。List:表明它是一个列表,支持添加、删除、查找等操作,并且可以通过下标进行访问。Deque:继承自Queue接口,具有双端队列的特性,支持从两端插入和删除元素,方便实现栈和队列等数据结构。由于LinkedList底层数据结构是链表,内存地址不连续,只能通过指针来定位,不支持随机快速访问,所以不能实现RandomAccess接口。

2025-02-22 16:40:51 641

原创 JDK源码系列(一)Object

Object类是所有类的基类——java.lang.Object。Object类有七个native方法:registerNatives()、getClass()、hashCode()、clone()、notify()、notifyAll()。

2025-02-21 22:30:40 816

原创 Mysql执行计划及索引下推ICP

索引下推(Index Condition Pushdown,ICP)是 MySQL 中的一项查询优化技术,主要用于提高查询性能,特别是在使用复合索引时,后面部分索引失效,它的核心思想是将查询条件下推到存储引擎层,从而减少回表次数和减少不必要的数据读取。示例假设有一张表ta INT,b INT,c INT,使用索引idx_a_b_c找到a = 1的记录。将这些记录的主键返回给服务器层。服务器层回表,读取完整的数据行。在服务器层过滤b > 2和c < 10。使用索引idx_a_b_c找到。

2025-02-10 21:27:59 688

原创 Mysql8应用架构

一、Caches & Buffers(缓存和缓冲)

2025-02-07 02:03:20 1005

原创 volatile和synchonized基本原理

同步代码块的实现使用的是monitorenter 和 monitorexit指令,其中指令指向同步代码块的开始位置,指令则指明同步代码块的结束位置。修饰的方法并没有monitorenter 和 monitorexit指令,取而代之的是标识,该标识指明了该方法是一个同步方法。不过,两者的本质都是对对象监视器 monitor 的获取。

2025-02-01 00:56:08 884

原创 JAVA并发一

虚拟机栈:每个Java方法在执行之前会创建一个栈帧用于存储局部变量表、操作数栈、常量池等信息。从方法调用到执行完成的过程,就对应着一个栈帧在Java虚拟机栈中入栈和出栈的过程。本地方法栈:和虚拟机栈发挥的作用相似,区别是:虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则为虚拟机使用到的Native方法服务。所以,为了保证线程中的局部变量不被别的线程访问到,虚拟机栈和本地方法栈都是线程私有的。

2025-01-30 01:20:11 764

原创 JAVA反射机制详解

一般情况下,我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类实例化,之后使用这个类对象进行操作。上面这样子进行类对象的初始化,可以理解为反射之前,对于Person的操作,使用这种方式,在Person类外部,不可以通过Person类的对象调用其内部私有结构。而反射则是一开始并不知道我要初始化的类对象是什么,自然也无法使用new关键字来创建对象。这时候,我们使用JDK提供的反射API进行反射调用。上面两段代码的执行结果是完全一样的。

2025-01-11 00:04:57 486

原创 Mybatis专栏---Mapper XML的解析和注册使用

*** 打开一个 session*/这个是一个简单工厂的定义,在工厂中提供接口实现类的能力,也就是SqlSessionFactory工厂中提供的开启SqlSession的能力。SqlSession接口封装了相应的SQL操作,具体由DefaultSqlSession实现。

2024-12-20 20:48:31 783

原创 Spring常用注入使用

1.。构造函数注入在对象创建时就要求所有必须的依赖项都已提供,这有助于确保对象在初始化时就是完整和可用的。如果缺少任何依赖项,对象将无法创建,这有助于在开发早期发现潜在问题。2.。一旦对象通过构造函数初始化,其依赖项被固定下来,无法改变。这有助于确保对象的内部状态在生命周期内保持一致,减少了由于依赖项变化而导致的潜在问题。3.。构造函数注入减少了setter发放的调用次数,这有助于提高性能并减少潜在的错误。

2024-12-06 16:44:18 724

原创 重学JAVA设计模式之六大设计原则

/ 视频清晰级别;// 广告播放方式;无广告、有广告定义出上层接口IVideoUserService,统一定义需要实现的功能,包括视频清晰级别接口definition()、广告播放方式接口advertisement()。然后三种不同类型的用户就可以分别实现自己的服务类,做到职责统一。在面向对象编程领域中,开闭原则规定软件的对象、类、模块和函数对拓展开放、但是对于修改是关闭的。这就意味着应当用抽象定义结构,用具体实现去完善细节。/*** 计算面积,长方形* @param x 长。

2024-12-06 10:15:42 884

原创 JVM结构及堆内存是线程共享的吗?

TLAB是虚拟机在堆内存的eden划分出来的一块专用空间,是线程专属的。在虚拟机的TLAB功能启动的情况下,在线程初始化时,虚拟机会为每个线程分配一块TLAB空间,只给当前线程使用,这样每个线程都单独拥有一个空间,如果需要分配内存,就在自己的空间上分配,这样就不存在竞争的情况,可以大大提升分配效率。注意到上面的描述中"线程专属"、"只给当前线程使用"、"每个线程单独拥有"的描述了吗?所以,因为有了TLAB技术,堆内存并不完完全全是线程共享,其eden区域中还是有一部分空间是分配给线程独享的。

2024-11-21 17:36:39 591

原创 Redis的缓存穿透、缓存击穿、缓存雪崩

缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来压力。

2024-11-14 22:08:09 514

原创 基于SpringBoot自定义注解类---动态注入RedisTopic

注解(Annotation),又称为元数据。用于在代码中添加元数据(数据的数据),这些元数据可以被编译器、运行时环境或其他工具读取和使用,以改变代码的行为或提供额外的信息。

2024-11-12 12:32:37 484

原创 ThreadLocal的浅理解

ThreadLocal

2024-11-04 22:08:56 1028 1

原创 基于Redis实现延迟队列消息更新Mysql数据

使用Redisson提供的数据结构RBlockingDeque(阻塞队列)和RDelayedQueue(延迟队列)

2024-10-24 21:37:04 671

原创 《重学JAVA设计模式》 责任链模式

这个类是包装了责任链处理过程中返回结果的类,方便处理每个责任链的返回信息。// 级别人员Id// 级别人员姓名// 责任链这是责任链链接起来的核心部分。,重点在于可以通过getNext方式获取下一个链路需要处理的节点。,是责任链中的公用信息,标记了每一个审核节点的人员信息。抽象类中定义了一个抽象方法,,这是每个实现类必须实现的方法,不同审核级别处理不同的业务。

2024-10-12 21:50:30 713

原创 OpenAI代码自动评审组件

技术栈:GitHub Actions、OpenAI(ChatGLM)、Git/GitHub、公众号模板消息。目标:实现从代码提交到通知、Git检出分支变化、使用OpenAI进行代码评审并写入日志,最后通过微信公众号发送消息通知的完整链路。同时也对项目开发有了初步认识。对这个项目最深的印象就是配置脚本文件以及Token对接,前面还了解到JWT技术和RBAC权限模型。期待下次跟进学习!

2024-08-08 02:32:08 1050

原创 C语言以及C++重要内容总结(部分)

C语言以及C++重要内容总结(部分)

2022-10-10 21:53:10 361

空空如也

空空如也

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

TA关注的人

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