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
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
synchronized 锁升级的过程

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

#java
    共 19 条
  • 1
  • 2
  • 请选择