- 博客(176)
- 收藏
- 关注
原创 Sharding JDBC 实战
本文介绍了Sharding JDBC的核心概念与实战应用。作为Apache ShardingSphere生态中的核心组件,Sharding JDBC通过封装JDBC接口实现分库分表、读写分离等分布式数据库能力,采用无中心化架构,性能损耗低。文章强调了分库分表的适用前提:单表数据量超过1000万且查询性能下降、数据结构稳定等。实战部分演示了如何通过Spring Boot项目配置Sharding JDBC,包括依赖管理、数据源配置等关键步骤,并解释了逻辑表与物理表的区别。最后提醒分库分表需谨慎,避免因业务变动导
2025-12-14 15:22:43
991
原创 MySQL日志梳理(存储引擎层)
本文介绍了InnoDB存储引擎中的重做日志(redo log)和回滚日志(undo log)。redo log是物理日志,用于保证事务的持久性,通过预写日志机制优化磁盘IO性能。它分为内存中的redo log buffer和磁盘上的redo log file,通过write pos和checkpoint指针管理环形日志文件组。undo log是逻辑日志,记录SQL操作的反向操作,用于事务回滚和MVCC机制,存储在undo表空间中。文章详细分析了两种日志的存储结构、写入机制以及在数据库崩溃恢复中的作用,其中r
2025-12-07 15:39:22
736
原创 MySQL日志梳理(服务器层)
MySQL日志系统详解:本文梳理了MySQL三大类日志功能与配置方法。服务器层日志包含错误日志(Error Log)、慢查询日志(Slow Query Log)和通用查询日志(General Query Log),分别用于故障排查、SQL性能优化和审计跟踪;存储引擎层日志主要指InnoDB的重做/回滚日志;内部辅助日志包含DDL日志。文章重点介绍了各类日志的开启方式、配置参数及分析方法,特别对主从复制依赖的二进制日志(Binlog)和中继日志(Relay Log)的同步机制进行了说明。通过合理配置这些日志,
2025-12-06 17:45:30
785
原创 MySQL集群搭建
本文主要介绍了MySQL集群搭建的必要性及具体步骤。首先阐述了集群部署的三个核心优势:高可用性、性能扩展和存储扩容。然后详细记录了在CentOS 9系统上安装MySQL 8.0的过程,包括安装配置、密码修改和远程访问设置。重点讲解了主从集群的配置方法,包括主节点的二进制日志设置、复制用户创建,以及从节点的同步配置。最后提供了验证集群状态的命令,确保主从复制正常运行。文章特别强调了版本兼容性问题和安全设置注意事项,为MySQL集群部署提供了实用指导。
2025-12-06 11:28:55
856
原创 Kafka服务端日志梳理
本文介绍了Kafka服务端的三大日志文件(.index、.timeindex、.log)的结构与作用,以及日志清理机制和高效读写机制。三大日志文件按topic-partition维度存储,通过跳表结构提升检索效率。日志清理支持删除或压缩策略,默认保留7天。Kafka利用顺序写磁盘和零拷贝技术实现高效读写。此外,文章还探讨了经典问题:如何保证消息不丢失(生产者ack、服务器刷盘、消费者同步处理)、消息积压处理(增加分区/消费者或转存队列)以及保证消息顺序性(同分区发送或定制路由)。Kafka虽无法完全避免消息
2025-11-29 17:34:38
944
原创 Kafka服务端设计解析
本文介绍了Kafka与Zookeeper的协同工作机制,重点分析了Kafka的Leader Partition选举、自平衡机制以及故障恢复机制。通过配置参数控制选举规则,使Leader节点尽可能均匀分布,并讨论了自动/手动触发自平衡的注意事项。在故障恢复方面,详细阐述了follower和Leader节点宕机时的处理流程,指出Kafka在Leader故障时存在消息丢失风险的原因。最后介绍了Epoch版本机制如何确保分布式系统中数据同步的一致性。文章强调生产环境中需谨慎处理自平衡操作,并指出Kafka在金融级场
2025-11-23 17:50:56
959
原创 Kafka客户端参数(二)
本文简要介绍了Kafka生产者客户端的核心机制与配置。首先阐述了生产者消息缓存机制,包括RecordAccumulator和Sender组件的工作原理,以及相关参数(batch.size、linger.ms等)的优化策略。其次分析了三种发送应答机制(acks=0/1/-1)及其对消息可靠性的影响。然后探讨了生产者消息幂等性实现原理,包括PID和序列号机制。最后提及生产者事务消息的基本概念,指出其与消费者确认机制的独立性。全文重点围绕生产者端的高效性、可靠性和一致性保障机制展开说明。
2025-11-22 17:22:19
777
原创 Kafka客户端参数(一)
在Kafka的客户端中,无论是消费者还是生产者,都有很多的参数,无论是通过Properties去put,还是整合Spring Boot在配置文件中配置,都需要对重要的参数进行理解。
2025-11-16 21:20:04
954
原创 Kafka客户端整合
本文介绍了Kafka与Java的整合方法,包括生产者和消费者的客户端实现。生产者通过KafkaProducer发送消息,支持同步和异步方式;消费者通过KafkaConsumer订阅Topic并处理消息,需手动提交偏移量。两者均只需关注Topic逻辑单元,不涉及Partition细节,服务端将偏移量管理交由客户端控制,便于根据业务处理进度灵活更新。提供了完整的代码示例,帮助开发者快速实现Kafka消息收发功能。
2025-11-16 15:44:29
892
原创 Kafka集群架构(ZK + Kafka)
本文介绍了Kafka集群架构的核心概念与搭建方法。Kafka集群由生产者、消费者和Broker组成,通过多副本机制实现高可用。重点讲解了复制因子的作用、副本分布规则(Leader/Follower机制)以及角色分工。文章详细演示了基于三台虚拟机的集群搭建步骤,包括配置文件修改、Topic创建与消息收发测试。总结部分概括了Kafka的分区副本机制、消费者组工作原理以及消息拉取流程。整个内容兼顾理论概念与实操指南,为理解Kafka分布式架构提供了系统性的学习参考。
2025-11-15 15:39:16
1569
原创 Kafka安装和使用
本文介绍了Apache Kafka的基本概念、安装与基础使用。Kafka作为高性能消息队列,适用于大数据日志收集场景,具有异步、削峰、解耦特性,但相比RabbitMQ等功能有所简化。文章详细展示了在Linux服务器安装Kafka的步骤、创建Topic、启动生产者/消费者的方法,并重点解析了消费者组的工作机制:同一消息可被不同消费者组同时消费,但同一消费者组内仅一个消费者能接收。核心概念包括Topic(逻辑消息单元)、Partition(实际存储队列)、Offset(消费进度标识)等。通过实例演示了多消费者组
2025-11-14 10:22:13
1097
原创 Zookeeper实现分布式锁
本文探讨了基于Zookeeper实现分布式锁的两种方案。第一种利用临时节点特性,通过创建节点实现加锁,节点存在则监听删除事件实现阻塞;第二种通过临时有序节点优化,避免"惊群效应",让后续节点监听前驱节点删除事件。两种方案分别通过接口和抽象类提供了统一加锁/解锁方法,并给出具体实现代码。文章强调实际应用中应优先选用成熟方案如Redisson或Zookeeper原生实现,本文仅作学习交流用途。两种方案均需注意死锁、可重入性、锁续约等问题,适合不同场景需求。
2025-11-08 14:53:38
893
原创 Zookeeper集群架构
本文介绍了ZooKeeper集群的架构与选举机制。集群包含三种角色:Leader(处理写请求)、Follower(处理读请求并参与投票)和Observer(仅处理读请求)。选举基于epoch轮次、zxid事务ID和myid服务器ID,遵循特定规则选出Leader。通过搭建三节点集群实验,展示了配置文件设置、myid文件创建和防火墙配置等关键步骤,验证了从节点写请求转发和主节点数据同步的功能。该实验证实了ZooKeeper集群的高可用性和数据一致性特性。
2025-11-04 14:52:00
853
原创 Zookeeper监听机制
本文介绍了Zookeeper的监听机制及其应用场景。Zookeeper支持临时监听和永久监听(3.6.0+),可监听节点创建、删除、数据变更等事件。临时监听为一次性触发,而永久监听可持续监控节点变化。通过案例演示了客户端如何利用监听机制实现加锁/解锁和配置变更感知,适用于配置中心动态更新、服务发现等场景,帮助系统实时感知节点状态变化并作出响应。
2025-11-02 16:19:22
479
原创 Zookeeper数据结构
Zookeeper数据模型采用类文件系统的树形结构,节点(Znode)是基本单元,路径唯一标识位置。节点类型包括持久、临时、有序、容器和TTL节点,各有适用场景:持久节点存长期配置,临时节点实现分布式锁,有序节点解决公平性问题,容器节点自动清理空子节点,TTL节点定时删除。节点状态信息如事务ID、版本号等可通过stat命令查看。临时顺序节点通过监听前序节点避免惊群效应,实现高效公平锁。容器和TTL节点主要用于资源自动管理。
2025-11-02 10:55:12
1282
原创 Zookeeper安装与使用
本文简要介绍了Zookeeper的安装配置和基本使用方法。首先说明了Zookeeper作为分布式协调服务的特点,重点讲解了Linux环境下的安装步骤,包括JDK依赖、配置文件修改等。其次详细阐述了Zookeeper的基本操作命令,包括节点的创建(永久/临时/有序节点)、查询、数据修改、权限设置(ACL)、状态查看以及删除等核心功能,并特别指出配额限制的预警特性。全文通过命令行示例直观展示操作过程,为开发者快速掌握Zookeeper基础使用提供了实用参考。
2025-11-02 09:51:48
877
原创 Spring AI alibaba 智能体扩展
本文扩展了智能体应用功能,主要实现两部分内容:循环执行检测处理和人机交互工具集成。 循环检测与处理 实现is_stuck方法检测重复消息 通过handle_stuck_state添加提示信息 在run方法中集成循环检测逻辑 交互式AskHuman工具 定义Java版AskHuman工具类 使用@Tool注解标记方法 实现用户输入查询功能 最后还提到后续将参照Open Manus实现MCP集成。整体采用与Python源码相似的设计思路,但在Java环境下实现相应功能。
2025-10-06 17:20:28
861
1
原创 Spring AI alibaba 智能体构建
本文基于开源项目Open Manus的源码分析,整理了一个Java版智能体应用的开发框架。主要内容包括: 架构分析:Open Manus采用分层设计,核心模块包括Agent基类、工具层、沙箱环境等 BaseAgent实现:定义了智能体基本属性和运行流程,包括状态管理、记忆机制和核心run方法 ReActAgent扩展:继承BaseAgent并实现ReAct模式,通过think-act分离决策与执行 开发框架保留了Open Manus的核心思想,包括: 基于状态的执行控制 多轮推理机制 工具调用能力 上下文记
2025-10-06 10:06:21
1043
原创 Spring AI alibaba 智能体理论
文章摘要: 本文探讨了AI智能体(Agent)的核心特性与关键技术。智能体具备自主决策、环境交互和目标导向三大特征,其发展从简单的聊天机器人演变为能自主分解任务、调用工具并返回结果的智能系统。关键技术包括: CoT思维链:通过分步推理(零样本/少样本引导)提升复杂任务处理的准确性与可解释性,适用于数学计算、逻辑分析等场景; Agent Loop:仿PDCA循环,实现“推理-行动-观察”的持续运转,支持智能体自主执行任务; ReAct模式:结合语言推理与实际行动,形成迭代闭环。 最终,完善的AI智能体需整合大
2025-10-05 21:30:50
925
原创 Spring AI alibaba MCP协议
MCP协议开发与应用摘要 MCP协议旨在统一AI大模型与外部工具/数据源的交互规范,通过标准化接口解决适配碎片化问题。协议采用三层架构:数据层基于JSON-RPC定义通信规范,传输层支持stdio(本地进程通信)和SSE(远程HTTP)两种模式。实际开发中,服务端需引入spring-ai-mcp-server依赖,通过@Tool注解实现工具类开发;客户端通过配置文件连接MCP市场(如阿里云百炼)或自建服务。典型应用如高德地图MCP集成,需配置npm环境并注入ToolCallbackProvider工具回调。
2025-10-05 15:14:32
1426
原创 Spring AI alibaba 工具调用
本文介绍了AI工具调用的核心机制。工具调用允许AI模型利用外部工具完成特定功能,但调用过程由客户端应用程序控制,确保安全性。文章详细阐述了工具调用的流程:AI分析用户需求后请求工具调用,应用程序执行并返回结果,再由AI生成最终回答。重点解析了工具定义的两种方式(注解式与编程式),以及工具回调接口ToolCallback的核心方法。此外,还介绍了工具上下文ToolContext的信息传递机制和ToolCallingManager的管理功能。整体呈现了AI与外部工具协同工作的完整技术框架。
2025-10-03 19:39:24
1107
1
原创 RAG核心特性:查询增强和关联
本文介绍了Spring AI中的查询增强和关联功能,重点解析了RetrievalAugmentationAdvisor和ContextualQueryAugmenter两种增强器的使用。RetrievalAugmentationAdvisor支持文档检索、过滤及查询重写等定制功能,通过示例代码展示了其基本用法。ContextualQueryAugmenter作为空上下文处理器,允许在没有匹配文档时仍能回答问题,演示了如何通过配置实现知识库外内容的查询。两种增强器配合使用,可灵活控制RAG系统的检索行为,既保
2025-10-02 19:30:51
427
原创 RAG核心特性:文档过滤和检索
文档过滤和检索,也是RAG的核心特性之一,在进行向量转换和存储之后,需要通过文档过滤和检索,优化大模型回复的准确性。整个文档过滤和检索的过程,可以划分为检索前检索时检索后。
2025-10-02 16:40:22
900
原创 RAG核心特性:ETL
本文介绍了RAG知识库中的ETL(抽取、转换、加载)核心流程,重点解析了Spring AI框架下的DocumentReader、DocumentTransformer和DocumentWriter三大组件。文章详细说明了DocumentReader如何通过不同实现类(如MarkdownDocumentReader、JsonReader)解析各类文档格式,并支持自定义解析器。在转换环节,探讨了文本分片(TextSplitter)和元数据增强(KeywordMetadataEnricher、SummaryMet
2025-10-01 21:10:58
1001
1
原创 Spring AI alibaba RAG知识库基础
AI知识库与RAG技术解析 本文探讨了AI为何需要知识库支持及RAG技术实现方案。AI依赖知识库可避免通用搜索的局限性,提供精准回答。RAG技术流程包括:文档收集处理、向量转换存储、文档检索排序及结果增强。关键组件涉及Embedding模型(实现语义向量转换)、向量数据库(高效存储查询)、召回率评估(衡量检索效果)、精排模型(提升结果相关性)及混合检索策略。文章最后提供了基于Spring AI的RAG实战示例,演示如何加载Markdown文档并存入内存向量数据库。该方案可有效解决特定领域知识检索问题,提升A
2025-09-30 22:53:10
956
原创 Spring AI alibaba Prompt模板&Advisor自定义
本文介绍了Spring AI中Prompt的概念及其模板化配置方法,以及如何自定义Advisor拦截器。主要内容包括: Prompt类型:分为用户提示词、系统提示词和助手提示词,分别对应不同角色; 模板化配置:通过PromptTemplate实现提示词的动态替换,支持从文件读取模板; Advisor机制:类似Spring AOP,支持在调用大模型前后进行拦截处理,内置日志、敏感词检测等功能; 自定义Advisor:需同时实现流式和非流式接口,示例展示了日志拦截器的实现。 适用于开发者快速了解Spring A
2025-09-30 21:51:16
824
1
原创 Spring AI alibaba对话上下文持久化数据库
本文介绍了如何实现Spring AI Alibaba中对话上下文记忆的数据库持久化。主要内容包括: 分析了ChatMemory接口及其默认内存实现InMemoryChatMemory的局限性 提出了数据库持久化方案,设计了包含contextId、message等字段的数据表结构 采用Kryo进行消息对象的序列化/反序列化处理 实现了ChatMemory接口的三个核心方法: add():将消息追加到指定会话的历史记录 get():获取指定会话最近的N条消息 clear():清空指定会话的历史记录 该方案通过将
2025-09-27 22:15:39
1251
原创 图片协同编辑
本文介绍了如何利用WebSocket长连接和事件驱动机制实现图库项目中的多人协同编辑功能。通过需求分析展示了用户A和用户B实时同步图片编辑操作(如旋转、缩放)的场景,并规定同一时间仅允许一人处于编辑状态。技术方案选用WebSocket实现实时双向通信,采用事件驱动模型处理各类编辑操作。后端实现部分详细说明了事件枚举定义(包括消息类型和编辑操作)、WebSocket配置及权限拦截器设计,通过DTO类封装请求响应数据。该方案有效解决了多人协同编辑中的状态同步问题,确保操作实时性和一致性。
2025-09-21 15:47:13
1069
原创 利用AI扩展图片功能
本文介绍了在图库类项目中如何利用阿里云百炼AI进行图片优化操作,重点讲解了AI扩图功能的实现方法。文章首先说明了技术文档的使用注意事项,强调仅限个人学习研究,不得商用或传播版权内容。 核心内容包括: 通过阿里云百炼API实现图像扩展功能,采用异步调用模式(创建任务+轮询结果) 项目实现分为后端任务创建和前端轮询结果两部分 详细代码示例展示了如何调用API: 配置API Key等敏感信息 封装扩图任务请求类 实现创建任务和查询任务结果的服务方法 技术要点涉及异步调用处理、API安全设计(敏感信息保护)、属性命
2025-09-21 11:30:45
1085
原创 百度以图搜图
本文介绍了如何利用百度以图搜图功能实现图片搜索业务。通过分析百度图片搜索的请求流程,发现主要涉及两个关键请求:上传图片获取搜索页URL,以及解析搜索结果页获取图片链接。文章提供了Java代码示例,演示如何通过HTTP请求与百度API交互,获取搜索结果的图片URL列表。该方法适用于技术研究用途,但需注意遵守版权和隐私保护规定,不得用于商业用途。实现步骤包括:上传图片获取搜索页地址、请求搜索页解析结果、提取图片URL进行后续处理。
2025-09-21 10:47:43
1569
1
原创 批量抓取图片
本文介绍了如何通过Bing图片搜索引擎批量抓取图片的方法。主要内容包括:1)使用Bing图片搜索的基础URL和参数说明(如q、first、count等);2)通过浏览器调试和jsoup库解析返回的HTML数据;3)项目应用设计,包括前端参数传递和后端实现(记录偏移量、存储图片到腾讯云对象存储)。注意事项强调该方法仅用于个人技术研究,不得商用或传播版权内容。整体提供了一套完整的图片批量抓取技术方案。
2025-09-20 21:57:15
413
原创 前端工程化:pinia
本文介绍了Pinia作为Vue.js官方推荐的状态管理库,用以解决组件间数据共享和状态同步问题。文章首先说明状态管理的必要性,随后详细讲解Pinia的初始化配置,包括安装、挂载和Store创建(包含state、getter、action)。最后通过示例展示如何在组件中使用Store,实现数据获取和渲染。Pinia能有效简化复杂应用的状态管理,提升开发效率。
2025-08-11 19:52:03
862
原创 Spring Boot整合knife4j实战
本文介绍了Spring Boot项目整合knife4j生成API文档,以及前端项目使用@umijs/openapi自动生成请求代码的全流程。主要内容包括:1)后端通过knife4j生成增强版Swagger文档,使用@Api等注解定义接口说明;2)前端配置@umijs/openapi自动生成TypeScript请求代码;3)实际调用演示。该方案能有效提升前后端协作效率,减少手动编写重复代码的工作量。文章提供了完整的配置示例和代码片段,适合开发者参考实施。
2025-08-10 19:48:19
1177
原创 前端工程化:Vue-Router
Vue-Router 入门指南 摘要:本文介绍了 Vue.js 官方路由管理器 vue-router 的基本使用方法。内容包括:1) 安装配置步骤,使用 Vite 构建项目;2) 入门案例演示,通过 router-link 和 router-view 实现页面跳转;3) 嵌套路由配置方法,实现二级路由功能;4) 编程式导航的两种方式 - useRoute 获取路由参数和 useRouter 控制路由行为;5) 路由传参的三种方式,重点演示了路径传参的实现。文章通过具体代码示例和效果截图,帮助读者快速理解 v
2025-08-09 10:41:54
648
原创 前端工程化:Vue3(二)
本文介绍了Vue的两个核心概念:生命周期和组件传值。1) Vue生命周期包括8个钩子函数,分为创建、挂载、更新和销毁阶段,通过示例演示了onBeforeMount、onMounted等钩子的执行时机。2) 组件传值包含父子组件单向数据流和子组件通过emit向父组件传值两种方式,展示了props和defineEmits的用法。3) 插槽部分说明了使用slot实现父子组件内容传递的方法。全文通过代码示例直观展示了各功能的实现方式。
2025-08-05 19:34:29
380
原创 前端工程化:Vue3(一)
本文介绍了Vue.js中的插值和常用指令(v-html、v-on、v-if、v-for、v-bind、v-model)的使用方法,重点讲解了响应式编程的概念。通过代码示例展示了如何实现数据绑定、事件处理、条件渲染和循环渲染等功能。特别强调了v-model的双向绑定特性,以及普通变量与响应式数据的区别,指出需要使用ref等响应式API才能实现数据变化自动更新视图的效果。文章还通过对比示例说明了v-html与普通插值的区别,以及v-bind单向绑定的特点。
2025-08-03 19:21:29
1136
1
原创 前端工程化:npm&vite
本文介绍了npm和Vite的基本使用。npm是Node.js的包管理工具,可用于初始化项目、安装依赖(如jquery)和运行脚本。Vite是一个前端构建工具,支持快速创建和打包项目。文章详细讲解了如何通过npm create vite创建Vue项目,并解读了项目目录结构(如components、App.vue等)。最后介绍了项目启动(npm run dev)和打包(npm run build)的方法,打包后会生成dist文件夹。
2025-08-03 10:45:30
1128
原创 前端工程化:ES6特性
本文对比了JavaScript中let和var的区别,重点分析了作用域、重复声明和变量提升问题,推荐使用let以避免潜在错误。接着介绍了ES6的解构赋值(数组、对象、方法)、链判断运算符?.简化判空逻辑、函数参数默认值设置、箭头函数简化写法、模板字符串${}动态拼接等特性。最后探讨了异步编程方案,包括Promise、async/await的使用场景和异常处理方式,展示了如何通过await将异步操作转为同步写法。这些ES6新特性能有效提升代码简洁性和可维护性。
2025-08-03 10:02:23
1024
原创 Netty综合案例(上)
本文介绍了基于Netty的客户端-服务端通信系统实现方案。主要内容包括:1)采用消息头+消息体的实体模型设计;2)客户端异步启动与服务端多线程Reactor模式实现;3)完整的Pipeline责任链设计,包含半包/粘包处理、编解码、心跳检测、认证授权等组件;4)特别说明应用层心跳检测的必要性(弥补TCP keep-alive机制不足);5)详细目录结构规划和关键代码示例。系统采用模块化设计,通过Handler责任链实现各功能组件的解耦,为业务通信提供稳定可靠的底层框架支持。
2025-07-26 14:51:32
640
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅