Java标签跳转:一个鲜为人知但却很实用的小技巧
在C系风格的代码中,标签是一个容易掌握但是却很难熟练使用的特性,容易主要体现在其规则简单,配合goto很容易就能实现一些比较复杂的逻辑。很难熟练使用主要是体现在对于复杂场景下,不好对流程把控,调试,也不好维护,是典型的面向过程的特性。前两天在看jdk源码的时候,无意中看到线程池中这个方法的源码: 1 ...
Elasticsearch的基本概念和指标
背景 在13年的时候,我开始负责整个公司的搜索引擎。嗯……,不是很牛的那种大项目负责人。而是整个搜索就我一个人做。哈哈。 后来跳槽之后,所经历的团队都用Elasticsearch,基本上和缓存一样,是项目必备的工具。目前静儿在做的项目中也在用,正好系统学习一下。毕竟静儿的梦想就是打造自己的搜索引擎。 ...
并发编程(四):互斥锁的实现——从 Runtime 到 CPU
沿着 Java synchronized、Go sync.Mutex 和 CPython threading.Lock 的真实实现路径,理解互斥锁如何使用原子操作、内存顺序以及等待与唤醒。 ...
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
导读:Apache Doris 5.0 多模湖仓预告(5)|技术解读篇:面对日志、事件、AI 调用等不断变化的半结构化数据,如何既保留灵活结构,又实现高效查询?从 Doris 4.2 开始,Iceberg、Paimon 中的 Variant 数据可以直接高效读写,并通过按需读取、拆列优化和向量化计算 ...
Elasticsearch实战-磁盘IO被打满
背景 事情是这样的。 一天下午4点42分左右。业务反馈我开发的服务在测试环境出现问题,返回资源数据是0。查日志发现是ES访问超时。相当于数据库挂了。持续了20多分钟自己恢复。 咨询了ES团队,最终得到下面的答复: 当前集群现状: 1)当前集群数据IO最高的索引为XXX,数据量很小(100mb) 2) ...
保证线程安全的方法有哪些
吃透Java线程安全!一文梳理5大类线程安全方案,覆盖无状态对象、volatile、锁机制、ThreadLocal等核心技术。详解CAS原理、读写锁、DCL单例等高频实战场景,对比各方案性能与适用场景,汇总死锁、内存泄漏等疑难坑点。附带面试真题模拟+优质源码,帮你搞定并发编程,提升面试与实战能力! ...
DTO、VO、PO 到底要不要拆?一篇讲透 Java 实体分层的底层逻辑
Java 开发常纠结 PO、DTO、VO 是否拆分。本文拆解分层实体职责与完整数据流转链路,核心亮点:采用 MapStruct 编译期对象转换,对比反射工具性能与类型安全;结合实战代码演示分层脱敏;给出落地避坑方案,用 ArchUnit 做架构校验防止 PO 外泄。附带决策树,拒绝八股式硬套,按项目... ...
Spring AI RAG接上观测云怎么做全链路观测?
做 RAG 应用时,最让人头疼的问题往往不是“彻底不能用”,而是“偶尔有点慢”。 RAG 可以先理解成“先找相关资料,再让大模型带着资料回答”。Embedding 负责把文字问题变成数字向量,Milvus 则保存这些向量并找出最相近的内容。 用户发来一个问题,页面转了几秒才开始输出。应用日志告诉我, ...
java服务异常日志只打印异常类型,没有堆栈定位分析
转载请注明出处: 在定位一个问题的时候,发现日志只打印了异常的类型,却没有堆栈,对问题定位造成了影响,而且很多时候这个异常页很容易被忽略: 遇到的这个现象,是 HotSpot JVM 中一个名为 Fast Throw(快速抛出) 的性能优化机制导致的。它的核心逻辑是:当同一个异常(如 NPE)在代码 ...
并发编程(二):语言内存模型——程序员可以依赖的规则
从硬件内存模型回到语言层,理解语言为什么需要定义内存模型,以及 Java、Go 与 CPython 分别为并发程序提供哪些基本保证。 ...