Windows本地部署mqtt服务器+阿里云 (MQTT Broker :EMQX)

本文介绍如何在阿里云服务器上部署MQTT服务器,并使用emqx作为消息代理。文章涵盖服务器购买、安全组设置、emqx安装启动及调试工具mqttfx使用等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

💦第一、购买阿里云服务器

阿里云服务器购买

在这里插入图片描述
我买的是共享n4
在这里插入图片描述

💦第二、阿里云设置安全组

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 1883 端口(MQTT/TCP 协议端口)
  • 8083 端口(MQTT/WebSocket 调试工具的端口)
  • 18083 端口(网页控制台)

💦第三、本地下载和启动emqx

emqx下载网址
在这里插入图片描述
下载好以后打开下载目标文件:
在这里插入图片描述
输入命令:

$ emqx start

其他命令可查看
详细命令点这个跳转在这里插入图片描述
如果有问题请通过管理员权限打开cmd或者powershell在进行输入
在这里插入图片描述
退回到上一层就是成功了,如果不放心可以输入命令:

emqx_ctl status

在这里插入图片描述
然后我们就可以登录emqx网页后台管理界面去管理mqtt服务器。

还记得一开始记得的那个ip公网地址吧,输入 公网+18083
例如:
在这里插入图片描述
默认的登录账号为admin密码是public

回车访问就到了界面了。
在这里插入图片描述
这样之后就可以进行调试订阅和发布了

💦第四、mqttfx调试

我的调试工具用的是mqttfx
下载地址:

http://www.jensd.de/apps/mqttfx/1.7.1/

新的收费哦
然后傻瓜式下一步
安装好点开这个
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
然后你就可和网页端交互,订阅发布了
over

💦第五、所遇问题解决

结束但是还没有完全结束
我遇到的问题是

我安全组都打开了,为啥公网加18083进不去??

关于这个问题我咨询阿里工程师,十分感谢他的耐心指导
解决方法:
在这里插入图片描述

这边执行下下面的命令,放行下18083端口,再去访问试试:

1、firewall-cmd --zone=public --add-port=18083/tcp --permanent 

2、firewall-cmd --reload

在这里插入图片描述

如果1883也不能访问:
参考下文提示:(再次感谢阿里工程师)
在这里插入图片描述

### EMQX 部署方法概述 EMQX 是一款高性能的开源 MQTT 消息代理,支持多种部署方式以满足不同的需求。以下是几种常见的部署方案及其具体操作: #### 1. 使用 Kubernetes 部署 EMQX Kubernetes 提供了一种强大的容器编排工具来管理大规模分布式系统中的应用程序。通过安装 **EMQX Operator** 可以简化 EMQX 的管理和扩展。 - 安装 EMQX Operator: 运行以下命令可以将 EMQX Operator 添加到您的 Kubernetes 环境中[^1]。 ```bash kubectl apply -f https://raw.githubusercontent.com/emqx/emqx-operator/main/deploy/all-in-one.yaml ``` - 创建 EMQX 实例: 使用自定义资源(CRD)创建一个 EMQX 集群实例。可以通过 YAML 文件定义集群参数并应用它。 ```yaml apiVersion: apps.emqx.io/v3 kind: EmqxBroker metadata: name: emqx-sample spec: image: emqx/emqx:latest replicas: 3 ``` 应用此文件: ```bash kubectl apply -f emqx-instance.yaml ``` --- #### 2. Docker 单节点快速部署 对于测试环境或者小型项目来说,使用 Docker 来运行单节点 EMQX 是最简单的方式之一。 - 拉取最新版本镜像: 执行以下命令下载官方发布的 EMQX Docker 镜像[^2]。 ```bash docker pull emqx/emqx:latest ``` - 启动容器: 下载完成后启动容器即可访问默认端口上的服务。 ```bash docker run -d --name emqx \ -p 1883:1883 \ -p 8083:8083 \ -p 8084:8084 \ -p 8883:8883 \ -p 18083:18083 \ emqx/emqx:latest ``` --- #### 3. Helm Chart 部署 EMQX 集群 如果希望更灵活地定制化配置,则可以选择利用 Helm 工具来进行自动化部署过程。 - Pull Helm chart 到本地机器上,并将其打包成 tarball 文件形式以便后续上传至远程仓库[^4]。 ```bash helm pull emqx/emqx --version 5.2.1 ``` - 初始化 Helm release 参数设置后执行 install 命令完成整个流程。 ```bash helm install my-emqx-release ./emqx-5.2.1.tgz ``` --- #### 4. 其他注意事项 无论采用哪种方式进行实际生产环境中实施之前都需要考虑安全性因素比如认证授权机制以及网络隔离策略等方面的内容[^3]。 ```python # Python 示例代码片段展示如何连接到已部署好的 broker 上发送消息 import paho.mqtt.client as mqtt def on_connect(client, userdata, flags, rc): print("Connected with result code "+str(rc)) client = mqtt.Client() client.on_connect = on_connect client.connect("localhost", 1883, 60) client.publish("test/topic", "Hello from Python!") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值