- 博客(112)
- 收藏
- 关注
原创 小白福音!手把手教你给 OpenClaw 写技能:从 0 到上线(附源码)
在 OpenClaw 里,技能是一个可复用的能力模块。它告诉 Agent:“遇到这类任务,应该这样做”。VS Code 的"插件"Chrome 的"扩展程序"手机的"APP"核心平台提供基础能力,具体功能由扩展提供。
2026-03-19 08:55:21
731
原创 效率提升 10 倍!我用 OpenClaw 实现了工作自动化
摘要:本文分享了使用OpenClaw工具实现工作自动化的三个实战案例。通过自动化日志整理、测试报告生成和环境配置检查,每周可节省10小时工作时间。案例包含具体实现思路、关键代码和效果对比,展示了AI Agent在提升工作效率方面的显著作用。(149字) 关键词:OpenClaw、AI Agent、工作自动化、效率提升、编程工具
2026-03-19 08:51:46
844
原创 RabbitMQ vs RocketMQ vs Kafka:3 个场景告诉你选哪个
RabbitMQ 胜在简单可靠,RocketMQ 胜在功能全面,Kafka 胜在吞吐无敌。
2026-03-18 10:09:19
428
原创 5 分钟部署 OpenClaw:从零到运行的完整流程
步骤关键动作耗时1. 安装 CLI1 分钟2. 初始化30 秒3. 配置 API编辑 config.json2 分钟4. 配置飞书编辑 feishu-config.json(可选)3 分钟5. 启动服务30 秒6. 运行任务1 分钟总计:约 10 分钟完成部署。
2026-03-18 10:08:19
1328
2
原创 134亿涌入稀土的资金,一夜之间换了赛道——通信/CPO凭什么接棒?
如果你只看2月25日的行情,通信板块几乎是隐形的——所有的聚光灯都打在稀土和有色金属上。但如果你拉长时间线,会发现通信板块在过去两周一直在悄悄积蓄力量。通信板块在2月中旬经历了一轮充分的调整,主力资金在低位持续吸筹。今天34.2亿的净流入不是凭空出现的,而是前期布局的集中兑现。通信设备、通信线缆等子板块在调整过程中,多数个股的均线系统已经完成修复,MACD在零轴附近形成金叉,技术形态上具备了启动条件。美股隔夜的表现提供了直接催化。微软+2.98%、英伟达+1.41%,科技股全线走强。
2026-02-26 11:13:18
369
原创 ETH 单日暴涨 10.86%:DeFi 的「二次心跳」,还是回光返照?
回到最初的问题:ETH单日暴涨10.86%,是DeFi复苏的信号,还是昙花一现?两者兼有,但偏向前者。从链上数据看,DeFi生态确实在经历一轮真实的复苏——TVL回升、协议收入增长、用户活跃度提高、稳定币供应量扩张。这些不是可以被一天的价格波动伪造的。但同时,2月25日的暴涨幅度中,确实包含了大量的短期投机成分——空头挤压、杠杆放大、FOMO追涨。这部分「泡沫」在未来几天到几周内大概率会被挤出,表现为价格的回调和震荡。ETH/BTC汇率能否持续回升?这是衡量ETH相对强势的最核心指标。
2026-02-26 11:03:53
492
原创 十年“真香“:Apple 触屏 MacBook Pro 背后,是一场迟到的交互革命
摘要: 苹果将在2026年推出触屏版MacBook Pro,标志着其产品哲学的颠覆性转变。这一决策源于三大变量:Apple Silicon统一架构、用户触屏习惯养成,以及AI交互重塑桌面体验。新机将引入灵动岛作为混合交互层,并推动SwiftUI成为统一开发框架。此举将重新定义Mac与iPad的定位,同时对微软Surface构成直接挑战。这场迟到的交互革命,既是苹果对用户需求的妥协,更是其适应后PC时代计算范式的必然选择。(149字)
2026-02-26 11:00:38
553
原创 GitHub 霸榜的不是模型,是技能——Agent Skills 生态爆发背后的范式转移
2026年AI赛道迎来重大转向:GitHub霸榜项目从大模型转向Agent技能生态,前5名中有4个是Skills相关项目。这标志着AI竞争焦点从模型能力转向技能工程,通过模块化技能将通用智能转化为领域生产力。核心技术突破包括:声明式技能激活、上下文工程分层管理、MCP协议标准化工具调用。企业落地路径建议分三阶段推进,从单点突破到全面铺开。未来趋势包括技能市场化、自动生成和多Agent协作。开发者应抓住技能生态建设机遇,技术管理者需构建企业级技能体系。AI竞争已从参数量转向技能树,Skills成为新的生产力护
2026-02-26 10:55:06
784
原创 EasyExcel+线程池+批量插入实现百万级数据导入:从原理到实战的完整指南
本文介绍了一种高效处理百万级数据导入的优化方案,通过结合EasyExcel流式读取、线程池并发处理和JDBC批量插入技术,将传统单线程逐条插入方式从小时级优化到分钟级。方案采用生产者-消费者模式,使用阻塞队列作为数据缓冲区,通过线程池实现并行处理,并采用批量插入方式减少数据库交互次数。文中详细展示了核心实现代码,包括数据实体类、导入服务类、Controller层实现及数据库优化配置,并提供了性能测试数据(100万条数据从4500秒优化到195秒)。同时针对常见问题(内存溢出、连接池耗尽、数据重复等)给出了解
2025-09-09 16:40:53
646
原创 基于 EasyExcel + 线程池 解决 POI 导出时的内存溢出与超时问题
本文针对大数据量Excel导出常见的内存溢出和超时问题,提出EasyExcel+线程池的解决方案。方案采用生产者-消费者模式,通过线程池并行读取数据,单线程顺序写入Excel文件,结合有界队列控制内存使用。关键点包括:使用keyset分页优化查询性能、合理设置批次大小、异步生成文件避免HTTP超时、监控任务状态等。针对不同场景提供单文件和多文件打包两种实现策略,并给出性能调优建议和最佳实践清单。该方案在保证数据正确性的同时,显著提升导出效率,适合百万级数据量的稳定导出需求。
2025-09-04 15:41:31
1244
原创 高并发场景下的热点数据处理:从预热到多级缓存的性能优化实践
1. **分层设计**- 接入层:限流、熔断、降级- 缓存层:多级缓存、智能路由- 服务层:异步处理、并发控制- 数据层:读写分离、分库分表2. **弹性设计**- 自动扩缩容- 优雅降级- 故障隔离- 快速恢复3. **监控告警**- 全链路追踪- 实时监控- 智能告警- 自动化运维处理热点数据是高并发系统设计中的核心挑战。通过本文介绍的热点数据预热多级缓存架构和异步化编程。
2025-09-01 10:03:55
1493
原创 API Key 认证 + 滑动窗口限流:保护接口安全的实战方案
API Key 认证→ 保证调用方身份合法,防止接口被匿名/恶意调用。滑动窗口限流→ 在时间维度平滑限制调用频率,避免过载。这两者结合,既保证了接口安全,又能提升系统稳定性,是微服务与开放平台接口防护的常用方案。
2025-09-01 09:18:44
1119
原创 本地消息表实现分布式事务保证最终一致性
在微服务或分布式系统中,跨服务操作常常要求。两阶段提交(2PC)虽然能保证原子性,但代价高、可用性差。**Transactional Outbox / 本地消息表(local message table)**成为工程上常用的折衷:把要发布的事件写入同一事务的outbox表,然后异步将该表的数据可靠地投递到消息中间件或其他服务,从而实现最终一致性。
2025-08-28 15:10:03
906
原创 GitHub Copilot Pro + 模型深度解析:Java 开发者场景适配指南
本文介绍了GitHub Copilot Pro+为Java开发者提供的多种高性能AI模型及其适用场景。主要模型包括GPT-5(快速原型开发)、o3(复杂架构设计)、o4-mini(高效日常开发)、ClaudeOpus4(大型项目重构)和ClaudeSonnet4(高质量代码生成)。文章详细分析了各模型在代码质量、推理深度和文档生成等方面的特点,并提供了基于开发任务类型、项目阶段和团队规模的选择建议。通过实际案例展示了模型组合使用的最佳实践,指出未来模型将向专业化、长上下文和多模态方向发展。建议开发者根据项目
2025-08-26 16:46:35
1550
原创 Claude模型和GPT模型哪个更适合复杂编码任务?
《Claude与GPT在复杂编码任务中的选择策略》摘要: Claude(Opus4/Sonnet4)在深度推理、长上下文维护和代码规范性上表现突出,适合复杂逻辑重构与安全敏感开发;GPT-5在多模态协作、快速原型开发及成本控制方面更具优势。建议采用混合策略:GPT-5构建原型框架,Claude进行深度优化。未来需关注Claude的多模态扩展与GPT-5的长上下文优化,以实现效率与质量的最佳平衡。
2025-08-26 15:03:31
1013
原创 使用自定义注解 + 切面减少冗余代码,提升代码可维护性
本文介绍了如何利用自定义注解+AOP切面优化企业级开发中的重复代码问题。针对日志打印、权限校验、幂等校验、异常处理和性能监控等常见场景,通过定义注解声明需求,配合切面统一处理横切逻辑,实现了业务代码与公共功能的解耦。这种方法显著提升了代码的可读性、可维护性和可扩展性,使开发人员只需通过简单注解即可获得功能支持,避免了冗余代码和逻辑不一致的问题。
2025-08-26 08:31:50
386
原创 使用定时任务实现支付单自动关单,并通过多线程+分段优化扫表延迟
支付系统关单优化方案:定时任务+多线程+分段策略 摘要:针对支付系统中订单超时未支付导致的库存占用等问题,本文提出优化方案。传统单线程全表扫描方式存在扫描耗时长、数据库压力大等缺陷。新方案采用分段策略(如按ID或时间分片)缩小扫描范围,配合多线程并发处理和批量SQL更新,显著提升效率。以500万日订单量为例,关单延迟从8分钟降至1分钟内,数据库CPU利用率从80%降至40%。关键点包括合理设计分片规则、线程池调优和保证更新幂等性。该方案有效解决了大数据量下的关单延迟问题。
2025-08-26 08:26:01
889
原创 使用Redis 分布式锁防止短信验证码重复下发问题
本文针对短信验证码重复下发问题,提出基于Redis分布式锁的解决方案。通过为每个手机号/bizType创建短周期锁实现请求串行化,结合Lua脚本保证安全释放和发送时间记录进行二次校验。方案在保持低延迟(毫秒级)的同时有效防止重复发送,适用于分布式环境。文章详细解析了实现要点(锁设计、TTL设置、异常处理)、性能分析及常见问题应对策略,并提供了Java代码示例。建议配合限流风控策略使用,同时需完善监控(锁失败率、发送频率)和故障测试(并发、网络异常场景)。该方案以简单高效的方式解决了验证码重复下发痛点。
2025-08-20 17:43:33
1280
原创 用“一锁二判三更新”设计接口幂等
本文提出"一锁二判三更新"的支付防重模式,通过分布式锁串行化处理、幂等性检查与事务化更新三个关键步骤,有效解决支付系统中的重复扣款问题。该模式采用Redis分布式锁控制并发请求,结合幂等表记录请求状态,在事务中完成支付流水、订单状态和账务的三步更新,并设置数据库唯一约束作为最后防线。文章详细介绍了实现步骤、优化方法、常见问题及解决方案,强调监控测试的重要性,为支付系统提供了一套完整的防重工程实践方案。
2025-08-20 17:39:22
943
原创 基于 Spring Event 实现同步转异步:解决定时任务扫表导致数据库连接池不足的问题
摘要:本文探讨了定时任务全表扫描导致数据库连接池占满的问题,提出基于SpringEvent的事件驱动解决方案。通过将同步操作转为异步处理,实现削峰填谷,提升系统性能。文章详细介绍了实现步骤、性能表现、复杂度分析和常见问题,并列举了典型应用场景。方案适用于单应用内解耦,对可靠性要求高的场景可升级为消息队列方案。
2025-08-19 10:50:41
1061
原创 引入分布式锁解决并发问题
本文对比了分布式系统中乐观锁与分布式锁的适用场景与实现方式。乐观锁通过数据库版本号或条件更新实现,适合高并发、资源量大的场景(如库存更新),具有并发能力强、实现简单的优点,但冲突重试会增加数据库压力。分布式锁(如基于Redis)通过抢占互斥资源实现,适合稀缺资源场景(如优惠券领取),能保证强一致性但会降低吞吐量。文章详细分析了两者在性能、复杂度、常见问题等方面的差异,并给出组合使用建议(如秒杀场景采用分布式锁+乐观锁+MQ的方案)。最后提供了典型代码示例和决策清单,建议根据资源特性选择方案,并注意监控和故障
2025-08-19 10:09:03
995
原创 JVM优化
一、内存模型与堆空间优化1. 堆空间参数调优场景:高并发系统频繁出现 Full GC,响应时间波动大。分析方法通过查看堆空间分配,监控 GC 频率。示例 GC 日志:plaintext优化措施(避免动态扩容开销)。(直接进入老年代)。(防止类加载溢出)。2. 分代收集器选择案例:电商订单系统,要求低延迟(响应时间 < 200ms)。方案:从 Parallel GC 切换至 G1 GC:plaintext效果。
2025-06-16 15:47:34
730
原创 事物A调用事物B方法事物会生效不 不生效怎么才能生效
当方法 A(带事务)调用方法 B(带事务)时,事务是否生效取决于事务传播行为(Propagation) 的配置。Spring 定义了 7 种传播行为,核心场景如下:传播行为说明A 调用 B 时的事务表现(默认)若当前存在事务则加入,否则新建。B 共享 A 的事务,异常时整体回滚。新建事务,挂起当前事务(若存在)。B 独立事务,A 与 B 事务相互隔离,异常互不影响。若当前有事务则加入,否则以非事务方式执行。B 随 A 的事务存在而存在,否则无事务。以非事务方式执行,挂起当前事务(若存在)。B 始终无事务,A
2025-06-16 15:19:37
1088
原创 警惕!线程池执行异常可能导致的系统故障与数据隐患
在高并发场景下,线程池()是管理和复用线程的利器。但当任务内部抛出异常(未被捕获)时,往往会引发一些“怪现象”——线程终止、任务静默失败、Future 永远阻塞等。
2025-05-28 09:57:00
530
原创 HashMap的hash方法是如何实现的
方法通过一次右移异或,将hashCode()的高位信息“扩散”到低位,避免了电商、社交等高并发场景中因hashCode()分布不均导致的桶级拥堵;简洁高效的实现,兼顾性能与抗攻击性,是 Java 8 中HashMap能在绝大多数场景下保持稳定 O(1) 操作的重要一环。
2025-05-22 13:04:11
454
原创 【JDK8 深度解析】HashMap 为何将链表转红黑树?聊聊数组冲突背后的性能优化哲学
链表在高冲突场景下性能退化严重,且容易遭受哈希 DoS 攻击;红黑树提供自平衡的对数级查询插入性能;阈值与容量策略保证“合理时机”才树化,冲突平缓时优先扩容;反树化机制避免小规模树带来过多指针/颜色负担。这一设计使得 Java 8HashMap在绝大多数场景下依旧保持 O(1) 的高效哈希访问,而在最坏的冲突场景下也能稳定在 O(log N),在性能与安全性之间取得了优雅的平衡。
2025-05-20 18:39:45
766
原创 【HashMap 底层探秘】扩容时机 + 元素迁移全解析!
的扩容(resize)机制是为了在装载因子(load factor)阈值触发后,将底层数组容量翻倍,并将旧数组中的所有节点重新分布到新数组中。JDK 8+ 的实现不仅按照“阈值触发 → 容量翻倍 → 高位分拆 → 链表/树节点迁移”这一流程,还针对链表长度与容量大小,动态切换链表与红黑树,优化了性能与内存使用。在插入第 4 个元素(超过阈值 3)时,触发扩容:容量从 4 → 8,阈值从 3 → 6。否则,即使链表过长,也优先触发扩容而非树化,确保空间换时间的平衡。,无需重新计算哈希,提升迁移效率。
2025-05-20 18:27:35
931
原创 JDK 9中对字符串的拼接做了什么
JDK9中,Java对字符串拼接进行了重大优化,通过JEP280(IndifyStringConcatenation)将原有的基于StringBuilder的静态拼接逻辑替换为基于invokedynamic指令的动态链接机制。这一优化利用java.lang.invoke.StringConcatFactory在运行时按需生成最优拼接实现,显著减少了字节码体积并提高了拼接性能。在JDK8及更早版本中,字符串拼接通过创建StringBuilder对象并多次调用append方法实现,这在高频或大规模拼接场景下带来
2025-05-16 15:09:40
982
原创 为什么不建议使用异常控制业务流程
在软件开发中,会引入多重问题:首先,它违背了异常设计的初衷——处理“非预期”或“错误”情形,而将可预料的逻辑分支强行映射为异常,不仅造成代码可读性和可维护性显著下降,还让 IDE 与静态分析工具难以准确推断程序执行路径;其次,不同语言对异常处理性能差异巨大,在高频逻辑分支处频繁抛捕异常往往带来严重的性能开销;最后,滥用异常会隐藏控制流路径,增加调试和资源管理的复杂度,甚至可能遗漏释放资源或导致死锁。以下分四大方面深入分析这一反模式的危害及最佳实践建议。
2025-05-15 11:01:03
541
原创 groovy @CompileStatic注解小记
它可在类级别、方法级别或构造器上使用,一旦启用,Groovy 编译器会像 Java 一样在编译阶段执行类型检查,并生成直接调用目标方法的字节码,从而绕过 Groovy 的元对象协议(MOP),实现更高性能和编译时错误捕获 (:由于绕过了 MOP,减少了运行时反射与元编程开销,大幅提升方法调用和算术运算性能。:在静态编译下,某些 DSL 或运行时注入的方法/属性无法被解析,可能编译报错。启用后,所有方法调用、属性访问都会在编译阶段验证类型正确性,避免运行时出现。:希望捕获更多编译期错误、减少运行时异常。
2025-05-09 11:40:30
605
原创 spring OncePerRequestFilter 作用
是 Spring Web 提供的一个抽象滤器基类,用于保证在一次 HTTP 请求的整个分派过程中,该滤器仅执行一次,无论该请求经历了多少次内部转发(forward)、包含(include)或错误/异步分派。对于启用了 Servlet 3.0+ 异步支持的应用,如不希望在异步回调线程再次执行过滤逻辑,可重写。确定),若标记已存在则跳过,未标记则执行并打标记,确保同一次请求不会重复过滤 (子类在此方法中编写实际的过滤逻辑(如认证、日志、头处理等),执行完成后。,聚焦业务逻辑,不必关心重复执行的问题 (
2025-04-25 11:31:48
1092
原创 mcp协议简介
概要模型上下文协议(Model Context Protocol,MCP)是一项由 Anthropic 牵头的开放标准,旨在为大型语言模型(LLMs)与外部数据源及工具之间提供一个统一、标准化的通信接口。通过 MCP,AI 应用可以像通过 USB‑C 连接外设那样,标准化地“插拔”各种数据源和服务,从而简化集成流程、提升可维护性,并赋予 LLMs 实时获取外部上下文及执行操作的能力。
2025-04-22 09:47:22
808
原创 揭秘!GitLab CI/CD 配置优化的秘诀
,以支持 Docker-in-Docker(DinD)或挂载宿主机 Docker socket。启动 Docker-in-Docker 容器,Runner 以特权模式连接它执行构建与推送。:确认 CI 变量无误,Harbor 支持的认证方式(如 LDAP、OIDC)是否与凭证匹配。:在项目设置中适当增加 pipeline 超时时间,或拆分镜像层次以复用缓存。:尽量使用专用的 CI 账号和最小权限,避免在脚本中硬编码密码。:你的 Harbor 域名,例如。:Harbor 中的项目名,如。
2025-04-10 09:39:17
815
原创 go语言的语法糖以及和Java的区别
选择哪种语言取决于具体需求:如果需要轻量级、并发高效的系统,Go 是理想选择;如果开发企业级、成熟生态要求较高的系统,Java 依然是不错的选择。:Go 提供了短变量声明、多返回值、defer、range 循环、隐式接口实现和闭包等语法糖,使得代码更加简洁高效。:Go 的接口实现是隐式的,一个类型只要实现了接口声明的方法,就自动满足该接口,无需显式声明实现关系。Go 具有内置的并发支持(goroutine、channel),并发编程非常轻量;:支持直接定义和使用匿名函数,也可以捕获外部变量,形成闭包。
2025-04-08 09:34:18
726
原创 常见的字符编码有哪些?有什么区别?
编码字节数兼容性优点缺点ASCII7/8 位向后兼容简单、广泛使用只支持基本英文字符ISO-8859-11 字节仅局部语言适用于西欧语言字符覆盖范围有限UTF-81~4 字节向后兼容 ASCII节省空间,国际化支持良好亚洲文字可能占用 3 个字节UTF-162 或 4 字节不兼容 ASCII对于东亚文字存储效率高处理时需考虑字节顺序(BOM问题)UTF-324 字节直接映射 Unicode固定长度,随机访问简单占用空间大1~2 字节。
2025-04-07 18:54:48
1065
原创 接口和抽象类的区别如何选择
接口(Interface)纯抽象:在 Java 8 之前,接口中的所有方法都是抽象的(Java 8 及以后可以有默认方法和静态方法)。接口仅用于声明行为规范,不提供任何实现细节。多重继承支持:Java 类可以实现多个接口,这解决了多继承的限制。常量定义:接口中定义的变量默认都是常量。抽象类(Abstract Class)部分抽象:抽象类可以包含抽象方法(不提供实现)和非抽象方法(有具体实现)。单继承限制:一个类只能继承一个抽象类,这限制了其复用方式。状态和实现。
2025-04-07 13:46:03
627
原创 数据校验-validation-中@NotNull groups 详细用法以及示例
NotNull(message = "用户名不能为空", groups = {CreateGroup.class, UpdateGroup.class})@NotNull(message = "密码不能为空", groups = CreateGroup.class)// 省略 getter 和 setterusername字段在创建和更新时均不能为空。password字段仅在创建时不能为空。
2025-04-01 16:19:35
774
原创 k8s常用总结
运行 Pod 和容器,包含 kubelet、kube-proxy 以及容器运行时(如 containerd、CRI-O)。提供对一组 Pod 的稳定访问,通过 ClusterIP、NodePort、LoadBalancer 等方式实现服务暴露。负责集群管理,包括 API Server、Controller Manager、Scheduler 和 etcd 存储。最小的调度单位,一个 Pod 内可包含一个或多个紧密关联的容器,通常共享网络命名空间和存储卷。
2025-04-01 15:53:16
1083
基于EasyExcel+线程池解决POI文件导出示例工程
2025-09-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅