所有 topic 的消息混合存储在CommitLog(统一日志文件,默认 1GB / 个),通过ConsumeQueue(每个 topic 对应多个队列,存储消息在 CommitLog 中的偏移量)快速定位消息,类似项目中 “主表 + 索引表” 的设计。
支持同步刷盘(消息写入即持久化,不丢数据)和异步刷盘(先存内存,批量刷盘,性能更高),可按 topic 配置,满足核心业务(如支付通知)与非核心业务(如日志)的差异化需求。
每个 Partition 是一个独立的日志文件(按 segment 拆分,默认 1GB / 个),消息按生产顺序追加写入,分区内消息有序但全局无序,类似你项目中按商品 ID 分表的存储方式。
依赖操作系统页缓存(PageCache),消息先写入内存缓存,由 OS 异步刷盘,吞吐量极高但存在宕机丢失数据风险(可通过acks=all配置解决,需牺牲性能)。
特性 | RocketMQ | Kafka |
|---|---|---|
核心优势 | 事务消息、高可靠性、多消费模式 | 高吞吐、高扩展、适合大数据场景 |
你的项目适配场景 | 支付通知(事务消息防丢)、区域化广播消费 | 商品行为日志采集(高吞吐)、大数据分析同步 |
典型行业 | 金融、电商核心交易 | 日志处理、实时数据管道 |
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。