1.基本的安装
Apache Apollo是一个代理服务器,其是在ActiveMQ基础上发展而来的,可以支持STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets 等多种协议。更多介绍请参考Apollo官网。
安装Apollo
下载Apollo
解压
tar -zxvf apache-apollo-1.7.1-unix-distro.tar.gz
创建Broker实例
cd/var/lib${APOLLO_HOME}/bin/apollo create mybroker
一个broker实例的目录结构如下图:
bin: 一些可执行脚本
etc: 配置文件
data: 用于存储持久消息的数据文件
log: 日志轮询
日志轮询是linux中对日志文件的一种处理方式,为防止日志文件过大造成一些应用的问题。
日志轮询的原理是:按时间或者按文件大小,将日志文件更名,让应用将新的日志写入新的文件中,旧的日志文件可以设置保留一段时间以备检查。
tmp: 在broker运行之间安全删除的临时文件
执行broker
/var/lib/mybroker/bin/apollo-broker run
broker启动后,你可以执行一个样例来测试broker是否正常工作,具体参见测试broker
WEB管理
Apollo提供一个简单的web界面来监控broker运行状态,通过地址http://127.0.0.1:61680/orhttps://127.0.0.1:61681/来访问。默认登陆id和密码为'admin'和'password'。
2.一些坑
apollo-mqtt服务器的有个坑真的很神奇,你在web interface里创建topic,过一会就没了,查了全网竟然一点资料没有,看文档才发现这个,你必须要在配置文件里创建topic而且要指定auto_delete_after参数,不然就是默认30s消失。。。惊不惊喜?
我原来的理解是在服务器端创建一个topic,其实不用,这个topic是你在链接的时候可以主动创建,如果没有设备订阅也没有发布消息,那一会就消失了。这个好像和百度云不一样。
3.客户端链接代码