疑问:关于消息持久化的疑问

问题描述

正常来说MQ内置数据持久化是为了确保消息不丢失,重启可以恢复数据,emqx的设计是允许消息丢失吗?(我可以这样理解?)

持久化的能力不是为了消息不丢失,是为了数据不丢失,概念上不要混淆。MQTT消息publish出来没有接受者就会丢失,持久化的能力是指,对所有的消息进行记录,把数据持久化下来。EMQ X是broker不是消息队列,持久化属于拓展的能力。

emqx 中的消息队列都是保存在内存中,重启之后,会话就消失了,那些遗留的消息也就丢了。有没有什么方法可以使没有被消费的消息保存下来,重启之后再加载到内存中?

有解决方案,参考文档,但是broker的设计不是这样的,保证服务质量是第一要求,宕机的可能非常小。

1 个赞