
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
前言说道Javaagent是最近经常在使用这个技术,顺便了解了原理与根源,实际上就是jvm开个代理字节码修改的instrument接口。但实际上使用,根据使用的方式不同而略有区别。1. Javaagent使用实际上,笔者在前段时间写了arthas的启动原理(83条消息) arthas 启动原理分析_fenglllle的博客-CSDN博客,简单的说明了Javaagent的2种方式,jvm参数方式与动

最近做项目,需要实现一个agent,实现运行过程替换字节码,当笔者实现这些功能时发现还是很多注意事项的。而且字节码的替换过程如果类的属性与方法升级了,那么加载就会报错。这种做法的好处是代码无侵入,缺点也很明显,严重依赖特定的jvm版本和中间件等。javaagent实际上是JVMTI使用的技术,核心依靠Instrumentation实现。

其实笔者试图使用AI写一个截图工具,但是AI还是不是很行,写的乱七八糟,当然有可能笔者没写过桌面程序,所以干脆使用开源项目编译。但是即使编译也遇到了很多问题,如果使用AI解决估计大部分没有程序经验的解决不了,因为实际的问题和代码不一定有直接的关联,所以AI辅助解决问题,笔者成功的使用开源项目编译了ARM版本的mac截图app。但是还是有warn未解决,不影响使用就不解决了。

mybatis plus这个是直接丢弃相同Id的statement,安装先后顺序,会造成执行过程的误解,不过有日志可以查看,而且mybatis原生的starter是有校验的,直接报错了。mybatis的xml如果写错,那么启动居然不报错,执行任意statement前需要执行未完成的statement,来达到快速失败的情况,这种情况对健康检查提出了新挑战,否则可能出现启动OK,但是mybatis失败

kafka在发送者和消费者是区分开的,发送者如果连接kafka broker失败后可以一直重试直到成功,但是消费者确有各种各样的逻辑,可以精准控制,比如消费者重启的配置可以控制消费者在停止时重启,如果仅仅是授权失败,而且不需要反复重启(消耗资源),那么可以通过。

随着容器的普及,经常使用docker创建容器来跑应用,结合开源的kubernetes和istio等,对于无状态的服务有极好的支持能力,秒级调度,弹性伸缩等优势。实际上kube的容器仅仅是接口,实际的容器可以是docker,podman等,以docker为例。实际上kube就是容器的管理器,核心思想是调度,调度就需要网络、流量治理能力(kube目前薄弱环节),就出现了各种网络方案,istio等。容器

摘要:本文分析了Spring Data JPA中saveAll方法性能问题的根源。通过实验发现,当使用自定义ID而非JPA自动生成时,saveAll会执行大量查询操作,导致批量插入性能低下。关键因素包括:1)ID字段索引设计不合理;2)手动设置ID值触发merge操作而非直接插入。调整索引结构并改用JPA自动生成ID后,saveAll性能可超越JDBC Template的batchUpdate。建

前言笔者在使用Ubuntu20.0.4.3LTS 的时候对自带的终端gnome终端使用很不习惯,使用的方式是选中鼠标中键粘贴,类似macOS的iterm的默认能力,但是iterm的是可以设置的。gnome终端却不行,securecrt使用习惯了,那么怎么实现选中复制右键粘贴呢。1. 分析选中复制,右键粘贴是2种事件:鼠标释放事件、鼠标右击事件。Ubuntu20.0.4.3LTS使用gnome桌面,

时代变化很快,以前macmini2018是intel cpu,而且可以自己安装内存,现在已经arm cpu,内存已经是黄金内存了,还得益于炒ai概念,否则8G永流传,不过intel 12代性能提升还可以,所以干脆组装了专门的服务器,测试小主机满载也就23w左右,平时10w左右,还是x86的,在docker环境下很友好,毕竟很多镜像还是基于x86基础镜像做的,如果ARM自己编译也很麻烦。

本文介绍了使用SpringAI 1.1.2版本与Ollama结合实现AI聊天功能的实践。通过配置ChatClient构建多轮对话系统,分析了HTTP交互过程和消息传递机制。实验表明,AI在逻辑分析方面表现良好,但存在模型知识更新滞后、结果不确定性等问题。文章还探讨了多轮对话实现方式、token消耗优化以及外部工具集成的必要性,指出当前AI仍需结合MCP服务、知识库等外部能力才能满足复杂需求,整体上








