1. 简介 让我们考虑一个涉及消息传递系统的示例,每当一个用户向另一个用户发送消息时,例如用户 1 向用户 2 发送消息,该消息就会存储在用户 2 的数据库中。执行此操作后,需要执行几个任务: 通知用户 2。 如果用户 2 在过去 24 小时内未阅读消息,则向用户 2 发送电子邮件。 更新分析中的相关指标。 但是,我们不希望消息的发送者等待这些任务完成。 此外,如果上述任何任务失败,都不应意味着消息本身未能成功发送。 我们如何才能立即取得成功? 为了满足这些要求,我们使用持久队列。 持久队列是持久的,这意味着数据被写入硬盘以确保不会丢失。 持久队列在称为 pub-sub(发布订阅)的模型上工作,例如 apache Kafka。 Kafka 在内部使用 Zookeeper,Zookeeper 为