MQTT Broker 的开源实现 EMQX

发布时间: 2022-07-04 13:37:42 作者: 大象笔记

想使用 EMQX 的根本原因是,蓝牙网关上报数据推荐使用 MQTT 协议。 而这个消息量巨大,我担心扛不住腾讯云的费用。

使用 MQTT 协议的优势

但是首先,我还是想把 EMQX 的文档过一遍。之前虽然在一个项目中用过 MQTT, 可那是基于腾讯云 MQTT 实现的,担心很多概念并不清晰,还是需要看一遍文档。

EMQX 5.0 的文档地址

https://www.emqx.io/docs/zh/v5.0/

左下角可以下拉切换文档版本。

MQTT 支持 4 种传输协议

可靠性

硬件要求

最小需 2 核 4G

在线调试

打开 Dashboard,进入 问题分析 -> WebSocket 客户端 页面中可以在浏览器中使用 MQTT over WebSokcet 客户端快速接入 EMQX。 WebSocket 客户端页面为您提供了一个简易但有效的 MQTT 测试工具,它包含了连接、订阅和发布功能,同时还能查看自己发送和接收的消息数据。

Go SDK

https://www.emqx.io/docs/zh/v5.0/development/go.html

使用的代码示例:

https://github.com/emqx/MQTT-Client-Examples/tree/master/mqtt-client-Go

go client 使用账号密码发布消息的示例

认证与授权的区别

TODO

下载并安装

https://www.emqx.com/zh/try?product=broker

wget https://www.emqx.com/zh/downloads/broker/5.0.0/emqx-5.0.0-otp24.2.1-1-ubuntu20.04-amd64.tar.gz

如果遇到 1883 端口被占用的情况,排查方式参考

Dashboard 管理后台

浏览器访问:

http://localhost:18083

默认用户名是 admin,密码是 public

https://www.emqx.io/docs/zh/v4.4/getting-started/dashboard.html

如何将 Dashboard 切换为中文界面

Dashboard 中,最后一个配置项,系统设置中切换即可。

MQTT 相对 HTTP 的优势

低带宽、低功耗。MQTT 在传输报文的大小上与 HTTP 相比有巨大的优势,因为 MQTT 协议在连接建立之后,由于避免了建立连接所需要的额外的资源消耗,发送实际数据的时候报文传输所需带宽与 HTTP 相比有很大的优势,参考网上有人做的测评 (opens new window),发送一样大小的数据,MQTT 比 HTTP 少近 50 倍的网络传输数据,而且速度快了将近 20 倍。在网上有人做的另外一个评测显示 (opens new window),接收消息的场景,MQTT 协议的耗电量为 HTTP 协议的百分之一,而发送数据的时候 MQTT 协议的耗电量为 HTTP 协议的十分之一;

参考

我是一名山东烟台的开发者,联系作者