后端共128篇

场景题:两百万个生产者发送消息,仅一个消费者,如何高效设计锁?

在 两百万个生产者发送消息,仅一个消费者 的场景中,设计高效的锁机制是一个典型的并发编程问题。目标是确保生产者和消费者能够高效地协作,同时避免锁竞争导致的性能瓶颈。以下是详...
程序百科的头像-程序百科程序百科45天前
0418

面试题:RabbitMQ 中无法路由的消息会去到哪里?

在 RabbitMQ 中,如果消息无法被路由到任何队列(例如没有绑定队列或路由键不匹配),消息的处理方式取决于交换机的配置。以下是消息无法路由时的可能去向: 1. 默认行为:消息被丢弃 如果...
程序百科的头像-程序百科程序百科44天前
0298

面试题:如何使用 Redis 快速实现布隆过滤器?

布隆过滤器(Bloom Filter)是一种概率数据结构,用于快速判断一个元素是否存在于集合中。它的特点是: 空间效率高:使用较少的内存存储大量数据。 查询速度快:时间复杂度为 O(k),k 是哈希函...
程序百科的头像-程序百科程序百科38天前
0389

场景题:如何设计一个点赞系统?

设计一个点赞系统需要考虑多个方面,包括系统架构、数据存储、性能优化、扩展性和一致性等。以下是一个详细的设计思路: 1. 需求分析 功能需求: 用户可以点赞或取消点赞。 显示点赞总数。 显示...
程序百科的头像-程序百科程序百科45天前
0346

场景题:微服务中远程调用的超时时间应该设置为多少合适?

在微服务架构中,远程调用(RPC)的超时时间设置是一个关键的设计决策,直接影响系统的稳定性、性能和用户体验。超时时间设置过短可能导致大量请求失败,设置过长则可能导致资源浪费和系统雪崩...
程序百科的头像-程序百科程序百科45天前
04212

面试题:如何保证消息的有序性?

保证消息的有序性是消息队列设计中的一个重要问题,尤其是在需要严格顺序处理的场景中(如订单处理、日志处理等)。以下是如何保证消息有序性的常见方法和技术: 1. 消息有序性的挑战 在分布式...
程序百科的头像-程序百科程序百科44天前
04215

面试题:Redis Zset 的实现原理是什么?

Redis 的有序集合(Zset)是一个复合数据结构,它结合了 跳表(Skip List) 和 哈希表(Hash Table) 来实现高效的数据存储和操作。以下是 Zset 的实现原理: 1. Zset...
程序百科的头像-程序百科程序百科48天前
0256

面试题:Redis 的哨兵机制是什么?

Redis 的哨兵机制(Sentinel)是 Redis 高可用性(High Availability, HA)解决方案的核心组件之一。它的主要作用是监控 Redis 主从集群的状态,并在主节点(Master)发生故障时,自动进行故障...
程序百科的头像-程序百科程序百科38天前
04415

面试题:让你设计一个 HashMap ,怎么设计?

设计一个 HashMap 是一个经典的面试题,涉及数据结构、算法、并发等多个方面。以下是设计一个简化版 HashMap 的详细思路和实现方案。 1. 需求分析 核心功能 插入键值对:支...
程序百科的头像-程序百科程序百科45天前
06013

面试题:RabbitMQ 怎么实现延迟队列?

1. 使用 RabbitMQ 官方插件 rabbitmq_delayed_message_exchange 这是最直接的方式。RabbitMQ 提供了一个官方插件 rabbitmq_delayed_message_exchange,它允许你创建一个延迟交换机,...
程序百科的头像-程序百科程序百科46天前
0465