自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

悟空学院

Spring Boot周边技术探索和交流学习。

原创 国内最全的Spring Boot系列之三

历史文章 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 马上要过年了,作者要回家好好休息一下了,吃饱喝足,明年继续。在此和大家拜个早年,祝大家:鼠年大吉、心想事成、万事如意、开心每一天。 「您可以在评论区留下你的脚步、留下你的祝福;因为你的...

2020-03-03 16:56:50 4178 0

原创 分布式事务「2020年」必学

地址:https://study.163.com/course/introduction.htm?courseId=1209598927&_trace_c_p_k2_=e57e500f06e7430388d50bb1d29249d6 地址:ht...

2019-12-07 19:52:07 4024 3

原创 国内最全Spring Boot系列之一

【视频&交流平台】 àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008 àSpringCloud视频 http://study.163.com/course/introduction....

2017-12-26 10:22:31 8382 0

原创 Docker优雅的关闭SpringBoot - 第310篇
原力计划

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 国内最全的SpringBoot系列之三 布隆过滤器BloomFilter竟然让我解决了一个大厂的问题-第305篇 100G的文件如何读取-第306篇 100G的文件如何读取续集-第307篇 Java语言的优雅停机-第30...

2020-06-11 17:01:21 479 0

原创 SpringBoot 优雅停止服务的几种方法 - 第309篇
原力计划

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 国内最全的SpringBoot系列之三 一分钟get:缓存穿透、缓存击穿、缓存雪崩-第304篇 布隆过滤器BloomFilter竟然让我解决了一个大厂的问题-第305篇 100G的文件如何读取-第306篇 100G的文件...

2020-06-09 16:39:55 645 0

原创 Java语言的优雅停机 - 第308篇

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 国内最全的SpringBoot系列之三 水满自溢「限流算法第四把法器:漏桶算法」- 第303篇 一分钟get:缓存穿透、缓存击穿、缓存雪崩-第304篇 布隆过滤器BloomFilter竟然让我解决了一个...

2020-05-25 17:47:40 1861 0

原创 100G的文件如何读取续集 - 第307篇
原力计划

师傅:徒儿,睡醒了没有,赶紧起床学习了 悟纤:师傅,这不天还没亮嘛? 师傅:学习要趁早,没听过早起的鸟有虫嘛! 悟纤:晚起的鸟儿也有虫吃呀,晚起的鸟儿吃晚起的虫。 师傅:是,是,你都说的都对,你再不起来,午饭都快没了。 悟纤:欧侯,师傅,现在不会是快到下午了吧。 师傅:是呀,你现在才发...

2020-05-22 11:49:38 2596 0

原创 Spring Boot+Spring Security:前后端分离之Vue- 第38篇

目前比较流行的前端框架就是Vue。 一、Vue怎么玩? 官网脚手架地址: https://cn.vuejs.org/v2/guide/ 1.1 使用方式一 尝试 Vue.js 最简单的方法是使用 Hello World 例子。你可以在浏览器新标签页中打开它,跟着例子学习一些基础用...

2020-05-22 11:45:17 2645 0

原创 Spring Boot+Spring Security:前后端分离之跨域问题- 第37篇

由于我们端口不一样,就会引起跨域问题,那么怎么解决呢。只要修改下后端就可以了 一、跨域解决 方案一: 使用@CrossOrigin注解 在Controller上使用@CrossOrigin注解 @CrossOrigin("http://127.0.0.1:8848&qu...

2020-05-22 11:43:05 2593 0

原创 Spring Boot+Spring Security:前后端分离之前端jquery.ajax- 第36篇

前言 前面我们改造了后台,这时候,我们发现我们登录直接不能使用了。所以我们需要改造下前端。 一、jquery ajax 1.1 改造登录 在登录页面,添加jquery的依赖: <script src="https://cdn.bootcss.com/jquer...

2020-05-22 11:40:26 2573 0

原创 Spring Boot+Spring Security:前后端分离之后端改造编码- 第35篇

前言 使用JWT之后,对于Spring Security有些地方就需要进行调整了,另外对于前端也是需要调整的,因为原本是有状态的,现在变成无状态了,也就不存在cookie和session的交互了,这时候前端的认证就需要进行调整。 一、思路说明 有了前面做的一些基本工作之后,表结构和数...

2020-05-22 11:33:42 2660 0

原创 Spring Boot+Spring Security:前后端分离之后端改造分析- 第34篇

前言 使用JWT之后,对于Spring Security有些地方就需要进行调整了,另外对于前端也是需要调整的,因为原本是有状态的,现在变成无状态了,也就不存在cookie和session的交互了,这时候前端的认证就需要进行调整。 一、定义JWTLoginFilter 继承Username...

2020-05-22 11:28:06 2693 0

原创 Spring Boot+Spring Security:前后端分离之JWT介绍- 第33篇

一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 (1)、用户向服务器发送用户名和密码。 (2)、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 (3)、服务器向用户返回一个 session_id,写入用户的 Cookie。 ...

2020-05-22 11:27:23 2602 0

原创 Spring Boot+Spring Security:前后端分离的架构发展 - 第32篇

一、前后端未分离 1.1 开发模式 前后端没有区分由程序员一人包干。 1.1 开发模式 前后端没有区分由程序员一人包干。 1.2 渲染模式 后端渲染:以jsp,asp, php 为代表的后端直接输出html形式,全部由后端 工程师搞定。 1.3 优缺点 优点:开发模式简单 ...

2020-05-22 11:25:03 2520 0

原创 费曼学习法为什么会如此有魅力

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 超实用的康奈尔笔记法 我的费曼学习法之路「世界上最好的学习法:费曼学习法」 微积分你记得多少?想了解费曼的进入 有个故事不知道你听过没有。 在一列开往北京方向的火车上,有一位农民父亲,他的女儿三年前上考上了清华,儿子...

2020-05-19 14:28:25 2814 0

原创 100G的文件如何读取 - 第306篇
原力计划

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 国内最全的SpringBoot系列之三 精度不够,滑动时间来凑「限流算法第二把法器:滑动时间窗口算法」-第301篇 没有预热,不叫高并发「限流算法第三把法器:令牌桶算法」-&nbsp;第302篇 水满自溢「限流算法第...

2020-05-19 14:14:44 2941 0

原创 JVM内存模型和性能调优:JVM调优工具详解及调优实战:GC日志调优小实战- 第41篇

GC日志说明 对于java应用我们可以通过一些配置把程序运行过程中的gc日志全部打印出来,然后分析gc日志得到关键性指标,分析GC原因,调优JVM参数。 打印GC日志方法,在JVM参数里增加参数: -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:...

2020-05-07 14:07:31 3827 0

原创 JVM内存模型和性能调优:JVM调优工具详解及调优实战:jstat调优小实战- 第40篇

一、准备工作 准备一个工程jvm-full-gc,核心代码: @RestController public class IndexController { @RequestMapping("/user/process") public String p...

2020-05-07 14:05:41 3843 0

原创 JVM内存模型和性能调优:JVM调优工具详解及调优实战:JVM运行情况预估 - 第39篇

用 jstat gc -pid 命令可以计算出如下一些关键数据,有了这些数据就可以采用之前介绍过的优化思路,先给自己的系统设置一些初始性的JVM参数,比如堆内存大小,年轻代大小,Eden和Survivor的比例,老年代的大小,大对象的阈值,大龄对象进入老年代的阈值等。 (1)年轻代对象增长的速率...

2020-05-07 14:01:45 3835 0

原创 JVM内存模型和性能调优:JVM调优工具详解及调优实战:jstat - 第38篇

一、说明 jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。 命令的格式如下: jstat [-命令选项] [vmid] [间隔时间(毫秒)] [查询次数] 注意:使用的jdk版本是jdk8. 二、垃圾回收统计 最常用,可以评估程序内存使用及GC压力整体情况。 指令:...

2020-05-07 14:00:43 3794 0

原创 JVM内存模型和性能调优:JVM调优工具详解及调优实战:Jstack - 第37篇

查看线程 一、用jstack加进程id查找死锁 用jstack加进程id查找死锁,见如下示例DeadLockTest: public class DeadLockTest { private static Object lock1 = new Object(); priva...

2020-05-07 13:57:52 3763 0

原创 一分钟get:缓存穿透、缓存击穿、缓存雪崩 - 第304篇
原力计划

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 国内最全的SpringBoot系列之三 「世界上最好的学习法:费曼学习法」 高并发,不怕不怕「限流算法第一把法器:计数器法」-第300篇 精度不够,滑动时间来凑「限流算法第二把法器:滑动时间窗口算法」-第301篇 没有...

2020-04-28 14:13:47 3893 2

原创 JVM内存模型和性能调优:JVM调优工具详解及调优实战:Jmap - 第36篇

此命令可以用来查看内存信息。 一、实例个数以及占用内存大小 命令:jmap -histo 91289 > /data/tmp/log.txt 其中91289是进程ID,使用jps进行查看。 打开log.txt,文件内容如下(HeapTest): num:序号 instan...

2020-04-28 14:05:25 3890 0

原创 JVM内存模型和性能调优:垃圾收集算法:亿级流量电商系统如何优化JVM参数 - 第35篇

亿级流量电商系统如何优化JVM参数设置:ParNew+CMS 大型电商系统后端现在一般都是拆分为多个子系统部署的,比如,商品系统,库存系统,订单系统,促销系统,会员系统等等。 占用字节表: 我们这里以比较核心的订单系统为例: 对于8G内存,我们一般是分配4G内存给JVM,正常的...

2020-04-28 14:02:22 3902 0

原创 JVM内存模型和性能调优:垃圾收集算法:每秒几十万并发的系统优化JVM - 第34篇

一、每秒几十万并发的系统优化JVM Kafka类似的支撑高并发消息系统大家肯定不陌生,对于Kafka来说,每秒处理几万甚至几十万消息时很正常的。 一般来说部署Kafka需要用大内存机器( 比如64G ),也就是说可以给年轻代分配个三四十G的内存用来支撑高并发处理。 这里就涉及到一个问题了,我...

2020-04-28 13:59:58 3769 0

原创 JVM内存模型和性能调优:垃圾收集算法:垃圾收集器(三) - 第33篇

五、G1收集器(-XX:+UseG1GC) 5.1 概念 G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多核处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征(面对大容量内存的机器)。 G1将Java堆划分为...

2020-04-28 13:59:09 3647 0

原创 JVM内存模型和性能调优:垃圾收集算法:垃圾收集器(二) - 第32篇

四、CMS收集器(-XX:+UseConcMarkSweepGC『old:只能用在老年代 』) CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。它非常符合在注重用户体验的应用上使用,它是HotSpot虚拟机第一款真正意义上的并发收集器,它第一...

2020-04-28 13:57:54 3765 0

原创 JVM内存模型和性能调优:垃圾收集算法:垃圾收集器(一) - 第31篇

如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 垃圾收集器就是垃圾收集算法的具体实现。 虽然我们对各个收集器进行比较,但并非为了挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的...

2020-04-26 13:55:31 3747 0

原创 JVM内存模型和性能调优:垃圾收集算法:垃圾收集算法 - 第30篇

一、标记-清除算法 算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 标记-清除算法最基础的收集算法,效率也很高,但是会带来两个明显的问题: (1)效率问题 : 相对于复制算法而言。 (2)空间问题(标记清除后会产生大量不连续的碎...

2020-04-26 13:54:14 3851 0

原创 JVM内存模型和性能调优:垃圾收集算法:如何判断对象可以被回收(第二篇)- 第29篇

四、finalize()方法最终判定对象是否存活 即使在可达性分析算法中不可达的对象,也并非是“非死不可”的,这时候它们暂时处于“缓刑”阶段,要真正宣告一个对象死亡,至少要经历再次标记过程。 标记的前提是对象在进行可达性分析后发现没有与GC Roots相连接的引用链。 (1)第一次标记并进...

2020-04-26 13:52:47 3938 0

原创 JVM内存模型和性能调优:垃圾收集算法:如何判断对象可以被回收(第一篇)- 第28篇

堆中几乎放着所有的对象实例,对堆垃圾回收前的第一步就是要判断哪些对象已经死亡(即不能再被任何途径使用的对象) 一、引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加1;当引用失效,计数器就减1;任何时候计数器为0的对象就是不可能再被使用的。 这个方法实现简单,效率高,...

2020-04-26 13:50:24 3825 0

原创 水满自溢「限流算法第四把法器:漏桶算法」- 第303篇
原力计划

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 国内最全的SpringBoot系列之三 版本号命名的前世今生-值得收藏-第299篇 「世界上最好的学习法:费曼学习法」 高并发,不怕不怕「限流算法第一把法器:计数器法」-第300篇 精度不够,滑动时间来凑「限流算法第二把法...

2020-04-24 11:38:50 3920 0

原创 JVM内存模型和性能调优:JVM内存分配与回收:老年代空间分配担保机制- 第27篇

年轻代每次minor GC之前JVM都会计算下老年代剩余可用空间 如果这个可用空间小于年轻代里现有的所有对象大小之和( 包括垃圾对象 ) 就会看一下“-XX:-HandlePromotionFailure”( jdk1.8默认就设置了 )的参数是否设置了。 如果有这个参数,就会看看老年代的可...

2020-04-24 11:21:47 3854 0

原创 JVM内存模型和性能调优:JVM内存分配与回收:Minor GC后存活的对象Survivor区放不下- 第26篇

Minor GC后存活的对象Survivor区放不下,这种情况会把存活的对象部分挪到老年代,部分可能还会放在Survivor区。 (1)当我们的代码中有allocation1和allocation2 byte[] allocation1; allocation1 = new byte[60*...

2020-04-24 11:20:19 3952 0

原创 JVM内存模型和性能调优:JVM内存分配与回收:对象动态年龄判断- 第25篇

一、对象动态年龄判断 当前放对象的Survivor区域里(其中一块区域,放对象的那块S区),一批对象的总大小大于这块Survivor区域内存大小的50%(-XX:TargetSurvivorRatio可以指定),那么此时大于等于这批对象年龄最大值的对象,就可以直接进入老年代了。 例如Survi...

2020-04-24 11:18:46 3928 0

原创 JVM内存模型和性能调优:JVM内存分配与回收:长期存活的对象将进入老年代- 第24篇

一、长期存活的对象将进入老年代 既然虚拟机采用了分代收集的思想来管理内存,那么内存回收时就必须能识别哪些对象应放在新生代,哪些对象应放在老年代中。为了做到这一点,虚拟机给每个对象一个对象年龄(Age)计数器。 如果对象在 Eden 出生并经过第一次 Minor GC 后仍然能够存活,并且能被...

2020-04-24 11:17:45 3936 0

原创 JVM内存模型和性能调优:JVM内存分配与回收:大对象直接进入老年代- 第23篇

一、大对象直接进入老年代 1.1 定义 大对象就是需要大量连续内存空间的对象(比如:字符串、数组)。JVM参数 -XX:PretenureSizeThreshold 可以设置大对象的大小,如果对象超过设置大小会直接进入老年代,不会进入年轻代,这个参数只在 Serial (串行收集器)和ParN...

2020-04-23 15:52:01 3840 0

原创 JVM内存模型和性能调优:JVM内存分配与回收:对象优先在Eden区分配- 第22篇

大多数情况下,对象在新生代中 Eden 区分配。当 Eden 区没有足够空间进行分配时,虚拟机将发起一次Minor GC。 我们来进行实际测试一下,在测试之前我们先来看看 Minor GC和Full GC 有什么不同呢? Minor GC/Young GC:指发生新生代的的垃圾收集动作,Min...

2020-04-23 15:49:16 4097 0

原创 没有预热,不叫高并发「限流算法第三把法器:令牌桶算法」- 第302篇

相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) 「定制SpringBootAdminUI的页面」-第298篇 国内最全的SpringBoot系列之三 版本号命名的前世今生-值得收藏-第299篇 「世界上最好的学习法:费曼学习法」 高并发,不怕不怕「限流算法第一把法器:计...

2020-04-20 20:59:21 3927 0

原创 JVM内存模型和性能调优:JVM内存模型整体回顾- 第21篇

对于原先本章第一节的那张图片,带领和大家一起回顾下: 整体: (1)类加载子系统:就是上面我们讲过的类加载器做的事情。 (2)字节码执行引擎:顾名思义就是执行字节码指令的。 (3)运行时数据区:Java虚拟机在执行Java程序过程中会把内存区域划分为若干个不同的数据区域,这些区域统...

2020-04-20 16:58:53 3863 0

提示
确定要删除当前文章?
取消 删除