• Linux 搭建MQTT服务器


    一、引言

            随着网络的不断发展,万物互联正成为现实,但是由于受限设备和低带宽、高延迟或不可靠的网络,影响着物联网的发展的。为了解决这些问题,IBM工程师在1999年发布MQTT协议,它是基于二进制消息的发布/订阅编程模式的消息协议,由于其优越的表现,在物联网方方面面都有着广泛应用,现在已经成为OASIS规范。

    二、选择开源的MQTT 服务器

            自从MQTT协议发布以来,随着时间发展,出现了许多MQTT服务器,其中比较有名的开源MQTT服务器主要有以下几个:

            ①、Eclipse Mosquitto:这是一个使用 C 语言实现的 MQTT 服务器,它主要是基于MQTT协议的5.0、3.1.1和3.1版。

            ②、EMQ X:这是一个使用 Erlang 语言开发的 MQTT 服务器,它支持MQTT-SN、 CoAP、LwM2M 等IoT 协议,使用比较广泛,我们选择的安装的也是这种。

            ③、Mosca:这是一个使用 Node.JS 开发的 MQTT 服务器,其官网:Mosca by mcollina

            ④、VerneMQ:这是一个使用 Erlang 开发的 MQTT 服务器。

    三、EMQX下载

           1、EMQX中文官网:https://www.emqx.com/zh

            2、在https://www.emqx.com/zh/server-estimate 查看配置估算 ,看下自己服务器配置是否足够。

           3、去到https://www.emqx.com/zh/try?product=broker下载

       4、选择ZIP安装方式和CPU架构后

            下载方法一:直接在Centos服务器上执行下载命令

    wget https://www.emqx.com/zh/downloads/broker/4.4.3/emqx-4.4.3-otp24.1.5-3-el8-amd64.zip

            下载方法二:点击“立即下载”,完成EMQX的ZIP下载,然后再上传到Centos服务器上。

            

    四、EMQX安装

           1、由于EMQX是用Erlang语言编写的,所以,在Linux下安装时,需要先安装Erlang依赖项:

    sudo yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

           2、将ZIP包解压

    unzip emqx-4.4.3-otp24.1.5-3-el8-amd64.zip

          3、运行

    ./bin/emqx start

            4、查看是否运行状态:

    ./bin/emqx_ctl status

         5、如果启动过程提示“Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed. ”错误,可以按如下步骤安装 openssl1.1.1依赖包后重新启动即可。

    1. 安装并编译: openssl
    2. cd /usr/local/src/
    3. 下载wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1d.tar.gz
    4. tar xf openssl-1.1.1d.tar.gz
    5. 编译
    6. cd openssl-1.1.1d
    7. ./config
    8. make && make install
    9. 安装完成后 路径:/usr/local/bin

    五、EMQX命令

          如果没设置EQMX的bin路径,则进入解压的ZIP的路径:

    1. # 启动emqx
    2. ./bin/emqx start
    3. # 停止emqx
    4. ./bin/emqx stop
    5. # 重启emqx
    6. ./bin/emqx restart
    7. # 检查运行状态
    8. ./bin/emqx_ctl status
    9. # 服务卸载
    10. ./bin/emqx uninstall

    六、EMQX相关

     1、EMQX目录结构:目录结构 | EMQX 文档

    不同安装方式得到的 EMQX 其目录结构会有所不同,具体如下:

    描述使用 ZIP 压缩包安装使用二进制包安装Homebrew(MacOS)安装
    可执行文件目录./bin/usr/lib/emqx/bin/usr/local/bin
    数据文件./data/var/lib/emqx/data/usr/local/Cellar/emqx/*/data
    Erlang 虚拟机文件./erts-*/usr/lib/emqx/erts-*/usr/local/Cellar/emqx/*/erts-
    配置文件目录./etc/etc/emqx/etc/usr/local/Cellar/emqx/*/etc
    依赖项目录./lib/usr/lib/emqx/lib/usr/local/Cellar/emqx/*/lib
    日志文件./log/var/log/emqx/usr/local/Cellar/emqx/*/log
    启动相关的脚本、schema 文件./releases/usr/lib/emqx/releases/usr/local/Cellar/emqx/*/releases

    以上目录中,用户经常接触与使用的是 binetcdatalog 目录。

    etc 目录

    EMQX 通过 etc 目录下配置文件进行设置,主要配置文件包括:

    配置文件说明
    emqx.confEMQX 配置文件
    acl.confEMQX 默认 ACL 规则配置文件
    plugins/*.confEMQX 各类插件配置文件
    certsEMQX SSL 证书文件

    EMQX 具体的配置内容可以查看 配置项

    data 目录

    EMQX 将运行数据存储在 data 目录下,主要的文件包括:

    configs/app.*.config

    EMQX 读取 etc/emqx.conf 和 etc/plugins/*.conf 中的配置后,转换为 Erlang 原生配置文件格式,并在运行时读取其中的配置。

    2、EMQX配置说明:配置说明 | EMQX 文档

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

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

    需要注意的是,安装方式不同 etc 目录所处的路径可能不同,具体请参见 目录结构

    3、EMQ X 默认开启的 MQTT 服务 TCP 端口(需要在防火墙中添加规则,放行以下端口)

    端口说明
    1883MQTT 协议端口
    8883MQTT/SSL 端口
    8083MQTT/WebSocket 端口
    8084MQTT/WebSocket/SSL 端口
    8081管理 API 端口
    18083Dashboard 端口

  • 相关阅读:
    DOM及DOM相关操作
    SpringMVC-RESTful快速开发及案例:基于RESTful页面数据交互
    R语言使用magick包的image_scale函数对图像进行缩放(resize)、可以自定义从宽度或者高度角度进行缩放
    Next.js 入门笔记
    python3 requests中文乱码问题之压缩格式问题
    【C++实战】 语言特性
    【PCBA方案设计】快速体温计方案
    el-select 搜索无选项时 请求接口添加输入的值
    【附源码】计算机毕业设计JAVA人口老龄化常态下的社区老年人管理与服务平台
    量化金融-分类数据的检验
  • 原文地址:https://blog.csdn.net/GyaoG/article/details/124935905