第三期:EMQX 5.0 如何基于 RocksDB 实现原生会话持久化
MQTT 协议标准要求 MQTT Broker 需具备存储离线客户端消息的能力。
之前版本的 EMQX 开源版采用了基于内存的会话存储,企业版则在此基础上进一步提供了外部数据库存储方案,借此实现数据持久化。这种设计为 EMQX 带来了更高的消息吞吐性能及更低的消息延迟。
但将数据存储在内存中,在大量连接和消息时将带来较高的内存占用,出于此限制用户可能不会为客户端启用保留会话功能(Clean Session = false);即使客户端启用了保留会话,在对 EMQX 进行重启操作或者 EMQX 意外宕机时会话数据同样会丢失。
基于此,EMQX 将自 5.x 时代起引入 RocksDB,以实现原生的持久会话能力。
讲师
李国伟 - EMQX 产品经理
直播内容
- MQTT 消息持久化概念介绍
- 什么是 RocksDB,为什么选择 RocksDB?
- RocksDB 持久化工作流程
- 持久化功能扩展探讨
- 未来持久化功能扩展探讨