后端系统设计共18篇

面试题:分布式锁一般都怎样实现?

分布式锁是分布式系统中用于协调多个节点对共享资源的访问的机制。设计一个分布式锁需要满足以下核心要求: 互斥性:同一时刻只有一个客户端能持有锁。 可重入性:同一个客户端可以多次获取同一...
程序百科的头像-程序百科程序百科31天前
0256

面试题:如果让你统计每个接口每分钟调用次数怎么统计?

统计每个接口每分钟的调用次数是监控系统性能和排查问题的重要手段。以下是设计一个接口调用次数统计系统的详细思路: 1. 需求分析 功能需求: 统计每个接口每分钟的调用次数。 支持实时查询和...
程序百科的头像-程序百科程序百科31天前
0299

场景题:让你设计一个文件上传系统,怎么设计?

设计一个文件上传系统需要考虑多个方面,包括文件存储、上传性能、扩展性、安全性、以及用户体验等。以下是一个详细的设计思路: 1. 需求分析 功能需求: 支持文件上传、下载、删除。 支持大文...
程序百科的头像-程序百科程序百科31天前
03912

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

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

面试题:什么是限流?限流算法有哪些?怎么实现的?

限流(Rate Limiting)是一种用于控制系统中请求流量的技术,目的是防止系统因过载而崩溃。限流通过限制单位时间内的请求数量,确保系统在承受范围内运行,避免资源耗尽或服务不可用。 1. 限流...
程序百科的头像-程序百科程序百科31天前
04212

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

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

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

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

面试题:HashMap 是不是线程安全的?如果让你来实现一个线程安全的 HashMap 你要怎么设计?如果不用加锁你要怎么设计?

1. HashMap 是不是线程安全的? 回答:HashMap 不是线程安全的。在多线程环境下,多个线程同时操作 HashMap 可能会导致数据不一致或死循环等问题。例如,当一个线程在扩容时,另一个线程同时进...
程序百科的头像-程序百科程序百科31天前
0239