- 博客(238)
- 资源 (10)
- 收藏
- 关注
原创 JDK21(ZGC)的Arena陷阱,一招解决堆外OOM内存泄漏
本文记录了一次生产环境K8s容器OOM问题的完整排查过程。通过分析发现,虽然JVM堆内内存使用率正常(不足30%),但容器工作集内存(WSS)持续增长至4GB限制导致Pod重启。深入排查确定问题根源为glibc内存分配器的多线程arena机制导致堆外内存(inactive_anon)不断累积。解决方案是通过设置环境变量MALLOC_ARENA_MAX=4限制arena数量,并优化JVM参数使用容器感知的内存配置。优化后WSS稳定在3900MB左右,未再出现OOM重启。文章还提供了内存监控方法和相关优化建议。
2025-11-27 11:49:30
1936
1
原创 [精] MySQL和Oracle,使用Mybatis批量操作的区别?分别如何获取影响行数?
Oracle/Mysql 批量(Batch)新增、删除、更新操作写法汇总,以及批量操作后如何获取影响行数介绍。
2023-01-19 15:23:45
6310
2
原创 idea plugin插件——Java Mybatis SQL Scanner(已开源),帮助我们快速扫描SQL
Java Mybatis SQL Scanner :扫描Mybatis XML中不规范SQL
2022-02-23 17:10:31
4063
9
原创 4亿数据批量操作插入,为什么不用Mybatis,而是选择原生JDBC?(文中有各类批量操作效率对比和总结)
近期项目要转移几个亿的数据,没用Mybatis框架,因为实际操作过程中,我们发现....
2021-11-16 14:47:56
3959
7
原创 为什么你写的Controller里,private方法中的bean=null?
bean=null的原因有很多种,这篇文章只讨论使用AOP的情况。出现场景:使用AOP切面后,private方法中bean=null环境 :Springboot 2.0;真的是因为AOP无法代理private方法吗?
2021-06-24 11:28:28
4780
10
原创 数据库 联合索引 vs 多个单列索引 (公司大型项目实际碰到的问题)
Oracle 19c 联合索引 vs 多个列索引我们在创建索引的时候。到底是 选择联合索引还是选择多个单列索引?
2021-03-17 16:18:36
5205
2
原创 Java浅拷贝和深拷贝(一文足矣),及String类型的坑。
阿里有一道这样的面试题:一个实现Cloneable的类中,clone()后的String类型数据,是深拷贝还是浅拷?
2019-04-01 11:03:06
9292
13
原创 OpenCode直逼20万star,开源AI编程王者的基础教程(含国产模型配置)
文章摘要 OpenCode是一款真正开源的AI编程工具,在GitHub上拥有近17万Star,采用MIT开源协议,完全商业友好。相比其他AI编程工具如Claude Code和Cursor,OpenCode具有显著优势:开源程度高、社区活跃(每周182次提交)、100+贡献者参与开发,支持自由修改和商业集成。安装方式多样,可通过官方安装包或插件配置(如superpowers-zh中文增强版)快速部署。核心功能包括交互式编程、多语言支持、插件扩展等,命令行工具丰富,适合开发者灵活使用。MIT协议确保了其在商业项
2026-06-05 14:32:28
229
原创 DBeaver连接H2数据库完整教程,搞定驱动配置与常见报错
本文详细介绍了在DBeaver中配置H2嵌入式数据库连接的完整流程。主要内容包括:H2驱动下载与配置方法(需手动添加官方jar包)、JDBC URL的正确格式(无需.mv.db后缀)、关键参数AUTO_SERVER=TRUE的使用(解决多连接冲突问题)。文章提供了分步骤的配置指南,并针对"数据库被占用"、"驱动类找不到"等常见报错给出解决方案。该方案适用于开发测试环境,能实现DBeaver与H2数据库的稳定连接,支持数据管理和查询需求。配置要点在于驱动版本匹配、绝对路径使用和自动服务器模式的启用。
2026-06-05 10:40:43
481
原创 Spring Boot + Oracle 数据库批量操作性能大比拼:哪种写法效率最高?
摘要:Spring Boot + Oracle 批量操作性能测试报告 本文通过实测对比了Spring Boot项目中Oracle数据库的4种批量操作方式: 无事务循环单条插入(性能最差,1000条需3-4秒) 有事务循环单条插入(性能提升3-4倍) foreach批量拼接SQL(推荐<2000条数据) JDBC原生batch(大数据量最优) 关键结论: 小数据量(<2000条):推荐foreach批量插入(最快45ms/1000条) 大数据量(>1万条):使用JDBC原生batch模式(10万条仅886ms
2026-05-29 00:23:07
813
原创 3款Search MCP让你的AI Agent更聪明!——exa、context7、grep_app
本文针对 ClaudeCode 、OpenCode、Codex、Copilot等 AI 编程助手易出现幻觉、代码文档过时问题,推荐三款免费 Search MCP 工具:exa、context7、grep_app,邀请读者分享更多优质工具。
2026-05-24 01:12:51
466
原创 Spring AI MCP Server分布式翻车现场:Streamable协议的甜蜜与危险,以及无状态救赎
本文分析了Spring AI MCP Server在生产环境多实例部署时出现的Session丢失问题。该问题由STREAMABLE有状态协议、负载均衡无会话保持、Session本地存储三因素共同导致,表现为请求偶发"Session not found"错误。本文详细分析了问题根因,并提供了三种解决方案:ALB会话粘滞、Redis分布式Session、STATELESS协议,同时给出了不同场景下的最佳实践建议。
2026-05-20 07:00:00
667
原创 Elasticsearch多索引混合搜索,搞定微信搜联系人需求
本文介绍了如何在Elasticsearch中实现微信联系人搜索功能的多数据源扩展与拼音检索优化。首先搭建个人微信(WeChat)联系人索引,通过自定义分词器和多字段配置支持全拼、简拼等拼音检索方式;然后以相同方式创建企业微信(WeCom)联系人索引;最后实现双索引混合搜索,满足用户一站式搜索需求。文章详细说明了索引创建、分析器配置及查询模板的实现过程,为类似搜索功能开发提供了参考方案。
2026-04-14 01:37:00
628
1
原创 无需VIP(免费),公众号代码块滚动条,设置上下滑动,3步搞定
这篇文章介绍了在公众号文章中为长代码块添加滑动条的简易方法。通过壹伴插件,用户可以在编辑代码块时直接修改HTML源代码,添加样式属性来实现垂直滚动效果。无需充值VIP,免费实现该功能。
2026-04-13 16:08:53
670
1
原创 OpenClaw 2026.3.22升级踩坑:UI界面不翼而飞?源码构建3分钟找回!
OpenClaw 升级至 2026.3.22 后,Homebrew 用户常遇 Web 界面无法访问,构建时提示缺少 scripts/ui.js 或 vite 命令。根本原因在于 Homebrew 预编译包不含前端源码,UI 资源需从官方仓库独立构建。解决方案:克隆源码,进入 ui 目录执行 pnpm install && pnpm run build,将生成的 dist/control-ui 复制到 Homebrew 安装目录。
2026-03-24 02:06:02
2144
原创 【AI-MCP】使用Postman调试MCP接口
摘要:本文介绍了使用Postman测试MCP接口的流程,包括下载Postman、创建请求、填写认证信息等步骤。同时提供了一个基于Spring AI的MCP服务端实现示例,包含Maven配置、application.yaml设置以及工具类开发方法。示例中实现了天气查询功能,通过@Tool注解定义了两个工具方法:获取天气预报和空气质量信息,并展示了工具注册配置。整个项目采用WebFlux响应式编程,配置了SSE协议支持,适用于异步应用场景。
2026-02-27 19:17:58
587
原创 AI摘桃记:精准率(P-Precision)、召回率(R-Recall)、F1-Score之争
本文通过摘桃子的例子生动解释了机器学习中的精确率、召回率和F1值三个核心指标。机器人摘了5个桃子,其中4个好(TP),1个坏(FP),漏摘2个好(FN)。计算得出:精确率P=80%(摘得准),召回率R≈67%(摘不全),F1≈73%(综合表现)。图解清晰展示了实际样本与预测结果的对应关系。这三个指标分别反映模型的准确性、覆盖率和整体性能,在评估分类模型时需综合考虑。
2025-09-15 23:46:38
1132
原创 Java精确实现将中文用Unicode字符集保存,其他字符格式不变
本文介绍了字符集的发展历程(ASCII到Unicode)及UTF-8的关系,并针对代码中需要将中文转换为Unicode的需求,提出两种Java实现方法。方法一将非ASCII字符转为Unicode编码,方法二通过精确匹配多个汉字编码区(基本汉字区、扩展区等)实现更精准的中文字符转换。两种方法的主要区别在于处理范围:方法一适用于所有非ASCII字符,而方法二能精确识别中文汉字。实际应用中应根据需求选择合适的方法,特别要注意区分中文字符和汉字的具体范围。
2025-09-12 00:27:10
781
原创 记一次TransmittableThreadLocal 使用不当,导致现网故障
摘要:本文记录了一次因TransmittableThreadLocal使用不当导致的生产故障。故障原因是在使用默认线程池时,TransmittableThreadLocal会退化为InheritableThreadLocal,导致线程复用后上下文数据无法更新,造成traceId污染。文中通过代码示例展示了错误场景和两种正确解决方案:1)使用TtlExecutors包装线程池;2)使用TtlRunnable/TtlCallable包装任务。强调必须使用TTL的包装类才能确保线程池场景下的上下文正确传递。
2025-09-10 15:23:54
1708
1
原创 《微信小程序挂机不求人!AutoHotKey脚本打造秘籍(附完整脚本)》
本文深入解析如何通过AutoHotKey(AHK)2.x版本实现微信小程序的自动化挂机功能,适用于需要重复操作的微信小游戏场景。作者以【A】【D】【W】按键循环为例,详细展示了从窗口定位、热键绑定到定时任务的完整实现流程,并提供可直接复用的AHK脚本代码。文章重点对比了AHK 1.x与2.x版本的语法差异,强调了2.x版本在变量管理、函数调用和错误处理上的优化,适合初学者快速上手。通过WinExist精准定位小程序窗口、SetTimer控制按键间隔、Send模拟按键操作等核心技术,用户可高效完成自动化任务。
2025-06-08 15:49:41
6657
1
原创 JDK8/17/21等从浏览器导入证书,解决报错:PKIX path building failed
解决Java项目证书验证失败(PKIX path building failed)问题,需手动管理证书。
2025-05-27 14:16:03
1457
原创 一张图看懂kafka中topic分区、消费组、pod之间的关系,以及concurrency设置。
我们明确以下几点:1. 不同消费组之间的消费是独立的,即topic的同一条数据可以被不同的组消费,互不影响打个比方:多个消费组消费同一个 Topic 时,就像 “不同的人读同一本书,各自从自己的进度开始读”,互不影响。Kafka 中的数据不会因被消费而删除,而是像 “图书馆的书”,会保留直到超过借阅期限(例如7天)才被清理。既保证了消息可以被多个不同的业务模块消费,又避免了消息的重复消费和数据丢失问题。
2025-04-24 00:30:08
1480
原创 Windows安装Ollama并指定安装路径(默认C盘)
在官网首页,你可以找到“Download”按钮,点击后会跳转到下载页面。在下载页面,找到适用于Windows系统的安装包。1.以管理员身份打开命令提示符(Win+R → 输入。修改环境变量,在“新建系统变量”窗口中,输入变量名。→ 右键选择 "以管理员身份运行"),切换到。所在目录,或者用下面方式直接运行cmd。,变量值为你希望的模型存储路径(例如。格式的安装程序,直接点击下载即可。,如需指定其他 C 盘目录(如。DIR 是你想要安装的文件目录。Ollama 默认安装路径为。例如搜索 qwen2.5。
2025-04-17 00:15:01
7405
原创 Spring Boot MongoDB自定义连接池配置
在 Spring Boot 应用中使用 MongoDB 时,合理配置连接池可以显著提升数据库访问的性能和稳定性。默认情况下,Spring Data MongoDB 会使用 MongoDB Java 驱动的默认连接池配置,但在生产环境中,我们通常需要根据业务需求自定义参数(如最大连接数、超时时间等)。本文将详细介绍如何在 Spring Boot 中自定义 MongoDB 连接池,适合新手快速上手。:使用监控工具(如 MongoDB 自带的监控工具)来观察连接池的使用情况,及时发现潜在问题。
2025-04-10 00:36:11
1433
2
原创 idea插件开发报错:Slow operations are prohibited on EDT. 或Read access is allowed from inside read-action on
idea插件开发的时候,运行报错:Slow operations are prohibited on EDT 解决方法。2. com.intellij.openapi.diagnostic.RuntimeExceptionWithAttachments: Read access is allowed from inside read-action only (see Application.
2025-02-11 16:50:42
1286
原创 idea插件开发dom4j报错:SAXParser cannot be cast to class org.xml.sax.XMLReader
摘要:项目使用dom4j依赖时出现XMLReader报错,原因是IntelliJ IDEA新版自带的xml-apis依赖冲突。解决方案是在build.gradle文件中排除冲突依赖:新版本gradle使用configurations.configureEach{ exclude group: 'xml-apis', module: 'xml-apis' },旧版本则用configurations.all{ exclude group: 'xml-apis', module: 'xml-apis' }
2025-02-08 11:45:27
802
原创 idea plugin插件开发——入门级教程(idea新版本、JDK21、Gradle9.x)
IntelliJ IDEA插件开发的入门级教程,旨在帮助开发者快速上手开发自己的IDEA插件。介绍了开发插件所需的环境搭建,包括IntelliJ IDEA、Gradle和JDK的版本关系,并提供了详细的步骤来初始化一个插件项目工程。通过创建一个简单的日历插件作为示例,详细介绍了如何创建ToolWindow、注册ToolWindow以及如何运行和调试插件。此外,文章还提供了如何修改开源插件Restful-Toolkit的示例.
2025-01-22 11:13:05
5360
原创 Windows本地搭建Redis集群(集群模式)
这篇教程为想要在Windows系统上搭建Redis集群的用户提供了一个详细的指南,包括下载、配置、启动和测试等步骤
2024-12-14 23:54:58
4824
4
原创 如何解决SourceTree突然打不开、闪退?
在`C:\Users\用户名\AppData\Local\Atlassian\SourceTree\`目录下,删除`Assemblies.cache`和`Composition.cache`文件,然后尝试重新打开SourceTree。- 打开SourceTree的日志文件(通常位于`C:\Users\用户名\AppData\Local\Atlassian\SourceTree\`)
2024-11-20 19:39:01
2340
原创 Excel批量操作超链接(解析和定义)
眼尖的网友可能发现了,左边的VBAProject变成了“.xlsm”,而不是常见的“.xls”或者“.xlsx”,因为当你选择保存的时候,它会提示您无法保存这些代码。回到工作簿,在需要提取链接的右边输入“=GetLinkAddress(单元格位置)”,比如“= GetLinkAddress (A2)”。备注:如果找不到“开发工具”,需要点击“开始”,找到“选项”,然后在“自定义功能区”处,把主选项卡内的“开发工具”勾选上。在VBA窗口的左侧点击右键,依次选择“插入”->“模块”。如有需要,可拖动填充。
2024-09-21 11:12:58
4244
原创 Redisson同时使用jackson、fastjson、kryo、protostuff序列化(含效率对比)
我们项目中会用到各种序列化工具,到底哪一种是最适合我们的?需要从序列化、反序列化、存储大小各个方法面来衡量,我之前有实测过jackson、fastjson、kryo、protostuff序列化的数据,大概情况如下:内存: 16GB系统: 64位备注:每次插入1个 StudentObject, 每个 StudentObject中含有 100000 个 Student 对象600次,共6000万个对象,实测数据.首选:kryo,其次 protoStuff。
2024-09-08 13:29:32
2022
原创 java swagger解析解决[malformed or unreadable swagger supplied]
java swagger解析解决[malformed or unreadable swagger supplied]
2024-08-24 13:13:21
736
1
原创 Java httpclient请求form-data格式,并设置boundary代码实现
本文将教会你使用Java正确的借助Apache HttpClient实现请求form-data格式,正确的是设置Content-type中的boundary。
2024-07-27 17:06:46
5785
原创 Java Apache Http绕过Https证书校验:PKIX failed: SunCertPathBuilderException:unable to find valid certificat
Java Apache Http绕过Https证书校验:PKIX failed: SunCertPathBuilderException:unable to find valid certificat
2024-07-23 15:53:42
687
2
原创 Postman Tests设置Global读取不是最新值,跟Tests执行顺序有关(踩坑笔记)
在执行Run Collection的时候,发现设置的全局变量每次读取都是旧值,没有读取到最新的值。
2024-03-29 01:15:24
688
翻译 InitialRAMPercentage, MinRAMPercentage, MaxRAMPercentage区别
本文试图阐明 InitialRAMPercentage、MinRAMPercentage、MaxRAMPercentage JVM 参数之间的区别。这些参数是自 Java 8 update 191 以来引入的。当您在物理服务器或容器中运行 Java 应用程序时,它们用于配置 Java 应用程序的堆大小
2024-03-18 11:03:31
3295
3
原创 springboot redis客户端-混用RedisTemplate(lettuce、jedis)和Redisson客户端
教你如何在springboot中混用RedisTemplate(lettuce、jedis)和Redisson客户端
2024-03-13 15:25:13
3031
ojdbc8-full.tar.gz
2019-12-16
x-pack-core-6.4.0.jar (已破解)
2018-09-06
EMP入门实例快速开发指南
2018-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅