跳至主要內容
diskqueue持久化队列设计演进

一步一步推导演进持久化磁盘队列的设计与实现。
在方向不明确,不够熟练的情况下,从 demo 做起,一步步学习先进的设计理念并付诸行动。


第一版,单文件持久化队列

  • 元数据、堆数据存储在一个文件中;
  • 元数据:记录读、写消费指针,队列大小;
  • 堆数据:item 长度、数据;
  • 元数据 + 堆数据单文件存储;

UML 类图:

读:

写:


pedrogao大约 2 分钟distributemqmqdiskqueue
tinymq设计与实现

旨在探索 MQ 的设计与实现,掌握基本原型即可,不上升高级功能。

中间件三驾马车:数据库、缓存,MQ,是每个后端工程师都应深入理解的必备技能,同时也是工作、面试的常客。

自工作以来,笔者基本每天都在与消息队列(MQ)打交道,无论是模块解耦,流量削峰,还是事件通知,MQ 都太好用了。

彻底搞懂 MQ,这个目标一直都在,但苦于下面的原因所以一直没有实施:

  1. 工作内容又繁又杂,没有一个整块时间去思考与沉淀;
  2. MQ 选型众多,Kafka,RocketMQ,Pulsar 等都非常好用,但各有各的特点与不同;
  3. MQ 经过这么多年的发展,本来也越来越复杂,一头扎进去难免一叶障目;

pedrogao大约 6 分钟distributemqmq