🌓

Spring Boot 2 与 Spring Boot 3 主要特性对比

基础要求与依赖变化 特性 Spring Boot 2 Spring Boot 3 说明 Java 版本 Java 8+ Java 17+ Spring Boot 3 强制要求 Java 17 或更高版本 Servlet API Javax Servlet Jakarta Servlet 包名从 javax 迁移至 jakarta Sprin...

阅读全文

Java 8 到 Java 25 主要特性

在笔者编写这篇文章的时候,Java 25 LTS 版本已发布,目前的LTS版本分别是:Java 8、Java 11、Java 17、Java 21、Java 25。

阅读全文

JVM Metaspace OOM 问题分析与解决

环境:OpenJDK 1.8 通过 Arthas 的memory命令查看内存使用情况,发现 Metaspace 的使用率达到 90.98%。Metaspace 主要用于存储类的元数据(如类定义、方法字节码等),使用率过高极易引发OutOfMemoryError: Metaspace错误。 进一步使用classloader命令查看类加载情况,发现共有 339...

阅读全文

使用 cursor 开发了一个网址导航站

自己平时收藏的工具类网站比较多,时间长了之后容易忘记并且找起来页比较麻烦,于是基于 cursor 做了这个导航站;不得不说,有了 AI 之后开发一些简单的前端页面简直太方便了。关于网址内容后续会慢慢补充起来。 技术栈:基于 Next.js 14 + shadcn/ui + Tailwind CSS 构建 网站地址: https://nextnav...

阅读全文

MySQL 数据迁移主键自增值陷阱

背景:目前需要对业务日志大表A进行迁移,只保留最近3个月的数据,遇到的问题是迁移完成后,新表B的磁盘空间占用没有减少。

MySQL 版本:8.0.36,InnoDB存储引擎。

阅读全文

APM - k8s 启用 Java JMX 监控分析数据

要在 Kubernetes (k8s) 中使用 VisualVM 连接到运行在 Docker 容器中的 Java 程序,可以按照以下步骤进行操作: 启用 JMX首先,需要在 Docker 容器中的 Java 应用中启用 JMX。可以通过在启动命令中添加以下 JVM 参数来实现: 123456-Dcom.sun.management.jmxremote-Dco...

阅读全文

记一次RabbitMQ生产故障

今天下午,有用户反馈直播间人数不对,负责这块的同事准备让运维重启这个服务紧急处理。发现服务无法重启,于是我开始帮忙协助排查这块问题。

阅读全文

Git Rebase 修改已经提交的commit信息

由于拉取了新的 Git Repo 代码,没有设置作者信息,使用了全局的 Git 账号信息,导致提交代码时,显示的作者信息是错误的。 解决办法:通过 Rebase 对已提交的commit 进行修改。 12345678910111213# 第一步,(n)代表提交次数git rebase -i HEAD~n # 第二步然后按`i`编辑,把`pick` 改成 `ed...

阅读全文

Update Time 自动填充导致Seata回滚问题

问题描述MySQL update_time 字段设置了自动填充,由于业务提交,seata 记录当前镜像后,数据库又进行了一次时间戳的更新,导致镜像校验不通。 解决方案 关闭数据库的时间戳自动更新。数据的时间戳更新,如修改、创建时间由代码层面去维护,比如 MybatisPlus 就能做自动填充。 update 语句别把没更新的字段也放入更新语句。 参考文...

阅读全文

Update tinyint大于1导致Seata回滚问题

问题描述字段 order_service_type,MySQL 数据类型为 tinyint,存储值为4,导致在 Seata 回滚时,无法回滚到正确的状态。变成1了。 问题排查通过 Debug,查看 Seata undo_log 表,发现 order_service_type 在生成快照时被当作 Boolean 值处理了,回滚的时候转成1写入。 1234567...

阅读全文