- 博客(81)
- 资源 (3)
- 收藏
- 关注
原创 clickhouse管理远程诊断数据
20 个分片下,按月分区更好,数据量不会超,分区数少,查询最近一周也够快。只要排序键把放在第一列,配合分布式表按vin分片,就能同时满足写入分散和查询高效。
2026-09-22 11:04:36
311
原创 【无标题】
打印日志:确认到底是 500 还是 10000。核对表结构:数一下save_test表除了主键外有几个索引。检查类注解:看 Service 或 Listener 上是否有。如果只有几百,而耗时 1秒,那就是 Kafka 拉取量太小导致提交太频繁;调大即可显著改善。如果确实是 1万条 耗时 1秒,那这说明你的代码和数据库配置已经调优得相当不错了,无需过度焦虑。如果查完后仍然觉得慢,可以告诉我的实际数量,我帮你进一步推算理论最优耗时。在此基础上,如果还想进一步压榨性能,可以从下面几个方向入手。立竿见影。
2026-08-28 16:07:20
383
原创 MYBATIS=PLUS批量插入数据提效
**原因**:如果开启事务,`saveBatch` 在执行完 `flush` 后,Spring 并不会立即提交事务,而是等待方法结束才 `commit`。- **优化**:如果业务允许部分失败(或无需强事务),**去掉**该方法上的 `@Transactional`,让 `saveBatch` 内部自动提交;* **优化建议**:如果业务允许,**去掉方法上的 `@Transactional`**,让 `saveBatch` 利用自动提交模式,或者使用编程式事务来精确控制边界。
2026-08-28 16:04:36
392
原创 redis 缓存注解
本文介绍了一个基于Spring AOP和Redis实现的分布式锁缓存解决方案。通过自定义@LockCache注解和LockCacheAspect切面类,实现了以下核心功能: 分布式锁机制:使用Redis SETNX实现自旋锁,防止缓存击穿 双重检查:避免并发重建缓存 空值缓存:设置短过期时间防止缓存穿透 锁释放保护:使用Lua脚本确保原子性操作 动态缓存键:支持SpEL表达式解析 参数名安全获取:提供多种参数名发现策略 超时兜底机制:防止请求堆积 该方案通过注解方式简化使用,同时具备高性能和高可靠性,有效解
2026-06-25 16:39:10
86
原创 mybatis-plus自动注入createBy updateBy
本文介绍了一种基于Spring Boot和MyBatis-Plus的系统设计方案,通过Filter解析token获取用户信息并存入ThreadLocal,实现数据库操作时自动填充create_by和update_by字段。核心步骤包括:1)Filter拦截请求解析token并存储用户信息到ThreadLocal;2)实现MetaObjectHandler接口进行自动填充;3)请求结束后清理ThreadLocal。重点注意事项包括线程安全、异步处理、异常情况处理等,确保系统的高效性和可靠性。该方案适用于需要记
2026-03-19 15:45:54
312
原创 spring security自定义表结构处理
Spring Security 支持完全自定义数据库表结构,无需使用默认表。关键是通过实现 UserDetailsService 和 UserDetails 接口适配现有表结构: 核心组件: UserDetailsService:自定义用户数据加载逻辑 UserDetails:封装用户信息和权限 GrantedAuthority:定义权限标识方式 实现步骤: 创建自定义UserDetails类映射业务字段 实现UserDetailsService查询用户数据和权限 配置Spring Security使用自定
2026-02-19 16:41:59
514
原创 文字识别模型
本文介绍了一个汉字图片生成与模型训练的完整流程。第一部分是图片生成代码,通过Python脚本自动生成3500个常用汉字的训练样本,每个字生成180张图片(32x32像素),包含随机字体、旋转、扭曲和背景颜色变化等数据增强手段。第二部分是模型训练代码,采用PyTorch框架,配置了数据增强预处理(随机裁剪、旋转、色彩变换等)和训练参数(40个epoch,batch size 32)。整个流程可实现从数据生成到模型训练的自动化,适用于小规模汉字识别任务。
2026-02-11 15:29:25
193
原创 sql优化
SQL优化系统化指南:从定位慢SQL到长期维护的完整流程。首先通过慢查询日志或监控工具识别问题SQL,利用EXPLAIN分析执行计划,重点关注type、key、rows等字段判断瓶颈。优化手段包括避免全表扫描、优化索引使用、规范SQL书写,并解决Extra中的不良提示。进阶阶段优化索引设计和数据库配置,验证优化效果后建立长期维护机制。该流程强调"定位-分析-优化-验证"闭环,以索引优化为核心,兼顾短期效果和长期稳定,适用于不同经验水平的开发者。
2026-02-02 18:27:02
716
原创 CompletableFuture 使用示例
摘要:本文介绍了Java 8中CompletableFuture的常见使用示例,包括基本异步任务创建、链式操作以及多任务组合。主要内容有:1) 使用runAsync和supplyAsync创建异步任务;2) 通过thenApply、thenAccept实现链式调用;3) 使用thenCompose实现顺序执行;4) 通过thenCombine合并独立任务结果;5) 使用allOf等待所有任务完成。这些示例展示了CompletableFuture在异步编程中的强大功能。
2026-01-31 14:21:00
278
原创 数据缓存场景
摘要:缓存方案设计需根据数据特性决定是否预热及缓存。适合预热的数据包括基础配置、用户权限、热点数据等低频变动信息;不适合的有实时数据、高频更新数据等。适合缓存的数据应具备读多写少、一致性要求低等特点,而写多读少、强一致性要求的数据则不适合。通过分析访问模式、评估数据规模及一致性需求来制定缓存策略,使用@CacheBootstrap等注解实现按需预热,如社交平台仅预加载活跃用户数据。缓存设计需结合业务场景持续优化。
2026-01-31 11:14:44
413
原创 java并发编程总结
Java并发工具使用场景与示例摘要: CountDownLatch用于等待多个任务完成,示例展示主线程等待3个工作线程完成任务;Semaphore控制资源并发访问,模拟数据库连接池最多3个并发;ReentrantLock提供可重入互斥锁,替代synchronized并支持尝试获取锁;ReentrantReadWriteLock适用于读多写少场景,实现读写分离和锁降级;StampedLock提供更高性能的读写锁,支持乐观读模式。这些工具分别解决了不同并发场景下的线程同步问题,通过代码示例演示了它们的典型应用方
2026-01-28 12:12:49
307
原创 netty实现rpc
本文介绍了一个基于Netty实现的完整RPC框架设计方案。框架采用模块化结构,包含核心模块、客户端、服务端和公共模块。公共模块定义了RPC消息模型、服务注解和序列化接口;核心模块实现了协议编解码器和连接池管理,支持多连接复用和负载均衡。框架采用Protostuff序列化方案,设计了自定义二进制协议,包含魔数校验、版本控制和消息类型区分。连接池实现采用NIO模式,支持连接数动态调整和超时等待机制,确保高性能通信。该方案可用于构建生产级分布式服务调用系统。
2026-01-27 12:31:21
397
1
原创 jvm优化一条龙
JVM内存分析与优化指南摘要:本文系统介绍了JVM内存问题诊断与优化的完整流程。从建立监控基线、收集数据到问题诊断,详细讲解了各阶段工具配置和使用方法(jstat/jmap/JFR/MAT等)。针对内存泄漏、GC性能问题、元空间异常等典型场景,提供了具体现象识别方法和优化方案。最后给出不同应用场景(Web/低延迟/批处理)的配置模板,包括堆大小设置、GC算法选择和关键参数调优。强调渐进式变更和持续监控的优化原则,帮助开发者建立完整的JVM性能调优方法论。
2026-01-19 09:37:28
527
原创 Spring Boot中扩展`PropertyEditor
本文介绍了在Spring Boot中扩展PropertyEditor以支持多种日期格式的方法。通过创建自定义的CustomLocalDateTimeEditor类,继承PropertyEditorSupport,实现了对LocalDateTime类型的多格式解析。该编辑器支持包括标准ISO格式、常见日期时间格式(如yyyy-MM-dd HH:mm:ss)以及中文格式(如"2023年12月31日")在内的多种输入形式,并能智能处理纯日期输入(自动补全时间部分)。当输入为空时,允许返回nul
2026-01-17 10:32:33
305
原创 springcloud TokenAuthFilterFactory
【代码】springboot TokenAuthFilterFactory。
2025-03-12 14:40:59
204
原创 pandas常用操作
`pandas`是Python中用于数据操作和分析的强大库。以下是一些常用的操作:### 1. 读取数据- **从CSV文件读取**: ```python import pandas as pd df = pd.read_csv('path/to/file.csv') ```- **从Excel文件读取**: ```python df = pd.read_excel('path/to/file.xlsx', sheet_name='Sheet1') ```### 2. 数据查
2025-02-19 14:34:42
510
原创 java实现表达式计算
该实现通过扩展Tokenizer识别函数调用,改进Parser处理参数列表,并增加函数注册机制,使工具能够灵活支持各种数学函数的扩展需求。数学函数:sin、cos、sqrt。统计函数:max(可自动扩展)采用逆波兰表达式算法。
2025-02-15 14:08:13
385
原创 如何训练一个虚拟人出来
训练一个虚拟人(Virtual Human)是一个涉及多学科技术的复杂过程,需要结合人工智能、计算机图形学、自然语言处理(NLP)、语音合成、3D建模等技术。通过以上步骤,可以逐步构建一个具备交互能力的虚拟人。实际开发中需根据需求取舍技术方案(如是否追求高拟真度),并持续通过用户反馈迭代优化。
2025-02-06 15:39:43
1201
原创 spring security与gateway结合进行网关鉴权和授权
通过上述步骤,你可以在Spring Cloud Gateway中集成Spring Security 6,从而实现在网关代理层进行鉴权和认证的功能。添加依赖:引入必要的依赖。配置SecurityFilterChain:禁用CSRF保护并设置为无状态会话。实现JWT工具类:用于生成和解析JWT令牌。实现JWT认证管理器:处理JWT验证逻辑。实现Bearer Token转换器:从请求头中提取Bearer Token。配置Gateway路由:定义路由规则。
2025-02-05 15:24:56
2210
原创 spring security为webflux提供鉴权和认证
在Spring WebFlux中,使用Spring Security的Token模式(通常是基于JWT的认证)可以为你的应用提供安全保障。
2025-02-05 15:14:59
755
原创 spring security6通过token认证和鉴权
通过上述步骤,你可以成功地在Spring Security 6中实现基于JWT的认证机制。添加依赖:引入必要的依赖。配置SecurityFilterChain:禁用CSRF保护并设置为无状态会话。实现JWT工具类:用于生成和解析JWT令牌。实现JWT认证过滤器:处理JWT验证逻辑。实现用户认证服务:加载用户信息。创建控制器:提供生成JWT令牌的接口。这样,你的应用程序就可以使用JWT进行安全认证和授权了。
2025-02-05 15:11:46
1147
原创 spring security6 的一些常见扩展点和关键类和方法
Spring Security 6 是一个功能强大且灵活的安全框架,用于保护基于 Spring 的应用程序。它提供了多种扩展点和关键类与方法,使得开发者可以根据需求定制安全机制。这些类和方法为 Spring Security 提供了丰富的扩展能力,使得开发者可以根据具体需求进行高度定制化的安全配置。通过理解这些扩展点和关键类,可以更有效地设计和实现安全机制。
2025-02-05 15:09:02
769
原创 flutter 的android的build.gradle配置详解
【代码】flutter 的android的build.gradle配置详解。
2024-09-02 17:46:17
1843
原创 java证书相关
**扩展名**: `.pem`, `.crt`, `.cer`, `.pub`, `.key`- **描述**: PKCS12 是一种跨平台的密钥和证书存储格式,它可以同时包含证书链和私钥。- **描述**: JKS 是 Java 自带的一种密钥库格式,通常用于存储证书和私钥。- **扩展名**: `.crt`, `.cer`, `.x509`- **扩展名**: `.p12`, `.pfx`- **扩展名**: `.der`, `.cer`- **扩展名**: `.p7b`, `.p7s`
2024-08-16 21:39:43
640
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅