- 博客(16)
- 收藏
- 关注
原创 项目实战:基于Spring WebFlux与LangChain4j实现大语言模型流式输出
在大语言模型(LLM)应用场景中,GPT-4等模型的响应生成往往需要数秒至数十秒的等待时间。传统同步请求会导致用户面对空白页面等待,体验较差。本文通过Spring WebFlux响应式编程与SSE服务器推送技术,实现类似打印机的逐字流式输出效果,同时结合LangChain4j框架进行AI能力集成,有效提升用户体验。
2025-04-01 11:06:57
567
原创 一次由特殊字符引发的Minio签名问题排查
minio文件上传报错 Caused by: io.minio.errors.ErrorResponseException: The request signature we calculated does not match the signature you provided. Check your key and signing method.
2025-03-25 17:21:20
406
原创 Java 代理模式深度解析:从静态到动态的实现与原理
在 Java 开发中,代理模式(Proxy Pattern)是一种常用的设计模式。它通过引入中间层(代理类)来控制对目标对象的访问,允许在不修改原始代码的前提下添加额外功能。当我们遇到以下场景时,代理模式往往能发挥关键作用:在业务方法前后添加日志、监控等通用逻辑实现业务代码与通用功能的解耦处理仅有接口而无具体实现的场景(如 MyBatis Mapper)理解框架底层动态代理实现(如 Spring AOP)本文将通过具体案例,深入探讨 Java 代理模式的实现方式与核心原理,并结合代码进行详细解析
2025-03-20 16:29:16
1295
原创 深度解析Druid连接池Keep-Alive机制:解决系统长时间不使用首次访问卡顿问题
通过启用 Druid 连接池的 Keep-Alive 机制,有效解决了系统因连接失效导致的首次加载卡顿问题。关键在于理解连接池的工作原理,并根据业务场景合理配置参数。建议定期通过监控平台(如 Prometheus+Grafana)观测连接池状态,确保系统始终处于最佳运行状态。
2025-03-17 16:21:37
967
原创 Druid各配置项生效原理
之前项目中排查由于Druid配置问题导致的生产事故的时候,对相关配置实际原理研究了一下,下面文章,讲的很清晰,但是对个别参数讲的不清晰。【历代文学】Druid连接池实战:搞懂6个参数,就能用好它_timebetweenevictionrunsmillis-优快云博客# 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时# 连接池最小空闲的连接数minIdle: 8。
2025-03-17 16:06:55
573
原创 java调用其它语言脚本(python、js)
之前用开发过程一些功能如图像处理、相似度计算、水印等需要调用算法写的方法,但是算法一般都是用python语言进行开发。在网上搜了很多方法也排了很多坑,最终选择了一个适应多种情况的方法。需要安装必要的python环境,这个当然需要算法同学帮助,特别是环境部署到服务器上也是坑很多,本地没问题的话,1、多是服务器下载包可能是网络问题造成的超时导致安装中断。js目前是在做爬虫的时候遇到,有些方法通过java来模拟不太容易实现。2、可能会存在大的文件(比如词库等),防止如git提交不上去问题。
2025-03-13 17:00:45
362
原创 记一次生产环境Kafka调用超时问题排查与解决过程
kafka发送消息报错:org.apache.kafka.common.errors.TimeoutException: Topic XXX not present in metadata after 60000 ms.
2025-03-10 11:21:52
372
原创 java调用c++之jni技术
1、JNI:Java Native Interface译为Java原生接口,简称JNI。2、为什么使用JNI:Java并不是完美的,它的不足体现在运行速度要比传统的C++慢上许多,并且无法直接访问到操作系统底层,为此Java提供了JNI实现对于底层访问。说得通俗点,通过JNI可以调用其他程序(本地语言),这个语言要可以和操作系统直接交互(C和C++)
2025-01-08 20:45:57
330
原创 Docke介绍
从概念上来看 Docker 和我们传统的虚拟机比较类似,只是更加轻量级,更加方便使用。特性容器虚拟机启动速度秒级分钟级硬盘使用一般为MB一般为GB性能接近原生弱于原生系统支持量单机支持上千个容器一般几十个Docker是一个Client-Server结构的系统,一个docker 容器,是一个运行时环境,可以简单理解为进程运行的集装箱。
2025-01-02 17:59:47
585
原创 influxdb介绍
InfluxDB 是一种时序数据库,时序数据库全程时间序列数据库(Time Series Database,TSDB,用于存储大量基于时间的数据,时序数据(Time Series Data)指的是一系列基于时间的数据,例如 CPU 利用率,北京的房价变化趋势,某一地区的温度变化等。比如。我们可以写一个程序将服务器上 CPU 的使用情况每隔 10 秒钟向 InfluxDB 中写 入一条数据。接着,我们写一个查询语句,查询过去 30 秒 CPU 的平均使用情况,然后让这个查询语句也每隔 10 秒钟执行一次。
2025-01-02 17:57:05
2527
原创 线上故障排查一些指令
因为,第 4 个命令产生的文件,一般都非常的大。比如ThreadLocal里 面的GC Roots,内存泄漏的根本就是,这些对象并没有切断和 GC Roots 的关系,可通过一些工具,能够看到它 们的联系。后续的处理,可通过查看各种网络连接状态的梳理,来排查 TIMEWAIT 或者 CLOSEWAIT,或者其他连接过高的 问题,非常有用。为了能够得到更加精细的信息,我们使用 top 命令,来获取进程中所有线程的 CPU 信息,这样,就可以看到资源 到底耗费在什么地方了。jstack 将会获取当时的执行栈。
2025-01-02 17:45:20
780
原创 ZooKeeper
以前都是集中式系统架构,随着业务量的爆发,大型单机部署会带来一系列问题:系统大而复杂、发生单点故障引起雪崩、扩展性差等等,分布式系统走上舞台。
2025-01-02 17:39:54
1712
原创 Mysql锁
首先思考一个问题:锁是用来干嘛的?锁一般是用来协调多个进程/线程同时访问一资源时,产生的数据一致性问题。这里我们要先从MySQL的事务说起。
2024-12-31 11:40:18
296
原创 MySql索引
MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构索引的本质:索引是数据结构,满足特定查找算法。这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法。
2024-12-31 10:55:24
1892
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人