JVM 输出 GC 日志导致 JVM 卡住,我 TM 人傻了

2022-06-17
阅读 5 分钟
739
本系列是 我TM人傻了 系列第七期[捂脸],往期精彩回顾:升级到Spring 5.3.x之后,GC次数急剧增加,我TM人傻了:[链接]这个大表走索引字段查询的 SQL 怎么就成全扫描了,我TM人傻了:[链接]获取异常信息里再出异常就找不到日志了,我TM人傻了:[链接]spring-data-redis 连接泄漏,我 TM 人傻了:[链接]Spring Cloud Gatew...

我所使用的生产 Java 17 启动参数

2022-06-17
阅读 6 分钟
1.3k
JVM 参数升级提示工具:jacoline.dev/inspectJVM 参数词典:chriswhocodes.com Revolut(英国支付巨头)升级 Java 17 实战:[链接]

CS162操作系统课程第二课-4个核心OS概念

2022-06-02
阅读 8 分钟
721
我们讨论了操作系统如何扮演裁判,魔术师和粘合剂的角色,裁判是指对于资源保护的管理;魔术师是指我们要让它看起来像我们有一套非常干净易用的资源的抽象,而不是使用实际的没有统一接口的物理资源。粘合剂是一组通用服务,它们使在操作系统上编写程序变得更容易,例如文件系统服务、网络服务等等。

CMU 15-445 数据库课程第四课文字版 - 存储2

2022-05-27
阅读 10 分钟
618
熟肉视频地址:[CMU数据库管理系统课程[熟肉]4.数据库存储结构2(上)]([链接])[CMU数据库管理系统课程[熟肉]4.数据库存储结构2(下)]([链接])

Berkley CS162 操作系统第一课文字版-课程介绍

2022-05-20
阅读 7 分钟
677
第一节课主要是关于课程介绍以及操作系统是什么、为什么这么重要的简介。现代最伟大的发明之一是互联网,它把全世界不同规模的设备都通过统一的网络连接在了一起:

为什么我建议需要定期重建数据量大但是性能关键的表

2022-05-02
阅读 8 分钟
1.3k
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本文是“为什么我建议”系列第三篇,本系列中会针对一些在高并发场景下,我对于组内后台开发的一些开...

通过实例程序验证与优化谈谈网上很多对于Java DCL的一些误解以及为何要理解Java内存模型

2022-04-16
阅读 7 分钟
541
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本文基于 OpenJDK 11 以上的版本

全网最硬核 Java 新内存模型解析与实验 - 5. JVM 底层内存屏障源码分析

2022-03-30
阅读 5 分钟
1k
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本篇文章参考了大量文章,文档以及论文,但是这块东西真的很繁杂,我的水平有限,可能理解的也不到...
封面图

全网最硬核 Java 新内存模型解析与实验 - 4. Java 新内存访问方式与实验

2022-03-30
阅读 15 分钟
789
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本篇文章参考了大量文章,文档以及论文,但是这块东西真的很繁杂,我的水平有限,可能理解的也不到...
封面图

全网最硬核 Java 新内存模型解析与实验 - 3. 硬核理解内存屏障(CPU+编译器)

2022-03-30
阅读 14 分钟
913
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本篇文章参考了大量文章,文档以及论文,但是这块东西真的很繁杂,我的水平有限,可能理解的也不到...

全网最硬核 Java 新内存模型解析与实验 - 2. 原子访问与字分裂

2022-03-30
阅读 4 分钟
699
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本篇文章参考了大量文章,文档以及论文,但是这块东西真的很繁杂,我的水平有限,可能理解的也不到...
封面图

全网最硬核 Java 新内存模型解析与实验 - 1. 什么是 Java 内存模型

2022-03-30
阅读 4 分钟
714
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本篇文章参考了大量文章,文档以及论文,但是这块东西真的很繁杂,我的水平有限,可能理解的也不到...

全网最硬核 Java 新内存模型解析与实验单篇版(不断更新QA中)

2022-03-30
阅读 37 分钟
1.1k
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本篇文章参考了大量文章,文档以及论文,但是这块东西真的很繁杂,我的水平有限,可能理解的也不到...
封面图

为什么我建议线上高并发量的日志输出的时候不能带有代码位置

2022-03-26
阅读 4 分钟
811
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本文是“为什么我建议”系列第二篇,本系列中会针对一些在高并发场景下,我对于组内后台开发的一些开...

关于 Java 18 你想知道的一切

2022-03-22
阅读 8 分钟
1.2k
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~如果你不喜欢这个文字版的,可以参考官方做的这个 Java 内幕新闻第 20 期 - 关于 Java 18 你想知道...
封面图

Spring Cloud Gateway 不小心换了个 Web 容器就不能用了,我 TM 人傻了

2022-03-12
阅读 9 分钟
1.3k
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~本文是我 TM 人傻了的第多少期我忘了,每一期总结一个坑以及对于坑的一些发散性想法,往期精彩回顾...

如何在 Spring Boot 优雅关闭加入一些自定义机制

2022-03-05
阅读 16 分钟
1.5k
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判。如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~

为什么我建议在复杂但是性能关键的表上所有查询都加上 force index

2022-02-26
阅读 7 分钟
1.1k
这个 SQL 执行了 20 分钟才有结果。但是我们换一个 user_id,执行就很快。从线上业务表现来看,大部分用户的表现都正常。我们又用一个数据分布与这个用户相似的用户去查,还是比较快。
封面图

Java 内幕新闻第二期深度解读

2022-01-15
阅读 9 分钟
832
这是由 Java 官方发布,Oracle JDK 研发 Nipafx 制作的节目,包含 JDK 近期的研发进展和新特性展望和使用,这里加上个人译制的字幕搬运而来。我把 Nipafx 的扩展资料详细研读并提取精华做了个人详细解读:视频地址(熟肉)

硬核 - Java 随机数相关 API 的演进与思考(下)

2022-01-11
阅读 12 分钟
1.1k
本系列将 Java 17 之前的随机数 API 以及 Java 17 之后的统一 API 都做了比较详细的说明,并且将随机数的特性以及实现思路也做了一些简单的分析,帮助大家明白为何会有这么多的随机数算法,以及他们的设计思路是什么。本系列会分为两篇,第一篇讲述 Java 随机数算法的演变思路以及底层原理与考量,之后介绍 Java 17 之前...

硬核 - Java 随机数相关 API 的演进与思考(上)

2022-01-10
阅读 13 分钟
1.5k
本系列将 Java 17 之前的随机数 API 以及 Java 17 之后的统一 API 都做了比较详细的说明,并且将随机数的特性以及实现思路也做了一些简单的分析,帮助大家明白为何会有这么多的随机数算法,以及他们的设计思路是什么。本系列会分为两篇,第一篇讲述 Java 随机数算法的演变思路以及底层原理与考量,之后介绍 Java 17 之前...

Inside Java Newscast #1 深度解读

2022-01-07
阅读 17 分钟
1.2k
本文是 Inside Java Newscast #1 的个人体验与解读。视频地址:点击这里⎯⎯⎯⎯⎯⎯ Chapters ⎯⎯⎯⎯⎯⎯0:00 - Intro0:57 - Java 16 – Intro1:16 - Java 16 – Records1:43 - Java 16 – Type Pattern Matching1:58 - Java 16 – Sealed Classes - Preview2:25 - Java 16 – Stream API2:51 - Java 16 – HTTP/2 API3:14 - Java 16 – ...

JEP解读与尝鲜系列4 - Java 16 中对于 Project Valhalla 的铺垫

2022-01-06
阅读 5 分钟
1.1k
这是 JEP 解读与尝鲜系列的第 4 篇,之前的文章如下:[JEP解读与尝鲜系列 1 - Java Valhalla与Java Inline class]()[JEP解读与尝鲜系列 2 - JEP 142 缓存行填充简化]()[JEP解读与尝鲜系列 3 - Project Loom 使用虚线程进行同步网络 IO 不阻塞的底层原理]()

Java 16 中新增的 Stream 接口的一些思考

2022-01-05
阅读 3 分钟
988
这里先提一个题外话,如果想看 JDK 不同版本之间有何差异,增加或者删除了哪些 API,可以通过下面这个链接查看:[链接]路径中的两个版本就是要对比的两个版本,其界面如下:同时,我们也可以通过 JDK 内置 jdeps 工具查找过期以及废弃API以及对应的替换 {代码...} libs是你的所有依赖的目录,$project是你的项目jar包,...

Java Record 的一些思考 - 序列化相关

2022-01-04
阅读 14 分钟
1.1k
Record 在设计之初,就是为了找寻一种纯表示数据的类型载体。Java 的 class 现在经过不断的迭代做功能加法,用法已经非常复杂,各种语法糖,各种多态构造器,各种继承设计导致针对 Java 的序列化框架也做得非常复杂,要考虑的情况有很多很多。每次 Java 升级,如果对类结构有做改动或者加入了新特性,那么序列化框架就都...

关于 Spring-WebFlux 的一些想法

2022-01-03
阅读 3 分钟
1.4k
现在基于 spring web 的同步微服务有一个非常大的缺陷就是:相对于基于 spring-webflux 的异步微服务,基于 spring-web 的同步微服务没有很好的处理客户端有请求超时配置的情况。当客户端请求超时时,客户端会直接返回超时异常,但是调用的服务端任务,在基于 spring-web 的同步微服务并没有被取消,基于 spring-webflux...

实现微服务预热调用之后再开始服务(下)

2022-01-02
阅读 7 分钟
2k
LivenessState(存活状态):就应用程序而言,存活状态是指应用程序的状态是否正常。如果存活状态不正常,则意味着应用程序本身已损坏,无法恢复。在 k8s 中,如果存活检测失败,则 kubelet 将杀死 Container,并且根据其重新启动策略进行重启:在 spring boot 中对应的接口是 /actuator/health/liveness

实现微服务预热调用之后再开始服务(上)

2022-01-01
阅读 4 分钟
1.2k
最近线上发现一个现象,应用实例刚刚启动的时候,开始接收请求之后发生了一小段时间的请求阻塞,从 HTTP Servlet 请求队列监控上可以看出(基于 spring-web 的普通阻塞的 HTTP 服务器是有 HTTP 线程池的,当线程是满了之后,请求在阻塞队列中等待处理。基于 spring-webflux 的没有这个现象,但是考虑的背压问题其实和这...

Java Record 的一些思考 - 默认方法使用以及基于预编译生成相关字节码的底层实现

2021-12-23
阅读 14 分钟
1.1k
# 快速上手 Record 类我们先举一个简单例子,声明一个用户 Record。 {代码...} 这样编写代码之后,Record 类默认包含的元素和方法实现包括:record 头指定的组成元素(int id, String name, int age),并且,这些元素都是 final 的。record 默认只有一个构造器,是包含所有元素的构造器。record 的每个元素都有一个对应...

由一次 UPDATE 过慢 SQL 优化而总结出的经验

2021-12-20
阅读 5 分钟
1.4k
这个 SQL 其实就是将 t_retailer_order_record 中 archive_id 为 420a7fe7-4767-45e8-a5f5-72280c192faa 的所有记录的订单 id order_id,对应的订单表中的记录的 archive_id 也更新为 420a7fe7-4767-45e8-a5f5-72280c192faa 并且更新时间保持不变(因为表上有 update_time 按当前时间更新的触发器)。
封面图