摘要:
@ OOM 问题 什么是OOM OOM为out of memory的简称,来源于java.lang.OutOfMemoryError,指程序需要的内存空间大于系统分配的内存空间,OOM后果就是程序crash;可以通俗理解:程序申请内存过大,虚拟机无法满足,然后自杀了。 导致OOM问题的原因 为什么会 阅读全文
摘要:
关于死锁,一直是面试和日常开发中的熟悉话题,本文将进行一下探讨: 什么是死锁 出现死锁的原因 如何避免死锁 代码中死锁问题怎么排查 @ 1. 什么是死锁 死锁是指两个或两个以上的进程或线程,在执行过程中,由于竞争资源而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去 划重点:两个或两个以上进 阅读全文
摘要:
@ 本文将通过一个简单的案例,展示几下几点: 如何定位是哪个服务进程导致CPU过载 哪个线程导致CPU过载 哪段代码导致CPU过载 首先是写一个死循环的代码demo,用于模拟cpu100%的场景(此处不一定达到100%,只是为了演示排查过程尽量模拟) public class BusyCpu { p 阅读全文
摘要:
内容大纲: 涵盖java以下常用工具的概念和用法,及其常用案例 jps,jstat,jinfo,jmap,jhat,jstack jps 使用频率最高的JDK命令工具:可以列出正在运行的JVM进程,并可以显示出JVM执行主类和进程号(LVMID:本地虚拟机唯一ID) 1.常用命令 命令 作用 jps 阅读全文
摘要:
1.什么是JVM 说一说什么是JVM JVM,即 Java Virtual Machine,Java 虚拟机。它通过模拟一个计算机来达到一个计算机所具有的的计算功能。JVM 能够跨计算机体系结构来执行 Java 字节码,主要是由于 JVM 屏蔽了与各个计算机平台相关的软件或者硬件之间的差异,使得与平 阅读全文
摘要:
kafka的消费者 @ 内容大纲 深入学习kafka数据消费大致流程 创建并使用消费者 kafka消费者常用配置 1.重要概念 消费者和消费组 消费者负责订阅 Kafka 中的主题(Topic),并且从订阅的主题上拉取消息。 与其他一些消息中间件不同的是:在 Kafka 中还有一层消费组(Consu 阅读全文
摘要:
[Toc] 0 代理模式 代理模式是一种设计模式,说的简单一点,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。 代理模式图例: 针对该图进行解释,以下几点需要说明: 1. 用户只关心接口功能(Subject),而不在乎谁提供了功能。 2. 接口真正实现者是R 阅读全文
摘要:
@[toc] Redis有两种持久化方式 RDB和AOF RDB是快照方式,是⼀次全量备份;AOF是命令日志方式,连续的增量备份。redis默认采用RDB持久化方式 RDB Snapshot 快照,在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时是将快照文件直接读到内存里 配置 指定在多长时间 阅读全文
摘要:
Linux top命令详解 linux 命令详解 显示系统当前的进程和其它状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说, 命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命 阅读全文
摘要:
[TOC] 线程模型 线程模型分为两类,用户级线程(ULT)和内核级线程(KLT) 用户级线程(ULT):user level threads,系统内核对ULT无感知,线程的创建和调度都由用户级APP进程管理;即APP自行管理的线程,就是用户级线程 内核级线程(KLT):kernel level t 阅读全文