
java记录
文章平均质量分 70
猿某人、
一位混迹在码界的攻城狮!
展开
-
使用Spring Boot和MDC实现跨线程链路日志追踪
在分布式系统中,链路日志追踪是一项至关重要的功能,可以帮助我们快速定位问题,了解每个请求在系统中的完整调用链路。本文将介绍如何在Spring Boot应用中使用MDC(Mapped Diagnostic Context)实现链路日志追踪,以及如何在使用@Async注解的异步任务中传递traceId。原创 2023-03-29 16:10:43 · 5073 阅读 · 2 评论 -
如何基于Spring中的事件驱动编程实现业务解耦?ApplicationEventPublisher
Spring基于事件类EventObject和事件监听类ApplicationListener..实现了一套事件驱动模型,它类似于消息队列(MQ)中的 发布/订阅 模式,也类似于设计模式中的观察者模式。原创 2022-08-01 17:15:08 · 505 阅读 · 0 评论 -
parallelStream引发的生产环境BUG
背景线上有个接口需要查询返回一个列表数据,原来是采用了Stream进行遍历数据过滤的,随着数据的增长,这个接口一次性需要处理的数据越来越多,然后这期需要对其进行优化。除去一些其它的DB方法优化,也改动到这里了,改成了parallelStream进行处理。没做好并发处理,埋了个雷!经过优化后,性能提升也还算比较明显有用,极端数据的情况下缩短了近一半开销。效果这么好,我笑了事故然后顺利的通过测试,发布上线...结果第二天就出现异常,还是偶发性异常,根据日志本地重现也无法.原创 2022-04-01 10:32:59 · 936 阅读 · 0 评论 -
Linux服务器被植入kthreaddk挖矿程序后处理方案
今天早上一过来上班就收到客户反馈,小程序无法上传图片了,经过日志排查发现服务器tmp文件目录被删了,导致上传失败异常。同时我发现服务器CPU爆满,查看进程就发现不对劲,似乎有问题。查询了一下占用进程名,发现是个挖矿木马。使用top命令,查看内存消耗。我发现kill了过一段时间又会重新启动,删除定时任务也无法解决。最后为了保证服务器的可用先,我直接停止了定时任务的使用。crontab -r再kill了进程,服务器不堵塞恢复正常使用了。然后慢慢清理木马!...原创 2022-03-30 11:43:47 · 4935 阅读 · 0 评论 -
阿里巴巴开发手册2020泰山版和嵩山版资源记录分享!
链接: https://pan.baidu.com/s/1MotvqPhJVaMLXI5uDZ5M5Q密码: o49h原创 2021-08-03 00:11:31 · 435 阅读 · 0 评论 -
Spring AOP实现接口请求参数的日志打印以及接口安全、合法性校验
一、缘由在我们日常系统的开发中,不可避免的需要对外提供一些接口,比如公司多个系统需要调用我们负责的系统中某个接口、功能。而这类接口往往涉及到公司的数据,对于安全性需要一定的保证,总不能写一个接口,所有的调用都响应吧?所以就有了此文分享。二、方案任何技术和方案都具有多面性,有利也有弊,我们只能根据自己的实际业务作出取舍。1.基于token等机制做统一权限校验市面上开源权限框架有很多,如Shiro、Spring Security、Sa-Token...利:安全...原创 2021-07-19 14:54:47 · 931 阅读 · 2 评论 -
基于【SpringBoot】的微服务【Jenkins】自动化部署
前言关于自动化部署的好处,我就不再赘述了,经历过打包上传杀进程...都懂。特别是现在很多项目都开始模块化,一个项目启动的项目数十个,一个个人工操作,会累死。有jenkins就可以解放了,一杯茶点点点即可构建完成!(配置麻烦,后续解放)一、前期准备JDK环境GIT环境jenkins启动完成Maven环境3.6.3(以上就不展示了,都是最基础的环境搭建)二、项目结构首先看一下我们这个项目的结构。根项目,下面有6个子项目,6个子项目分别有自己的子项目,多级互相依赖!原创 2021-01-19 16:02:47 · 482 阅读 · 0 评论 -
什么是接口幂等性?如何保证幂等性?用真实的场景说一下
案例前段时间,我修改的一个功能涉及的接口,经过测试小姐姐的仔细盘查,出BUG了...而且是很严重的BUG。可以看到同样的数据产生两条了,如果不注意,两条都审核通过...那就是白花花的银子,会被祭天的!我一寻思,我也没改什么重要逻辑,就是加个字段,怎么就加出BUG了???然后我一顿常规操作,发现问题依旧存在...嗯确认是BUG无疑了。经过我翻阅代码发现这个接口业务比较繁琐,调用链路有点长,所以处理需要一点时间,如果再加上前端没有做按钮限制,很容易就出现重复提交的情况原创 2020-12-18 10:33:39 · 521 阅读 · 1 评论 -
一次线上错误引发的事故,主角: java.util.NoSuchElementException: No value present
背景今天无意间使用一个没什么太大用的功能点时,突然我的小美不停的给我发消息...别误会,小美不是“人”,是机器人,诺~就是下面这货!根据小美的提示找到代码位置,一看,我傻了,这么取值,不是写BUG吗?VAllCustomer customer = vAllCustomerRepository.findById(consume.getCustomerId()).get();我们可以看到IDEA都有提示:SonarLint: Call "Optional#isPrese原创 2020-12-14 15:34:16 · 738 阅读 · 1 评论 -
Java处理多个List集合中对象数据合并处理数据后为同一个List集合对象
描述现有三个接口,分别返回相同的列数据,字段名相同但是数据归属业务不同。但最终要的结果是几个集合的所有数据!(三个接口来源数据并无关联关系,都是互相独立)最终效果:实际三个接口查询出来,使用list.addAll()进行拼接:无法满足业务要求,如下才是满足业务要求:下面是解决方案:对。上代码!三个list数据接口//产品List<ProductSalesVO> productRanking=objectJsonResult.getDa.原创 2020-09-01 10:09:16 · 7734 阅读 · 4 评论 -
基于Spring AOP实现自定义注解记录系统操作记录日志
前言近期公司历史项目需要增加一个记录操作记录的功能,但由于项目已经是中后期了,无可避免的增加耦合度。![产品给出的原型图](https://img-blog.csdnimg.cn/20200826152800140.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI0MzczNTMz,size_16,color_FFFFFF,t_70#p原创 2020-08-26 16:19:09 · 525 阅读 · 0 评论