自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 OpenMuse?有浏览器、有终端、有文件系统、能持续工作的个人智能体

从“聊天框”到“能接管你的浏览器”,AI Agent终于有了“手”前阵子有球友反馈说,他们在做一个自动化调研系统。需求本身不复杂:每天定时抓取几个竞品网站的价格和功能更新,汇总成报告。他们试了好几种方案,都不太满意。用Python写爬虫,网站改版就挂,维护成本高。用大模型API加工具调用,能理解页面内容了,但模型“看不到”真实的浏览器——它只能根据你喂给它的文本做判断,页面里的动态内容、登录态、复杂的交互流程,全都摸不着。他们需要的不是一个能‘理解’网页的AI,而是一个能‘操作’浏览器的AI。

2026-10-08 17:24:05 339

原创 Kafka已正式接入AI,解决agent通信

Kafka接入AI,到底接了什么?它不是“在Kafka上加了个AI功能”,而是把整个Kafka变成了AI应用的通信总线和上下文引擎。从KIP-1318的官方MCP Server,到Real-Time Context Engine的低延迟上下文查询,到Kafka Streams的Agent记忆物化,再到A2A的跨平台Agent协作——2026年的Kafka,已经不再是那个“只做消息队列”的中间件了。对于一个已经在用Kafka的Java团队来说,这意味着不需要引入新的技术栈。

2026-09-14 08:13:21 299

原创 Apache PDFBox Java PDF处理库

Apache PDFBox作为一个Apache基金会的顶级项目,用Apache 2.0协议给了商业开发者最大的自由度——你可以免费使用、自由修改,甚至用于商业闭源产品。它的功能覆盖从创建、编辑、提取到加密、签名、合并的几乎所有PDF操作。而且它的API设计直观,即使没有PDF处理经验的开发者也能快速上手。当然,PDFBox也不是银弹。处理超大文件时性能可能不如商业库,表格提取需要借助额外工具。但对于绝大多数PDF处理需求,PDFBox已经足够强大。我的建议是:如果你的项目需要PDF处理能力,

2026-09-03 17:17:51 242

原创 Spring为什么要“抛弃”Feign?HttpExchange

Spring为什么要“抛弃”Feign?不是Feign不好,而是时代变了。微服务架构从“遍地开花”进入了“精细化运营”阶段。响应式编程、高并发、低延迟、资源效率成了新的追求。Feign的阻塞式设计在十年前是主流,但在2026年的今天,已经显得有些力不从心。@HttpExchange的出现,不是要“杀死”Feign,而是给开发者提供了一个更轻量、更灵活、更原生的选择。技术选型没有银弹。如果你的项目已经深度绑定Spring Cloud,Feign依然是稳妥的选择。

2026-07-20 09:11:36 358

原创 机器人巡检 WGAI v5.3 让它从“看得见”进化到“自己会走”

过去做机器人巡检,最麻烦的从来不只是“识别到了什么”。真正卡人的问题是:机器人知不知道自己在哪?能不能自己规划路线?路上突然出现障碍,它会不会绕开?看到人员或移动物体后,能不能持续跟踪?这不是一次普通的功能加点,而是 WGAI 从 AI 视觉识别平台,继续往智能机器人巡检平台迈出的关键一步。本次 v5.3 重点升级四件事:激光雷达建图、自主路径规划、动态自动避障、人员与移动物体跟踪识别。WGAI v5.3 激光雷达建图界面。

2026-05-26 09:25:18 416

原创 RAG 平台:MaxKB4j,使用Java 21 虚拟线程

一个纯 Java 写的、开箱即用的 RAG 知识库 + LLM 工作流平台。项目全称,由开发者洛阳泰山(TARZAN)独立打造,目前已迭代 1400+ 次提交,获得Gitee GVP 认证项目。项目借鉴了 MaxKB、AIFlowy、Dify 和 FastGPT 的设计理念,然后用 Java 重新设计实现。📌 项目地址:https://gitee.com/taisan/MaxKB4j。

2026-05-15 10:55:15 478

原创 AI圈爆火的 Harness Engineering,到底是什么?

AI工程化范式的三次跃迁,本质是问题视野的逐层扩大。Harness Engineering这门学科处理的是“不确定性系统”的工程可靠性问题,将工程师的角色从手工作坊的指令官,转变为设计规则、驾驭系统的总架构师。今天的大模型已经够强,可以参与研发交付;但没有Harness,它充其量是个高级玩具;有了Harness,它才能成为研发链路中可靠的协作者。而程序员也会从“亲手写出每一行代码”,转向“定义目标、卡住边界、掌控节奏、验收结果”。从马具到整车,Harness正在成为AI时代真正的工程底座。

2026-04-28 16:48:10 595

原创 Milvus 和 PGVector,哪个更好?

摘要: pgvector和Milvus是两种主流的向量数据库方案,适用于不同场景。pgvector作为PostgreSQL扩展,部署简单、支持混合SQL查询,适合中小规模数据(≤500万条)及已有PostgreSQL生态的场景,但性能有限。Milvus是专为向量设计的分布式数据库,支持多索引、GPU加速和水平扩展,适合千万级以上的高性能AI应用,但运维复杂。选择时,小规模或强一致性需求推荐pgvector;大规模、高吞吐场景则选Milvus。建议初期从pgvector入手,数据增长后再迁移至Milvus。

2026-04-20 09:40:04 712

原创 Prompt Engineering指南

你是否觉得AI生成的代码有时候“编译不通过”或者“逻辑奇怪”?其实,这可能不是模型的问题,而是我们的提问方式 不对。本文将带你从Java程序员的视角,深入浅出地掌握AI提示词工程(Prompt Engineering)。通过类比Java核心概念、结构化公式和代码实战,你将学会如何像配置Spring Bean一样精准控制AI,让它成为你最得力的结对编程伙伴。提示词工程不是魔法,它是新时代的汇编语言。作为Java程序员,我们有着天然的优势:我们习惯了强类型(明确约束)、面向对象(角色定义)和模块化。

2026-02-27 10:14:27 685

原创 SpringBoot 实现网络限速

本文基于令牌桶算法,通过 HandlerInterceptor + HttpServletResponseWrapper,在 Spring Boot 中实现了多维度带宽限速。支持全局/API/用户/IP 四种限速维度,提供实时统计监控,适用于API接口保护、文件下载、视频流等场景。

2026-01-26 13:37:39 825

原创 Spring + asyncTool:实现复杂任务的编排

EnableAsync // 开启线程池@Autowired@Bean// 核心线程池大小// 最大线程数// 队列容量// 活跃时间// 线程名字前缀// 拒绝策略。

2026-01-19 08:50:07 735

原创 Spring Security、Apache Shiro、Sa-Token,主流安全框架如何选择?

是企业级重型武器,功能全面但复杂,适合大型项目和有经验的团队。是灵活实用的轻骑兵,平衡了功能与复杂度,适合大多数中小型项目。Sa-Token是快速开发的利器,API简洁但生态相对年轻,适合追求开发效率的场景。实际上,没有完美的框架,只有合适的框架。

2025-12-29 09:08:29 1246

原创 SpringBoot+SPI机制,轻松实现可插拔组件

Java SPI(‌Service Provider Interface)‌是一种服务提供界面,‌它是Java提供的一种服务发现和加载机制,‌允许开发者为接口定义多种实现,‌并在运行时动态地发现和加载这些实现。‌Java SPI机制的核心在于它提供了一种方式,‌使得服务提供者可以根据SPI的约定,‌为某个接口提供具体的实现类。‌这些实现类被放置在特定的位置,‌如目录下,‌并通过配置文件指定。

2025-12-29 09:03:19 730

原创 详解网盘系统的架构设计

百度网盘的系统设计采用分布式架构,以应对用户庞大的数量和海量的存储需求。客户端层:用于接收和分发不同设备的用户请求,对文件资源进行拆分和组装,直接和后端服务进行交互。应用微服务:处理核心业务逻辑,如文件上传下载、文件共享、权限控制、VIP 限速等。关系型DB系统:用于持久化存储用户的文件和元数据,以及用户权限等基础信息。消息队列:异步削峰解耦,提高写入性能,减轻数据库负载和应用间频繁通信的压力。注册中心和缓存:应用节点定时上报服务器的 IP 节点+端口到注册中心,以便其它服务器实时调用。

2025-12-22 10:01:36 917

原创 Gitea 轻量级的Git方案 - Gitlab的替代品

上图是笔者调研 Gitea 和 GItlab 的对比图,相比之下 ,Gitea 真是轻量级神器 ,能够完美适配公司业务的需求。

2025-12-15 08:34:26 1080

原创 OpenFeign的相关问题

本文介绍了OpenFeign服务调用组件的使用指南。主要内容包括:1)OpenFeign作为Feign的升级版,支持SpringMVC注解;2)环境搭建步骤,包括Nacos注册中心和微服务创建;3)四种常见传参方式(JSON、POJO表单、URL参数、另类传参)的实现;4)超时处理的两种配置方案;5)日志增强功能的使用;6)替换默认HttpClient的方法;7)GZIP压缩的优化方案;8)与Sentinel整合实现熔断降级。文章通过详细代码示例展示了OpenFeign的核心功能,适合初学者快速掌握这一微服

2025-12-08 10:00:03 874

原创 常用的6种API网关

API网关在项目中非常重要。今天这篇文章跟大家一起聊聊工作最常用的6种网关,希望对你会有所帮助。end-- API Key验证end-- 验证API Key格式end-- 请求体验证endend-- 业务规则验证endend-- 添加验证通过标记-- 记录审计日志end通过本文的介绍,我们对6种主流API网关有了全面的认识。技术栈匹配:选择与团队技术栈最匹配的方案性能要求:根据业务并发量选择性能合适的网关功能需求:评估需要的功能特性,如限流、认证、监控等运维成本。

2025-11-18 16:23:18 416

原创 智能体 MCP 协议技术原理与应用实践

能够调用外部系统(数据、工具)是 Agent 的关键特征。但外部系统不具有标准时,代码维护大量 Tools 和系统集成的复杂度会非常高。如 OpenAI Function Calling API,只适用于特定 LLM 和平台,每个应用需要单独开发交互逻辑,难以复用和扩展。:Context 是 Agent 和 LLM 之间的传输对象,但 Agent 和 LLM 对话的过程中,往往需要维护复杂的 Context Updating 代码逻辑,难以高效地在 LLM 和外部系统间传递复杂上下文。

2025-11-04 09:17:54 897

原创 如何进行千万级大表的数据删除

Component@Slf4j@Autowired/*** 智能删除决策*/try {// 1. 分析表状态// 2. 根据分析结果选择最佳方案// 3. 执行删除log.error("智能删除失败", e);throw e;// 分析表大小// 分析表结构// 分析系统负载break;break;break;default:// 各种策略的具体实现...

2025-10-29 10:08:15 1206

原创 LatchUtils:简化Java异步任务同步的利器

在Java应用开发中,为了提升系统性能和响应速度,我们经常需要将一些耗时操作(如调用外部API、查询数据库、复杂计算等)进行异步并行处理。当主流程需要等待所有这些并行任务执行完毕后再继续时,我们通常会用到 ExecutorService等并发工具。然而,直接使用这些原生工具,往往意味着需要编写一些重复的、模式化的“胶水代码”,这不仅增加了代码量,也让核心业务逻辑显得不够清晰。为了解决这个问题,我封装了一个名为LatchUtils的轻量级工具类。它能够以一种极其简洁的方式来组织和管理这一类异步任务。

2025-10-24 15:40:48 663

原创 工作中最常用的工作流引擎

传统企业级应用:选择Activiti,生态成熟,文档丰富,遇到问题容易找到解决方案高性能高并发场景:选择Flowable,它在Activiti基础上做了大量性能优化微服务架构:选择Camunda,外部任务模式完美契合微服务理念,运维监控工具完善规则密集型业务:选择jBPM,与Drools规则引擎深度集成,适合风控、保险等场景轻量级服务编排:选择JDEasyFlow,简单灵活,学习成本低,无外部依赖有些小伙伴在工作中可能会想:"能不能一个项目用多种工作流引擎?我的经验是:可以,但要明确边界。

2025-10-17 10:34:05 742

原创 效率神器 Spring Batch

Data// 公共字段// 银行端数据// 内部系统数据// 对账结果MATCHED, // 数据一致AMOUNT_DIFF, // 金额不一致STATUS_DIFF, // 状态不一致ONLY_IN_BANK, // 银行单边账ONLY_IN_SYSTEM // 系统单边账-- 常用监控SQL示例-- 最近5次作业执行情况。

2025-10-15 08:29:47 1091

原创 Redis为什么能够轻松抗住百万级别的并发请求

有些小伙伴可能会疑惑:Redis是单线程的,为什么还能支持这么高的并发?这里需要澄清一个概念,Redis的"单线程"指的是网络IO和键值对读写是由一个线程来完成的,但Redis的整个系统并不是只有一个线程。为什么单线程反而更快?避免了线程切换的开销:多线程环境下,CPU需要在不同线程间切换,这个过程需要保存和恢复线程上下文,开销很大。避免了锁竞争:单线程模型下,不需要考虑线程安全问题,避免了各种锁的开销。CPU缓存友好:单线程执行时,CPU缓存命中率更高,减少了内存访问延迟。让我们看一个简单的对比:1

2025-09-11 09:49:19 709

原创 消息队列(MQ)的10种典型场景

今天我想和大家分享我在实际工作中使用消息队列(MQ)的10种典型场景,希望对你会有所帮助。在深入具体场景之前,我们先来思考一个基本问题:为什么要使用消息队列?系统间的直接调用:引入消息队列后:接下来我们将通过10个具体场景,带大家来深入理解MQ的价值。在我早期参与的一个电商项目中,订单创建后需要通知多个系统:这种架构存在严重问题:紧耦合:订单服务需要知道所有下游服务单点故障:任何一个下游服务挂掉都会导致订单创建失败性能瓶颈:同步调用导致响应时间慢引入MQ后,架构变为:代码实现:技术要点

2025-09-04 11:34:39 1242

原创 开源MCP交易平台

在MCP/API变现这件事上,大多数人要么被复杂的技术栈劝退,要么在使用现有平台时,被高昂的抽成和规则限制。XPack 则提供了一个“两全其美”的方案——既给了你开箱即用的便利,又保留了掌控一切的自由度。近年来AI 疯狂崛起,很多人都在想:我能不能把自己写的 API、MCP 工具、AI 插件,做成一个小服务,让更多人调用,顺便赚点副业收入?真心建议对MCP变现感兴趣的同学,可以去研究一下这个开源项目,打开了MCP交易的新可能。命令,你把它复制到你的服务器上运行,接杯水的功夫,你的专属MCP商店就部署好了。

2025-08-27 15:40:48 888

原创 一套异步处理方案

mock GitHub 异步处理项目

2025-08-24 00:15:22 296

原创 Token、Session、Cookie、JWT、OAuth2 详解

Cookie是存储在浏览器端的一小段文本数据,由服务器通过HTTP响应头的Set-Cookie字段发送给浏览器,浏览器随后会自动在每次请求中通过Cookie头将其带回给服务器。工作原理Session是存储在服务器端的用户状态信息。服务器为每个用户创建一个唯一的Session ID,并通过Cookie将这个ID传递给浏览器,浏览器后续请求时带上这个ID,服务器就能识别用户身份。Session存储结构// 典型的Session数据结构// 自定义属性// 省略getter/setter。

2025-08-24 00:10:43 1013

原创 还在用WebSocket实现即时通讯?试试MQTT吧

消息中间件应用越来越广泛,不仅可以实现可靠的异步通信,还可以实现即时通讯,掌握一个消息中间件还是很有必要的。如果没有特殊业务需求,客户端或者前端直接使用MQTT对接消息中间件即可实现即时通讯,有特殊需求的时候也可以使用SpringBoot集成MQTT的方式来实现,总之消息中间件是实现即时通讯的一个好选择!

2025-08-22 08:43:30 901

原创 MaxKB+合合信息TextIn:通过API实现PDF扫描件的文档审核

摘要:基于MaxKB V2版本,通过文件上传、链接生成、TextIn OCR转换和大模型审核四步流程,将PDF扫描件转为Markdown格式后进行智能审核。系统支持错别字标注、格式修正等审核功能,企业无需自研OCR即可实现高精度文档处理。该方案适配各类OCR服务,可帮助用户突破扫描件处理瓶颈,构建全格式智能审核闭环,显著提升文档处理效率。

2025-08-12 09:23:58 940

原创 画图神器,“手残党”福音,拒绝丑图!

很少有人一上来就能把图画得好看。刚开始画得丑很正常,别急着放弃——循序渐进才是王道。先给大家看看我刚写博客时画的几张图,现在回头看,真是忍不住想抠脚。当然,说了过去的不好看,也不是暗示我现在的图有多惊艳。实话实说,现在画的很多图我自己也不完全满意,更多时候是在时间和回报之间做取舍。最后,画图不是一蹴而就的技能,它需要工具熟练度、审美积累和反复练习的结合。刚开始画得丑没关系,能坚持下去、不断优化细节的人,才会在某一天突然发现——自己的图,也能很好看。

2025-08-11 09:09:25 1173

原创 引入Disruptor内存消息队列,系统性能大幅提升!

摘要:Disruptor是一款高性能内存消息队列,源于LMAX对并发算法的研究。其核心架构包括RingBuffer(数据存储)、Sequence(位置标识)、Sequencer(并发控制核心)等组件。主要特性包括:多播事件(支持多个消费者)、消费者依赖关系管理、内存预分配和无锁并发设计。通过不同的ProducerType(单/多生产者)和WaitStrategy(阻塞/睡眠/Yielding/BusySpin等待策略)可进行性能调优。Disruptor通过减少内存分配和使用CAS操作实现低延迟,适用于对性能

2025-07-09 10:04:11 1018

原创 MySQL的三大日志详解

MySQL三大日志系统是保障数据安全的核心机制:RedoLog通过WAL机制和循环写入确保数据持久性,UndoLog实现事务回滚和MVCC多版本控制,Binlog支持主从复制和数据恢复。文章深入剖析了三大日志的协同工作原理,提供了生产环境配置模板和监控指标,并针对常见故障给出解决方案。关键配置包括:innodb_flush_log_at_trx_commit=1保障RedoLog实时刷盘、ROW格式Binlog确保数据一致性、合理设置UndoLog清理策略避免膨胀。掌握日志机制是DBA必备技能,正确配置才能

2025-07-09 09:50:27 763

原创 JAVA 程序启动脚本 bootstrap.sh

脚本启动和停止Java项目

2025-07-02 10:09:50 299

原创 100万QPS短链系统如何设计?

凌晨两点,监控大屏突然飙红——短链服务QPS突破80万!数据库连接池告急,Redis集群响应延迟突破500ms。这不是演习,而是某电商平台大促的真实场景。当每秒百万级请求涌向你的短链服务,你该如何设计系统?今天这篇文章跟大家一起聊聊100万QPS短链系统要如何设计?希望对你会有所帮助。四大设计原则:无状态设计:跳转服务完全无状态,支持无限扩展读多写少优化:将读性能压榨到极致分而治之:数据分片,流量分散柔性可用:宁可部分降级,不可全线崩溃。

2025-06-23 16:57:19 1052

原创 我用Trae+豆包+火山方舟,开发了一个美食推荐助手

前几天火山引擎的豆包大模型1.6正式发布了。火山引擎AI云原生的核心是打造了Agent开发的新范式:大模型+Agent开发平台。大模型我们可以用豆包大模型1.6。Agent开发平台,我们可以使用PromptPilot通过交互式引导与提示词优化,在火山方舟通过MCP协议调用云服务,解决部署繁琐问题。我赶紧试用了一下。这几天我用Trae+豆包1.6+火山方舟的MCP,开发了一个美食推荐助手agent。感觉挺有意思的,这篇文章跟大家一起分享一下。

2025-06-17 09:07:19 1404

原创 数据权限的4种方案

在数字化系统的权限架构演进中,用户、角色、菜单始终构成权限管理的三位一体基础框架。随着企业治理进入精细化阶段,传统RBAC模型在应对多维数据管控需求时日益显现其局限性。基于此,"功能权限-数据权限-审批权限"的三元权限体系逐渐成为行业最佳实践,其中数据权限因其与业务场景的高度耦合性,成为系统架构设计中的关键突破点。本文将系统解构四种典型数据权限实现方案,揭示灵活高效的数据权限建模方法论。

2025-06-17 08:55:35 563

原创 如何理解 Spring 当中的 Bean?

当你把第一个管理page的page放进来的时候,这就是第一层b+树,当数据更多的时候,管理page的page也越来越多,那就需要第三层page来进一步管理,这就是两层b+树,以此类推,最终形成一个层层嵌套的hashmap结构,这就是b+树咯。联合索引就是按照你指定的ABC三个字段,形成先排序A再排序B再排序C的有先后的主键,等于在b+树中用A做key找B,用B做key找C,所以如果查询的时候跳过了A,所有的索引就不生效了,因为你没有key,就没法用hashmap。有A没有B,那A会生效B不生效,原理一样。

2025-06-16 09:06:41 815

原创 MySQL同步ES的6种方案!

对于文章上面给出的这6种技术方案,我们在实际工作中,该如何做选型呢?下面用一张表格做对比:方案实时性侵入性复杂度适用阶段同步双写秒级高低小型单体项目MQ异步秒级中中中型分布式系统Logstash分钟级无低离线分析Canal毫秒级无高高并发生产环境DataX小时级无中历史数据迁移Flink毫秒级低极高实时数仓。

2025-05-26 08:44:29 920

原创 SpringBoot性能优化的12招

针对SpringBoot项目常见的性能问题,本文总结了12个优化方案

2025-05-26 08:41:57 965

原创 数据脱敏的6种方案

/ 反例:直接将生产数据同步到测试环境// 包含手机号、身份证等敏感字段直接将生产的数据,比如:手机号、身份证等敏感字段,同步到了测试环境。这个案例揭示了数据脱敏的极端重要性。方案安全性性能可逆性适用场景字符串替换★★★★★★不可逆日志/展示加密算法★★★★★★可逆支付信息存储数据遮蔽★★★★★★部分可逆数据库查询数据替换★★★★★★可逆测试数据生成动态脱敏★★★★★★★动态可控生产环境查询K匿名化★★★★★★不可逆医疗/位置数据。

2025-05-19 15:45:24 803

空空如也

空空如也

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

TA关注的人

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