上周熬夜查了一个线上问题,最后复盘会议却没有深入,部门里还是要求快,根据熵增定律,软件系统需要定期注入能力,以维持系统稳定,如果只求快,那么就是牺牲系统的扩展性、健壮性、稳定性。
后期总结一篇生产环境排查问题指南。
今天主体是一个补丁,设计dubbo 超时,spring 异步方法,spring 异步线程传递ThreadLocal 信息。
一、dubbo 超时怎样
{
"code":"9","msg":"服务方法(xxx.xxx.xxx:1.0)业务逻辑出错","body":"java.lang.RuntimeException: com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method execute in the service com.fancv.xxx.ccc.client.DamClient. Tried 1 times of the providers [101.51.21.415:30001]

本文讨论了一次线上Dubbo服务调用超时的问题,尽管程序逻辑执行成功但导致页面错误。提出了通过Spring的@Async注解进行异步调用来优化,并详细介绍了如何处理异步线程中ThreadLocal信息丢失的问题,包括直接参数传递和自定义注解解决方案。文章还强调了系统稳定性和扩展性的维护,提示不应单纯追求速度而牺牲系统质量。
最低0.47元/天 解锁文章
2518

被折叠的 条评论
为什么被折叠?



