logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

多级缓存(Caffeine + Redis)场景下的应用

机制(比如通过 Redis Pub/Sub、MQ、RPC 通知等)让所有节点同时删除本地的 Caffeine 缓存。如果每个节点都自己做延迟双删,第二次删除时只能删自己节点里的 Caffeine,删不到别的节点。延迟一段时间后,再次删除 Redis(第二次) —— 这就是延迟双删中的第二次删除。读:先读 Caffeine(本地),读不到再读 Redis,再读不到查数据库。负责让所有节点的 Caff

#缓存#redis#数据库
为什么 Dubbo 不像 Feign 一样拼 URL,而是用 Invoker?

Feign:找到 URL 去请求Dubbo:找到 Invoker 直接调用。

#dubbo
我们常说的 servlet 就是 DispatcherServlet 吗

Servlet 是 Java Web 规范中的一个接口。接收HTTP请求处理请求返回响应@Override浏览器↓Tomcat↓↓响应这里没有 Spring。

#servlet#hive#hadoop
CAS 为什么效率高?

CAS 的高效,核心在于两个层面,避免了传统锁的诸多开销。:线程获取锁失败,会进入阻塞状态(如调用),这需要操作系统介入,完成“用户态 → 内核态 → 用户态”的切换。一次上下文切换的代价可能高达几万到几十万个 CPU 时钟周期。:全部操作都在完成。它只是一条 CPU 原子指令(如 x86 的cmpxchg执行时,要么成功,要么失败立即返回,不会主动让线程挂起。这避免了系统调用和上下文切换的昂贵开

#java
docker 常用命令

运行一个 nginx 并映射端口。# 清理所有停止的容器和悬挂镜像。# 进入容器修改配置。# 保存修改到新镜像。

#eureka#云原生
ElasticJob 的工作原理

下面按面试最清晰的逻辑拆开讲。

#java
synchronized 锁升级的过程

无锁 → 偏向锁(单线程)→ 轻量级锁(自旋)→ 重量级锁(阻塞),全部通过 CAS 修改对象头 Mark Word 实现,目的是在低竞争时避免操作系统互斥量开销。

#java
如何创建一个 Springboot Starter

AutoConfiguration// Spring Boot 2.7+ 引入,等价于 @Configuration 且有自动配置语义。@ConditionalOnClass(GreeterService.class)// 当类路径中存在该类时才生效。1.创建一个 空项目 xxx-spring-boot-starter 作为场景启动器,方便别人引用。* 问候语前缀,默认为 "Hello"* 问候语

#spring boot#java#spring
Springboot自动装配原理

TomcatSpring MVCJackson但项目却能直接启动。原因就是:Spring Boot 根据依赖自动帮你创建了这些 Bean。

#spring boot#后端#java
springboot 如何解决循环依赖的

在 Spring Boot(准确说是 Spring Framework)的单例 Bean 中,循环依赖通常指:形成:Spring 如何解决循环依赖对于单例 Bean + Setter/Field 注入,Spring 使用 三级缓存(三级缓存机制) 解决循环依赖。创建 A 时:此时 A 还没完成依赖注入。Spring 将 A 的 ObjectFactory 放入三级缓存:第二步:A 注入 B发现需要

#java#spring#开发语言
    共 22 条
  • 1
  • 2
  • 3
  • 请选择