最近在学习MQTT协议,至于MQTT协议是什么这里不再多讲,因为这篇文章的前提就是假设当你看到这篇文章时至少已经知道什么是MQTT协议了。因为相当一部分第一次接触MQTT协议的开发人员之前可能都是在Windows环境下工作,所以本文主要内容就是介绍使用Apache Apollo在Windows环境下搭建MQTT Server。
下载Apache Apollo
官网下载地址如下:
根据需要下载Windows版本,本文选用的是最新的1.7.1版本。
点击下载链接后会进入详细的下载页面,选择合适的网站镜像地址,下载并另存到本地。
安装Apollo
将下载后的安装包解压,解压后的目录包含了5个文件夹。
其中各文件夹的作用及含意:
bin:主目录,实例运行的目录
docs:帮助文档
etc:相关配置文件
examples:示例
lib:相关类库
注意:解压路径一定不能包含中文字符或空格
注意:Apollo的运行环境需要安装JDK
创建Apollo实例
进入文件夹x:\xxx\apache-apollo-1.7.1\bin(xxx表示自己的路径),在此文件夹中打开CMD命令行窗口。在窗口中输入apollo.cmd并按回车键运行。
运行成功后可以看到一些提示信息,算是对Apollo命令的使用导航。如果没有出现这些信息或者出现报错信息就有可能是前面提到的运行环境的问题。
仍然是在CMD命令行窗口中,根据上面提示的命令创建一个Apollo实例。
输入命令: apollo create brokername,其中brokername就是实例名称,可以根据个人喜好取名。我这里取名叫messagecenter。按回车键运行命令。
命令运行成功后再检查apollo的bin文件夹,就会发现下面多了一个messagecenter的文件夹,与前面取的实例名称一致。同时在CMD窗口上也有一些提示信息,大意为可以使用run命令直接运行实例或者使用install命令将实例作为Windows服务安装并使用start命令后台启动服务。
配置实例
打开apache-apollo-1.7.1\bin目录下的messagecenter文件夹即上一步创建的实例目录,这个目录包含了五个文件夹:
各文件夹的大体用途如下:
bin:实例主目录
data:数据目录
etc:配置文件
log:日志文件
tmp:临时文件
打开etc文件夹对实例进行配置。修改主要的配置文件apollo.xml。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<broker xmlns="http://activemq.apache.org/schema/activemq/apollo">
<notes>
The default configuration with tls/ssl enabled.
</notes>
<log_category console="console" security="security" connection="connection" audit="audit"/>
<authentication domain="apollo"/>
<!-- Give admins full access -->
<!--安全访问规则-->
<access_rule allow="admins" action="*"/>
<access_rule allow="*" action="connect" kind="connector"/>
<!--实例相关信息-->
<virtual_host id="messagecenter">
<!--
You should add all the host names that this virtual host is known as
to properly support the STOMP 1.1 virtual host feature.
-->
<host_name>messagecenter</host_name>
<host_name>localhost</host_name>
<host_name>127.0.0.1</host_name>
<!-- Uncomment to disable security for the virtual host -->
<!-- <authentication enabled="false"/> -->
<!-- Uncomment to disable security for the virtual host -->
<!-- <authentication enabled="false"/> -->
<access_rule allow="users" action="connect create destroy send receive consume"/>
<!-- You can delete this element if you want to disable persistence for this virtual host -->
<leveldb_store directory="${apollo.base}/data"/>
</virtual_host>
<!--管理端IP地址及端口号,可修改IP地址供局域网其他计算机访问-->
<web_admin bind="http://127.0.0.1:61680"/>
<web_admin bind="https://127.0.0.1:61681"/>
<!--对外提供服务所绑定的IP地址、端口号及连接限制-->
<connector id="tcp" bind="tcp://127.0.0.1:61613" connection_limit="2000"/>
<connector id="tls" bind="tls://127.0.0.1:61614" connection_limit="2000"/>
<connector id="ws" bind="ws://127.0.0.1:61623" connection_limit="2000"/>
<connector id="wss" bind="wss://127.0.0.1:61624" connection_limit="2000"/>
<key_storage file="${apollo.base}/etc/keystore" password="password" key_password="password"/>
</broker>
其他相关的配置文件有
black-list.txt:黑名单
groups.properties:用户组信息配置
log4j.properties :日志配置
users.properties:用户信息配置
启动实例
上一阶段的配置完成后,在目录apache-apollo-1.7.1\bin\messagecenter\bin下打开CMD命令行窗口,输入命令apollo-broker.cmd run,按下回车键启动实例。在CMD窗口中可以看到启动的输出信息。
实例启动后,打开浏览器并在地址栏中输入上一步配置的管理端地址http://127.0.0.1:61680,进入登录界面。
输入之前配置好的用户名及密码,登录进入管理端主页面。管理端页面包含了实例基本信息、连接终端信息、发布/订阅主题信息等内容。具体含义将在下阶段与客户端调试过程中说明。
以上就是在Windows环境下搭建MQTT Server的过程。每一步都是一个小的收获。