搜索

工作总结

发布时间: 2026.03.09

2026年Java工程师个人工作总结。

这一年负责订单中心,全年下来核心需求交付率98.5%,线上故障数比去年少了40%。数字看着还行,但背后有几件事一直堵在心里,不吐不快。

先说那次压测。Q2备货节前,系统压到500并发订单接口就卡死,监控上线程池被打满,连接池爆红。我们连接池配的是200,按理说500并发应该能扛,可实际连300都撑不住。那周几乎天天耗在机房,盯着Grafana,翻日志,用Arthas看线程栈。后来发现线程大量阻塞在一个HTTP调用上——第三方物流状态查询接口。代码里配的超时是30秒,但没设熔断,请求一慢线程就卡住不放,慢慢把Tomcat的worker线程全拖死了。那会儿真想骂人,明明上线前评审过,谁都没想到一个不起眼的查询会捅这么大篓子。

最后方案是:用线程池隔离,单独给物流查询开个小线程池,超时改成3秒,再加个熔断器。改完再压,500并发稳稳的,响应时间反而从320ms降到210ms。事后复盘,我在代码规范里加了一条:所有第三方调用必须配超时和熔断,压测报告也得带上第三方依赖的监控数据。这事让我明白,高可用不是靠拍脑袋,得一个个坑填出来的。

带新人也是今年花心思的地方。团队来了俩应届生,一开始我让他们直接改Bug,结果俩人经常卡在环境搭建和业务理解上,一周提不了几个PR。后来换了个方式,拿一次真实的并发扣库存故障做复盘会。我把当时死锁的MySQL日志、业务日志、监控截图都贴出来,问他们:“假如你是值班的,看到这个怎么办?”一个说加synchronized,另一个说用分布式锁。我们就现场写demo,用JMeter压,果然synchronized在集群下没用,Redis锁又遇到超时解锁问题。折腾一下午,最后大家讨论出用乐观锁+重试机制。那之后他俩上手快多了,其中一个后来还主动去翻《Java并发编程实战》,说要补基础。有时候我觉得,教技术不如教怎么掉坑里再爬出来。

跨部门扯皮的事也不少。比如做预约配送时间,前端非要后端一次性返回所有可选时段,后端说数据量大得按天查,产品夹中间两边哄。后来我翻了半个月的用户点击日志,发现80%的预约集中在未来三天,剩下的日子只有零星选择。拿这数据开会,前端后端都服了,最后定成:三天内走Redis缓存,三天后走异步查询。方案简单,但要是没那80%的数据,估计还在吵。

再说一个差点漏掉的优化。运维同事有次抱怨,说订单服务CPU总在下午4点有个尖峰。我翻监控,发现是运费计算接口的调用量特别大,日均2000万次,虽然平均耗时只有50ms,但架不住量大。再细看,调用方全是营销页面的商品列表,每个商品都调一次运费接口。营销页对时效要求不高,完全可以缓存。于是我们给这个接口加了一层本地缓存,过期时间设5分钟,再配合Redis做二级缓存,结果CPU降了70%,接口响应反而更快了。这事给我的启发是:别总盯着慢接口,还得盯热接口。

当然也有翻车的时候。Q3想优化一个慢SQL,加了索引后效果不明显,折腾两天才发现那个SQL一天只跑几十次,优化半天对整体没影响。当时挺尴尬的,花时间做了没价值的事。后来我要求所有优化任务必须先给数据——哪个接口调用量多少,平均耗时多少,优化后预期收益多少。数据不过关就不立项,这规矩定下来后,大家反而更愿意去抠那些有性价比的优化点。

回看这一年,代码写了不少,但真正沉淀下来的不是技术栈多新,而是遇到问题时怎么抽丝剥茧,怎么用数据说服别人,怎么让新人少走弯路。明年希望继续把这些坑踩踏实,少一点“早知道”,多一点“因为所以”。

    工作总结之家小编为您推荐工作总结专题,欢迎访问:工作总结
"工作总结"延伸阅读