MQTT 协议标准中规定 Broker 必须存储离线客户端的消息。
之前版本的 EMQX 开源版采用了基于内存的会话存储,企业版则在此基础上进一步提供了外部数据库存储方案,借此实现数据持久化。从性能的角度来看,将所有消息存储在内存中是有益的,这种设计是吞吐量和延迟之间的权衡。
但将数据存储在内存中,大量连接和消息将带来较高的内存,这将限制客户端大规模启用保留会话功能(Clean Session = false);即使客户端启用了保留会话,在对 EMQX 进行重启操作或者 EMQX 意外宕机时会话数据同样会丢失。
基于此,EMQX 将自 5.x 时代起引入 RocksDB,以实现原生的持久会话能力。
RocksDB 是一款嵌入式的持久键值存储引擎,它具有高写入吞吐量,支持预写日志、范围扫描和键前缀搜索等特性,引入 RocksDB 的 EMQX 将为用户带来更加高效稳定的会话持久化能力,方便用户不受限制、更低成本的使用 MQTT 特性。
在 8 月 2 日(下周二)晚 8 点的 EMQX 5.0 产品解读系列直播第三期中,我们将带大家对正在开发中的基于 RocksDB 实现原生会话持久化进行抢鲜技术分享,同时与大家共同探讨针对 RocksDB 持久化能力的更多扩展新功能探索,如扩展 MQTT 协议以支持类似 Kafka 的「消息重放」功能,允许订阅者获取会话创建前某个主题中的消息等。
主题:基于 RocksDB 实现原生会话持久化技术预览
时间:2022/08/02 20:00
讲师:李国伟,EMQX 产品经理
内容:
MQTT 消息持久化概念与 RocksDB 简介
Why RocksDB:RocksDB 有何优势
数据的「来龙去脉」:RocksDB 持久化工作流程解析
更多可能:持久化功能扩展探讨
免费报名:






