一、引言

随着网络的不断发展,万物互联正成为现实,但是由于受限设备和低带宽、高延迟或不可靠的网络,影响着物联网的发展的。为了解决这些问题,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.conf EMQX 配置文件
acl.conf EMQX 默认 ACL 规则配置文件
plugins/*.conf EMQX 各类插件配置文件
certs EMQX SSL 证书文件

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

data 目录

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

configs/app.*.config

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

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

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

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

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

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

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

Linux 搭建MQTT服务器相关推荐

  1. Linux搭建MQTT服务器(mosquitto)并使用

    前言 MQTT:MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟 ...

  2. Linux搭建MQTT服务器(Mosquitto)

    目录 一.安装依赖 二.下载.解压.编译.安装 三.创建软连接 四.启动服务 五.订阅.发布测试 六.权限控制 一.安装依赖 yum install gcc gcc-c++ libstdc++-dev ...

  3. linux如何搭建mqtt服务器,【MQTT】在Ubuntu下搭建MQTT服务器

    前言 博主之前写了一篇<在Windows下搭建MQTT服务器>,这次要尝试在Ubuntu下搭建MQTT服务器.实际上,下载好源码包后,后面的都和那篇文章差不多了. 开发环境 虚拟机 Ubu ...

  4. 转 【MQTT】在Windows下搭建MQTT服务器

    MQTT简介 MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放.简单.轻量.易于实现.这些特点使它适用于受限环境.该协议的特点有: 使用发布/订阅消息模式,提供 ...

  5. 【MQTT】在Windows下搭建MQTT服务器

    MQTT简介 MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放.简单.轻量.易于实现.这些特点使它适用于受限环境.该协议的特点有: 使用发布/订阅消息模式,提供 ...

  6. Ubuntu16.04LTS环境下搭建MQTT服务器以及QT实现MQTT客户端

    MQTT服务器搭建 使用EMQX搭建MQTT服务器,EMQX 4.2.14 for Ubuntu 16.04下载 下载zip包,选择安装方式为zip,cpu架构选择x86_64 按照网页的指示进行下载 ...

  7. UbuntuServer搭建MQTT服务器

    一.MQTT协议简介 MQTT 是一个基于发布/订阅模式的消息传输协议.它具有轻量级.开放.简单,易于实现,通信带宽要求低等特点.这些特点使得它对机器与机器的通信(M2M)以及物联网应用(IoT)来说 ...

  8. Linux 搭建SVN 服务器

    一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...

  9. MQTT在Windows下搭建MQTT服务器

    MQTT 在Windows下搭建MQTT服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012163234/article/details/ ...

最新文章

  1. NPM使用淘宝NPM镜像的使用方法汇总
  2. java下拉框及响应函数_Java 下拉框JComboBox和单选按钮JRadioButton简单举例使用 | 学步园...
  3. AWS DataPipline 的一次尝试。
  4. mysql5.7重新初始化_MySQl 5.7 初始化方式变更
  5. 前端技术分享:什么是MongoDB数据库?
  6. 如何降低90%Java垃圾回收时间?以阿里HBase的GC优化实践为例
  7. LeetCode.31 下一个排列
  8. Bootstrap响应式工具类
  9. 【clickhouse】clickhouse 利用Grafana与系统表监控ClickHouse查询
  10. java关闭applet_java – Applet会自动关闭
  11. IE下easyui 缓存问题
  12. OSPF 的单区域配置(以华为模拟器为例)
  13. 【青岛站】SWAT模型高阶应用暨无资料地区建模、不确定分析与气候变化、土地利用对面源污染影响模型改进及案例分析研讨
  14. Apache ShenYu源码阅读系列-Dubbo插件
  15. 免费ftp软件下载,5款免费ftp软件下载工具
  16. 天池大数据众智平台笔记SQL(一)
  17. STM32学习笔记1:STM32ZET6配置蓝牙模块
  18. html中去除浮漂有什么作用,鱼漂吃铅量大、和吃铅量小都有啥优点?
  19. 码分多址CDMA及计算(简单易懂)
  20. android 微信 备份通讯录,微信备份手机通讯录在哪?怎么用微信备份手机通讯录?...

热门文章

  1. 【教程1】Java制作国际象棋小游戏-01
  2. Autossh:自动重启ssh sessions和tunnels
  3. Activity 启动流程和 UML 时序图
  4. DCTCP之FCT优化随想
  5. Facebook发起Deepfakes检测挑战赛!悬赏1000万美元,打假AI换脸...
  6. Gitblit GO安装和设置
  7. 『Oracle数据复制容灾案例系列』中银国际证券Oracle容灾案例
  8. 气传导蓝牙耳机排行榜,2023年气传导耳机推荐这几款
  9. java-net-php-python-springboot药膳食疗系统计算机毕业设计程序
  10. OpenTSDB安装笔记