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
|
以上目录中,用户经常接触与使用的是 bin
、etc
、data
、log
目录。
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服务器相关推荐
- Linux搭建MQTT服务器(mosquitto)并使用
前言 MQTT:MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟 ...
- Linux搭建MQTT服务器(Mosquitto)
目录 一.安装依赖 二.下载.解压.编译.安装 三.创建软连接 四.启动服务 五.订阅.发布测试 六.权限控制 一.安装依赖 yum install gcc gcc-c++ libstdc++-dev ...
- linux如何搭建mqtt服务器,【MQTT】在Ubuntu下搭建MQTT服务器
前言 博主之前写了一篇<在Windows下搭建MQTT服务器>,这次要尝试在Ubuntu下搭建MQTT服务器.实际上,下载好源码包后,后面的都和那篇文章差不多了. 开发环境 虚拟机 Ubu ...
- 转 【MQTT】在Windows下搭建MQTT服务器
MQTT简介 MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放.简单.轻量.易于实现.这些特点使它适用于受限环境.该协议的特点有: 使用发布/订阅消息模式,提供 ...
- 【MQTT】在Windows下搭建MQTT服务器
MQTT简介 MQ 遥测传输 (MQTT) 是轻量级基于代理的发布/订阅的消息传输协议,设计思想是开放.简单.轻量.易于实现.这些特点使它适用于受限环境.该协议的特点有: 使用发布/订阅消息模式,提供 ...
- Ubuntu16.04LTS环境下搭建MQTT服务器以及QT实现MQTT客户端
MQTT服务器搭建 使用EMQX搭建MQTT服务器,EMQX 4.2.14 for Ubuntu 16.04下载 下载zip包,选择安装方式为zip,cpu架构选择x86_64 按照网页的指示进行下载 ...
- UbuntuServer搭建MQTT服务器
一.MQTT协议简介 MQTT 是一个基于发布/订阅模式的消息传输协议.它具有轻量级.开放.简单,易于实现,通信带宽要求低等特点.这些特点使得它对机器与机器的通信(M2M)以及物联网应用(IoT)来说 ...
- Linux 搭建SVN 服务器
一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository) 中 ...
- MQTT在Windows下搭建MQTT服务器
MQTT 在Windows下搭建MQTT服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012163234/article/details/ ...
最新文章
- NPM使用淘宝NPM镜像的使用方法汇总
- java下拉框及响应函数_Java 下拉框JComboBox和单选按钮JRadioButton简单举例使用 | 学步园...
- AWS DataPipline 的一次尝试。
- mysql5.7重新初始化_MySQl 5.7 初始化方式变更
- 前端技术分享:什么是MongoDB数据库?
- 如何降低90%Java垃圾回收时间?以阿里HBase的GC优化实践为例
- LeetCode.31 下一个排列
- Bootstrap响应式工具类
- 【clickhouse】clickhouse 利用Grafana与系统表监控ClickHouse查询
- java关闭applet_java – Applet会自动关闭
- IE下easyui 缓存问题
- OSPF 的单区域配置(以华为模拟器为例)
- 【青岛站】SWAT模型高阶应用暨无资料地区建模、不确定分析与气候变化、土地利用对面源污染影响模型改进及案例分析研讨
- Apache ShenYu源码阅读系列-Dubbo插件
- 免费ftp软件下载,5款免费ftp软件下载工具
- 天池大数据众智平台笔记SQL(一)
- STM32学习笔记1:STM32ZET6配置蓝牙模块
- html中去除浮漂有什么作用,鱼漂吃铅量大、和吃铅量小都有啥优点?
- 码分多址CDMA及计算(简单易懂)
- android 微信 备份通讯录,微信备份手机通讯录在哪?怎么用微信备份手机通讯录?...