排序
场景题:假设有一个 1G 大的 HashMap,此时用户请求过来刚好触发它的扩容,会怎样?让你改造下 HashMap 的实现该怎样优化?
在 Java 中,HashMap 的扩容是一个相对耗时的操作,尤其是在数据量非常大的情况下(如 1G 大小的 HashMap)。当用户请求触发扩容时,可能会导致系统性能下降,甚至出现短暂的不可用。...
面试题:有一张表里面有三个字段,分别是(id,开始时间,结束时间),表中数据量为 5000W,如何统计流量最大的时候有多少条数据?
我们需要统计在某个时间段内,表中数据量最大的时候有多少条记录。具体来说,就是找到在某个时间点,有多少条记录的“开始时间”和“结束时间”区间覆盖了这个时间点。 解决方案 方法一:基于时...
场景题:从网关再到各个后端服务,如何设置 RPC 的超时时间,要考虑哪些问题?
在分布式系统中,RPC(远程过程调用)超时时间的设置是一个非常重要的设计决策,尤其是在网关和后端服务之间。不合理的超时设置可能导致系统性能下降、资源浪费、甚至雪崩效应。以下是设置 RPC ...
场景题:怎么分析 JVM 当前的内存占用情况?OOM 后怎么分析?
在 Java 应用中,分析 JVM 内存占用情况和排查 OOM(Out Of Memory)问题是常见的任务。以下是详细的排查思路和解决方案: 1. 分析 JVM 当前的内存占用情况 1.1 使用 JVM 内置工具 jstat: 使用...
场景题:线上消息队列故障,兜底改造方案
线上消息队列故障可能会导致系统无法正常处理消息,进而影响业务逻辑。为了应对这种情况,需要设计一个兜底改造方案,确保在消息队列故障时系统仍能正常运行或快速恢复。以下是一个详细的兜底改...
场景题:项目上有个导出 excel 场景发现很慢,怎么优化?
在项目中,如果发现导出 Excel 的场景很慢,可能是由于数据量大、文件生成效率低、内存占用过高或 I/O 操作瓶颈等原因导致的。以下是一些优化方案和注意事项: 1. 问题分析 数据量大:导出数据...
场景题:线上数据库连接池爆满问题排查
线上数据库连接池爆满是一个严重的性能问题,可能导致系统无法正常处理请求,甚至引发服务雪崩。以下是详细的排查思路和解决方案: 1. 问题现象 错误日志: 日志中频繁出现 Cannot get a conne...
场景题:如果发现 Redis 内存溢出了?你会怎么做?请给出排查思路和解决方案
当发现 Redis 内存溢出时,可以按照以下步骤进行排查和解决: 1. 确认内存使用情况 查看 Redis 内存使用情况:使用 INFO memory 命令查看 Redis 的内存使用情况,重点关注 used_memory 和 used_...
场景题:Spring Cloud Gateway 500 问题排查
Spring Cloud Gateway 是 Spring Cloud 生态中的 API 网关组件,用于路由转发、负载均衡、限流、熔断等功能。当出现 500 错误时,可能是网关本身或下游服务的问题。以下是详细的排查思路和解决...
场景题:线上发现 Redis 机器爆了,如何优化?
当线上 Redis 机器出现性能问题(如内存爆满、CPU 过高、响应变慢等)时,需要快速定位问题并采取优化措施。以下是一些常见的优化方案和步骤: 1. 问题分析 首先需要明确 Redis 机器“爆了”的...