排序
场景题:如何设计一个秒杀功能?
设计一个秒杀功能是一个经典的面试题,涉及高并发、高性能、分布式系统设计等多个方面。以下是设计秒杀功能的详细思路和实现方案。 1. 需求分析 核心功能 秒杀活动管理:创建、更新、删除秒杀活...
面试题:说说 RabbitMQ 的集群模式?
RabbitMQ 的集群模式是其实现高可用性和负载均衡的核心机制。RabbitMQ 集群通过将多个节点组成一个逻辑上的消息队列系统,共享元数据和状态,从而实现消息的分布式处理。以下是 RabbitMQ 集群模...
面试题:Redis 中原生批处理命令(MSET、MGET)与 Pipeline 的区别是什么?
在 Redis 中,MSET、MGET 等原生批处理命令和 Pipeline 都是用来优化批量操作的,但它们的实现方式和适用场景有所不同。以下是它们的区别: 1. 原生批处理命令(MSET、MGET...
面试题:为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
Redis 的设计选择单线程模型是为了简化实现、提高性能,并避免多线程带来的复杂性。然而,随着硬件的发展和业务需求的变化,Redis 6.0 引入了多线程模型以进一步提升性能。以下是详细的分析: 1...
场景题:线上消息队列故障,兜底改造方案
线上消息队列故障可能会导致系统无法正常处理消息,进而影响业务逻辑。为了应对这种情况,需要设计一个兜底改造方案,确保在消息队列故障时系统仍能正常运行或快速恢复。以下是一个详细的兜底改...
面试题:看过源码?那说说 Kafka 控制器事件处理全流程?
Kafka 控制器(Controller)是 Kafka 集群的核心组件之一,负责管理集群的元数据和协调分布式操作。控制器的主要职责包括分区 Leader 选举、分区重新分配、Broker 上下线处理等。在面试中,如果...
面试题:Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?
在面试中,如果被问到 Redis 中的缓存击穿、缓存穿透和缓存雪崩,可以从以下几个方面进行回答: 1. 缓存击穿(Cache Breakdown) 定义 缓存击穿是指 某个热点数据在缓存中过期 的同时...
面试题:如果让你统计每个接口每分钟调用次数怎么统计?
统计每个接口每分钟的调用次数是监控系统性能和排查问题的重要手段。以下是设计一个接口调用次数统计系统的详细思路: 1. 需求分析 功能需求: 统计每个接口每分钟的调用次数。 支持实时查询和...
场景题:项目上有个导出 excel 场景发现很慢,怎么优化?
在项目中,如果发现导出 Excel 的场景很慢,可能是由于数据量大、文件生成效率低、内存占用过高或 I/O 操作瓶颈等原因导致的。以下是一些优化方案和注意事项: 1. 问题分析 数据量大:导出数据...
面试题:说一下消息队列的模型有哪些?
消息队列的模型是指消息在系统中传递和处理的模式。不同的模型适用于不同的业务场景,常见的消息队列模型包括以下几种: 1. 点对点模型(Point-to-Point, P2P) 定义 生产者将消息发送到队列中...