ActiveMQ Part 1 : 基本安装配置(windows 版本)

时间:2022-04-15 07:08:13

C) 把安装包解压后,在解压目录中找到:\bin\win64\activemq.bat (32位机器则执行相应的 win32 目录下的 activemq.bat文件)

以管理员身份运行 activemq.bat,出现以下完整界面即成功启动了 ActiveMQ 服务;

打开浏览器访问 ActiveMQ 的 WEB 管理控制台::8161/admin/ (默认登陆用户名密码为:admin/admin)

2. 基础配置

A) 启用 Debug 日志(方便安装配置过程发现更详细的问题):打开 \conf\log4j.properties,在文件中增加:log4j.logger.org.apache.activemq=DEBUG ,并重启控制台程序生效;

这样在日志中就会输出 DEBUG 类型的日志.

B) WEB 控制台权限配置:打开 \conf\jetty-realm.properties 文件,可以修改角色、用户名、密码,或增加用户;修改后重启控制台方生效; 

1 # Defines users that can access the web (console, demo, etc.) 2 # username: password [,rolename ...] 3 admin: admin, admin 4 user: user, user

View Code

根据管理需要,自行配置;本文则配置为如下内容后续使用.

1 # Defines users that can access the web (console, demo, etc.) 2 # username: password [,rolename ...] 3 webadmin: web.admin, admin 4 webuser1: user.1, user 5 webuser2: user.2, user

View Code

C) 配置启动协议:默认所有 ActiveMQ 支持的协议均会被启动,本文主要启动 mqtt 协议,打开文件:\conf\activemq.xml;

找到如下配置,并删除或注释掉以上的其它协议,仅留下 mqtt 协议;

1 <!-- 2 The transport connectors expose ActiveMQ over a given protocol to 3 clients and other brokers. For more information, see: 4 5 6 --> 7 <transportConnectors> 8 <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> 9 <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 10 <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 11 <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 12 <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 13 <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/> 14 </transportConnectors>

View Code

D) MQTT协议设置:ActiveMQ 根据上述配置的协议来启动监听服务,可以通过增加以下配置来丰富 mqtt 协议的功能;

maximumConnections=1000&wireFormat.maxFrameSize=104857600 : 为了防止 DOS 攻击,并发连接及最大的传输容量限制(最大容量: 256MB);

transport.defaultKeepAlive=60000 : 配置服务器的默认心跳;默认情况为:假设客户端心跳时间为 10s,服务端对该连接的检测时间则为:10*1.5=15s;

allowLinkStealing=false : 如果有两个或以上的连接使用了相同的 CilentID,则视为盗链;服务器将强制关闭旧的连接(从日志可以看到以下信息)

WARN  | Stealing link for clientId PUBSameID-001 From Connection 

transport.activeMQSubscriptionPrefetch=100 : 如果订阅端的处理能力较强,这个值越大越好,即服务端将预取多少消息量传递给订阅端;

这个设置需要评估订阅端的最低处理能力,并根据服务器性能来配置;

以下4个配置为许多案例下的最佳配置:

wireFormat.maxInactivityDuration=30000 : 如果服务器在 30s 内没有接收到某个连接发来的消息,则自动断开该连接;