- 博客(26)
- 收藏
- 关注
原创 线上Bug记录:Seata回滚失败排查
摘要:线上审批流回滚失败,排查发现erp_order_refuse表的create_time字段被误设为"根据时间戳更新"。该字段在更新时被不规范代码连带修改,而下游服务仅按需更新部分字段,导致seata回滚时因数据库自动更新时间戳而产生脏数据。最终取消该字段的自动更新设置后问题解决。根本原因在于:1)不规范代码连带修改基础字段;2)下游服务部分更新逻辑与数据库自动更新机制冲突;3)线上环境配置被误改。(149字)
2025-10-21 14:27:16
172
原创 突破大模型Prompt上下文限制方案
本文提出了一种突破大模型token限制的方案,通过MapReduce式任务分解与递归摘要处理海量数据。核心包括:1)数据预处理(去HTML标签、识别主体内容);2)递归摘要(将长文本切分后逐步摘要);3)文件系统作为外部记忆体;4)任务分解执行(Map阶段拆分任务并行处理,Reduce阶段汇总结果)。该方案参考了阿里JManus设计,通过智能调度和缓存优化,在保证内容完整性的同时降低计算成本,有效解决大模型长上下文处理难题。
2025-10-16 17:21:53
511
原创 优化RAG图文输出完整性的方案
本文探讨了企业RAG项目中LLM处理图文混合文档时输出不稳定的问题,主要表现为图片与内容错乱、缺失等。提出了5项优化方案:1)为图片添加语义化名称;2)调整提示词规范图片输出格式;3)分块存储图片并显式要求输出所有图片;4)添加元数据保证知识连续性;5)为分块添加摘要保留上下文。通过检索阶段优化分块策略、生成阶段强化提示约束,配合元数据管理,有效解决了图文关联错乱的问题,同时处理了分块带来的上下文断裂新问题,最终实现了稳定的图文输出效果。
2025-10-10 11:15:21
525
原创 Redis数据一致性问题方案探究
本文探讨了Redis与数据库数据一致性的解决方案。对于最终一致性,推荐"更新数据库后删除缓存"的基本方案,并提出四种优化方案:1)延迟双删策略;2)MQ异步更新;3)Canal订阅binlog日志;4)版本号控制。对于强一致性场景,建议采用租约策略,通过token机制确保只有一个线程能更新缓存。这些方案在保证数据一致性的同时,也考虑了性能因素,开发者可根据业务需求选择适合的解决方案。
2025-09-08 15:31:52
309
原创 剖析RAG本质(检索增强生成原理)及RAG效果优化
RAG(检索增强生成)是一种结合检索与生成技术的AI架构,通过动态引入外部知识解决传统大语言模型的局限性。其核心流程包括:文档解析切片、向量化存储、相似检索和答案生成,关键技术涉及文本切分策略、稠密/稀疏向量转换及向量数据库选择。RAG的优势在于让模型能实时访问最新知识,突破了传统模型的知识固化问题。实际应用中需平衡切片长度、向量模型选择和混合检索策略,以提升语义理解准确性。该技术已成为增强大模型知识库的主流方案,广泛应用于需要实时信息整合的智能问答场景。
2025-06-21 11:47:41
802
原创 Spring生命周期拓展点-造组件必备
详细理解Spring BeanPostProcessor & InstantiationAwareBeanPostProcessor & BeanFactoryPostProcessor & BeanDefinitionRegistryPostProcessor & InitializingBean & initMethod & @PostConstruct 的执行顺序
2024-09-25 11:28:12
705
1
原创 开发命名规范
不过,相对于传统的适配器进行api转接,如果你的某个Handler里面方法特别的多,可以使用Adapter实现一些默认的方法进行0适配。说实话,它和Properties的区别并不大,但由于Option通常是一个类,所以功能可以扩展的更强大一些。英文里是评估器的意思。用来将context中传递的值进行复制,添加,清除,重置,检索,恢复等动作。程序收到的事件和信息是非常多的,有些是合法的,有些需要过滤扔掉。这个就有意思多了,统一的Controller,Service,Repository,没什么好说的。
2024-04-21 16:08:42
734
1
原创 DDD领域驱动设计落地
例如:Entity对象、持久层资源操作Dao、资源整合(db、redis)Repository(ps:资源实现,领域层需要什么,实现什么)例如:视图对象VO、业务实现service、资源Repository接口(ps:由基础层实现,要什么放什么方法)例如:业务service接口、Mq事件订阅发布。例如:数据传输对象DTO、Api调用门面接口Controller。基础层{infrastructrue}应用层{application}接口层{interfaces}领域层{domain}
2024-03-14 11:42:05
418
4
原创 常用JUC工具类
其中,用户线程执行的过程我们称之为【用户态】,内核调度的状态称之为【内核态】,每一个线程运行时产生的数据我们称之为【上下文】,线程的每次切换都需要进行用户态到内核态的来回切换,同时伴随着上下文的切换,是一个比较消耗资源的操作,所以一个计算机当中不是线程越多越好,线程如果太多也是有可能拖垮整个系统的。如果抢锁失败,则继续执行步骤5。中会将锁释放一次,如果当前state是1,且当前线程是正在占用的线程,释放锁成功,返回true,否则因为是可重入锁,释放一次可能还在占用,应一直释放直到state为0为止。
2023-10-22 20:55:04
357
1
原创 neuxs搭建Maven私服细节
1、当我们在 maven 使用 maven-public 仓库地址的时候,会按照如下顺序访问:本地仓库 --> 私服 maven-releases --> 私服 maven-snapshots --> 远程中央maven 仓库(代理阿里云仓库) --> 私服 code-repo。然后我们再去本地maven中的setting.xml文件中修改镜像源成私服的镜像源,即可在私服上拉取依赖了。此时在项目中拉取依赖会报错401:权限不足。执行mvn deploy命令即可。
2023-09-14 00:49:25
435
1
原创 生产环境linux磁盘满了清理方案
在一次线上环境中,突然各种中间件都挂了,随即上线上环境查看,发现根目录占用达到100%。使用 df -h 查看如下:
2023-08-03 23:57:03
1929
原创 生产环境发生 cpu 飙高的问题解决
发生这类问题其解决关键就是找到发生cpu飙升的进程-->通过进程找到占用率最高的线程-->通过该线程找到对应的业务逻辑从而优化代码解决。
2023-03-31 17:36:30
1006
原创 基于ThreadPoolExecutor自定义线程池详解
在阿里巴巴开发手册中不建议使用 Executor:因为默认的 Executors 线程池底层是基于 ThreadPoolExecutor 构造函数封装的,采用无界队列存放缓存任务,会无限缓存任务容易发生 内存溢出,会导致我们最大线程数会失效
2023-03-29 18:24:17
363
原创 JUC之手写Lock锁(aqs+cas+LockSupport)
Lock 锁是一种可重入的、线程安全的同步机制,它提供了比 synchronized 更高级的功能和灵活性。
2023-03-29 16:55:40
196
原创 手写LRU缓存淘汰算法(简易版)
如果你学过操作系统,必然有听过 LRU 算法,他是一种常用的页面置换算法实现的思想:选择最近最久未使用的数据予以淘汰。常见的页面置换算法还有很多,例如:最近最久未使用算法(LRU)、先进先出算法(FIFO) 、最佳置换算法(OPT) 、最不经常使用算法(LFU)、时钟算法(Clock)等
2023-03-29 15:21:07
221
原创 Springboot开发自定义starter
springboot通过一个@SpringBootApplication注解启动项目,springboot在项目启动的时候,会将项目中所有声明为Bean对象(注解、xml)的实例信息全部加载到ioc容器当中。 除此之外也会将所有依赖到的starter里的bean信息加载到ioc容器中,从而做到所谓的零配置,开箱即用。
2023-03-16 19:46:18
268
原创 性能测试工具Jmeter详解
Apache JMetier是Apache组织开发的基于Java的压力测试工具。一款非常优秀的开源的性能测试工具。
2023-03-08 21:37:42
216
2
原创 [bug日记]idea中jar包资源明明存在,编译时却报jar包不存在异常:Error:(6, 34) java: 程序包xxx不存在的错误
Error:(6, 34) java: 程序包xxx不存在的错误
2023-03-01 18:09:53
3952
1
原创 Lombok注解之@SneakyThrows详解
@SneakyThrows注解是由lombok封装的,为代码生成一个try…catch块,并把异常向上抛出来使用范围: 只能作用在方法和构造函数之上。
2023-03-01 14:12:00
1320
原创 [bug日记]:Error creating bean with name ‘userServiceImpl‘: Unsatisfied dependency expressed through...
Error creating bean with name 'userServiceImpl': Unsatisfied dependency expressed through...
2023-02-26 18:09:30
286
原创 InitializingBean、initMethod和@PostConstruct的比较
实现了InitializingBean接口的类,可以在该类被注入到spring容器时达到某些属性先装配完成后,再去装配另一些属性的能力。而spring提供的initMethod属性和@PostConstruct注解也可以达到相同的目的。
2023-02-24 13:34:31
962
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅