- 博客(96)
- 收藏
- 关注
原创 ThreadLocal实现原理
ThreadLocal 是 Java 中实现线程封闭(Thread Confinement)的核心机制,它通过为每个线程创建变量的独立副本来解决多线程环境下的线程安全问题。
2025-06-11 16:04:06
297
原创 Spring Cloud业务相关问题
tomcat但是分布式项目中每个微服务都是一个tomcat,设置起来比较麻烦,要是是单体项目还可以采用。重点实现方式是:Nginx和网关有两种限流方式:1控制速率;2控制流量(控制并发的连接数)大量请求袭来,将这些请求存储到漏桶中,漏桶再将这些请求以固定速率发出,请求的速率就比较稳定了。其他漏桶装不下的请求就等待或抛弃id:某一服务的唯一标识url:服务名称path:路径映射name里的RequestRateLimiter就是一个局部过滤器总体算法就是使用了令牌桶算法令牌存储默认使用redis存储,需要配置
2025-06-11 13:28:59
163
原创 RabbitMQ work模型
当一个消息队列绑定了多个消费者,每个消息消费的个数都是平摊的,一人一个消息,不会考虑哪个消费者能力强弱。这样会造成消息堆积。如何解决:修改yml文件,修改preFetch参数,控制消费者预取的消息数量,处理完再处理下一条,能者多劳。Work 模型是 RabbitMQ 最基础的消息处理模式,核心思想是 。,适用于任务分发和负载均衡场景。
2025-06-08 20:38:13
489
原创 spring task定时任务快速入门
spring task它基于注解和配置,可以轻松实现任务的周期性调度、延迟执行或固定频率触发。按照我们约定的时间自动执行某段代码。例如闹钟。
2025-06-08 17:31:57
279
原创 redis分片集群架构
主从集群解决高并发,哨兵解决高可用问题。但是任然有两个问题没有解决:1海量数据存储问题;2高并发写的问题(如果服务中有大量写的请求)那就可以采用分片集群架构解决这些问题。
2025-06-07 20:42:33
361
原创 redis哨兵模式
主从模式有缺陷,保证不了redis集群的高可用。加入主节点宕机,就丧失了写数据的能力。为了保证redis集群的高可用,就提出了哨兵模式,实现主从集群的自动故障恢复。哨兵也是一个由多台redis节点(至少3台)组成的节点。
2025-06-07 20:13:49
314
原创 redis集群
单点redis并发能力是有限的,想要进一步提高并发能力,需要搭建redis集群,实现读写分离。一个主节点master,主要实现增删改操作,多个从节点实现读操作。当主节点修改了数据,必须要将数据同步给其他从节点。
2025-06-07 18:09:26
198
原创 redis数据过期策略、淘汰策略
当redis内存不足时(全是没有过期的key),还要往reids里加数据时,Redis就会根据某一规则强制淘汰键(即使未过期)。主动清理过期键,每隔一定时间,抽取一定量的key进行检查,后面会全部遍历一遍。不会有得不到清理的key了。redis过期策略是两种模式的结合。LRU:最近最少使用。LFU:最少频率使用。
2025-06-05 21:09:19
344
原创 MVCC实现原理
你可以把MVCC的可见性判断想象成一个"时间线游戏",通过比较事务ID的大小关系,决定当前事务能看到哪个版本的数据。的机制,在保证事务隔离性的同时,最大化并发性能。它是MySQL高并发能力的基石,理解其原理对优化SQL和排查并发问题至关重要。MVCC(Multi-Version Concurrency Control,多版本并发控制)是数据库实现高并发的核心技术,。就像考试时,你只能参考已交卷同学的答案,不能看还在答题的同学的试卷!是通过保存数据的多个版本,让。
2025-06-05 11:41:47
1166
原创 MySQL索引(index)
索引是一种有序的数据结构,用来高效获取数据的假设查一张表中age为18的所有数据无索引的情况,找到了age为18后还要继续扫描全表,看是否还有age是18的,这就是全表扫描,性能极差有索引的情况,给age做一个二叉树,能快速找到优缺点每次更新表,同时也要更新索引。
2025-06-04 21:12:59
1197
原创 MySQL锁机制
锁是计算机协调多个进程或线程某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/0)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。MySQL中的锁,按照锁的粒度分,分为以下三类。
2025-06-02 21:15:48
350
原创 java多线程与JUC
进程:进程是操作系统分配资源的基本单位。在电脑中,一个软件就是一个进程线程:线程是CPU调度的基本单位,是进程内的执行单元。相当于一个软件中的不同功能多线程程序的特点:程序可以同时去做多件事,CPU可以在多件事之间切换,把等待的空余时间充分利用起来,提高程序的运行效率多线程的应用场景?只要你想让多个事情同时运行就需要用到多线程。比如:软件中的耗时、等待操作、所有的聊天软件、所有的服务器。
2025-06-01 20:14:54
931
原创 java Map双列集合
单列集合:一次只能添加一个元素双列集合:一次添加两个元素,左边的叫键(唯一的不能重复),右边叫值(可以重复),键和值一一对应。这样一对叫:键值对/键值对对象/在Java中叫:Entry。
2025-06-01 15:50:56
458
原创 MySQL事务及其原理
事务是一组操作的集合,这组集合要么同时成功,要么同时失败MySQL事务默认是自动提交的,也就是说每一条sql语句就是一条事务。
2025-05-30 15:19:56
414
原创 SpringIOC中Bean生命周期
Bean的生命周期就像一个人的一生:出生 → 成长 → 死亡,Spring 全程监护管理Spring读取@Component、XML配置等,生成(相当于宝宝的DNA蓝图)
2025-05-29 21:19:04
633
原创 springboot面试题
想象 Spring Boot 自动配置就像一个智能家电安装师傅,它会根据你家里的电器(项目中的依赖)自动帮你接线(配置),你只需要按下开关(主类上的。启用 Spring Boot 的自动配置机制。根据项目依赖(如 JPA、Redis 等)自动配置 Spring 应用的上下文,减少手动配置。下次看到自动配置,就想象是这个师傅在问:"你要用数据库吗?用于定义 Bean 的配置方法,替代传统 XML 配置方式。表明当前类是一个 Spring Boot 的配置类,继承自。自动扫描指定包及其子包下的组件(如。
2025-05-29 17:43:12
468
原创 spring AOP面向切面编程快速入门
类上要加@Component(交给spring容器管理)、@Aspect类里面定义切点和通知切点表达式放在两种位置:切点注解(@Pointcut)或通知注解(@Before/@After等)中。execution([修饰符] 返回类型 [类名].方法名(参数) [异常])
2025-05-26 16:59:17
185
原创 jwt令牌使用及实现登录认证
用户访问登录接口,接口返回JWT令牌,以后每次访问别的接口都要携带JWT令牌,其他接口响应时都要校验JWT令牌。但是如果修改密码后旧令牌没有实现作废,借助redis实现令牌主动失效。有一个加密密钥,解密jwt令牌,能成功解析就是对的。JWT是一个令牌规范。
2025-05-26 12:18:08
219
原创 java集合体系结构
Vector已被淘汰List系列集合:添加的元素是有序(存储顺序一致)、可重复、有索引set系列集合:添加的元素是无序(存储顺序不一致)、不重复(可用于数据去重)、无索引。
2025-05-26 11:12:13
580
原创 java三种常见设计模式,工厂、策略、责任链
责任链模式是一种行为型设计模式,将请求的发送者和接收者解耦,使多个对象都有机会处理请求。这些对象形成一条链,请求沿链传递直至被处理或结束。工厂方法模式是一种创建型设计模式,定义一个用于创建对象的接口,但让子类决定实例化哪个类。工厂方法使类的实例化延迟到子类。策略模式是一种行为型设计模式,定义一系列算法,封装每个算法,并使它们可以互换。策略模式让算法独立于使用它的客户端变化。
2025-05-25 16:15:58
476
原创 MySQL分库分表
将同一张表的数据按行拆分到多个结构相同的表中,通常依据某个字段(如用户ID、时间)的哈希或范围规则分配。将同一个表的数据分散到不同的数据库实例中,通常结合水平分表使用。将一张表的字段按业务属性拆分到不同的表中,减少单表的宽度。比如:一些很长的数据,比如商品描述。
2025-05-24 17:12:08
448
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人