夜坐听风
  • 首页
  • 分类
  • 标签
  • 关于
  • 友链

04JUC

JUCATOMIC 提供了一系列原子操作类,用于在多线程环境下实现高效、无锁的线程安全操作。这些类基于CAS(Compare and Swap)机制,避免了传统锁机制的性能开销,适用于低到中等竞争场景 核心原理 CAS机制:通过硬件指令(如cmpxchg)实现无锁并发。基本流程为: 读取内存中的当前值(current)。 计算新值(new)。 若内存值仍为current,则更新为new;否则重试
2025-04-30
04Java > 多线程

Disruptor

Disruptor简介 Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的D
2025-04-30
11技术栈

00-分布式架构

有效系统设计 了解问题和设计范围 要开发的功能 有多少用户:qps,tps 后续的扩展性,扩展速度 公司的技术栈,有哪些现成的服务 分布式架构 分布式架构的难点在于系统设计,服务管理和运维 分布式系统中的问题 异构系统的不标准问题 系统架构中的服务依赖性问题 故障发生的概率很大 运维的复杂度大 分布式分层 基础层 平台层 应用层 接入层 构建分布式应用需要关注的点 大流量处理 关键业
2025-04-30
12分布式系统

RAG

RAG概述 检索增强生成(Retrieval-Augmented Generation,RAG)指的是在LLM回答问题之前从外部知识库中检索相关信息,RAG有效地将LLM的参数化知识与非参数化的外部知识库结合起来,使其成为实现大型语言模型的最重要方法之一 优秀框架:LlamaIndex,langchain RAG流程文档加载文档清洗 去掉无用消息,减少干扰信息,让查询准确 文本去重 去除重复内
2025-05-07
24AI

Caffeine

Caffeine 将对数据的读写看到是日志的提交过程,设由专门的环形缓冲区来记录由于数据读取而产生的状态变动日志。为进一步减少竞争,caffeine对每条线程(对线程取hash,哈希值相同的使用同一个缓冲区)都设置一个专用的环形缓冲 环形缓冲:它是一种拥有读、写两个指针的数据复用结构,在计算机科学中有非常广泛的应用。举个具体例子,譬如一台计算机通过键盘输入,并通过 CPU 读取“HELLO WIK
2025-05-12
11技术栈

JavaCR心得

仙人抚我顶,使我生长发 完成业务逻辑时,要先将业务逻辑分块,每块封装成一个有语义化的方法,然后填充方法。不要从头一个方法写到尾,这样的代码可读性较差并且内聚性较高。 在了解项目代码的过程中太过于专注在代码方面,只了解逻辑实现而没有与现实的业务逻辑所联系,对主要数据模型的相互流转过程关注度不高。导致对项目逻辑理解效率不高 MateQ的消息消费任务要考虑相同任务的并发问题以及幂等性 嵌套if尽量不要在
2025-06-11
04Java

Java各版本新特性

java新特性Java8 Lambda 表达式,Stream API,Consumer、Predicate、Supplier和Function 默认方法 Optional 类 Date Time API Java9 语法变化 接口私有方法 Deprecated新增了两个默认属性 sincemm,forRemoval 字符串底层数组从char[] -> byte[] 模块化 Java1
2025-06-11
04Java

3对象

对象对象的创建 内存分配方式 指针碰撞:假设Java堆中内存绝对规整,所有用过的内存在一边,没有用过的在另一边,中间放着一个指针作为分界器。分配内存为将指针向空闲区域移动与对象大小相等的一段距离。 空闲列表:堆中内存不规整,虚拟机需要维护一个列表,记录那些内存块是可用的。在分配的时候从列表中找到一块足够大的内存划分给对象并更新列表上的记录。 实现并发下安全分配内存的方法 CAS:对分配
2025-06-19
04Java > JVM
1…8910
Hexo Fluid