Skip to content

Retain Message Persistance Tutorial

Configure SQLite for NanoMQ

NanoMQ uses SQLite to implement message persistence. Add following section to your configration.

hcl
sqlite {
    disk_cache_size = 102400  # Max number of messages for caching
    mounted_file_path="/tmp/" # Mounted file path 
    flush_mem_threshold = 3   # The threshold number of flushing messages to flash
    resend_interval = 5000    # Resend interval (ms)
}

Check configration for more detail about every configration item. To simplify the tutorial we set flush_mem_threshold = 3. You should set this item according to your usage scenario.

Test Retain message persistence

This section will guide you in testing retain message perisistence using the MQTTX Client Tool. We will use one conection for publish and subscribe.

Start NanoMQ

bash
$ nanomq start --conf nanomq.conf

Connect to NanoMQ

Alt text

Send retain messages

Publish 3 different retain messages to reach the threshold for flushing.

Alt text

Restart NanoMQ

Use ctrl+c to exit. Then restart NanoMQ.

Sub for retain message

Subscribe the topic where we have send retain messages to. We can see that the retain meassage is still available.

Alt text