Windows安装Apollo MQTT完整指南:从零搭建物联网消息服务器
很多做物联网开发、智能家居控制或者设备数据采集的朋友,都需要一个稳定的MQTT服务器。Apache Apollo是早期非常轻量的MQTT消息代理,支持MQTT、STOMP等协议,在Windows环境下搭建简单,资源占用低,特别适合个人学习、小项目测试或局域网设备通信。下面用最直白的步骤,手把手教你在Windows上把Apollo MQTT装好并跑起来。
一、先搞清楚Apollo是什么,适不适合你
Apollo本质是基于Java的消息中间件,前身和ActiveMQ有渊源。它天生支持MQTT 3.1协议,默认就能监听1883端口,配置文件清晰,启动后几乎零门槛。
注意:Apollo官方已停止大版本更新(最后稳定版约1.7.1),但用于学习、内网测试、低并发场景完全够用。如果你后期需要高并发、集群或WebSocket强支持,可再考虑EMQX、Mosquitto或ActiveMQ Artemis。本文专注Apollo的Windows安装与基础配置。
二、安装前必须准备的环境(新手最容易卡在这里)
Apollo完全依赖Java运行时,没装好Java后面全白搭。
-
下载并安装JDK
推荐使用JDK 8(兼容性最好,高版本JDK有时会报反射或模块问题)。- 去Oracle官网或国内镜像(如华为云、清华镜像)搜索“JDK 8 Windows x64”下载安装包。
- 双击安装,路径建议默认或选
C:\Program Files\Java\jdk1.8.0_xxx,记住这个路径。 - 安装时勾选“设置JAVA_HOME”如果有选项,没有就手动配。
-
配置环境变量(超级关键)
- 右键“此电脑”→属性→高级系统设置→环境变量。
- 系统变量里新建:
变量名:JAVA_HOME
变量值:你的JDK路径(例:C:\Program Files\Java\jdk1.8.0_291) - 找到
Path变量,编辑,新建两条:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin - 确定保存后,打开CMD输入
java -version和javac -version,能看到版本号就成功了。
如果提示“不是内部或外部命令”,重新检查路径有没有空格、反斜杠写错。
-
其他准备
- 电脑最好是Windows 10/11 64位,管理员权限运行后续命令。
- 关闭或临时放行防火墙1883端口(后面会说)。
- 准备一个MQTT客户端测试工具,推荐免费的MQTTX或MQTT.fx,方便验证。
三、下载Apollo安装包
- 浏览器搜索“Apache Apollo download”或直接访问Apache归档地址,下载最新可用版本(通常是
apache-apollo-1.7.1-windows-distro.zip)。 - 下载后解压到纯英文路径,强烈建议:
D:\apollo或C:\apollo(路径里千万别有中文、空格,否则脚本容易挂)。 - 解压后目录结构大致是:
bin、lib、examples、docs等。bin目录下有apollo.cmd和apollo-broker.cmd,这就是核心命令。
四、创建自己的Broker实例(真正的“安装”动作)
Apollo不是传统安装程序,而是创建实例后运行。
-
以管理员身份打开CMD(或PowerShell),进入解压目录的bin文件夹:
cd /d D:\apollo\bin -
创建broker(把mybroker换成你喜欢的名字):
apollo create mybroker命令执行后会在
D:\apollo下生成mybroker文件夹,里面包含bin、etc、data、log等。这就是你的消息服务器实例。 -
进入新创建的实例:
cd /d D:\apollo\mybroker\bin
五、配置Apollo支持MQTT(核心步骤)
默认创建的实例已经开启了MQTT,但为了稳妥和安全,我们检查并微调。
- 用记事本或VS Code打开:
D:\apollo\mybroker\etc\apollo.xml - 找到
<connector>相关部分,确认有类似这样的配置(没有就手动加):<connector id="tcp" bind="tcp://0.0.0.0:61613" /> <connector id="mqtt" bind="mqtt://0.0.0.0:1883" />0.0.0.0表示监听所有网卡,1883是MQTT标准端口。如果端口冲突可改成1884。 - 安全相关(新手先开简单模式):
找到<authentication>或用户配置部分,默认有guest用户。生产环境建议改掉默认密码,在etc\users.properties或对应文件里修改。
临时测试可以直接用匿名或默认账号。 - 保存文件。其他如内存、日志可先保持默认,后期再调。
六、启动Apollo MQTT服务
- 还是在
mybroker\bin目录下,执行:apollo-broker.cmd run或者后台运行用
apollo-broker.cmd start(Windows服务方式)。 - 看到控制台输出类似“Apollo is ready”或“Listening for connections at: mqtt://0.0.0.0:1883”,就说明启动成功。
- 保持这个黑窗口不要关(关闭就等于停服务)。想做成开机自启,可把命令写成bat脚本放到启动项,或用NSSM工具注册成Windows服务。
七、验证是否真正可用(必须做)
- 打开MQTT客户端(MQTTX为例):
- 点击连接,状态变绿就成功了。
- 再开一个客户端,一个订阅主题
test/topic,另一个发布消息,能互相收到就完美。 - 本机测试用
127.0.0.1,跨设备用局域网IP,并确保防火墙放行1883端口:- Windows防火墙→高级设置→入站规则→新建规则→端口→TCP 1883→允许连接。
八、常见问题快速排查
- 启动报Java错误:检查JAVA_HOME和Path,重启CMD再试;确认是JDK不是JRE。
- 端口被占用:
netstat -ano | findstr 1883查看占用进程,结束它或改端口。 - 客户端连不上:
- 服务是否真启动(看控制台有无报错)。
- 防火墙/杀毒软件拦截。
- 绑定地址是否写成了localhost而不是0.0.0.0。
- 检查apollo.xml有没有语法错误(XML标签要配对)。
- 日志在哪看:
mybroker\log目录下的文件,报错信息基本都在里面。 - 想停服务:在运行窗口按Ctrl+C,或执行
apollo-broker.cmd stop。
九、进阶小优化与避坑建议
- 数据持久化:默认已经开启LevelDB存储,消息掉电不丢。重要主题可在配置里调整保留策略。
- 性能微调:机器内存小的话,编辑
apollo.xml降低JVM堆大小(通过启动脚本的JAVA_OPTS)。 - 安全加强:加上SSL/TLS(需要证书)、限制连接IP、开启认证,避免公网直接暴露1883。
- 备份:定期复制整个
mybroker文件夹,尤其是data和etc。 - 多实例:可以在同一台机器创建多个broker,改不同端口即可。
- 替代提醒:如果发现Apollo启动慢或功能不够,可无缝迁移到Eclipse Mosquitto(Windows有官方安装包,配置更简单)或EMQX(有Windows二进制,管理界面漂亮)。
按照上面从Java环境→下载→创建实例→改配置→启动→测试的顺序走,基本半小时内就能把Apollo MQTT在Windows上跑通。整个过程不需要复杂编译,全是解压+命令+改配置文件,对电脑小白也非常友好。装好后就可以接上你的传感器、ESP8266、手机APP或后端程序,开始玩真正的物联网消息推送了。

还没有评论,来说两句吧...