第二期|oneThread简历编写指南
为了让更多小伙伴方便了解拿个offer社群近期的更新内容,我想了个主意——InfoWeek
!通过这种形式,不仅能展示最新更新,还会分享一些我觉得有意思的思考和技术时事。
内容更新
1. oneThread 项目开发
oneThread 是基于配置中心构建的动态可观测 Java 线程池框架,弥补了 JDK 原生线程池参数配置不灵活的不足,支持核心参数的在线动态调整、运行时状态监控与阈值告警,有效提升系统的稳定性与可运维性。框架兼容主流配置中心如 Nacos、Apollo,实现线程池参数 的热更新与统一管理。
截止2025-05-23日,oneThread 后端核心代码均已开发完成,目前正在和前端同学筹备开发 oneThread 项目前端控制台。
动态线程池项目相关的如何写到简历描述已发布知识星球,主题地址:https://t.zsxq.com/5GfrN。拿其中两个核心亮点举例:
- 基于配置中心实现线程池核心参数的动态刷新能力,采用模板方法模式复用刷新逻辑,支持多种配置中心(如 Nacos、Apollo)监听事件的统一注册与处理,提升代码复用和扩展性。
- 基于 JDK 的 InvocationHandler 动态代理机制,对线程池拒绝策略进行代理扩展,拦截拒绝任务事件并触发告警机制,实现任务拒绝的实时响应。
目前后端核心代码(包含注释)1.34w 行,仅 Java 后端纯代码 4.99k 行。注意,这不是一个 Demo,而是能够应用于生产环境上的中间件。
2. 12306 更新内容列表
1)优化 12306 乘车人数据库索引:https://t.zsxq.com/9Udth
2)v2 购票接口本地锁优化:https://t.zsxq.com/HW7LE
v2 购票接口中,当令牌快速被消耗完的时候,会导致大量请求同时触发重建缓存,就会把获取分布式锁的压力转移到获取本地锁。
通过 Cache 提供的原始 API 原子写入:若 Key 不存在,插入 true 并返回 null;若存在,直接返回当前值。同时,把 ReentrantLock 那块逻辑一并改了。
3. RocketMQ DashBoard 更新
RocketMQ DashBoard 因为官方长时间不更新,导致在查询消息时会存在报错情况,有很多同学反馈这个问题。巧的是,有个正在参加 RocketMQ DashBoard 重构的同学也是星球用户,他提供了我最新的自定义 DashBoard Docker 镜像,完美的修复了该问题。
当前大家可以先用自定义镜像,等待后续 RocketMQ 官方修复。
docker run -d \
--name rocketmq-dashboard-x \
--ulimit nofile=65536:65536 \
-e "JAVA_OPTS=-Xms512m -Xmx512m -XX:MaxMetaspaceSize=256m -Drocketmq.namesrv.addr=xxx.xxx.xxx.xxx:9876 -Drocketmq.config.enableDashBoardCollect=false" \
-p 8088:8080 \
-t crazylychee/rocketmqdashboard:3.0
4. 开发者规约
熟悉马哥的都知道,我是一个编码&文档强迫症“患者”,需要一系列编码规范进行规约,来保证自己写的代码是有规律且优雅的。为此,我将一部分自己的开发规约整理了出来,后续会持续更新。
部分开发者规约文档如下:
技术周刊
1. RabbitMQ 官网设计
虽然在性能和生态上,RabbitMQ 可能不及 RocketMQ 或 Kafka,但它的官网却做得相当用心。页面布局清晰、内容详尽,不仅覆盖了从入门到进阶的使用指南,还配有清晰的架构图和实用的教程,对很多开源项目来说,是一个值得借鉴的典范。
2. IDEA 字体美学:Maple Font
如果你在意代码的颜值,不妨试试这个 Maple Mono 字体。它为 JetBrains 系列 IDE 做了字体优化,兼顾美感与可读性,是写代码时的一点小确幸,特别适合喜欢折腾和审美在线的开发者。
3. 技术无国界,公司有边界
近日 GitHub 因“测试”问题导致部分用户(主要是国内用户)出现无法登录的问题。官方声明虽已给出,但这也再次提醒我们:技术虽无国界,平台却有地域限制。对于依赖 GitHub 的开发者来说,不妨考虑设置更多备选方案以防突发情况 。