
java基础
文章平均质量分 85
Redick01
Dromara开源社区Committer,开源项目Apache Shenyu贡献者,致力于后端,分布式,微服务,Service Mesh等技术!
展开
-
JMH - Java微基准测试工具套件
MH 是 OpenJDK 团队开发的一款基准测试工具,一般用于代码的性能调优,精度甚至可以达到纳秒级别,适用于 java 以及其他基于 JVM 的语言。和 Apache JMeter 不同,`JMH 测试的对象可以是任一方法,颗粒度更小,而不仅限于rest api`。原创 2022-12-23 11:39:32 · 1375 阅读 · 0 评论 -
ScheduledThreadPoolExecutor不执行原因分析
前言 最近在调试一个监控应用指标的时候发现定时器在服务启动执行一次之后就不执行了,这里用的定时器是Java的调度线程池ScheduledThreadPoolExecutor,后来经过排查发现ScheduledThreadPoolExecutor线程池处理任务如果抛出异常,会导致线程池不调度;下面就通过一个例子简单分析下为什么异常会导致ScheduledThreadPoolExecutor不执行。ScheduledThreadPoolExecutor不调度分析示例程序&nbs原创 2022-03-08 14:06:01 · 5494 阅读 · 0 评论 -
实现一个简单的SPI
实现一个自定义的SPI机制其核心的逻辑就是扩展的加载,本篇是参考Dubbo等开源项目简单实现了一个SPI机制的核心代码,核心逻辑就是从SPI扩展的配置文件中加载扩展实现的流程原创 2022-01-10 15:10:37 · 837 阅读 · 0 评论 -
基于JavaAgent实现发布http接口
文章目录需求初步方案技术实现pom文件依赖实现一个JavaAgent支持SpringBoot发布的Http接口支持DubboX发布的rest接口使用方式总结需求 公司运维系统想要监控服务是否正常启动,这些服务是k8s部署的,运维人员的要求业务服务提供一个http接口用于监控服务健康监测,要求所有的接口请求的URL,参数等都是相同的,这么做的目的是不需要通过规范来约束开发人员去开一个服务健康监测的接口。 使用服务接口来检测服务我觉得相比较监控进程启动,原创 2021-11-08 21:12:23 · 1667 阅读 · 10 评论 -
使用javaagent实现代码无入侵增强logback
前言增强logbackWeb拦截器配置编写javaagent程序制作javaagent包测试总结前言 程序运行日志对于系统问题排查,业务监控等都是十分重要的,Java记录日志大多通过logback,log4j等框架实现,我之前根据公司的日志规范封装了一个日志插件包,系统需要集成工具包并按照日志打印规范进行日志打印,运维系统使用filebeat收集日志到ES,开发通过ELK(ES,logstah,kibana)查看日志。但是某些很老旧且庞大的系统并没有集成日志工.原创 2021-10-13 11:18:49 · 1688 阅读 · 0 评论 -
Javaagent使用指南
JVM启动前静态InstrumentJavaagent是什么?Javaagent是java命令的一个参数。参数javaagent可以用于指定一个jar包,并且对该java包有2个要求:这个jar包的MANIFEST.MF文件必须指定Premain-Class项。Premain-Class指定的那个类必须实现premain()方法。premain 方法,从字面上理解,就是运行在 main 函数之前的的类。当Java虚拟机启动时,在执行 main 函数之前,JVM会先运行-javaagent所指定转载 2021-10-11 20:18:19 · 12121 阅读 · 0 评论 -
使用TransmittableThreadLocal实现异步场景日志链路追踪
背景解决方案背景 在生产环境排查问题往往都是通过日志,但对于巨大的日志量,如何针对某一个操作进行一整个日志链路的追踪就显得尤为重要,在Java语言第三方的日志工具都提了日志链路追踪的方案,比如logback的MDC,MDC的使用也很简单,就是在业务的开始put一个key-value,这个key-value就能贯穿整个线程的执行流程,使用代码如下:MDC.put("traceId", UUID.randomUUID().toString());  .原创 2021-07-06 23:14:03 · 2861 阅读 · 11 评论