后端共128篇

面试题:说一下 Kafka 为什么性能高?

Kafka 之所以性能高,主要得益于以下几个关键设计: 1. 顺序读写 Kafka 将消息顺序写入磁盘,避免了随机 I/O 操作。顺序读写比随机读写快得多,尤其是在机械硬盘上。 消费者也是顺序读取消息,...
程序百科的头像-程序百科程序百科45天前
0528

面试题:Kafka为什么要抛弃 Zookeeper?

Kafka 从 2.8.0 版本开始引入了 Kafka Raft Metadata Mode(KRaft),逐步摆脱了对 Zookeeper 的依赖。这一变化是 Kafka 架构演进的重要里程碑。在面试中,如果被问到“Kafka 为什么要抛弃 Zook...
程序百科的头像-程序百科程序百科45天前
0548

面试题:Redis 通常应用于哪些场景?

Redis 是一种高性能的内存数据库,广泛应用于各种需要快速读写和数据缓存的场景。以下是 Redis 常见的应用场景: 1. 缓存(Cache) 描述:Redis 最常见的用途是作为缓存层,加速数据访问。...
程序百科的头像-程序百科程序百科37天前
0318

面试题:如何保证消息不丢失?

保证消息不丢失是消息队列设计中的一个核心问题,尤其是在对数据可靠性要求较高的场景中(如金融交易、订单处理等)。为了实现这一目标,需要在消息的生产、存储和消费各个环节采取相应的措施。...
程序百科的头像-程序百科程序百科44天前
0428

面试题:说说 RabbitMQ 的工作模式?

RabbitMQ 是一个功能强大的消息队列中间件,支持多种工作模式(也称为消息模式或交换类型),以满足不同的业务需求。以下是 RabbitMQ 的主要工作模式及其特点: 1. 简单模式(Simple Mode) 描...
程序百科的头像-程序百科程序百科45天前
0538

面试题:Kafka的索引设计有什么亮点?

Kafka 的索引设计是其高性能和高效存储的关键之一。 Kafka 使用了两类索引来加速消息的查找和读取:偏移量索引(Offset Index) 和 时间戳索引(Timestamp Index)。 在面试中,如果被问到“K...
程序百科的头像-程序百科程序百科45天前
0228

场景题:让你设计一个分布式 ID 发号器,怎么设计?

设计一个分布式 ID 发号器(Distributed ID Generator)是分布式系统中常见的需求,尤其是在需要全局唯一 ID 的场景下(如订单号、用户 ID 等)。以下是设计分布式 ID 发号器的详细思路: 1. 需...
程序百科的头像-程序百科程序百科46天前
0248

面试题:Redis 支持事务吗?如何实现?

是的,Redis 支持事务。Redis 的事务通过 MULTI、EXEC、DISCARD 和 WATCH 等命令来实现。事务可以确保一组命令按顺序执行,且在执行过程中不会被其他客户端的命令打断。 1....
程序百科的头像-程序百科程序百科37天前
0288

面试题:Redis 集群会出现脑裂问题吗?

Redis 集群在特定情况下可能会出现脑裂问题(Split-Brain),尽管它通过一些机制来尽量减少这种情况的发生。 什么是脑裂问题? 脑裂问题通常发生在分布式系统中,当网络分区(Network Partition...
程序百科的头像-程序百科程序百科38天前
0358

面试题:Redis 和 Memcached 有哪些区别?

Redis 和 Memcached 都是高性能的内存缓存系统,但它们的设计目标、功能特性和适用场景有所不同。以下是它们的主要区别: 1. 数据类型 Redis: 支持多种数据类型,包括字符...
程序百科的头像-程序百科程序百科37天前
0418