# java
围绕 java 的技术文章与经验分享。
共 1048 篇文章mysql二阶段提交的原理
MySQL的二阶段提交(Two-Phase Commit,2PC)是一种分布式事务处理协议,用于确保多个数据库事务的原子性和一致性。2PC协议由一个协调者(Coordinator)和多个参与者(Participants)组成,协调者负责协调所有参与者的提交和回滚操作,从而保证所有事务的结果都能够得到正确的处理。…
生产环境服务器变慢,如何诊断处理
当生产环境服务器变慢时,通常需要采取以下步骤来诊断和处理问题: 监控系统资源:使用系统监控工具来检查 CPU、内存、磁盘和网络的使用情况,确定哪些资源使用率过高,导致了服务器变慢。 分析日志文件:检查服务器日志文件,查找任何异常或错误信息,以及与性能问题相关的信息,例如请求时间或响应时间。…
SpringBoot升级到2.0后默认时间格式变化
背景:项目从 SpringBoot 1.5 升级到了 2.4 问题:http 请求返回前端数据的时候,2.4 版本 Date 类型转换成了 UTC 格式的字符串,而 1.5 是转换成数值类型的时间戳 解决:在配置中增加 spring.jackson.serialization.write-dates-as-timestamps=true 根本原因…
判断链路结构是否存在环
最近在公司业务中碰到了比较有趣的问题:树形结构的数据,设置父级的时候,形成了循环依赖。如:C 的父级是 B,B 的父级是 A,结果还设置了 A 的父级是 C,导致该类数据的递归运算时直接死循环后栈溢出了 有两种场景的判断方案,可以根据场景来选择 1. 链路节点单项更新的时候,判断是否有环路…
Java实现自定义字符串排序-按照数字大小进行排序
在日常开发中,经常会遇到一些 字符串排序 的场景: 场景一:字符串中包含的是纯数字,比较时想按照正常的数字大小进行排序; 场景二:字符串中既包含数字又包含普通字符,比较时 普通字符想按照默认的字典进行排序,遇到字符串时则按照数字大小进行比较。 举例:…
提问关于如何更优雅的创建索引的疑问
我现在有张表,里面有几个字段 is_deteted 是否删除,有的查询可能有这个条件=1,有的查询没有这个条件 channel_id 点位id,有的查询可能有这个条件,有的查询没有这个条件 label_id 标签id,有的查询有这个条件,有的查询没有这个条件 tenant_id 租户id,有的查询有这个条件,有的查询没有这个条件…
RequestAbortedException的一次排查
近期正式环境的日志经常出现 org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://xxx/xxx": Request aborted; nested exception is…
SpringBoot升级2.6+swagger启动报错
背景 原先的项目一部分在使用 SpringBoot 2.4,但 2.4 的版本中对于线程池没有默认的监控,需要自己去实现。但是在 2.6 版本有默认实现监控,所以想将项目升级到 2.6。 升级&问题 SpringBoot 和 SpringCloud 版本的对应关系,参考: https://start.spring.io/actuator/info 修改好…
Spring Boot可以同时处理多少请求?
前两天面试的时候,面试官问我:一个ip发请求过来,是一个ip对应一个线程吗?我突然愣住了,对于SpringBoot如何处理请求好像从来没仔细思考过,所以面试结束后就仔细研究了一番,现在就来探讨一下这个问题。 正文…