EMQX 学习总结

windows10-EMQX与MQTTX的安装及配置使用教程_emqx安装-CSDN博客

选择 MQTT Broker 时,可以考虑以下因素来决定是使用 Mosquitto 还是 EMQX

1. Mosquitto

优点:

  • 轻量级:Mosquitto 是一个非常轻量的 MQTT broker,资源占用低,非常适合嵌入式设备、小型项目或个人使用。
  • 简单易用:配置简单,易于部署和管理。对于基础的 MQTT 功能,它足够强大且易于集成。
  • 广泛支持:Mosquitto 被广泛使用,社区支持良好,有大量的文档和教程。

缺点:

  • 功能有限:Mosquitto 提供的功能比较基础,对于大规模设备连接、高级管理和监控功能的支持有限。
  • 可扩展性:在处理大规模并发连接或需要企业级功能时,Mosquitto 的性能和功能可能不够用。

适用场景:

  • 适合资源受限的环境、小型到中型的 IoT 项目。
  • 如果你的项目是一个中小型的 IoT 系统,且不需要复杂的企业级功能,Mosquitto 是一个非常好的选择。

2. EMQX

优点:

  • 高性能:EMQX 以高并发和高吞吐量著称,能够处理大量的设备连接,适合大规模 IoT 部署。
  • 丰富功能:支持高级的 MQTT 功能(如共享订阅、WebSocket 支持、规则引擎、分布式集群等),并且有内置的认证、授权和监控功能。
  • 企业级支持:提供商业版本(EMQX Enterprise),包含更多的企业级功能,如高可用性、跨数据中心同步等。

缺点:

  • 复杂性:功能强大的同时也意味着配置和管理的复杂性较高,可能需要更多的学习和设置时间。
  • 资源占用:相比 Mosquitto,EMQX 对硬件资源的需求更高,适合部署在更强大的服务器上。

适用场景:

  • 适合需要高并发、高可用性的大规模 IoT 系统。
  • 如果你的项目涉及成千上万的设备连接、需要复杂的消息路由、或者企业级的稳定性和可扩展性,EMQX 是一个更好的选择。

总结建议:

  • 如果你需要一个轻量、易用的 MQTT broker,且项目规模不大,Mosquitto 是一个很好的选择。
  • 如果你的项目涉及大规模设备、需要高性能和高可用性,或者你有企业级需求,EMQX 可能更适合。

根据你的项目需求和未来的扩展考虑,做出最适合的选择。

paho-mqtt 库仅提供了 MQTT 客户端的功能,而 MQTT 需要一个 MQTT 服务器(也叫做 MQTT broker)来进行消息的中转和发布/订阅的管理。

1. 部署 MQTT 服务器(Broker)

你需要部署一个 MQTT 服务器,常用的 MQTT broker 有以下几种选择:

  • Eclipse Mosquitto:一个轻量级且流行的开源 MQTT broker,适用于大多数应用场景。
  • HiveMQ:一个企业级的 MQTT broker,提供更多功能和扩展性。
  • EMQX:一个高性能、高可用性的开源 MQTT broker,支持大规模设备连接。
  • RabbitMQ:虽然它主要是一个消息队列系统,但它也支持 MQTT 协议。

2. 部署 Eclipse Mosquitto 作为 MQTT Broker

Linux/MacOS:

  1. 安装 Mosquitto

    对于大多数 Linux 发行版,Mosquitto 可以通过包管理器直接安装。例如,在 Ubuntu 上:

     sh 

    复制代码

    sudo apt-get update sudo apt-get install mosquitto mosquitto-clients

    对于 macOS 用户,可以使用 Homebrew 安装:

     sh 

    复制代码

    brew install mosquitto

  2. 启动 Mosquitto

    安装后,可以通过以下命令启动 Mosquitto 服务:

     sh 

    复制代码

    sudo systemctl start mosquitto sudo systemctl enable mosquitto

    在默认配置下,Mosquitto 会监听在 1883 端口上,这是 MQTT 的默认非加密端口。

  3. 配置 Mosquitto(可选):

    你可以在 /etc/mosquitto/mosquitto.conf 文件中配置 Mosquitto,例如设置认证、SSL/TLS 加密、日志级别等。

Windows:

  1. 下载 Mosquitto

    从 Mosquitto 官网 下载适用于 Windows 的安装包。

  2. 安装 Mosquitto

    按照下载包中的指示安装 Mosquitto。安装完成后,你可以通过命令行进入 Mosquitto 的安装目录,并运行以下命令启动 broker:

     cmd 

    复制代码

    mosquitto

    默认情况下,Mosquitto 也会监听 1883 端口。

3. 测试 MQTT Broker

你可以使用 Mosquitto 客户端工具来测试 MQTT Broker 是否正常工作。例如,可以使用以下命令在命令行中发布和订阅消息:

  • 发布消息

     sh 

    复制代码

    mosquitto_pub -h localhost -t "test/topic" -m "Hello MQTT"

  • 订阅消息

     sh 

    复制代码

    mosquitto_sub -h localhost -t "test/topic"

如果一切正常,订阅端会收到发布端发送的消息。

4. 配置客户端连接到 MQTT Broker

在你的客户端代码中(例如 ModbusMqttManager.cpp),你需要将 MQTT broker 的地址设置为你部署的服务器地址。例如:

 

cpp

复制代码

ModbusMqttManager manager("tcp://localhost:1883", "client_id");

如果你在远程服务器上部署了 MQTT broker,需要将 localhost 替换为该服务器的 IP 地址或域名。

5. 远程或云端 MQTT Broker 选项(可选)

如果你不希望自己部署 MQTT broker,还可以使用一些云服务提供的 MQTT broker,例如:

  • HiveMQ Cloud
  • AWS IoT Core
  • Microsoft Azure IoT Hub

这些云服务通常提供更高的可用性、扩展性,并支持全球范围的设备连接。

总结

  • Mosquitto 部署:最简单的 MQTT broker 部署方式,适合小型项目或本地测试。
  • 云端 MQTT 服务:适合需要高可用性和大规模部署的项目。
  • 客户端配置:客户端需要连接到你部署或选择的 MQTT broker。

通过这些步骤,你可以完成从客户端到服务器端的整个 MQTT 环境配置,从而实现 Modbus 数据的发布/订阅功能。

相关资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值