大家好,又见面了,我是你们的朋友全栈君。
搭建过程
想搭建一个MQTT服务器,刚好找到Apache ActiveMQ Artemis支持,而且是基于Java开发的,那跨平台就很方便。
以下是在Windows7(64位)系统下搭建:
下载
首先下载Apache ActiveMQ Artemis,官方地址: https://activemq.apache.org/components/artemis/download/
下载bin包就可以
安装
随便解压Z:\apache-artemis-2.9.0
创建
使用cmd命令行进入cd->Z:\apache-artemis-2.9.0\bin目录
执行: artemis create Z:\my_artemis 回车 (Z:\my_artemis是你需要搭建服务存放的路径)
创建过程中需要设置管理员帐号和密码
Bash
Z:\apache-artemis-2.9.0\bin>artemis create Z:\my_artemis
Warning: JAVA_HOME environment variable is not set.
Creating ActiveMQ Artemis instance at: Z:\my_artemis
–user: is a mandatory property!
Please provide the default username:
admin
–password: is mandatory with this configuration:
Please provide the default password:
–allow-anonymous | –require-login: is a mandatory property!
Allow anonymous access?, valid values are Y,N,True,False
Y
Auto tuning journal …
done! Your system can make 17.86 writes per millisecond, your journal-buffer-tim
eout will be 56000
You can now start the broker by executing:
“Z:\my_artemis\bin\artemis” run
Or you can setup the broker as Windows service and run it in the background:
“Z:\my_artemis\bin\artemis-service.exe” install
“Z:\my_artemis\bin\artemis-service.exe” start
To stop the windows service:
“Z:\my_artemis\bin\artemis-service.exe” stop
To uninstall the windows service
“Z:\my_artemis\bin\artemis-service.exe” uninstall
Z:\apache-artemis-2.9.0\bin> artemis-service install回车
启动
切换到你创建服务的bin目录cd->Z:\my_artemis\bin
执行
Bash
artemis run
Bash
Z:\my_artemis\bin>artemis run 回车
Warning: JAVA_HOME environment variable is not set.
_ _ _
/ \ ____| |_ ___ __ __(_) _____
/ _ | _ \ |/ _ \ / | |/ /
/ ___ \ | / |/ / |/| | |_
// _| __|| |||/ /
Apache ActiveMQ Artemis 2.9.0
2019-08-29 12:29:35,731 INFO [org.apache.activemq.artemis.integration.bootstrap
] AMQ101000: Starting ActiveMQ Artemis Server
2019-08-29 12:29:36,207 INFO [org.apache.activemq.artemis.core.server] AMQ22100
0: live Message Broker is starting with configuration Broker Configuration (clus
tered=false,journalDirectory=data/journal,bindingsDirectory=data/bindings,largeM
essagesDirectory=data/large-messages,pagingDirectory=data/paging)
2019-08-29 12:29:36,243 INFO [org.apache.activemq.artemis.core.server] AMQ22101
3: Using NIO Journal
2019-08-29 12:29:36,288 INFO [org.apache.activemq.artemis.core.server] AMQ22105
7: Global Max Size is being adjusted to 1/2 of the JVM max size (-Xmx). being de
fined as 536,870,912
2019-08-29 12:29:36,318 INFO [org.apache.activemq.artemis.core.server] AMQ22104
3: Protocol module found: [artemis-server]. Adding protocol support for: CORE
2019-08-29 12:29:36,319 INFO [org.apache.activemq.artemis.core.server] AMQ22104
3: Protocol module found: [artemis-amqp-protocol]. Adding protocol support for:
AMQP
2019-08-29 12:29:36,320 INFO [org.apache.activemq.artemis.core.server] AMQ22104
3: Protocol module found: [artemis-hornetq-protocol]. Adding protocol support fo
r: HORNETQ
2019-08-29 12:29:36,322 INFO [org.apache.activemq.artemis.core.server] AMQ22104
3: Protocol module found: [artemis-mqtt-protocol]. Adding protocol support for:
MQTT
2019-08-29 12:29:36,324 INFO [org.apache.activemq.artemis.core.server] AMQ22104
3: Protocol module found: [artemis-openwire-protocol]. Adding protocol support f
or: OPENWIRE
2019-08-29 12:29:36,325 INFO [org.apache.activemq.artemis.core.server] AMQ22104
3: Protocol module found: [artemis-stomp-protocol]. Adding protocol support for:
STOMP
2019-08-29 12:29:36,403 INFO [org.apache.activemq.artemis.core.server] AMQ22103
4: Waiting indefinitely to obtain live lock
2019-08-29 12:29:36,404 INFO [org.apache.activemq.artemis.core.server] AMQ22103
5: Live Server Obtained live lock
2019-08-29 12:29:36,533 INFO [org.apache.activemq.artemis.core.server] AMQ22108
0: Deploying address DLQ supporting [ANYCAST]
2019-08-29 12:29:36,546 INFO [org.apache.activemq.artemis.core.server] AMQ22100
3: Deploying ANYCAST queue DLQ on address DLQ
2019-08-29 12:29:36,612 INFO [org.apache.activemq.artemis.core.server] AMQ22108
0: Deploying address ExpiryQueue supporting [ANYCAST]
2019-08-29 12:29:36,614 INFO [org.apache.activemq.artemis.core.server] AMQ22100
3: Deploying ANYCAST queue ExpiryQueue on address ExpiryQueue
2019-08-29 12:29:37,239 INFO [org.apache.activemq.artemis.core.server] AMQ22102
0: Started NIO Acceptor at 0.0.0.0:61616 for protocols [CORE,MQTT,AMQP,STOMP,HOR
NETQ,OPENWIRE]
2019-08-29 12:29:37,254 INFO [org.apache.activemq.artemis.core.server] AMQ22102
0: Started NIO Acceptor at 0.0.0.0:5445 for protocols [HORNETQ,STOMP]
2019-08-29 12:29:37,268 INFO [org.apache.activemq.artemis.core.server] AMQ22102
0: Started NIO Acceptor at 0.0.0.0:5672 for protocols [AMQP]
2019-08-29 12:29:37,282 INFO [org.apache.activemq.artemis.core.server] AMQ22102
0: Started NIO Acceptor at 0.0.0.0:1883 for protocols [MQTT]
2019-08-29 12:29:37,296 INFO [org.apache.activemq.artemis.core.server] AMQ22102
0: Started NIO Acceptor at 0.0.0.0:61613 for protocols [STOMP]
2019-08-29 12:29:37,297 INFO [org.apache.activemq.artemis.core.server] AMQ22100
7: Server is now live
2019-08-29 12:29:37,298 INFO [org.apache.activemq.artemis.core.server] AMQ22100
1: Apache ActiveMQ Artemis Message Broker version 2.9.0 [0.0.0.0, nodeID=9b68041
2-ca15-11e9-8d81-0a0027000010]
2019-08-29 12:29:37,675 INFO [org.apache.activemq.hawtio.branding.PluginContext
Listener] Initialized activemq-branding plugin
2019-08-29 12:29:37,814 INFO [org.apache.activemq.hawtio.plugin.PluginContextLi
stener] Initialized artemis-plugin plugin
2019-08-29 12:29:39,125 INFO [io.hawt.HawtioContextListener] Initialising hawti
o services
2019-08-29 12:29:39,151 INFO [io.hawt.system.ConfigManager] Configuration will
be discovered via system properties
2019-08-29 12:29:39,156 INFO [io.hawt.jmx.JmxTreeWatcher] Welcome to hawtio 1.5
.5 : http://hawt.io/ : Don’t cha wish your console was hawt like me? ?
2019-08-29 12:29:39,161 INFO [io.hawt.jmx.UploadManager] Using file upload dire
ctory: Z:\my_artemis\tmp\uploads
2019-08-29 12:29:39,195 INFO [io.hawt.web.AuthenticationFilter] Starting hawtio
authentication filter, JAAS realm: “activemq” authorized role(s): “amq” role pr
incipal classes: “org.apache.activemq.artemis.spi.core.security.jaas.RolePrincip
al”
2019-08-29 12:29:39,263 INFO [io.hawt.web.JolokiaConfiguredAgentServlet] Joloki
a overridden property: [key=policyLocation, value=file:/Z:/my_artemis/etc/\jolok
ia-access.xml]
2019-08-29 12:29:39,442 INFO [io.hawt.web.RBACMBeanInvoker] Using MBean [hawtio
:type=security,area=jmx,rank=0,name=HawtioDummyJMXSecurity] for role based acces
s control
2019-08-29 12:29:39,903 INFO [io.hawt.system.ProxyWhitelist] Initial proxy whit
elist: [localhost, 127.0.0.1, 192.168.5.12, zhong-pc, 192.168.56.1]
2019-08-29 12:29:40,428 INFO [org.apache.activemq.artemis] AMQ241001: HTTP Serv
er started at http://localhost:8161
2019-08-29 12:29:40,429 INFO [org.apache.activemq.artemis] AMQ241002: Artemis J
olokia REST API available at http://localhost:8161/console/jolokia
2019-08-29 12:29:40,430 INFO [org.apache.activemq.artemis] AMQ241004: Artemis C
onsole available at http://localhost:8161/console
安装为系统服务方式
Bash
服务安装
artemis-service install
服务启动
artemis-service start
服务卸载
sc delete <服务名>
管理:
主页:http://localhost:8161
管理地址:http://localhost:8161/console
登录用户名密码则是在上方创建时用户自己设置的用户名和密码
测试方法:
mqtt.fx的安装和使用
MQTT.fx 是目前主流的mqtt客户端,可以快速验证是否可以与IoT Hub 服务交流发布或订阅消息。设备将当前所处的状态作为MQTT主题发送给IoT Hub,每个MQTT主题topic具有不同等级的名称,如“建筑/楼层/温度。” MQTT代理服务器将接收到的主题topic发送给给所有订阅的客户端。
目前最新版下载地址(支持windows,linux,mac)
http://www.jensd.de/apps/mqttfx/1.5.0/
mqtt.fx的使用
打开软件,打开时会提示有更新,最好别点击yes,会报错,然后用不了。
想更新就从上面的网址查看是否有新版本
打开配置,首先配置MQTT 代理
接着回到主界面,点击connect连接到MQTT 代理服务器上,就可以进行订阅和发布消息测试了。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146100.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...