---
title: 缓存和队列的架构意义
taxonomy:
    category: docs
---

看了前面的真实流程，想必读者已经感受到了缓存和队列对于一个高并发架构的意义了，下面我们简单讨论一下。

### 缓存的本质是用一致性换取读取性能

缓存好理解，放弃一部分数据一致性，获得一个客观的读取性能提升，这在处理不经常更新的数据时非常有用。

### 队列的本质将关键操作从同步改为异步

队列对于以 HTTP 为基础运行方式的 Web 后端系统意义重大，它的核心价值是把一些耗时的任务从同步执行改为了异步执行。很多任务本身并不需要很多的资源，但是当两个任务连在一起执行的时候就会导致长时间的资源占用。我们使用队列工具，在时间上把任务拆分开，可以很大程度解放系统性能，因为我们学会了“用未来的时间换现在的时间”。

### 消息订阅-架构解耦对高并发系统架构的决定性影响

在业务复杂的大型高并发系统中，各个业务之间的协作是一个大问题：如果用传统的 hook 钩子的方式执行，整个系统中就会出现大量的等待，甚至会显著影响用户体验，代价太大了。而以 Kafka 为代表的消息订阅软件对大型系统的架构设计做出了很大贡献，甚至可以说正是消息订阅带来的架构解耦能力决定了今天的高并发系统的解耦架构。

#### Kafka 分布式消息订阅系统

Kafka 把消息订阅-发布系统提升到了一个非常高的高度。由于消息之间没有关系，所以数据的离散性让 Kafka 可以放开手脚，设计出了一个近乎完美的高吞吐量、高可靠性、具有持久性的分布式消息订阅系统。
