目录
一、网络层问题(最常见、最难排查)
1. 端口不通 / 端口放行缺失
2. 网络超时、跨机房延迟过高
3. TCP 连接打满、连接泄漏
4. DNS 解析异常 / 解析缓慢
二、服务器 & 操作系统层问题
1. 服务器资源耗尽(CPU / 内存 / 磁盘)
(1)CPU 飙升
(2)内存溢出之外:系统内存不足
(3)磁盘爆满
2. 系统内核参数不合理
3. 时间不同步(隐藏致命问题)
三、中间件 & 基础设施非代码问题
1. Nacos/Eureka 注册发现异常
2. Redis 非代码故障
3. MQ(RocketMQ/Kafka)问题
四、容器 & 云原生特有问题(Docker/K8s)
五、网关 & 负载均衡层问题
六、日常排查通用思路(非代码问题专用)
七、Java 微服务优化避坑(针对非代码问题)
微服务架构下,Bug 不一定在代码,大量故障来自:网络、服务器环境、中间件、操作系统、容器 / 云原生配置、基础设施、运维参数、带宽 / 连接数、时间同步、DNS、防火墙等。下面按场景分类,结合 Java 微服务实际业务场景讲清楚现象、原因、排查点。
一、网络层问题(最常见、最难排查)
1. 端口不通 / 端口放行缺失
现象
- 服务注册成功,但调用直接超时、Connection refused
- 本地调试正常,测试 / 生产环境直接调不通
根因
微服务典型场景Nacos/Sentinel/RocketMQ/Redis 客户端能连上控制台,但业务服务之间调用不通,就是端口 + 安全组问题。
2. 网络超时、跨机房延迟过高
现象
- 偶尔接口超时、Feign/RestTemplate 调用间歇性失败
- 白天正常,高峰期大量Read timed out
根因
Java 特有加重问题
- Feign、OkHttp 未合理配置连接超时、读取超时、重试策略
- 无熔断降级,单次慢调用拖垮整个线程池
3. TCP 连接打满、连接泄漏
现象
- 服务莫名卡死、接口响应极慢,无报错日志
- 服务器ESTABLISHED连接数爆表
- 无法新建连接,新请求直接阻塞
根因
4. DNS 解析异常 / 解析缓慢
现象
- 服务偶尔注册不上 Nacos、网关路由突然失效
- 首次调用慢、间歇性域名解析失败
根因
二、服务器 & 操作系统层问题
1. 服务器资源耗尽(CPU / 内存 / 磁盘)
(1)CPU 飙升
非代码原因:
- 服务器宿主机超配、共享宿主机被其他业务抢占资源
- 系统定时任务(日志切割、备份、杀毒)高峰期抢占 CPU
- 磁盘 IO 过高引发 CPU 等待
(2)内存溢出之外:系统内存不足
非 OOM 代码问题
- 服务器物理内存不足,触发 OOM killer 直接杀掉 Java 进程
- 容器限制内存(Docker/K8s limit)设置过小
- 服务器缓冲区、缓存占用过高,导致 JVM 无法申请堆外内存
(3)磁盘爆满
高频微服务故障:
2. 系统内核参数不合理
高频坑点
3. 时间不同步(隐藏致命问题)
现象
- 分布式定时任务重复执行 / 不执行
- JWT、Token、签名校验失败
- 分布式事务、订单时间错乱、日志时序混乱
根因服务器未配置 NTP 时间同步,多台微服务机器时间偏差几秒~几分钟。
三、中间件 & 基础设施非代码问题
1. Nacos/Eureka 注册发现异常
非代码问题:
2. Redis 非代码故障
3. MQ(RocketMQ/Kafka)问题
四、容器 & 云原生特有问题(Docker/K8s)
五、网关 & 负载均衡层问题
六、日常排查通用思路(非代码问题专用)
- 全部异常:网络、DNS、中间件、公共服务器
- 单实例异常:当前机器资源、配置、容器限制
网硕互联帮助中心



评论前必须登录!
注册