基于ActiveMQ的MQTT服务器搭建

之前有两章关于西门子PLC作为客户端的文章,但仅仅有客户端,没有服务端肯定是不行的,今天就来讲讲使用ActiveMQ来简单搭建MQTT服务器端的方法

下载ActiveMQ

http://activemq.apache.org/components/classic/download/
依据自己服务器的系统,选择合适的版本,我使用的是Windows server 2008,下载的最新版本5.15.11
基于ActiveMQ的MQTT服务器搭建
下来解压就好了,不需要安装,其实就是JAVA的执行程序。
基于ActiveMQ的MQTT服务器搭建
解压缩后打开文件夹呈现上图,由于是JAVA执行程序,所以我们首先需要安装JDK.

安装JDK

JDK(Java Development Kit) 是 Java 语言的软件开发工具包.
官方下载地址:
https://www.oracle.com/java/technologies/javase-downloads.html
我写博文的时候,最新版本是Java SE 13.0.2,(SE就是标准版,就下他)。
有的老司机说不要使用最新版的不稳定,那推荐Java SE 8:
https://www.onlinedown.net/soft/61003.htm
下载地址是华军,我实际部署的服务器就是使用的8.0,听老司机的,不走弯路。
如果是使用Java SE 8,那么再安装过程中有两个进程,一个是JDK,另一个是JRE,一般都选择同一个目录下安装,安装目录不能有中文以及空格(其实我测试即便有空格也没有啥影响),复制好安装目录以备后面使用。
安装过程网上有好多说明,这里就不再赘述,我们直接介绍部署JDK运行环境,为啥这个要说呢,因为网上有好多资源说明有问题,造成小白安装不能成功,我直接总结我测试成功的:
首先计算机属性:

基于ActiveMQ的MQTT服务器搭建
高级系统设置
基于ActiveMQ的MQTT服务器搭建
选择高级-环境变量
基于ActiveMQ的MQTT服务器搭建
首先再系统变量位置新建变量,“JAVA_HOME”,变量值为“C:\Program Files (x86)\Java\jdk1.8.0_73”,这个值就是你安装的JDK路径,也就是上面我让复制的安装路径。
再新建一个变量名为“CLASSPATH”,变量值为
“.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar”的变量,并确定保存,注意值内的“.;”不要漏掉,每一个符号都不能少
基于ActiveMQ的MQTT服务器搭建
修改“Path”变量
基于ActiveMQ的MQTT服务器搭建
在变量值最后加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;”注意收尾都有分号隔开
完成上面环境变量部署后,JDK算是安装完成
总结步骤,总共添加或修改了三个值:
JAVA_HOME:C:\Program Files (x86)\Java\jdk1.8.0_73
CLASSPATH:.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
PATH:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
最后可以验证下JDK是否安装完成
Shift+鼠标右击,选中“在此处打开命令窗口”
键入“javac -version”+回车
基于ActiveMQ的MQTT服务器搭建
如果像上面所示正常显示安装的JDK版本代表安装成功。

服务器部署

完成JDK就可以运行ActiveMQ部署服务器了
其实最新版本5.15.11已经部署好MQTT服务器及端口了,我们直接运行就可以
之前看其他低版本的说明资料,如果需要启动MQTT服务还需要修改配置文件,比较繁琐,所以ActiveMQ部署MQTT我建议使用最新版本,适合小白。
基于ActiveMQ的MQTT服务器搭建
打开bin文件夹
基于ActiveMQ的MQTT服务器搭建
依照自己的操作系统选择win32还是win64
基于ActiveMQ的MQTT服务器搭建
双击运行activemq,
基于ActiveMQ的MQTT服务器搭建
显示上图即表示ActiveMQ服务已经启动,至此MQTT服务部署完成,简单!
这里需要额外说明一点,不知道其他人在使用这个命令窗口的时候有没有出现不能将窗口拉宽的情况,可以看到上面窗口宽度并不能显示完整的整行信息,这对于问题诊断或者是查看部署信息很不友好,那我们该怎么办呢?
我们可以同时查看这个文件
基于ActiveMQ的MQTT服务器搭建
相当于一个LOG文件,这里你就能方便的查阅了
我们可以查看到两条有用信息
基于ActiveMQ的MQTT服务器搭建
上面一条基本意思就是MQTT使用TCP 1883端口服务,现在你可以使用内网的客户端来进行测试了,输入服务器的IP地址以及该端口号即可完成测试
下面一条意思是我们可以通过web浏览器使用该网址来使用ActiveMQ的控制台,如下图所示,已经成功连接客户端
基于ActiveMQ的MQTT服务器搭建
那问题又来了,如果我们想使用外网来访问怎么办呢?
无非就是使用动态域名以及端口映射来组态网关,当然需要配合这防火墙设置,为MQTT开绿灯。这里不是本章的重点,有需要了解的可以给我留言。
其实我搭建的就是公网服务器,内网仅测试用,没有实际使用意义。服务器在福建,客户端在河北测试的,最终效果令人满意,速度很快。完美!
我使用的服务器是实体机,当然你也可以考虑将服务器搭建在云平台上,同样方法。