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依赖包后重新启动即可。

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

五、EMQX命令

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

# 启动emqx
./bin/emqx start
 
# 停止emqx
./bin/emqx stop
 
# 重启emqx
./bin/emqx restart
 
# 检查运行状态
./bin/emqx_ctl status
 
# 服务卸载
./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 端口

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
要在Linux上安装MQTT,可以按照以下步骤进行操作: 1. 首先,确保你已经安装了Java Runtime Environment (JRE)。你可以使用以下命令检查是否已经安装了JRE: ``` java -version ``` 如果没有安装JRE,请根据你的Linux发行版使用适当的包管理器进行安装。例如,在Ubuntu上可以使用以下命令进行安装: ``` sudo apt-get install default-jre ``` 2. 接下来,下载并安装MQTT消息代理服务器(例如,Eclipse Mosquitto)。你可以从Mosquitto官方网站下载适用于你的Linux发行版的安装程序。 下载链接:https://mosquitto.org/download/ 选择适合你的Linux发行版的安装程序,然后按照官方提供的安装指南进行安装。 3. 安装完成后,你可以启动MQTT代理服务器。在大多数Linux发行版上,Mosquitto会自动注册为系统服务并在启动时自动运行。 如果你需要手动启动MQTT代理服务器,可以使用以下命令: ``` mosquitto ``` 或者,如果Mosquitto已注册为系统服务,则使用以下命令启动它: ``` sudo systemctl start mosquitto ``` 4. 现在,你已经成功安装和启动了MQTT代理服务器。你可以使用MQTT客户端连接到代理服务器,并开始使用MQTT协议进行通信。 你可以使用各种编程语言编写MQTT客户端,如Python、Java、JavaScript等。根据你喜欢的编程语言选择一个MQTT客户端库,并按照其文档和示例进行开发。 请注意,MQTT客户端应该连接到代理服务器的默认端口(1883),除非你在代理服务器的配置文件中进行了更改。 希望这些步骤对你有帮助!如果你有任何问题,请随时提问。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序之大道至简

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值