1、 EMQ X的简介

EMQ X 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。

Erlang/OTP是出色的软实时 (Soft-Realtime)、低延时 (Low-Latency)、分布式 (Distributed)的语言平台。

MQTT 是轻量的 (Lightweight)、发布订阅模式 (PubSub) 的物联网消息协议。

EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT连接,支持在海量物联网设备间低延时消息路由:

稳定承载大规模的 MQTT 客户端连接,单服务器节点支持50万到100万连接。
分布式节点集群,快速低延时的消息路由,单集群支持1000万规模的路由。
消息服务器内扩展,支持定制多种认证方式、高效存储消息到后端数据库。
完整物联网协议支持,MQTT、MQTT-SN、CoAP、LwM2M、WebSocket 或私有协议支持。

2、Linux下安装EMQ X

系统环境 ubuntu 14.04

2.1、安装预置条件

EMQ X 可以跨平台运行在 Linux、FreeBSD、MacOS 或 Windows 服务器甚至是树莓派上。

服务器最低配置为 512MB 内存且至少保留 1 GB 以上硬盘空间。

2.2、二进制包安装

EMQ 官网 提供热门 Linux 发行版、MacOS、Windows 操作系统以及 Docker 镜像的二进制包下载,当前支持的操作系统及平台请到官网下载页查阅。

2.3、源码编译安装

部分官网未提供二进制包的操作系统与平台如 Linux ARM、FreeBSB,可使用源码编译安装。

EMQ X 基于 Erlang/OTP 平台开发,项目托管的 GitHub 管理维护,源码编译依赖 Erlang 环境和 git 客户端。

2.4、首次安装 EMQ X

在安装 EMQ X 前,请确认安装的 前置条件 都已经满足。

版本选择

EMQ X 支持多种操作系统,请选择合适您的版本下载。

2.5 在Linux下安装

对于 Linux 发布,EMQ X 提供两种方式的安装。一是基于各 linux 发布的安装包。用安装包安装 EMQ X 以后,可以方便的使用系统管理工具来启停 EMQ X 服务。二是使用 zip 压缩打包的通用包。安装 zip 包只需解压 zip 文件即可。使用 zip 包可以实现在同一个系统下安装多套 EMQ X。在开发 / 实验室环境下使用 zip 包安装 EMQ X 非常实用。

在这里我们进入官网:https://www.emqx.io/cn/downloads#broker下载EMQ 软件包,目前 EMQ X 支持 Ubuntu 12.04、14.04、16.04 和 18.04,在这些版本上的安装过程一致。以下安装过程以 Ubuntu 14.04 为例。

使用zip包安装

解压zip文件

makun@makun:~$ unzip emqx-ubuntu14.04-v4.1.1.zip

启动以控制台调试模式 emqx,检查 EMQ X 是否可以正常启动:

cd emqx && ./bin/emqx console

如果安装成功,可以在控制台看到一下输出:

Starting emqx on node emqx@127.0.0.1
Start http:management listener on 8081 successfully.
Start http:dashboard listener on 18083 successfully.
Start mqtt:tcp listener on 127.0.0.1:11883 successfully.
Start mqtt:tcp listener on 0.0.0.0:1883 successfully.
Start mqtt:ws listener on 0.0.0.0:8083 successfully.
Start mqtt:ssl listener on 0.0.0.0:8883 successfully.
Start mqtt:wss listener on 0.0.0.0:8084 successfully.
EMQ X Broker 4.1.1 is running now!


CTRL+C 关闭控制台。守护进程模式启动:

./bin/emqx start

3、首次运行EMQ X 的简单配置

在安装以后您可以直接运行 EMQ X 来获得最初步的经验。除了在控制台,您也可以通过浏览器访问 http://127.0.0.1:18083 来使用 EMQ X 的 Web 管理控制界面。默认的登录名是 admin 和密码是 public。

通过浏览器访问 http://127.0.0.1:18083,您将看到一个 EMQ X 登录界面:

在输入用户名和密码后,你就可以使用 EMQ X Dashboard 的各项功能。在首次登录后,您看到的将是 EMQ X 控制台的信息汇总。这个页面显示了系统信息,节点信息,运行统计和一些统计指标。


你也可以对EMQ X做些简单的配置,让它适配你的运行环境和需求。

对 EMQ X 进行简单的配置

所有对 EMQ X 的配置都可以通过修改配置文件完成。配置文件的位置:

  • etc/emqx.conf : EMQ X 服务器的参数设置
  • etc/plugins/*.conf : EMQ X 插件配置文件,每个插件都有单独的配置文件。一些常用功能的配置也在 Web Dashboard 上进行修改。

更改Dashboard界面语言
在Web界面上选择toos->setting,你可以改变 Dashboard 使用的语言,点击 Apply 后生效。目前 EMQ X 支持中文和英文。

修改 Dashboard 默认登录名和密码

Dashboard 插件以 Web 界面的方式提供对 EMQ X 的管理和控制功能,是 EMQ X 的默认随系统启动的插件之一。在安装以后,您可以通过编辑配置文件的方式来改变 Dashboard 默认的用户名和密码。配置文件:

makun@makun:~$ cd emqx/etc/plugins/
makun@makun:~/emqx/etc/plugins$ vim emqx_dashboard.conf

dashboard.default_user.login = admin
dashboard.default_user.password = public


或者以 Web 方式管理 Dashboard 用户。在General->users菜单下,您可以修改用户密码和增加 / 删除用户。admin 用户只能修改密码,不能被删除。

配置端口

在安装以后,EMQ X 默认会使用以下端口:

  • 1883:MQTT协议端口
  • 8883: MQTT/SSL 端口
  • 8083: MQTT/WebSocket 端口
  • 8080: HTTP API 端口
  • 18083: Dashboard 管理控制台端口按照安装环境需要,可以修改以上端口。

修改协议端口请配置EMQ X系统配置文件‘etc/emqx.conf’,找到以下各行,并按需要修改端口号:

makun@makun:~/emqx/etc$ vim emqx.conf
listener.tcp.external = 0.0.0.0:1883
listener.ssl.external = 8883
listener.ws.external = 8083

修改 HTTP API 端口请编辑 emqx_management 插件的配置文件’etc/plugins/emqx_management.conf’,找到下述行,并按需修改端口号:

makun@makun:~/emqx/etc/plugins$ vim emqx_management.conf
management.listener.http = 8081

修改 Dashboard 管理控制台端口请编辑 emqx_dashboard 插件的配置文件’etc/plugins/emqx_dashboard.conf’, 找到下述行,并按需修改端口号:

makun@makun:~/emqx/etc/plugins$ vim emqx_dashboard.conf
dashboard.listener.http = 18083

在 Web General的 Listeners 菜单下,可以查看现在正在使用的监听器端口和属性。

启动 / 停止插件
插件是 EMQ X 的重要部分,EMQ X 的扩展功能基本都是通过插件实现的。包括 Dashbard 也是插件实现。

你可以在 Dashboard 的 plugins 菜单下启动和停止插件,或对插件进行简单的配置


EMQ X 的 Dashboard 本身也是一个插件,如果您在 Web 界面下停止了 Dashboard 插件,您将无法再使用 dashboard,直至您使用命令行工具再次启动 Dashboard。

修改 Erlang 虚拟机启动参数

EMQ X 运行在 Erlang 虚拟机上,在’etc/emqx.conf’中有两个限定了虚拟机允许的最大连接数。在运行 EMQ X 前可以修改这两个参数以适配连接需求:

makun@makun:~/emqx/etc/plugins$ vim emqx_dashboard.conf

  • node.process_limit : Erlang 虚拟机允许的最大进程数,EMQ X 一个连接会消耗 2 个 Erlang 进程;
  • node.max_ports : Erlang 虚拟机允许的最大 Port 数量,EMQ X 一个连接消耗 1 个 Port
  • 在 Erlang 虚拟机中的 Port 概念并不是 TCP 端口,可以近似的理解为文件句柄。

这两个参数可以设置为:

  • node.process_limit: 大于最大允许连接数 * 2
  • node.max_ports: 大于最大允许连接数

Linux下EMQ X的安装和配置相关推荐

  1. linux下面的j2sdk的安装和配置过程

    linux下面的j2sdk的安装和配置过程! 1.下载一个Linux Platform的JDK,建议下载RPM自解压格式的 (RPM in self-extracting file,j2sdk-1_4 ...

  2. Linux下MongoDB的入门安装、配置与启动

    Linux下MongoDB的入门安装.配置与启动 mongo非关系性数据库 查询性能好,数据性不是特别重要的情况下使用 [root@test ~]# tar xf mongodb-linux-x86_ ...

  3. Linux下Weblogic 11g R1安装和配置

    自己留着好好看看! 文章摘自 :http://blog.163.com/ng_0125@126/blog/static/170162360201311773235995/ 1.  安装前 1  确定w ...

  4. linux下 卸载qt_Ubuntu14.04安装、配置与卸载QT5的步骤详解

    1.之前我下载的是QT5.13版本但是安装结束后Qtcreator出现打不开,这里我推荐Qt5.9版本,下载网址如下: https://download.qt.io/official_releases ...

  5. linux 下 nginx phpcgi 的安装及配置

    一,什么是nginx,它有什么优点  Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. N ...

  6. Linux下Samba服务器的安装和配置

    第一步:sudo apt-get install samba smbclient 安装samba服务器. 第二步:打开/etc/samba/smb.conf文件,在末尾添加下面的字段: [用户名] c ...

  7. linux下sublime安装目录在那,linux下sublime text 3安装到配置

    1. Sublime Text 3的下载安装 到官方网站上http://www.sublimetext.com/3下载64位(系统位64位)的.deb安装包(http://c758482.r82.cf ...

  8. linux smb 服务找不到,Linux下SMB服务的安装与配置

    转自 http://hi.baidu.com/duangonghua/item/f1b3364e55fa9be81f19bc25 SMB介绍: 用于网络文件共享. 一.下载或从光盘上找到SMB服务安装 ...

  9. linux装软件需要root用户,Linux下非root用户安装软件的一般流程:

    1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar -zxvf xxx.tar.gz即可 3. 切换到解压后的目录, ...

最新文章

  1. 七个开源的 SpringBoot 前后端分离项目,Star过千,快去收藏夹吃灰吧!
  2. java open_java-OpenIMAJ Jar文件
  3. Android机器人电池插件源码
  4. 用实例讲解Spark Sreaming--转
  5. Drozer快速使用指南
  6. root cause of error messagw for a mixed usage of 01 and 03
  7. JavaScript数组sort方法(数组排序)
  8. android 队列上传图片,话说android端七牛图片上传
  9. fragment嵌套,viewpager嵌套 不能正确显示
  10. 剑指offer python实现_剑指Offer第2题详解(附Python、Java代码实现)
  11. android 加载外部矢量图SVG
  12. Altium Designer 20查找指定元器件
  13. 替罪羊树[Scapegoat Tree]
  14. 03.计算机网络--- 网络层、IP协议、手工配置IP地址
  15. Kuma是什么? Kuma1.0 GA 发布了包含70+新特性和改进
  16. Vanilla JS——最轻快的JavaScript框架
  17. android手机存储空间猛增,为什么安卓手机运行内存和储存空间增长速度这么快,什么原因呢?...
  18. H5手机休闲游戏开发商有哪些?带你看遍北京游戏研发公司
  19. Foreground-aware Pyramid Reconstruction for Alignment-free Occluded Person Re-identification
  20. python中1 is True 的结果为False,is判断与==判断的区别

热门文章

  1. 如何成为一名黑客 (英文原文 )
  2. 【AI】惠普暗夜精灵9安装Ubuntu20.04+nvidia驱动
  3. 全新混合架构iFormer!将卷积和最大池化灵活移植到Transformer
  4. 脚本进击之汉诺塔tatatata……
  5. 全能第三方支付对接pay-java-parent 2.12.7 发布,支付聚合
  6. 微信小程序富文本组件wxParse
  7. 大虎2021软件校招笔试题
  8. 读《长尾理论》后感 by 克里斯.安德森 乔江涛译
  9. 安德森:无人机未来的发展会与智能手机趋同
  10. 低代码都快烂大街了,还有人在为低代码吵架