前文《万亿级消息背后:小米消息队列的实践》整体介绍了 Talos。
本文将深入介绍该系统设计中的关键问题—读写一致性。
Talos 消息队列做为一种特殊的存储系统,其一致性包含两方面:
存储层多副本数据一致性
调度层处理逻辑的读写一致性
前者由 Talos 基于 HDFS 的存储层来保障,本文将详细展开调度层一致性逻辑。
Talos中的读写一致性问题
做为一个消息队列系统,需要保证消息的读写一致性。这需要满足两个方面:
单条消息是连续的字节存放,不同消息的字节数据不能交错存放,即消息内容一致性
单 Partition 消息之间应当有序,写入顺序即是读取顺序,即顺序一致性
Talos 在 HDFS 的数据存储模型为:每个 Partition 在 HDFS 中对应一个目录&#x