本文记录了 k3s 的安装和使用,相较于 minikube,前者是一个完全兼容的 Kubernetes 发行版,安装和使用的体验更佳。

阅读全文 »

本文记录了 Vim 常用的快捷键作为备忘清单。

阅读全文 »

GParted 是一款适用于 Linux 的图形化磁盘分区管理工具,通过它可以便捷地为 VMware 中的 Ubuntu Desktop 增大磁盘空间。然而你可能正在使用 Ubuntu Server,并不想要安装或并不被允许安装图形化界面,本文介绍了如何在不使用 GParted 的情况下,通过命令行使用自带的工具为 VMware 中的 Ubuntu Server 增大磁盘空间。

阅读全文 »

事务就是一组数据库操作,它具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称为 ACID。本文将介绍 MySQL 事务的隔离性以及对其的思考。
尽管这是一个老生常谈的话题,网上也有很多相关的资料,但是要理解它并不容易。即使林晓斌老师在 《MySQL 实战 45 讲》 中用了两个章节进行介绍,但是你在评论区中会发现有些分享或讨论的观点彼此矛盾。原因可能有很多,比如为了易于理解使用简化概念进行分析,有些具体细节各人各执一词同时它们又不好通过测试进行验证,用词不严谨等等。本文尽可能为自己梳理出一个完善并且前后一致的认知体系,再针对一些容易引起误解的地方作进一步的说明。

阅读全文 »

JavaCleanerFinalizer 都实现了一种 finalization 机制,前者更轻量和强大,你可能在了解 NIO 的堆外内存自动释放机制中注意过它;后者为人所诟病,finalize 方法被人强烈反对使用。本文想要解析它们的原因不在于它们实现的功能,而在于它们是 Reference 的具体子类。
Reference 作为和 GC 紧密联系的类,你可能从很多文字描述中了解过 SoftReferenceWeakReference 还有 PhantomReference 但是却很少从代码层面了解过它们,当你牢记“一个对象是否可以被回收的判断依据是它是否从 Root 对象可达”这条规则再面对 Reference 的子类时是否产生过割裂感;你是否好奇过 Finalizer 如何和重写 finalize 方法的类产生联系,本文将从 CleanerFinalizer 的源码揭示一些你可能已知的结论背后的朴素原理。

阅读全文 »

我们知道 Java 扩充了“引用”的概念,引入了软引用、弱引用和虚引用,它们都属于 Reference 类型,也都可以配合 ReferenceQueue 使用。你是否好奇常常被一笔带过的“引用对象的处理过程”?你是否在探究 NIO 堆外内存的自动释放时看到了 Cleaner 的关键代码但不太能梳理整个过程?你是否好奇在研究 JVM 时偶尔看到的 Reference Handler 线程?本文将分析 ReferenceReferenceQueue 的源码带你理解引用对象的工作机制。

阅读全文 »

Unsafe 类位于 sun.misc 包中,它提供了一组用于执行低级别、不安全操作的方法。尽管 Unsafe 类及其所有方法都是公共的,但它的使用受到限制,因为只有受信任的代码才能获取其实例。这个类通常被用于一些底层的、对性能敏感的操作,比如直接内存访问、CASCompare and Swap)操作等。本文将介绍这个“反 Java”的类及其方法的典型使用场景。

阅读全文 »

本文详细介绍了 Javasynchronized 锁的机制、存储结构、优化措施以及升级过程,并通过 jol-core 演示 Mark Word 的变化来验证锁升级的多个 case

阅读全文 »

印象里每次安装 ElK 组件的体验都不是很好,或多或少都遇到过奇奇怪怪的问题。本文几乎完全按照官方文档:Getting started with the Elastic Stack and Docker Compose: Part 1 通过 docker compose 安装 elasticsearchkibanametricbeatfilebeatlogstash,但是移除了 ssl 相关的配置。你可以直接按照原文档进行安装,但是对照本文可以帮助你更快速地移除不需要的配置以及绕开可能踩到的坑。
此安装方式尽量使用环境变量代替编写配置文件,便于在备份和分享时将敏感信息留存在本地。本次安装时间为 2023-12-14,使用官方镜像,版本为 8.11.2

阅读全文 »
0%