后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过F5或者任何代理的方式就可以很好的解决。后文描述的主要是针对有状态的服务进行分析。服务端进行状态维护主要是通过磁盘或内存进行保存,比如MySQL数据库,redis等内存数据库。除了这两种类型的维护方式,还有jvm的内存的状态维持,但jvm的状态生命周期通常很短。
分类:
其他好文 时间:
2020-12-22 12:49:14
阅读次数:
0
JVM 的内存结构和内存分配 a) Java 内存模型 Java 虚拟机将其管辖的内存大致分三个逻辑部分:方法区(Method Area)、Java 栈和 Java 堆。 1、方法区是静态分配的,编译器将变量绑定在某个存储位置上,而且这些绑定不会在运行时改变。 常数池,源代码中的命名常量、Strin ...
分类:
其他好文 时间:
2020-12-18 12:32:45
阅读次数:
2
你知道的越多,你不知道的越多上次给老公们说过了死循环cpu飙高的排查过程,今天就带着老公们看看堆内存溢出我们一般怎么排查的。cpu100%排查文章在排查之前,我想jvm的基础知识大家应该都是了解了的吧?老婆我就是不了解,人家要你说给我听。行行行,诶真实拿你们没办法,那我就带大家回温一下JVM的内存模型(这玩意跟JAVA内存模型JMM可不一样,不要记错了)今天我就直说堆,因为溢出是发送在堆中的。JV
分类:
其他好文 时间:
2020-11-01 10:50:50
阅读次数:
13
前言 阅读过王子之前JVM文章的小伙伴们,应该已经对JVM的内存分布情况有了一个清晰的认识了,今天我们就接着来聊聊JVM的垃圾回收机制,让小伙伴们轻松理解JVM是怎么进行垃圾回收的。 复制算法、Eden区和Survivor区 首先我们就来探索一下对于JVM堆内存中的新生代区域,是怎么进行垃圾回收的。 ...
分类:
其他好文 时间:
2020-10-14 20:37:00
阅读次数:
20
本文源码:GitHub·点这里 || GitEE·点这里 一、内存与线程 1、内存结构 内存是计算机的重要部件之一,它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。JVM的内存结构规定Java程序在执行时内存的申请、划分、使用、回收的管理 ...
分类:
其他好文 时间:
2020-09-24 22:00:57
阅读次数:
40
前言说jvm的内存模型前先了解一下物理计算机的内存处理。物理计算器上用户磁盘和cpu的交互,由于cpu读写速度速度远远大于磁盘的读写速度速度,所以有了内存(高速缓存区)。但是随着cpu的发展,内存的读写也跟不上cpu的读写速度了,cpu的产商就给每个cpu加入了一个高速缓存,也就是下面的结构。JVM组成解析运行时数据区运行时数据区中包括:栈、堆、方法区(元空间)、本地方法栈、程序计数器。详细概念在
分类:
其他好文 时间:
2020-09-17 12:44:01
阅读次数:
25
每个java开发同学不管是日常工作中还是面试里,都会遇到JDK、JVM和GC的问题。本文会从以下10个问题为切入点,带着大家一起全面了解一下JVM的方方面面。JVM、JRE和JDK的区别和联系JVM是什么?以及它的主要作用JVM的核心功能有哪些类加载机制和过程运行时数据区的逻辑结构JVM的内存模型如何确定对象是垃圾垃圾收集的算法有哪些各种问世的垃圾收集器JVM调优的参数配置上一篇文章结尾时我们谈到
分类:
其他好文 时间:
2020-08-24 16:31:19
阅读次数:
50
说到Java内存区域,可能很多人第一反应是“堆栈”。首先堆栈不是一个概念,而是两个概念,堆和栈是两块不同的内存区域,简单理解的话,堆是用来存放对象而栈是用来执行程序的。其次,堆内存和栈内存的这种划分方式比较粗糙,这种划分方式只能说明大多数程序员最关注的、与对象内存分配关系最密切的内存区域是这两块,J ...
分类:
其他好文 时间:
2020-07-29 21:56:54
阅读次数:
76
深入理解运行时数据区 代码示例: 1. JVM 向操作系统申请内存: JVM 第一步就是通过配置参数或者默认配置参数向操作系统申请内存空间,根据内存大小找到具体的内存分配表,然后把内存段的起始地址和终止地址分配给 JVM,接下来 JVM 就进行内部分配。 2. JVM 获得内存空间后,会根据配置参数 ...
分类:
其他好文 时间:
2020-07-22 01:43:22
阅读次数:
61
Java语言与C语言相比,最大的特点是编程人员无需过多的关心Java的内存分配和回收,因为所有这一切,Java的虚拟机都帮我们实现了。JVM的内存管理,大大降低了开发人员对内存管理的要求,也不容易出现C语言中的内存泄漏和溢出。但一旦应用内存发生问题,也会导致程序员难以定位。所以对于Java程序员来说 ...
分类:
编程语言 时间:
2020-06-30 17:35:18
阅读次数:
101