后端共128篇

场景题:如何在附近 100w 的商户中,快速找到离你最近的 5 家商户?

在附近 100 万家商户中快速找到离你最近的 5 家商户,是一个典型的 空间搜索问题。解决这类问题的关键是利用高效的数据结构和算法来优化查询性能。以下是详细的解决方案: 1. 问题分析 数据规模...
程序百科的头像-程序百科程序百科46天前
0338

面试题:RabbitMQ 中消息什么时候会进入死信交换机?

在 RabbitMQ 中,死信交换机(Dead Letter Exchange, DLX) 是一种特殊的交换机,用于处理无法被正常消费的消息。当消息满足某些条件时,它会被重新发布到死信交换机,进而路由到死信队列...
程序百科的头像-程序百科程序百科45天前
04310

面试题:如何使用 Redis 统计大量用户唯一访问量(UV)?

统计大量用户的唯一访问量(UV,Unique Visitors)是一个常见的需求,尤其是在高并发的场景下。Redis 提供了多种数据结构和方法来实现 UV 统计,以下是几种常用的方案: 1. 使用 Set 数据结构 S...
程序百科的头像-程序百科程序百科38天前
0305

面试题:即时通讯项目中怎么实现历史消息的下拉分页加载?

在即时通讯项目中,历史消息的下拉分页加载是一个常见的需求。用户可以通过下拉刷新或滚动到顶部的方式加载更早的历史消息。以下是实现这一功能的思路和步骤: 1. 数据结构设计 为了实现分...
程序百科的头像-程序百科程序百科46天前
0319

场景题:从网关再到各个后端服务,如何设置 RPC 的超时时间,要考虑哪些问题?

在分布式系统中,RPC(远程过程调用)超时时间的设置是一个非常重要的设计决策,尤其是在网关和后端服务之间。不合理的超时设置可能导致系统性能下降、资源浪费、甚至雪崩效应。以下是设置 RPC ...
程序百科的头像-程序百科程序百科45天前
04815

面试题:如何处理消息堆积?

消息堆积是消息队列中常见的问题,通常是由于消费者处理能力不足、消息生产速率过快或系统故障导致的。处理消息堆积需要从多个方面入手,包括优化消费者性能、调整消息队列配置、扩容系统资源等...
程序百科的头像-程序百科程序百科44天前
03810

面试题:为什么 Redis Zset 用跳表实现而不是红黑树?B+树?

Redis 选择跳表(Skip List)作为 Zset 的底层实现,而不是红黑树或 B+ 树,主要基于以下几个原因: 1. 性能方面的考量 查询性能: 跳表的查询、插入、删除操作的时间复杂度都是 O(log N)...
程序百科的头像-程序百科程序百科49天前
02813

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

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

面试题:让你设计一个短链系统,怎么设计?

设计一个短链系统(Short URL System)是一个经典的面试题,涉及高并发、高性能、分布式系统设计等多个方面。以下是设计短链系统的详细思路和实现方案。 1. 需求分析 核心功能 生成短链:将长 U...
程序百科的头像-程序百科程序百科46天前
0299

场景题:针对支付宝最近出现的八折优惠事故,说说如何才能避免类似事件的发生?

支付宝的八折优惠事故(假设是指由于系统或人为错误导致的优惠活动异常)是一个典型的线上事故案例。为了避免类似事件的发生,需要从技术、流程和监控等多个方面进行系统性防范。以下是一些具体...
程序百科的头像-程序百科程序百科45天前
0277