Broker

该模块提供消息服务端功能

配置说明:

要开启该功能需在njet.conf 的 main block 中修改如下指令:

helper broker /home/njet/modules/njt_helper_broker_module.so conf/mqtt.conf;

配置文件是可选配置,可以不指定,不指定文件或没有对配置项进行配置时,相关配置项将使用默认配置

注意:(rpm 和deb 包安装时,njet.conf 配置中默认是不带conf/mqtt.conf的

mqtt.conf

配置项 必须修改 配置说明
log_dest 日志输出方法,一般配置为文件输出,配置值为file 文件名(绝对路径)默认: $PREFIX/logs/mosquitto.log
log_type 日志级别: debug, error, warning, notice, information,mqtt库中的日志输出方式和java 中的不一样,配置了某个日志级别,只有该日志级别的消息才会输出到日志中, 因此需要为需要的日志级别单独配置一行。默认: error
listener 监听端口及地址 , 默认: 0 $PREFIX/data/mosquitto.sock
allow_anonymous 是否允许匿名连接,目前配置为true, 如果配置了客户端证书验证, 该配置项应设置为false
persistence 是否开启消息持久化 (true, false), 默认: true
autosave_on_changes 是否有消息时进行自动保存 默认: true
autosave_interval 当自动保存开启时,当新消息个数大于这个配置值时,将触发保存操作 默认: 1800
persistence_location 持久化文件保存路径,将在该路径下创建 mosquitto.db , 默认: $PREFIX/data
cafile CA 证书名, 例如: /usr/local/njet/conf/cert/mqtt_ca.crt
certfile 服务端使用的证书文件,例如:/usr/local/njet/conf/cert/mqtt_server.crt
keyfile 服务端使用的证书key文件,例如:/usr/local/njet/conf/cert/mqtt_server.key
require_certificate 配置客户端证书验证时,该配置项设置为 true
use_identity_as_username 配置客户端证书验证时,该配置项设置为 true
retain_expiry_interval 进程中retain 消息清理的时间间隔,该配置项设置为 1 (分钟)

样例:

log_dest file /usr/local/njet/logs/mosquitto.log
log_type error
log_type notice
log_type information
listener 1883 127.0.0.1
allow_anonymous true
persistence true
autosave_on_changes true
autosave_interval 1800
persistence_location /etc/njet/data

persistence 配置项额外说明:

persistence 配置值需要始终配置为 “true”

当persistence 为 true时, njet 启动时将从磁盘上的持久化文件中加载 retain 类型的消息。 运行过程中,当新消息的个数超过配置的阈值时,将触发文件保存操作。

更改persistence 的配置值,将 true 改成false 时, 这时候进行重加载或启停操作,由于新启动的进程不加载持久化文件,因此不会触发retain类型消息的重新发送, 存在于磁盘上的文件也不会触发删除, 这时候任何retain 类型的新消息都不会进行存储。

当把persistence 的配置值,从 false 重新改成true 时, 重加载或启停, 将加载磁盘上的持久化文件, false 期间的所有变动由于都不保存,因此加载到的是之前 为true 配置时的文件。