高并发架构实战 Day36

消息队列的存储分为元数据存储和消息数据存储两方面。

元数据的存储主要依赖第三方组件实现,比如 ZooKeeper、etcd 或者自研的简单元数据存储服务等等。在成熟的消息队列架构中,基于简化架构和提升稳定性的考虑,都会考虑在集群内部完成元数据的存储和管理。

消息数据的存储在功能层面包含数据存储结构设计、数据分段存储、数据存储格式、数据清理机制四个方面。

消息数据的存储主要包含 Topic 和分区两个维度。Topic 起逻辑组织作用,实际的数据存储是在分区维度完成的。所以在数据存储目录结构上,我们都以分区为最小粒度去设计,至于选择每个分区单独一个存储文件,还是将每个节点上所有分区的数据都存储在同一个文件,方案各有优劣,你可以根据实际情况去选择。

因为大文件存在性能和资源占用、数据清理成本等问题,一般情况下,我们都需要对数据文件进行分段处理,分段的策略一般都是按照文件大小进行的。 数据存储格式可以分为基础信息和业务信息两个维度,数据格式需要遵循极简原则,以达到性能和成本的最优。

数据的过期策略一般有三种,ACK 删除、根据时间和保留大小删除数据、两者结合。目前业界的实现比较多样,从选择上来看,两者结合的方案更合理

相关推荐
小突突突19 小时前
Spring框架中的单例bean是线程安全的吗?
java·后端·spring
iso少年19 小时前
Go 语言并发编程核心与用法
开发语言·后端·golang
掘金码甲哥19 小时前
云原生算力平台的架构解读
后端
码事漫谈19 小时前
智谱AI从清华实验室到“全球大模型第一股”的六年征程
后端
码事漫谈19 小时前
现代软件开发中常用架构的系统梳理与实践指南
后端
Mr.Entropy19 小时前
JdbcTemplate 性能好,但 Hibernate 生产力高。 如何选择?
java·后端·hibernate
YDS82920 小时前
SpringCloud —— MQ的可靠性保障和延迟消息
后端·spring·spring cloud·rabbitmq
无限大620 小时前
为什么"区块链"不只是比特币?——从加密货币到分布式应用
后端
洛神么么哒20 小时前
freeswitch-初级-01-日志分割
后端
蝎子莱莱爱打怪20 小时前
我的2025年年终总结
java·后端·面试