前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EMQ X | 百万级的开源MQTT消息服务器(搭建一个私有MQTT服务器)

EMQ X | 百万级的开源MQTT消息服务器(搭建一个私有MQTT服务器)

作者头像
Mculover666
发布2020-07-16 11:51:41
14.2K0
发布2020-07-16 11:51:41
举报
文章被收录于专栏:TencentOS-tinyTencentOS-tiny

1. EMQ X

EMQ X 与 emqttd 的关系

EMQ X 全称 Erlang/Enterprise/Elastic MQTT Broker,它是基于 Erlang/OTP 语言平台开发,支持大规模连接和分布式集群,发布订阅模式的百万级开源 MQTT 消息服务器。

说起 EMQ-X,其它的前身就是 emqttd 消息服务器,自 emqttd 3.0 版本起更名为 EMQ-X。

EMQ X

EMQ X 支持的协议

EMQ X 消息服务器完整支持 MQTT V3.1/V3.1.1/V5.0 版本协议规范,并扩展支持 MQTT-SN 、WebSocket、CoAP、LwM2M、Stomp 以及私有 TCP/UDP 协议。

其中,MQTT-SN、CoAP 协议已在 2.0-rc.1 版本发布,LwM2M、LoRaWan 协议在 3.0 版本中发布。

EMQ X 支持的部署平台

EMQ X 的每个版本都提供如下平台的软件包:

  • Linux:CentOS、Ubuntu、Debian、FreeBSD、OpenSUSE
  • MacOS
  • Windows

部署时直接在官方下载链接[1]下载 zip 压缩包,解压后直接运行即可。

另外,EMQ X 还提供 Docker 镜像,可以在 Docker 中直接部署。

关于各个平台的部署方法,可以参考官方部署文档[2],本文中只讲述如何在 Linux 服务器上使用 zip 方式部署和使用 docker 方式部署,本文所使用的是腾讯云服务器,配置 1 核 2G,系统是 Ubuntu 18.04 64 位。

2. 使用 zip 压缩包部署

使用 v3.1.0 版本,其它高版本测试有问题!

获取 zip 包下载链接

访问官方下载链接[3],选择需要下载的版本和系统,之后复制下载链接:

获取下载链接

下载软件包

登录云服务器,使用 wget 工具下载:

代码语言:javascript
复制
wget <刚刚复制的下载链接>

比如这里我的下载命令是:

代码语言:javascript
复制
wget https://www.emqx.io/downloads/broker/v3.1.0/emqx-ubuntu18.04-v3.1.0.zip

下载zip包

解压 zip 包

zip 包需要使用 unzip 工具解压,使用如下命令查询 unzip 是否安装:

代码语言:javascript
复制
unzip -v

我的电脑上已安装,所以查询结果如图:

unzip查询结果

如果没有查询到,请使用如下命令安装:

代码语言:javascript
复制
sudo apt-get install unzip

确保已经安装 unzip 之后,解压刚刚下载的压缩包:

代码语言:javascript
复制
unzip e<按一下Tab自动补全>

解压zip包

启动 EMQ X

进入解压出的文件夹:

代码语言:javascript
复制
cd emqx

然后使用如下命令启动 emqx:

代码语言:javascript
复制
sudo ./bin/emqx start

启动成功之后如图:

启动成功

查询一下 emqx 的状态,检查一下是否真正成功启动:

代码语言:javascript
复制
sudo ./bin/emqx_ctl status

查询启动成功

特别注意:如果云服务器默认有安全组配置(阿里云),或者开启了宝塔面板,一定要记得放行如下 TCP 端口。

EMQ X 消息服务器默认占用的 TCP 端口包括:

端口

说明

1883

MQTT 协议端口

8883

MQTT/SSL 端口

8083

MQTT/WebSocket 端口

8080

HTTP API 端口

18083

Dashboard 管理控制台端口

接下来可以跳至第 4 节,登录后面控制面板。

3. 使用 docker 部署

安装 docker

参考我的博客:Docker-ce 最新版在 Ubuntu18.04 上的安装、更新、卸载方法(存储库方式)[4]。(今天的第二篇文章)

获取 docker 镜像

通过 Docker Hub 获取 docker 镜像:

代码语言:javascript
复制
sudo docker pull emqx/emqx:v3.1.0

拉取docker镜像

启动 docker 容器

使用如下命令启动 docker 容器:

代码语言:javascript
复制
sudo docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v3.1.0

启动之后如图:

启动docker容器

启动之后查看 docker 进程,检查一下是否运行:

代码语言:javascript
复制
sudo docker ps

查看docker运行进程

特别注意:如果云服务器默认有安全组配置(阿里云),或者开启了宝塔面板,一定要记得放行如下 TCP 端口。

EMQ X 消息服务器默认占用的 TCP 端口包括:

端口

说明

1883

MQTT 协议端口

8883

MQTT/SSL 端口

8083

MQTT/WebSocket 端口

8080

HTTP API 端口

18083

Dashboard 管理控制台端口

停止 docker 服务

如果不需要使用 EMQ-X,使用如下命令停止 docker 服务:

代码语言:javascript
复制
sudo docker stop <查看到的进程号>

如图:

停止docker服务

4. 访问 DashBoard 并进行简单设置

访问 DashBoard

访问http://<服务器 ip 地址或域名>:18083即可访问到 EMQ-X 的后台登录界面,使用用户名 admin 和密码 public 登录:

登录界面

登陆成功之后,后台界面如图:

后台界面

语言和主题设置

默认是英文和 dark-themes,可以在 setting 界面进行更改:

设置界面

中文界面如下:

中文界面

用户设置

刚刚登录面板使用的是默认用户名和密码,安全起见,可以在 user 界面修改:

设置用户名和密码

参考资料

[1]官方下载链接: https://www.emqx.io/cn/downloads

[2]官方部署文档: https://docs.emqx.io/broker/v3/cn/install.html

[3]官方下载链接: https://www.emqx.io/downloads/broker/v3.1.0/

[4]Docker-ce最新版在Ubuntu18.04上的安装、更新、卸载方法(存储库方式): https://blog.csdn.net/Mculover666/article/details/103642407

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Mculover666 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. EMQ X
    • EMQ X 与 emqttd 的关系
      • EMQ X 支持的协议
        • EMQ X 支持的部署平台
        • 2. 使用 zip 压缩包部署
          • 获取 zip 包下载链接
            • 下载软件包
              • 解压 zip 包
                • 启动 EMQ X
                • 3. 使用 docker 部署
                  • 安装 docker
                    • 获取 docker 镜像
                      • 启动 docker 容器
                        • 停止 docker 服务
                        • 4. 访问 DashBoard 并进行简单设置
                          • 访问 DashBoard
                            • 语言和主题设置
                              • 用户设置
                                • 参考资料
                            相关产品与服务
                            容器服务
                            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档