標籤:form bat pad 修改 local view 檔案 版本 define
1. 安裝啟動服務
A) 首先下載並安裝最新的 JDK(本文使用:jdk-8u66-windows-x64.exe)
B) 從官網下載最新的安裝包(本文下載版本為:http://activemq.apache.org/activemq-5143-release.html)
C) 把安裝包解壓後,在解壓目錄中找到:\bin\win64\activemq.bat (32位機器則執行相應的 win32 目錄下的 activemq.bat檔案)
以管理員身份運行 activemq.bat,出現以下完整介面即成功啟動了 ActiveMQ 服務;
開啟瀏覽器訪問 ActiveMQ 的 WEB 管理主控台:http://localhost: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, admin4 user: user, user
View Code
根據管理需要,自行配置;本文則配置為如下內容後續使用.
1 # Defines users that can access the web (console, demo, etc.)2 # username: password [,rolename ...]3 webadmin: web.admin, admin4 webuser1: user.1, user5 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 http://activemq.apache.org/configuring-transports.html 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&wireFormat.maxFrameSize=104857600"/>10 <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>11 <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>12 <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>13 <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&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 內沒有接收到某個串連發來的訊息,則自動斷開該串連;
wireFormat.maxInactivityDurationInitalDelay=10000 : 指定 "不活動連結監視器 (InactivityMonitor)" 在多長時間後啟動,在需要並發建立許多串連情境非常有效;
transport.useInactivityMonitor=true : 啟用”不活動連結監視器“,如果設定為 false,則伺服器不監控”不活動串連“;
transport.useKeepAlive=true : 如果設定為 false,則伺服器在心跳時間外沒收到資料也不會強制關閉串連;
OK,常用配置到此結束,啟動 AMQ 服務開始使用.
1 <transportConnectors>2 <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->3 <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&wireFormat.maxFrameSize=104857600&transport.defaultKeepAlive=60000&allowLinkStealing=false&transport.activeMQSubscriptionPrefetch=100&wireFormat.maxInactivityDuration=30000&wireFormat.maxInactivityDurationInitalDelay=10000&transport.useInactivityMonitor=true&transport.useKeepAlive=true"/>4 <!-- <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>-->5 <!-- <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>-->6 <!-- <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>-->7 <!-- <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>-->8 </transportConnectors>
View Code
ActiveMQ Part 1 : 基本安裝配置(windows 版本)