- 博客(744)
- 资源 (37)
- 收藏
- 关注
原创 128 异步+CountDownLatch 丢弃掉流式http服务的剩余响应
本文探讨了在HTTP服务1调用流式HTTP服务2时实现提前中断响应的方案。服务2模拟10秒流式输出,服务1尝试三种处理方式:1)正常流式消费,耗时10秒;2)条件中断,但仍在finally阻塞等待;3)异步请求配合CountDownLatch,主线程可提前响应但异步线程仍需等待服务2完成。结果表明完全中断流式处理存在困难,现有方案仅能实现主线程提前返回。
2025-12-31 22:55:43
556
原创 127 apache poi3.11 写 word 中内嵌 表格换行的输出
最近一个 地方的需求需要再 单元格中 输出带换行回车的内容然后 找了一下 相关 demo, 基本上是 使用 \r\n 或者 或者 来进行处理但是 测试了一通 之后, 发现 都不行。
2025-12-31 22:55:32
284
原创 126 maven 项目 resources 下面增加了二进制文件之后, mvn package 失败 project xxx-service: Input length = 1 -> [Help 1
问题是这样的, 最近在一个项目的 resources 下面增加了一个 xxx.docx 的 word 模板文件然后 之后打包 就打包不起了, 报错如下然后 调整了 build 里面的配置, 之后 又可以 打包成功了, 这里 就是来看一下 这里的情况。
2025-12-31 22:55:20
427
原创 125 如何运行时实时切换数据库(实时切换影子库)
本文介绍了一种基于配置的动态切换业务数据库和影子库的方案。通过jerry.shadow.db.feature.enabled全局开关控制功能启停,jerry.shadow.db.use-shadow-db配置项实现运行时切换。核心实现是自定义的JerryShadowDBSqlSessionFactory,它会根据配置动态选择使用默认数据库还是影子库的SqlSessionFactory。当配置变更时,系统会自动路由到对应的数据库,实现了业务库和影子库的无缝切换。该方案支持热切换且具备快速回退能力,实际应用中可
2025-12-31 22:55:08
435
原创 124 记一次 大模型无限输出 “--“ 导致的短时间频繁 ygc
服务器频繁YGC问题排查摘要 生产环境出现服务器节点周期性YGC问题,持续约1小时后自愈。排查发现上游流式服务因大模型幻觉产生无限输出"---"字符串(10ms间隔),下游业务服务通过StringBuilder持续拼接这些内容。随着内容长度无限增长,String.valueOf(fullContent)产生的字符串对象持续占用年轻代空间,导致频繁YGC。可通过heapdump分析字符串对象或结合jstack定位,最终确认是流式响应数据无限增长引发的内存问题。该问题未影响业务服务,表现为自
2025-12-31 22:54:58
323
原创 123 safari 浏览器中下载 URLEncoder.encode 的中文名称的文件, safari 未进行解码, 其他浏览器正常
这是 最近碰到的一个 关于文件下载的一个问题然后 只有 safari 中出现了 此问题, 大概 可能是 不同的浏览器对于 http 协议的细节支持有所差异吧大概就是 有一个 服务提供了文件下载的功能, 然后 次服务使用的是 URLEncoder.encode 进行编码了, 然后 大多数 主流浏览器 下载都是正常下载中文名但是 safari 中下载, 下载的文件名 还是 URLEncoder.encode 编码之后的结果的文件名 然后 造成的问题。
2025-12-26 20:53:09
250
原创 122 Hession,FastJson,ObjectInputStream的序列化反序列化相同引用的处理
这是最近碰到的一个问题dubbo 客户端这边和服务器交互了一个参数 类型A类型A 引用了类型 B 的字段 field1, field2然后 dubbo客户端 在发起 dubbo 调用之前, 具体的参数 类型A, 设置 field1, field2 是同一个 类型B 实例然后 dubbo 服务器 在收到请求之后 反序列化 类型A实例, 拿到的 field1, field2 也是统一个对象。
2025-12-26 20:52:56
946
原创 121 多个 OkHttpClient 实例导致 在创建线程时 的 OutOfMemory
可以看到是一个 clean 的线程, 大致的工作是定期检查 连接池中的连接的 evict 策略, 是否符合 maxIdleConnections, keepAliveDurationNs 的约束。现象是 前面N分钟在进程能够承受的压力范围内, 响应正常, 然后 N分钟之后, /flowRequest 就崩溃了, 并且 后面是 持续崩溃。clean 线程的退出条件是需要 没有一个正在使用的连接, 并且没有一个 空闲的连接, 在这里我们不深究他, 假设它退出需要一定的时间。
2025-12-19 12:47:45
1038
原创 120 同样的 url, header, 参数, 使用 OkHttp 能够成功获取数据, 使用 RestTemplate 报错
因此 使用这二者的差异就在于 RestTemplate 这边发送请求的时候, 根据了响应类型生成了一个 Accept 请求头, 然后 OkHttp 这边没有自动生成这个 Accept 请求头。这里是 RestTemplate 指定了 responseType, RestTemplate 这边就会为其设置 Accept 请求头。http 服务这边的处理如下, 处理也非常简单, 就是 每一秒输出一行内容, 然后持续 5秒。然后 对方服务器可能基于这个 Accept 请求头做了不同的处理, 因此 产生了差异。
2025-12-19 12:47:32
512
原创 119 response.setCharacterEncoding(“utf8“) 设置编码之后 编码依然为 ISO-8859-1
最近碰到了这样的一个问题服务器这边 设置了 encoding 为 utf8, 然后 服务器这边响应了 中文数据回来客户端那边 拿到的依然是乱码, 然后 查看响应头 Content-Type 中 encoding 为 ISO-8859-1但是 疑惑的就是, 服务器这边明明配置了 encoding。
2025-12-12 14:29:04
269
原创 118 http 协议中如何实现流式的交互数据
我们经常 会碰到的 基于 http 流式交互的数据方式一般在 现在常见的大模型中, 一般是基于 websocket 来进行流式交互这里 来介绍一下 基于 http 的流式数据交互。
2025-12-12 14:28:49
301
1
原创 117 javaweb servlet+jsp 项目中修改了 数据库连接配置, 却怎么都不生效
这是 最近的一个环境搭建的时候碰到的一个问题这个 jsp 项目, 然后 我将 数据库连接配置成 我这里的 配置, 但是 却怎么都不生效这个 让我很是疑惑, 所以 这篇文章 来解释一下 这里的来龙去脉。
2025-12-05 20:55:32
328
原创 116 spring-mvc 中一个 Interceptor 配置了 mvc:exclude-mapping 为 **/css/** 但是不生效, 静态资源文件的处理还是走了 Interceptor
这是最近一个朋友 碰到的一个问题他的自己的 jsp 项目中, 出现的, 自己增加了一个 LoginInterceptor, 然后 之后所有的 css, js 都有问题了然后 我也增加了一下配置, 但是 貌似还是暴露出了很多问题然后 处理的过程中 也出现了很多问题, 这里 特地记录一下。
2025-12-05 20:54:41
688
原创 62 记录一次使用 poi 读取大数据量表格的 excel 导致的 OOM
采样一下 WorkbookFactory.create (bais)之前之后的对象信息,对比差异加载之后的数据比加载之前的增量数据。业务上传report.xlsx为10M左右,但是里面包含较多的内容,6w行,27列,解压缩x13x大概内容是100M左右。然后业务处理完成之后,由major gc清理掉 report.xlsx的使用空间的占用。需求的空间超过了young的 750M空间,先进行了两次minor gc。去掉其他的小于50M的增量,合计增量大概是在1150M左右。最终终于是为应用腾出了需要的空间,
2025-11-28 11:05:47
394
原创 61 关于Class.getMethods获取到的方法的顺序
/** * Returns an array containing {@code Method} objects reflecting all * the public <em>member</em> methods of the class or interface represented * by this {@...
2025-11-28 11:05:37
424
原创 60 泛型参数使用的ClassCastException
前言呵呵 最近在看到一篇文章的时候,Java泛型的ClassCastException一细节, 又是一个语法层面的细节问题看了一下 R大的 回答, "但Java语言为表达式的目标类型为Object的情况做了特殊规定,所以第一处strs.get(1)就没报错。", 因此 就想找一找具体的体现在哪里测试代码如下package com.hx.test03;imp...
2025-11-21 19:06:16
683
原创 59 如何 dump 运行时的 class 的信息
再看到 fastjson 中的类型 序列化, 反序列化 的时候fastjson 为类型 创建了运行时的 Serializer, Deserializer然后 偶尔 可能我们有需要 是 dump 出运行时的 java.lang.Class 的 binary 的信息这里就来 介绍一下 怎么运行时 dump class 的文件信息。
2025-11-21 19:05:57
315
原创 75 fieldLength 对于各个类型的关联
这里主要探讨一下 field_length 的相关作用主要是 涉及到各个类型中 field_length 的相关使用执行 sql 如下 “select * from tz_test_02 where id = 35;在如上几种类型中, fieldLength 主要是用于 字段补0 的功能, 如果长度不够, 补齐0到指定的 field_length外层的调用主要是 判断了是否需要 zerofill[填充0]更新一个字段类型为 decimal, 设置 填充0。
2025-11-14 12:38:28
766
原创 05 2个路由器配置dhcp服务器+dhcp中继器配置两个子网的dhcp服务
这是最近一个朋友的 ensp 相关的问题, 这里来大致了解一下 ensp, 计算机网络拓扑 相关基础知识这里一系列文章, 主要是参照了这位博主的这里 我只是做了一个记录, 自己实际操作了一遍, 增强了一些 自己的理解当然 这里仅仅是一个 简单的示例, 实际场景中会更加复杂这里基于进行继续配置, 再次基础上面增加 另外一个路由器 R2 和 另外两个子网, 使用这个 R2 作为 中继器进行 dhcp 服务的代理在 R1 和 R2 直连的指望增加 dhcp 服务的配置, 用于配置 R2 的业务子网。
2025-11-14 12:38:16
424
原创 29 ip查询工具 并发送邮件通知目标用户
这个 大概是 2020 年的事情了呵呵 当时 我们通过 内网穿透 将局域网的服务暴露到了 互联网上但是 存在的问题是 每隔一段时间 局域网对应的互联网 ip 就回变化然后 如果是 在周末, 我们就很难感知到 这种变化, 并且 变化了之后 我们没有解决的方式因此 当时产生的想法 就是定时 去查询 互联网ip, 如果 发生变化了 就基于邮件通知到 各个需要关注的目标用户脚本内容 本身也比较简单, 这里不过多 描述。
2025-11-08 09:15:31
248
原创 05 kafka 如何存储较大数据记录
此问题是最近碰到的一个问题最近的一个项目, 单条记录的大小 超过了 1M, 然后 使用 kafka 存储数据出现了各种问题一些问题很容易发现问题, 但是一些问题 很隐蔽这里 特此记录一下, 篇幅不会很长。
2025-11-08 09:15:06
369
原创 62 VueComponent watcher 的实现
这是最近的碰到的那个 和响应式相关的问题引起的一系列的文章主要记录的是 vue 的相关实现机制呵呵 理解本文需要 vue 的使用基础, js 的使用基础。
2025-10-31 20:17:26
392
原创 61 ie8/9下面 ajax 响应的结果为 undefind
前言呵呵 本周[12.07 - 12.11]的时候 出现了这样的意见怪事, 关于 前端的, 一段 ajax 请求的代码, 请求的是 服务器的一个静态资源, 但是请求的结果 为 undefind当然 最后也走了后面的一些业务, 但是因为 缺少请求的这个 html 的上下文导致 后面的一些 js 加载 报错了并且还有一个 奇怪的现象就是, 项目一中引用了这个模块, 开放服务, 在外面的ie浏览器中可以访问项目一的服务, 但是 在虚拟机里面的ie浏览器来访问项目一的服务, 却访问不到, 报错的原因..
2025-10-31 20:17:14
634
原创 60 d3.js 不能正确展示节点连线, 以及一个基础的demo
这个问题是来自于 一位朋友的需求主要就是使用 d3.js 来渲染 neo4j 的响应的数据, 做一个可视化的展示但是 碰到了一些问题, 比如 需要再连线之间增加 关系的标注另外就是 初始化 发过来的代码, 实际上 展示是存在问题的, 这里的主题 就是这几个部分。
2025-10-31 20:15:39
236
原创 08 vsftpd 父子进程通讯
前言在前面的vsftpd 登录过程的调试,vsftpd 的主动模式和被动模式中提到了一些 vsftpd 的多进程之间的交互方式是通过 socket 来进行通讯的, 呵呵 我们这里 大致的来看一下 相关的业务处理基于 socket 的通讯以vsf_two_process_start 为例, 我们看一下 是怎么基于 socket 进行通讯的priv_sock_init 里面初始化了两个 fd, parent_id, child_fd, 用于 之后的父子进程进...
2025-10-26 16:44:06
965
原创 92 echo 命令
前言呵呵 这个命令 应该是 linux 使用者 基本上都会使用到的吧?呵呵 我们这里主要是 看一下 这个命令是如何工作的main 中主要是参数处理, 如果需要输出特殊字符, 则特殊字符做转义处理, 否则 直接输出输入的字符串基于 linux-4.4.0 + coreutils-8.25调试基于命令 "echo jerry.x.he"main参数处理, 如果需要输出特殊字符, 则特殊字符做转义处理, 否则 直接输出输入的字符串特殊字符的处理..
2025-10-26 16:43:03
156
原创 13 pyflink/scala 进行 csv 文件的批处理
这是 最近有一个 来自于朋友的 pyflink 的使用需求然后 看到了 很多 pyflink 这边的和 使用 java, scala 的 api 使用上的很多差异这里使用的 pyflink 版本是 1.16.3pyflink 1.16.3 中批处理相关貌似要使用 Table API 来进行处理, datastreaming api 使用多多少少存在问题但是 这个如果是在 java, scala 中写一段 批处理的脚本就简单的多了。
2025-10-18 17:30:42
314
原创 12 pyflink 的一个基础使用, 以及环境相关
这是 最近有一个 pyflink 的使用需求然后 看到了 很多 pyflink 这边的和 使用 java, scala 的 api 使用上的很多差异这里使用的 pyflink 版本是 1.16.3也碰到了很多问题首先需要 python 这边安装 apache-flink 1.16.3, 这个一般是通过 pip 安装其次 本地需要有 安装 flink 1.16.3。
2025-10-18 17:30:29
670
原创 03 netty 中的 slab
呵呵 netty 中的 slab 很久以前就看过, 并且 也感叹于其设计但是 一直没有时间 完整的记录一下 这一系列的知识最近 记录了 nginx 的 slab 相关的处理, 也顺便重新梳理一下 netty 中的 slab这里主要是描述 netty 中的 slab 内存分配相关slab 在很多的地方都有使用, 比如 linux, nginx, netty 等等。
2025-10-12 10:52:38
1030
原创 05 idb 的 binary 解析
这个是 mysql 的 数据表 的 数据, 索引, 相关元数据 的维护文件这里 我们来看一下 他的相关 文件结构。
2025-10-12 10:51:54
310
原创 04 binlog 的 binary 解析
bin log 相关呵呵 记得之前是做过基于 binlog 的数据同步到的, 这里 可以来了解一下 binlog 的产生, 以及 相关更加详细的信息说不定 之后也可以 做一个 binlog 的解析工具这里 来看一下 各个常见的 binlog event 的相关格式。
2025-10-05 10:55:33
354
原创 03 mbr 的 binary 解析
这一部分解析的内容主要是 MBR 中的内容主要是 阅读相关资料的时候 做的一个解析这部分主要是在 计算器启动部分工作, 引导 grub/LILO 等相关 boot loader。
2025-10-05 10:54:32
367
原创 91 gethostbyname, 根据域名获取ip 函数的实现
如下是 第二行, 以及以后, 可以看到 最下面的 一行数据是可以匹配上待查询的 “app0.com”, 然后 这里就 break, 然后更新 查询结果信息。/etc/hosts 中的内容如下, 我们这里主要是关注 app0.com 映射到 10.60.50.16 的这个配置。这里就是迭代 /etc/hosts 的每一行配置, 来判断是否匹配上 待查询的 ”app0.com”我们 这里就来看一下 它这里的具体的实现, 这里主要是涉及到 glibc 的相关代码。如下是比较 /etc/hosts 的第一行配置。
2025-09-27 08:58:03
385
原创 90 telnet 连接上对方服务之后 立即 “Connection closed by foreign host.“
telnet 是一个我们经常会使用到的命令主要是测试 对方主机端口 是否能够正常交互数据然后 最近 生产环境上面 看到了这样的一个情况就是 一个互联网的机器 通过互联网网闸映射 去访问 内网的一个数据库服务“telnet 10.20.20.12 33106” 得到的结果为然后 这个问题 很令人困惑这里 尝试来复线一下 这个问题, 并且 看一下 telnet 的相关实现, 以及自动 “Connection closed by foreign host.” 的一些特征。
2025-09-27 08:57:57
1331
原创 89 重写 /proc/sys/vm/nr_pdflush_threads 读取函数, 不断输出 0 以及 文件读取偏移的理解
问题来自于 chinaunix。
2025-09-19 11:25:22
1001
原创 88 关于 “Too many open files“
问题来自于我们这里主要是关注 too many files 问题本身的来龙去脉, 以及一部分 引申的讨论这个内容 主要是在 分配 File Descriptor 的时候, 超过了 linux 的 Max Open Files 的限制比如说 这边 默认的 Max Open Files 为 1024, 然后 写一个测试用例 循环打开文件然后 超过 Max Open Files 的时候, 创建 File Descriptor 就会失败了循环打开 N 个文件, 然后 查看具体的信息。
2025-09-19 11:25:09
867
原创 87 signal 的实现
探究这个问题 来自于 很多需求比如说 项目中服务偶尔自动挂了, 就像是被发送了一个 kill -15 $pid 的一个信号, 那么 如何 找到这个信号发送的相关信息?然后 我们平常 怎么重写 信号处理函数?我们的 kill 命令主要是 做了哪些事情?, 信号机制 是怎么实现的?java 语言中的。
2025-09-13 09:42:00
1084
原创 85 printk 输出丢失数据
text 为输出的一个缓冲, sizeOf(text) 为 992, 计算的方式为 1024 – 32 = 992。最后一个字符为 字符串的结束符 ‘\0’ 因此 最终有效的 ‘6’ 仅有 992 – 2 -1 为 989 个。buff 中 1023 个 ‘6’, buff 中最后一个字节为 0, 因此这里 输出的是 1023 个 ‘6’这里的 fmt 为传入的 “%s”, args 为传入的 my_data 的字符串。但是实际 输出的结果如下, 然后可以统计一下 这里的 6 的数量为 989 个。
2025-09-05 15:34:33
713
jface.text3.9 - Src & Bin
2015-10-14
mybatis-springMapper太多导致StackOverflow_StackTrace
2018-10-14
1个路由器配置一个子网的dhcp服务+2个路由器配置dhcp服务器+dhcp中继器配置两个子网的dhcp服务
2024-06-10
html + js 实现的贪吃蛇 实现了自动导航
2022-10-22
vue 实现的贪吃蛇 实现了自动导航
2022-10-22
Test24StringInConstantsPool.java.zip
2021-11-21
hsdis-amd64.dll 动态库
2018-11-03
my-carousel
2018-09-02
有偿,云计算解决方案
2024-05-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅