EMQX 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器,目前广泛应用于全球各行业物联网平台建设中。其设计目标是实现高可靠承载海量物联网终端的 MQTT 连接,支持在海量物联网设备间低延时消息路由。

本文将以 EMQX v4.3.10(开源版)为例,介绍 EMQX 在 Docker、Kubernetes、Windows 和 Linux 上的安装方法以及常见问题,为大家利用 MQTT 消息服务器快速搭建物联网平台提供帮助。

安装前检查

绝大多数情况下操作系统的环境依赖、监听端口都不会出现问题,测试环境下可以直接安装启动,EMQX 会检查可能存在的问题并停止启动、报出错误。

但是我们仍然建议当生产环境存在升级 EMQX 版本、升级其他服务等环境变动之后,再次启动 EMQX 前务必进行测试和检查,避免产生不必要的损失。

检查环境依赖

常见的由于环境依赖导致的问题如下:

  • OpenSSL 版本不正确:常见于 CentOS 系统上,需要更新 OpenSSL 版本
  • 缺失 MSVCRxxx.dll 文件:Windows 系统特有,需要安装对应的依赖库
  • 安装包与操作系统不符:EMQX 需要对应操作系统和版本下载,否则无法启动并报 cannot execute binary file 错误

更多的问题和解决方法详见:EMQX - 常见错误

检查端口占用

端口占用会导致 EMQX 无法启动或部分功能异常,常见的症状有:

  • 执行 emqx start 时提示启动超时
  • 无法打开 Dashboard 或打开后一直报 404 Not Found 错误

出现以上情况,可以使用 emqx console 命令启动 EMQX,console 模式下可以打印详细的错误日志。

EMQX 默认情况下监听以下端口:

端口 说明
集群通信
4369-4380 集群通信
5370-5380 集群 RPC 通信
协议接入
1883 MQTT 协议端口
11883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
5683 LwM2M 端口
管理监控
8081 HTTP API 端口
18083 Dashboard 管理控制台端口

使用 Docker 安装 EMQX

使用 Docker 不需要建立安装运行环境,可以更快安装启动 EMQX,Docker 安装教程请见 Install Docker Engine 。

运行单个 EMQX 节点

Docker 安装完成之后,可以通过 Docker Hub 获取 EMQX 镜像:

docker pull emqx/emqx:4.3.10

启动 Docker 容器,建立端口映射:

docker run -d --name emqx \-p 1883:1883 \-p 8081:8081 \-p 8083:8083 \-p 8084:8084 \-p 8883:8883 \-p 18083:18083 \
emqx/emqx:4.3.10

启动成功之后,访问 Dashboard 管理控制台 http://localhost:18083。

docker-compose 简单集群

通过 docker-compose 可以在本地快速创建 EMQX 集群。

创建 docker-compose.yaml 文件:

version: '3'services:emqx1:image: emqx/emqxenvironment:- "EMQX_NAME=emqx"- "EMQX_HOST=node1.emqx.io"- "EMQX_CLUSTER__DISCOVERY=static"- "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"healthcheck:test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]interval: 5stimeout: 25sretries: 5networks:emqx-bridge:aliases:- node1.emqx.ioemqx2:image: emqx/emqxenvironment:- "EMQX_NAME=emqx"- "EMQX_HOST=node2.emqx.io"- "EMQX_CLUSTER__DISCOVERY=static"- "EMQX_CLUSTER__STATIC__SEEDS=emqx@node1.emqx.io, emqx@node2.emqx.io"healthcheck:test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]interval: 5stimeout: 25sretries: 5networks:emqx-bridge:aliases:- node2.emqx.ionetworks:emqx-bridge:driver: bridge

启动 docker-compose 集群:

docker-compose -p my_emqx up -d

查看集群:

docker exec -it my_emqx_emqx1_1 sh -c "emqx_ctl cluster status"
Cluster status: #{running_nodes => ['emqx@node1.emqx.io','emqx@node2.emqx.io'],stopped_nodes => []}

在 Kubernetes 上安装 EMQX

EMQX Kubernetes Operator 是 EMQ 推出的一种封装、部署和管理 EMQX 的方法,也是一个特定的应用控制器,允许 DevOps 人员在 Kubernetes 上编排 EMQX 集群,管理他们的生命周期。

EMQX Kubernetes Operator 可以帮助用户在 Kubernetes 的环境上快速创建和管理 EMQX 集群,不仅极大简化部署和管理流程,也降低了管理和配置的专业技能要求。

它将使部署和管理工作变成一种低成本、标准化、可重复性的能力,高效实现集群扩容、无缝升级、故障处理和统一监控。

详细的部署和使用方式请查看:https://github.com/emqx/emqx-operator。

在 Windows 上安装 EMQX

EMQX 生产部署建议使用 Linux 服务器,不推荐 Windows 服务器,EMQX 企业版中没有提供 Windows 版本,如需测试可以使用 Docker 或者虚拟机的方式安装。

通过 EMQX 下载页面 下载要安装的 EMQX 版本的 ZIP 包,解压安装包后,使用命令行进入解压目录运行即可:

cd D:\emqx.\bin\emqx start

在 Linux 上安装 EMQX

Linux 一键安装

EMQX 提供一键安装脚本进行安装,脚本将自动识别并下载对应操作系统的安装包进行安装:

curl https://repos.emqx.io/install_emqx.sh | bash

Linux 二进制包安装

通过 EMQX 下载页面 下载要安装的 EMQX 版本的 ZIP 包,解压程序包后,使用命令行进入解压目录运行即可:

cd /opt/emqx
./bin/emqx start

yum 包管理工具安装

安装所需要的依赖包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

使用以下命令设置稳定存储库,以 CentOS 7 为例

sudo yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/7/emqx-ce.repo

安装最新版本的 EMQX

sudo yum install emqx

MQTT 服务器搭建:EMQX 安装指南和常见问题相关推荐

  1. 一步一步来:MQTT服务器搭建、MQTT客户端使用

    物联网应用如火如荼,本文就物联网应用中最受青睐的协议 MQTT相关测试工具的使用进行简单说明. 希望此文能给需要用到的朋友一些微薄的帮助-- 一.MQTT服务器( emqx )搭建 1. 下载服务器M ...

  2. 基于ZigBee的智能家居设计与实现—MQTT服务器搭建+APP开发

    目录 MQTT服务器搭建 APP开发 易安卓环境搭建 易安卓基础介绍 关于易安卓 新建工程 界面介绍 易安卓使用到的操作演示 易语言使用到的语法演示 MQTT实现 MQTT组件介绍与添加 重点介绍 A ...

  3. 从零开始开发物联网项目(1)——mqtt服务器搭建

    去年开发了一个物联网的项目,入了很多坑,花了很多时间,不过最后终于做出了一个初代版本,也算完成了项目.为了避免自己遗忘,也为了让有兴趣学习物联网的同学少入点坑,我整理了一下,写成一个系列教程.通过这个 ...

  4. Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试

    场景 MQTT协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的" ...

  5. MQTT服务器搭建和测试步骤及遇见的问题

    MQTT服务器搭建和测试步骤及遇见的问题 前言:MQTT服务器有好多种,查看:Servers/Brokers Apache-Apollo:一个代理服务器,在ActiveMQ基础上发展而来,可以支持ST ...

  6. Mqtt开发笔记:Mqtt服务器搭建

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...

  7. 阿里云MQTT服务器搭建与测试(全图文,非常详细)

    阿里云MQTT服务器搭建与测试 一. MQTT概念 二. 阿里云MQTT服务器搭建 1 阿里云平台注册及认证 2 添加平台 2 创建产品与设备 获取MQTT连接相关信息 三.MQTT.fx测试 1 M ...

  8. MQTT服务器搭建与试用,桌面工具连接MQTT服务器

    简介 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽.不可靠的网络的进行远程传感器和控制设备通 ...

  9. mosquito编译、交叉编译和mqtt服务器搭建

    1.下载mosquitto源码 官网下载地址:https://mosquitto.org/download/ 选择最新的1.5.5.版本下载. 2.编译 解压源码包: # tar axvf mosqu ...

最新文章

  1. 各类web服务器 http access log获取用户和代理ip
  2. gui - tkinter 开发
  3. 百度前端技术学院html任务,重回百度前端技术学院第一天 HTML复习
  4. [LeetCode]Merge Intervals
  5. 抖音是用python写的吗_用 Python 实现抖音尬舞机
  6. 查找窗口隐藏了怎么办_如何还原U盘隐藏空间 U盘隐藏空间还原方法【详解】
  7. 如何理解VMware内存资源管理
  8. MVC 模式/Servlet/JSP 编译原理剖析:Servlet 组件到底属于 MVC 模式的哪一层?
  9. Kubernetes 弃用 Docker !
  10. sqlserver卸载不完全导致安装失败
  11. SQL server 2005下载地址
  12. 多数据源的配置,详细(新手,错误之处,请指正)
  13. 金蝶专业版怎么反过账当月_金蝶KIS专业版没有反过账功能,怎么反过账
  14. iso硬盘安装 凤凰os_虚拟机安装凤凰系统(PhoenixOS)教程
  15. 《德鲁克管理思想精要》读书笔记4 - 企业诊断工具与目标管理
  16. java-php-python-宠物救助网站的设计与实现计算机毕业设计
  17. 如何制作并使用python发布的模块压缩包和whl包,并进行pip安装和使用教程,加上传Pypi,上传之后又如何增删whl项目
  18. 把图片转成像素点保存到Excel中
  19. 生物信息学必备网站大全
  20. 开心消消乐java下载_开心消消乐下载_开心消消乐下载最新iPhone版-太平洋下载中心...

热门文章

  1. 玩转人工智能中的机器学习之精品课程
  2. MDI Jade的基本使用方法
  3. 无限城为什么服务器繁忙,《鬼灭之刃》感觉鬼灭剧情有好多bug啊,比如原炎柱水柱为什么就在无限城篇...
  4. 【Git CMD】Git常用命令总结
  5. 编写python程序半径为2.11的圆球的体积_医学生理学(山东大学)知到智慧树题目答案...
  6. pyplot画图汇总
  7. Secure Shell概述
  8. mysql错误代码: 1060 Duplicate column name ‘sno‘
  9. mysql同步详解_MYSQL 主从同步详解
  10. 电气仪表、电表检测、表计检测图像数据集(含VOC标签,3000多张图像,网盘下载链接)