2026年9月4日
ReentrantLock 的 lock 方法执行 CAS 修改 state 失败后,线程会被封装为 Node 插入 CLH 队列尾部 ReentrantLock 的 lock 方法执行 CAS 修改 state 失败后,线程会被封装为 Node 插入 CLH 队列尾部。CountDownLatch 和 Semaphore 同样复用这套队列,只是 state 的初始值与递减逻辑不同。 AQS 的核心数据结构是 volatile int state 和一个 CLH 队列。ReentrantLock 把 state 当作重入计……
阅读全文
2026年9月4日
从零构建 Kafka 拆解其核心机制:为什么必须这样设计 构建一个简化版 Kafka 时,第一件事就是意识到它不是一个普通的队列服务。它的核心目标是在分布式环境下提供高吞吐、持久化且可回放的消息流。这直接决定了后续所有组件的设计:broker 必须能高效处理海量日志,partition 要支持并行消费,rep……
阅读全文
2026年9月3日
@Async 只负责换线程执行,不负责事务一致性、上下文复制和异常可靠投递。 生产环境里因此丢失数据、丢日志、吞异常的情况反复出现,根治只能靠明确事务边界、装饰线程池和持久化关键任务。 事务上下文不会随 @Async 传递到子线程 在 Spring 中,@Async 方法默认使用 SimpleAsyncTaskExecutor 或自定义的 ThreadPoolTaskExecutor 执行。事务由 TransactionSynchronizationManager 绑定在当前线程的 ThreadLocal 上……
阅读全文
2026年9月2日
redis-py 的 time() 返回的不是客户端本地时间,而是 Redis 服务器的 Unix 时间戳,这一差异直接影响分布式会话存储的过期判断准确性。本篇继续上一篇的四类监控函数,梳理剩余的服务端时间获取、库容量统计、数据库清空及 RDB 持久化辅助函数。 time() 返回服务端 Unix 时间戳而非本地时钟 redis-py 客户端的 time() 方法直接调用 Redis 的 TIME 命令。它不返回 Python……
阅读全文
2026年9月2日
一个 Spring 服务的空指针异常,根源指向了 Bean 初始化顺序而非业务代码。排查发现 @Autowired 字段在 @PostConstruct 方法中仍为 null,异常堆栈最终指向容器启动时的依赖加载时序。这次 NPE 直接暴露了默认生命周期的隐藏陷阱。 NPE 案例中依赖注入尚未完成的真实场景 实际案例中,一个服务类标注了 @Service,里面有一个 @Autowired 的依赖 B……
阅读全文
2026年9月2日
每天1000万事件:如何构建可靠的Webhook投递系统 每天1000万次事件的webhook投递,常被团队一句话带过:这只是一个POST请求,半天就能完成。但信号显示,这种判断在真实规模下很快失效,因为简单的实现无法应对高并发下的队列堆积、失败重试和重复投递问题。 消息队列缓冲是处……
阅读全文
2026年9月2日
高频请求查询不存在的键时,Redis缓存被完全绕过,流量直接打到PostgreSQL数据库上。文章展示了在Spring Boot中把Bloom Filter作为守卫层放在Redis前面的具体做法。 不存在的键请求会直接让PostgreSQL承受全部流量 缓存穿透的定义很直接:当大量请求查……
阅读全文
2026年9月1日
宇树科技员工称100元以上报销需王兴兴亲自审批、奖惩机制以罚为主等话题冲上热搜,公司回应称很多内容不实,切勿当真。 热搜话题直指宇树内部两项具体管理做法。一是报销审批门槛极低:员工反映超过100元的报销必须由创始人王兴兴本人亲自审批。二是奖惩机制失衡:公司几乎只有罚款,没有对应的奖……
阅读全文
2026年9月1日
13万元的极狐阿尔法T7被指像素级抄袭小米SU7,品牌却在争议中宣布阶段性庆功。摘要直言骗骗大伙儿可以,别把自己骗了。 极狐阿尔法T7的外观设计与小米SU7形成了高度重合。车头部分,阿尔法T7采用了与SU7几乎一致的溜背造型,封闭式格栅轮廓、灯组布局以及前保险杠的线条处理都呈现出明……
阅读全文
2026年9月1日
集邦咨询数据显示,今年8月DDR4 8Gb 1Gx8合约价达到25美元,环比涨4.2%,17个月涨幅1370.59%,创2016年6月以来历史新高。这一价格直接由人工智能基础设施需求增长推动,首尔经济日报报道称PC用内存平均月价格再次突破纪录。 集邦数据把DDR4价格推到8.6倍高点 集邦咨……
阅读全文