自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 从零手写Java版本的LSM Tree (八):LSM Tree 主程序实现

LSM Tree主程序实现展现了以下核心特性:1. **分层存储架构**: 内存MemTable + 磁盘SSTable的分层设计2. **WAL-first原则**: 确保数据持久性和一致性3. **并发安全**: 读写锁机制支持高并发访问4. **优雅降级**: 从内存到磁盘的渐进式查找策略5. **可靠恢复**: 完整的系统崩溃恢复机制6. **监控友好**: 丰富的统计信息支持运维监控

2025-06-09 16:49:08 299

原创 从零手写Java版本的LSM Tree (七):压缩策略

压缩策略是LSM Tree性能的关键:1. **文件管理**: 控制文件数量和大小2. **空间回收**: 清理冗余和删除的数据3. **性能平衡**: 在读写性能间找到平衡4. **自适应**: 根据负载模式调整策略

2025-06-09 16:41:01 225

原创 从零手写Java版本的LSM Tree (六):WAL 写前日志

🔧 WAL核心机制:双重保障:采用先写日志后存内存的流程,确保崩溃恢复时不丢失数据高效设计:文本格式日志(操作|键|值|时间戳)配合缓冲写入器提升IO性能线程安全:通过synchronized锁和立即刷盘策略保证高并发下的数据一致性智能恢复:流式读取WAL文件,严格验证格式,自动跳过无效条目💡 技术价值:为理解LSM Tree核心原理提供完整实现范例WAL模块展示如何平衡性能与可靠性适合存储引擎开发、分布式系统学习等应用场景

2025-06-09 16:32:00 282

原创 从零手写Java版本的LSM Tree (五):布隆过滤器

布隆过滤器是一种空间高效的概率型数据结构,用于快速判断元素是否可能存在于集合中。其核心特性包括无假阴性(确定不存在)和有假阳性(可能误判存在)。在LSM Tree中,布隆过滤器被用于SSTable文件,通过跳过无效磁盘I/O提升查询性能。实现原理基于多个哈希函数映射位数组,插入时标记所有哈希位,查询时检查所有位是否均为1。优化设计采用双重哈希技术,并支持序列化存储。布隆过滤器能以极小内存代价显著减少LSM Tree的无效磁盘操作,是高性能存储系统的关键组件。

2025-06-09 16:23:33 379

原创 从零手写Java版本的LSM Tree (四):SSTable 磁盘存储

本文介绍了高质量的Java LSM Tree开源项目java-lsm-tree,该项目专为高并发写入场景设计,具有写入超40万ops/秒的高性能。文章重点解析了第4章SSTable磁盘存储的实现细节,包括SSTable的三大特性(不可变性、有序性和自包含性)以及文件格式设计。核心代码展示了如何从内存数据创建SSTable文件,包含条目数量、有序键值对和布隆过滤器的写入过程,同时提供了从文件加载SSTable的静态工厂方法。该项目适合需要深入理解LSM Tree原理或构建高性能存储系统的开发者。

2025-06-09 16:14:49 375

原创 从零手写Java版本的LSM Tree (三):MemTable 内存表

文中重点解析了MemTable的设计原理,通过对比数据结构说明选择跳表的原因:相比红黑树和B+树,跳表在并发性能、实现简单性等方面更具优势。详细图解了跳表的层级结构和查找路径,并展示代码实现,包括使用ConcurrentSkipListMap确保线程安全、volatile保证可见性等关键设计。该项目适合存储引擎开发者、数据库学习者和面试准备者参考学习。

2025-06-09 16:08:10 318

原创 从零手写Java版本的LSM Tree (二):KeyValue 数据结构

KeyValue 数据结构 的核心深度剖析

2025-06-09 15:47:21 393

原创 从零手写Java版本的LSM Tree (一):LSM Tree 概述

🔥 Java LSM Tree开源项目详解文章介绍了基于Java实现的Log-Structured Merge Tree(LSM Tree)开源项目,这是一种专为高并发写入优化的数据结构。核心架构包含内存层(WAL日志+MemTable)和磁盘层(SSTable文件),通过顺序写入和分层存储实现超40万次/秒的写入性能。项目亮点:完整组件:跳表MemTable、SSTable文件、WAL日志、布隆过滤器高性能设计:顺序写入+批量刷盘+无锁并发数据可靠:WAL确保崩溃恢复零丢失详细教程:1

2025-06-09 15:14:56 812

原创 0代码成为AI应用开发高手(一)- Dify 概述与本地部署指南

dify的0基础入门教程

2025-06-06 15:08:15 782

原创 从 0 开始学习大模型应用开发(加餐二)- 使用Spring AI开发MCP系统

使用Spring AI开发MCP系统

2025-05-28 14:58:11 990

原创 从 0 开始学习大模型应用开发(加餐一)- 手把手带你开发MCP系统

摘要:Model Context Protocol (MCP) 是Anthropic推出的标准化协议,用于连接AI模型与外部工具数据,简化开发对接。通过MCP,大模型可便捷调用各类服务(如地图、数据库、GitHub等)。文章以Claude接入GitHub为例,演示了MCP的配置与使用流程,并介绍了其架构(客户端与服务端协作)。此外,还提供了开发MCP应用的步骤,包括使用uv工具初始化Python环境,并示例了基于天气API的MCP服务开发代码。MCP协议显著扩展了AI模型的功能边界,支持复杂场景的自动化处

2025-05-27 15:37:28 1554

原创 从 0 开始学习大模型应用开发(三)- LangChain 核心组件深度实践

本章详细介绍了使用LangChain构建大模型应用的关键技术。主要内容包括:1) 使用PromptTemplate创建可复用的提示模板,实现动态内容填充;2) 接入OpenAI等在线大模型服务,并处理API密钥等配置;3) 通过LangGraph添加对话记忆功能,使系统能记住上下文,实现连贯对话。文中提供了完整代码示例,涵盖核心组件如状态管理、线程ID生成、内存检查点等技术实现。这些技术让问答系统具备了更智能的交互能力,能够处理多轮对话并维护上下文信息。

2025-05-26 17:44:57 978

原创 从0开始学习大模型应用开发(二)- 使用langchain开发大模型应用

在本文中,我们介绍了Langchain框架的基础知识、核心功能以及如何将其与Ollama Deepseek模型结合,构建一个简单的问答系统。Langchain作为一个灵活且强大的框架,为开发者提供了处理大语言模型的工具和组件,使得多步骤任务和模型集成变得更加简便。通过本文的学习,相信读者能够理解Langchain框架的基本概念,并能够运用它构建出适用于各种场景的大模型应用。希望大家能在实际开发中,充分发挥Langchain的优势,构建出更强大、灵活的语言模型应用。

2025-05-21 15:51:12 1306

原创 从0开始学习大模型应用开发(一)- Ollama运行本地大模型

Ollama是一个开源工具,旨在简化大语言模型(LLM)在本地计算机上的部署和运行。它支持Linux、MacOS和Windows系统,提供一键下载、安装和切换不同模型的功能,优化了资源需求以适应消费级硬件,并提供了标准API接口以便集成到应用程序中。

2025-05-19 17:02:11 990

原创 Jaeger开源分布式追踪平台深度剖析(一)Jaeger入门和环境搭建

Jaeger 是由 Uber Technologies 于 2016 年开源发布的一个分布式追踪平台,后来捐赠给了CNCF云原生计算基金会,并成为其毕业项目。Jaeger作为云原生领域专业的分布式追踪系统,主要提供以下核心功能:我们来看几张jaeger的截图:这张视图是Jaeger分布式追踪系统的核心交互界面,主要用于通过多维度过滤和可视化分析快速定位与诊断分布式系统中的请求链路问题。用户可在左侧通过服务名称(如"frontend")、HTTP状态码(如200/400)、时间范围(如回溯1小时)及耗时区间(

2025-04-16 15:33:17 1032

原创 【Spring AI 0基础教程】3、基础篇 | 文生图 - 电商广告图片生成器

在上一小节中,我们学习了 Spring AI 中聊天客户端的使用方法,当然 AI 大模型的能力远远不至于回答你的问题,包括文生图、音频转文字、文字转音频等等功能在后面的章节中都会慢慢学习到。那么这一小节,我们将学习 Spring AI 中非常强大的功能:文生图,通过这种技术完成一个新的案例:电商广告图片生成器。我们先来看下最终的效果以及本章实现的系统具备的功能:一、提示词优化 : 提示词是文生图的关键,优化它能提升生成图片质量与精准度,帮助用户精准描述所想画面。如想要梦幻森林,起初用 “森林”,生成场景普通

2025-04-04 20:48:51 530

原创 【Spring AI 0基础教程】2、基础篇 | 聊天客户端 - 智能健康助手

学习目标:基于之前对 Spring AI 的基础学习,探索使用ChatClient接入不同大模型,实现智能健康助手开发,该助手具备问题咨询、示例参考和症状处理等功能。后端开发:比较ChatClient和ChatModel,鉴于无需特定模型定制,选择更便捷强大的ChatClient。设置并优化引导模型回复,进行少样本学习提升准确性。开发接口处理用户请求,调用大模型并处理异常。前端开发:前端通过fetch方法调用后端接口,将响应解析为 JSON 后展示健康咨询报告。

2025-04-04 20:42:07 1708

原创 【Spring AI 0基础教程】1、基础篇 | 环境搭建 - 智能天气预报助手

(https://spring.io/projects/spring-ai)]是 Spring 官方于 2023 年推出的 AI 应用开发框架,它如同 AI 世界的"Spring 生态连接器",致力于简化开发集成了 AI 功能的应用程序。它主要解决两大核心问题:如上图所示,Spring AI 成为了连接企业数据以及 API 和生成式 AI 的桥梁。Spring AI 具备的能力如下:它具备以下特点:那么 Spring AI 到底能做什么呢?这里我给出几个常见案例,在咱们这套课程中也会带着大家完成这些案例:场

2025-04-04 19:35:48 3076 2

原创 Java开发基于Spring AI Alibaba玩转 MCP:从发布、调用到 Claude 集成

Spring AI MCP 为模型上下文协议提供 Java 和 Spring 框架集成。它使 Spring AI 应用程序能够通过标准化的接口与不同的数据源和工具进行交互,支持同步和异步通信模式。整体架构如下:Spring AI 应用程序:使用 Spring AI 框架构建想要通过 MCP 访问数据的生成式 AI 应用程序Spring MCP 客户端:MCP 协议的 Spring AI 实现,与服务器保持 1:1 连接通过 Spring AI MCP,可以快速搭建 MCP 客户端和服务端程序。

2025-04-04 19:06:58 3183 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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