简介

EMQ X Broker 的配置文件通常以 .conf 作为后缀名,你可以在 etc 目录找到这些配置文件,主要配置文件包括:

配置文件 说明
etc/emqx.conf EMQ X Broker 配置文件
etc/acl.conf EMQ X Broker 默认 ACL 规则配置文件
etc/plugins/*.conf EMQ X Broker 扩展插件配置文件

需要注意的是,通过不同方式安装的 EMQ X Broker,etc 目录所处的路径可能不同。

语法规则

  • 采用类似 sysctl 的 k = v 通用格式
  • 单个配置项的所有信息都在同一行内,换行意味着创建一个新的配置项
  • 键可以通过 . 进行分层,支持按树形结构管理配置项
  • 值的类型可以是 integer, fload, percent, enum, ip, string, atom, flag, duration and bytesize
  • 任何以#开头的行均被视为注释

示例:

mqtt.max_packet_size = 1MB

数据类型

integer

整型数据。

float

浮点型数据。

percent

% 结尾的百分比数据,最终会被转换为 float 类型。

enum

通常我们会在类型为 enum 的配置项附近列出它的所有可选值。

ip

当你看到某个配置项的数据类型为 ip 时,意味着你可以使用 <IP>:<Port> 的形式来设置该配置项,例如 0.0.0.0:1883

string

*.conf 文件中除注释以外的所有内容都会先被解析成字符串再转换为其他类型,因此没有必要对 string 类型的值额外使用双引号对值进行修饰,并且这种方式也不被支持。

Yes!

dir = tmp

No!!!

dir = "tmp"

atom

atom 类型的值最终会转换成 Erlang 的 atom,但它在 *.conf 文件中的使用方式与 string 完全一致。

flag

flag 用于那些具有两个可能值的变量,flag 默认可用值为 onoff,它们将映射为 truefalse 以供应用程序使用。如果我们为某个配置项建立了其他的映射关系,我们会在配置文件中注明。

duration

duration 用于指定那些固定的时间间隔,你可以使用以下时间单位:

  • f - fortnight
  • w - week
  • d - day
  • h - hour
  • m - minute
  • s - second
  • ms - millisecond

你可以任意组合这些时间单位,例如 1w13ms,也可以使用浮点数,例如 0.5d,这些时间间隔最终将会被转换成我们指定的基准单位。这里有一点需要注意,如果你以毫秒为单位设置了某个配置项,而它的基准单位为秒,那么它将向上舍入至最接近的描述,例如 1s50ms = 2s。因此,我们会列出这一类配置项的基准单位。

bytesize

bytesize 支持以更易读的方式来设置报文大小、缓冲区大小等配置,单位可以是 KBMBGB,你也可以使用小写,例如 kb,但不支持大小写混合,例如 Kb,它们最终都将被转换为字节数。如果你未指定任何单位,那么它被直接作为字节数使用。

默认配置

在 EMQ X Broker 的配置文件中,你会看到很多被注释掉的配置项,这意味着这些配置项会使用他们的默认值,通常我们会列出这些配置的默认值。

Zone & Listener

EMQ X Broker 提供了非常多的配置项,并支持全局配置和局部配置。例如,EMQ X Broker 提供了匿名访问的功能,即允许客户端不需要用户名与密码就能连接 Broker,通常在用户的生产环境中,此功能被默认关闭,但用户可能又希望在他的内网环境中启用此功能。从 3.0 版本开始,EMQ X Broker 就通过 Zone 与 Listener 为用户提供了这种可能。

Listener

Listener 主要用于配置不同协议的监听端口和相关参数,EMQ X Broker 支持配置多个 Listener 以同时监听多个协议或端口,以下是支持的 Listener:

监听器 说明
TCP Listener A listener for MQTT which uses TCP
SSL Listener A secure listener for MQTT which uses TLS
Websocket Listener A listener for MQTT over WebSockets
Secure Websocket Listener A secure listener for MQTT over secure WebSockets (TLS)

EMQ X Broker 默认提供 5 个 Listener,它们将占用以下端口:

端口 说明
1883 MQTT/TCP 协议端口
11883 MQTT/TCP 协议内部端口,仅用于本机客户端连接
8883 MQTT/SSL 协议端口
8083 MQTT/WS 协议端口
8084 MQTT/WSS 协议端口

Listener 配置项的命名规则为 listener.<Protocol>.<Listener Name>.xxx<Protocol> 即 Listener 使用的协议,目前支持 tcp, ssl, ws, wss<Listener Name> 可以随意命名,但建议是全小写的英文单词,xxx 则是具体的配置项。不同协议的 Listener 的 <Listener Name> 可以重复,listener.tcp.externallistener.ssl.external 是两个不同的 Listener。

由于默认配置的存在,我们能够非常快速地展示如何添加新的 Listener,以 TCP Listener 为例,我们只需要在 emqx.conf 中添加以下一条配置即可:

listener.tcp.example = 12345

当然这种情况我们更建议您复制一份默认 Listener 的配置进行修改。

Zone

一个 Zone 定义了一组配置项 (比如最大连接数等),Listener 可以通过配置项 listener.<Protocol>.<Listener Name>.zone 指定使用某个 Zone,以使用该 Zone 下的所有配置。多个 Listener 可以共享同一个 Zone。Zone 的命名规则为 zone.<Zone Name>.xxxZone Name 可以随意命名,但同样建议是全小写的英文单词,xxx 是具体的配置项。

此时,我们的每个配置项都存在三个可用值,分别是全局的值,Zone 里设置的值以及默认值,它们的优先级顺序为:Zone > Global > Default。

EMQ X 配置说明相关推荐

  1. emq数据储存到mysql_EMQ X 规则引擎系列(三)存储消息到 InfluxDB 时序数据库

    前言 InfluxDB 是一个用于存储和分析时间序列数据的开源数据库,内置 HTTP API,类 SQL 语句的支持和无结构的特性对使用者而言都非常友好.它强大的数据吞吐能力以及稳定的性能表现使其非常 ...

  2. EMQ MQTT云服务器搭建 - 阿里云轻量应用服务器

    玩物联网,当然要自己搭建物联网云平台.一方面可以有更多的功能定制空间,同时学习网络建站,最重要的是运营成本.作为普通开发者,使用阿里云.腾讯云.OneNet等免费实例固然香,但是一旦开通企业版并上线后 ...

  3. linux kvm虚拟化命令,Linux系统下kvm虚拟化(三)日常管理常用命令和配置说明

    根据我们之前创建和一些操作可以知道,KVM虚拟机的管理主要是通过virsh命令对环境下kvm虚拟机进行管理,下边这里整理一些常用的配置说明以及如何进行日常管理维护. 1,查看KVM虚拟机配置文件 KV ...

  4. 基于EMQ X,打造AIoT物联网视频接入解决方案

    目录 1.背景 2.解决方案概述 方案1:平台层统一接入集成 方案2:平台层统一接入集成 方案3:边缘端统一集成 1.背景 近期看到EMQ 联合万为致力于打造 AI.IoT "一体化&quo ...

  5. Angular应用中tsconfig.json文件配置说明及配置全局路径映射

    tsconfig.json文件配置说明 1. tsconfig.json文件中的选项配置 2. 配置全局路径映射 1. tsconfig.json文件中的选项配置 TypeScript编译器配置文件的 ...

  6. EMQ学习笔记---Clean Session和Retained Message

    MQTT会话(Clean Session) MQTT客户端向服务器发起CONNECT请求时,可以通过'Clean Session'标志设置会话. 'Clean Session'设置为0,表示创建一个持 ...

  7. centos 安装git_开源物联网MQTT 5.0服务器——EMQ安装及运行教程

    一.安装预置条件 EMQ X 可以跨平台运行在 Linux.FreeBSD.MacOS 或 Windows 服务器甚至是树莓派上. 服务器最低配置为 512MB 内存且至少保留 1 GB 以上硬盘空间 ...

  8. ESLint 配置说明

    ESLint 有什么用,为什么要使用? ESLint 是一套可自定义规则的JS代码检查与修复工具 目标是保存团队代码的一致性和避免错误并且修复错误.减少团队沟通成本 "no-alert&qu ...

  9. EMQ学习 ---集群

    emqttd集群设置管理 一.先来看EMQ的文档定义:http://emqtt.com/docs/v1/cluster.html emqttd集群设置管理 假设部署两台服务器s1.emqtt.io, ...

最新文章

  1. Belkatalog CMS SQL 注入漏洞(图)
  2. MXNet半精度(FP16)
  3. 提高博客访问量14种方法
  4. 单核工作法12:现在专注一件事(下)
  5. ftp服务器如何复制文件路径,ftp服务器上复制文件路径
  6. 第7章 Scrapy突破反爬虫的限制
  7. C# 计算代码执行时间
  8. node设置跨域白名单
  9. 22.实例 --- nginx 虚拟主机
  10. nodejs - 服务端管理 - PM2
  11. anychart HTML5中文乱码,anychart使用手册一.doc
  12. 如何在IDEA中使用 Jclasslib
  13. NeoKylin7配置DM8数据库实例
  14. 金融 数据库 mysql_MySQL 和 PostgreSQL 哪个更适合做金融数据库
  15. 【虹科讲座预告】企业如何防止基于USB的数据外泄
  16. 服务器文件备份到本地方法,Windows服务器文件备份到本地的方法、Windows服务器数据备份方案...
  17. winxpnbsp;sp3
  18. 付费代理IP——Redis数据库的安装
  19. 2023年,我们还需要一部游戏手机吗?
  20. wilf tree java_TreeWifi:能监测空气质量的鸟屋!

热门文章

  1. Linux下Makefile的安装以及使用
  2. 如何做好软件自动更新
  3. 计算机专业c语言随堂练,华工C++随堂练习答案+2020春
  4. 基础乐理 - 反复记号
  5. 井通区块链Api订阅服务介绍
  6. shell 中的条件判断 “并且” “或者”
  7. 大数据就业前景分析!此篇文章给你答案
  8. 腾讯IM接口封装PHP
  9. Wordpress使用CloudFlare的CDN来加速网站(页面规则缓存设置教程
  10. centos 删除文件夹失败 centos cannot remove ****, is a directory