高并发架构设计全解析,面试必考的架构题!
高并发架构是系统设计面试的核心考点。本文系统讲解高并发的核心概念、设计模式和实战技巧,助你拿下系统设计面试!
1. 高并发基础概念
1.1 什么是高并发
高并发系统需要处理大量并发请求,核心指标:
- QPS(Queries Per Second):每秒查询数
- TPS(Transactions Per Second):每秒事务数
- 响应时间(RT):请求处理时间
- 并发用户数:同时在线的用户数
1.2 性能指标
| 指标 | 说明 | 参考值 |
|---|---|---|
| QPS | 每秒处理请求数 | 单机 1000-10000 |
| RT | 响应时间 | < 100ms 优秀 |
| 可用性 | 系统正常运行时间 | 99.9%(3个9) |
| 并发数 | 同时处理请求数 | 取决于系统设计 |
2. 缓存策略
2.1 缓存的作用
缓存是高并发系统的核心组件:
- 减少数据库压力
- 降低响应延迟
- 提高系统吞吐量
2.2 缓存策略
// LRU 缓存实现
#include <list>
#include <unordered_map>
template<typename K, typename V>
class LRUCache {
int capacity_;
std::list<std::pair<K, V>> items_;
std::unordered_map<K, typename std::list<std::pair<K, V>>::iterator> cache_;
public:
LRUCache(int capacity) : capacity_(capacity) {
}
V* get(const K& key) {
auto it = cache_.find(key);
if (it == cache_.end()) return nullptr;
items_.splice(items_.begin(), items_, it->second);
return &(it->second->second);
}
void put(const K& key, const V& value) {
auto it = cache_.find(key);
if (it != cache_.end()) {
items_.erase(it->second);
cache_.erase(it);
}
if (items_.size() >= capacity_) {
auto last = items_.back();
cache_


7784

被折叠的 条评论
为什么被折叠?



