JVM
文章平均质量分 95
spring_root
学海无涯
展开
-
基于Redis实现分布式锁
对于单机多线程来说,在 Java 中,我们通常使用类、关键字这类 JDK 自带的本地锁来控制一个JVM进程内的多个线程对本地共享资源的访问。下面是我对本地锁画的一张示意图。从图中可以看出,这些线程访问共享资源是互斥的,同一时刻只有一个线程可以获取到本地锁访问共享资源。分布式系统下,不同的服务/客户端通常运行在独立的 JVM 进程上。如果多个 JVM 进程共享同一份资源的话,使用本地锁就没办法实现资源的互斥访问了。于是,分布式锁就诞生了。举个例子:系统的订单服务一共部署了 3 份,都对外提供服务。原创 2023-10-31 17:35:25 · 145 阅读 · 0 评论 -
nacos上的注册过的服务实例掉线分析
最近生产上的xxl_job框架的一个执行器(nacos客户端)因为分配内存不大,导致频繁与nacos服务端的连接断开,而断开之后虽然客户端服务没有宕掉,但是就是无法重新注册到nacos的服务端上去。原创 2023-09-11 20:45:00 · 1459 阅读 · 0 评论 -
聊聊 Java 的几把 JVM 级锁
Photo @ zibik文 | 楚昭简介在计算机行业有一个定律叫"摩尔定律",在此定律下,计算机的性能突飞猛进,而且价格也随之越来越便宜, CPU 从单核到了多核,缓存性能也得到了很大提升,尤其是多核 CPU 技术的到来,计算机同一时刻可以处理多个任务。在硬件层面的发展带来的效率极大提升中,软件层面的多线程编程已经成为必然趋势,然而多线程编程就会引入数据安全性问...原创 2021-07-14 14:59:08 · 128 阅读 · 0 评论 -
Arthas - Java 线上问题定位处理的终极利器
前言在使用Arthas之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用Arthas轻松定位,迅速解决,及时止损,准时下班。1、Arthas 介绍Arthas是A...转载 2020-02-17 12:52:43 · 666 阅读 · 0 评论 -
超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然。别慌,这里有一款低开销、自带火焰图、让你大呼好用的 Java 性能分析工具 -async-profiler。最近 Arthas 性能分析工具上线了火焰图分析功能,Arthas 使用async-profiler生成 CPU/内存火焰图进行性能分析,弥补了之前内存分析的不足。在 ...转载 2020-02-17 12:48:18 · 801 阅读 · 0 评论 -
SpringBoot 这样调优,让你的项目飞起来!
作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。修改配置文件关于修改配置文件application.properties。SpringBoot项目详细的配置文件修改文档https://docs.spring.io/spring-boot/docs/current/reference/html...原创 2019-11-05 08:55:01 · 166 阅读 · 0 评论 -
Jvm基础知识上篇
一、初识JVM1.运行时数据区域(1)程序计数器程序计数器是一块较小的内存空间,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令(条件分支,循环、异常抛出等基础功能都需要这个计数器)它可以看作是当前线程所执行的字节码的行号指示器。(2)java虚拟机栈它描述的是java方法执行的内存模型,即每个方法在执行的同时都会创建一个栈帧用于存储局部变量表(存放了...原创 2019-08-26 17:34:48 · 151 阅读 · 0 评论 -
Jvm基础知识下篇
一、java执行引擎工作原理:方法调用1.进行方法调用Java语言的原子指令是字节码,java方法是对字节码的封装。(1)invokestatic:调用静态方法(2)invokespecial:调用实例构造器<init>方法、私有方法和父类方法(super(),super.method())(3)invokevirtual:调用非私有实例方法,虚方法表中存放着各个方法的实...原创 2019-08-26 18:06:49 · 180 阅读 · 0 评论