老废物乐园 瓜子的技术笔记 · Java / AI / 金融科技

Redisson 分布式锁源码解析

日志里那句 IllegalMonitorStateException 12 月初,结算服务凌晨报警了几次,错误信息很眼熟: java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by current th

遥望星星 遥望星星 发布于 2021-03-24

Kafka 零拷贝与高吞吐背后的原理

扩容前的一次基准压测 2020 年 11 月,订单事件 topic 的日均写入量从 3000 万条涨到 1.1 亿条,运维要我给个扩容方案。我没直接拍板加机器,先用 kafka-producer-perf-test.sh 在现有 3 台 broker 上跑了一轮,想摸清单机的真实上限。 机器配置:1

遥望星星 遥望星星 发布于 2020-06-06

AQS 源码初探:ReentrantLock 是怎么实现的

jstack 里那个等了 40 秒的线程 5 月中旬,运营反馈大客户导出特别慢,一个 20 万行的订单导出要跑三分钟。我抓了几份 jstack,发现有个线程的行为很奇怪: "export-thread-7" #48 prio=5 os_prio=0 tid=0x00007f8c4c0d8000 ni

遥望星星 遥望星星 发布于 2019-06-19

ThreadPoolExecutor 源码解析:execute 之后发生了什么

同事问了个我答不上来的问题 2 月中旬,组里做短信发送模块的改造,同事在配置线程池时问我:corePoolSize 用完之后,是立刻扩容到 maximumPoolSize,还是先往队列里塞? 我当时脱口而出"先扩容到 max"。说完自己就心虚了,因为印象里看过"队列满了才会扩"的说法。答不上来的问题

遥望星星 遥望星星 发布于 2019-05-06