Easter79 Easter79
3年前
springcloud使用之断路器hystrix
上一篇文章提到我们最近开了个新项目,目的是将新的业务放到新项目中,老项目单独维护,再逐步迁移老项目到新项目里。但就在前端时间生产环境发生了一个事故,事故开始的异常是我们的业务发现前端h5页面办理很慢,这台服务器跑了三个省的办理业务,同事在寻找问题的时候一口老血差点吐出来,所有的项目日志打在一个文件里,里面乱的程度无法用语言形容,因为太忙了的原因,这个事情被
Wesley13 Wesley13
3年前
Java中list集合的clean()方法滥用引发的bug
做的是电商系统,主系统生成订单后,分别加入到不同的队列中给另外的三个子系统来异步处理,订单和商品是一对多的关系,在实际测试中,发现其中有一个子系统从队列中获取到的订单实体中,商品列表一直为空,子系统的开发人员一直说是获取不到值导致。因为这个问题,测试一直没通过,不得已只能打日志,反复排查。最后发现在这个子系统中,从队列拿到订单实体后,商品列表是不为空的,但是
SpringBoot2.0笔记四
当搞全局捕获异常时可以使用到AOP技术,采用异常通知,也可以用AOP搞日志记录在类上面加上@EnableAsyns注解开启异步调用@Asyns,在方法上加上此注解,可以实现异步调用,底层是多线程技术,相当于加上这个注解的方法重新开启了一个单独的线程正常情况下,当A方法调用B方法时,是需要B方法执行完成,有返回结果时等待返回。这是顺序的方式从上到下执行程序,当使用@Asyns注解时,A方法调用B方法,不用等待B方法执行完成,可以直接向下执行,B方法单独开启一个线程,两个方法同时运行。@Va
sum墨 sum墨
1星期前
《优化接口设计的思路》系列:第三篇—留下用户调用接口的痕迹
接口设计是整个系统设计中非常重要的一环,其中包括限流、权限、入参出参、切面等方面。设计一个好的接口可以帮助我们省去很多不必要的麻烦,从而提升整个系统的稳定性和可扩展性。作为接口设计经验分享的第三篇,我想分享一下如何在用户使用过程中留下操作痕迹。在实际开发中,我会采取一些手段来记录用户操作,例如使用日志记录用户行为,或者在数据库中保存用户操作记录。这些痕迹可以帮助我们快速定位和解决问题,同时也可以为后续数据分析和优化提供有价值的参考。