logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

如何在spring代理中实现自我调用(self-invocation)

问题在spring中如果在方法上添加了诸如@Transactional、@Cacheable、@Scheduled、@Async或是切面之类注解,那么这个类就将由spring生成其代理对象,对指定方法进行相关的包装。当该方法在其他对象中被调用时是可以正常触发代理方法的,然而在本类的方法中调用时却不会,最终调用的还是原始方法。class Service {public void met...

在Java项目中使用traceId跟踪请求全流程日志

最近在项目开发中遇到了一些问题,项目为多机部署,使用kibana收集日志,但并发大时使用日志定位比较麻烦,大量日志输出导致很难筛出指定请求的全部相关日志,以及下游服务调用对应的日志。因此计划对项目日志打印进行一些小改造,使用一个traceId跟踪请求的全部路径,前提是不修改原有的打印方式。简单的解决思路想要跟踪请求,第一个想到的就是当请求来时生成一个traceId放在ThreadLoc...

#logback#log4j
Java服务问题快速排查指南

问题收到服务内存占用过大告警,登录虚拟机使用ps -ef发现每隔几秒java进程占用的CPU就回暴增一次排查方向一:服务日志查看服务日志,正频繁打印连接mail服务器失败,根据错误堆栈信息定位到业务代码位置排查方向二:JVM工具若代码中未打印出错信息,可以考虑从jvm线程上入手。使用jps获取java服务pid使用top -H -p pid查看高占用线程,CPU...

#java
Java虚拟机是如何处理异常的?

编码时我们常常被要求尽量减少try-catch语句块,理由就是就算不抛异常它们也会影响性能。然而影响究竟有多大呢?语句块应该放在循环体内部还是外部呢?下面译文将详细阐释Java虚拟机处理异常的机制。虽然文中没有进行性能分析,但文末提供了一些基准测试的文章,先把结论写在前头:try-catch语句块几乎不会影响程序运行性能!

#java#虚拟机
到底了