Activemq控制檯的獨立部署

Apache Activemq是一個高性能的開源消息隊列。在啓動它的時候,會自動啓動一個自帶的Web控制檯,通過控制檯可以查看當前Activemq服務器的情況,包括隊列、主題、連接、訂閱者等。這個控制檯是通過嵌入式的Jetty容器啓動的。
不過有時候我們可能需要獨立部署Web控制檯,比如在Tomcat中通過插件形式啓動Activemq,此時無法通過嵌入Jetty容器的方式啓動Web控制檯(因爲Tomcat和Jetty不兼容)。此時可以按照如下方式獨立部署Web控制檯。

抽取控制檯代碼

首先從官網下載Activemq的源代碼,我下載的是5.15.5版本。之後從中拷貝出activemq-web-console子模塊,作爲一個獨立項目。
在這裏插入圖片描述

從idea啓動項目

可以通過intellij idea從activemq-web-console目錄新建項目,注意選擇maven類型項目。之後等待maven自動下載所需依賴完畢。打開pom.xml,註釋掉下面的配置

<!--      <plugin>-->
<!--          <groupId>${jetty.maven.groupid}</groupId>-->
<!--        <artifactId>jetty-maven-plugin</artifactId>-->
<!--        <version>${jetty-version}</version>-->
<!--        <configuration>-->
<!--          <connectors>-->
<!--            <connector implementation="org.eclipse.jetty.server.ServerConnector">-->
<!--              <port>${jetty.port}</port>-->
<!--              <maxIdleTime>60000</maxIdleTime>-->
<!--            </connector>-->
<!--          </connectors>-->

<!--          <webAppConfig>-->
<!--            <contextPath>/</contextPath>-->
<!--          </webAppConfig>-->

<!--          <systemProperties>-->
<!--            &lt;!&ndash; enable easy connection to JConsole &ndash;&gt;-->
<!--            <systemProperty>-->
<!--              <name>com.sun.management.jmxremote</name>-->
<!--              <value />-->
<!--            </systemProperty>-->

<!--            &lt;!&ndash; Start an own broker &ndash;&gt;-->
<!--            <systemProperty>-->
<!--              <name>webconsole.type</name>-->
<!--              <value>embedded</value>-->
<!--            </systemProperty>-->
<!--            <systemProperty>-->
<!--                <name>activemq.data</name>-->
<!--                <value>${project.build.directory}/activemq-data</value>-->
<!--            </systemProperty>-->

<!--            &lt;!&ndash;-->
<!--               Use the following configuration to connect to a remote broker using JMX-->
<!--                        <systemProperty>-->
<!--                          <name>webconsole.type</name>-->
<!--                          <value>properties</value>-->
<!--                        </systemProperty>-->
<!--                        <systemProperty>-->
<!--                          <name>webconsole.jms.url</name>-->
<!--                          <value>tcp://localhost:61616</value>-->
<!--                        </systemProperty>-->
<!--                        <systemProperty>-->
<!--                          <name>webconsole.jmx.url</name>-->
<!--                          <value>service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi</value>-->
<!--                        </systemProperty>-->
<!--            &ndash;&gt;-->
<!--          </systemProperties>-->
<!--          <scanIntervalSeconds>10</scanIntervalSeconds>-->
<!--        </configuration>-->
<!--      </plugin>-->

因爲我們使用Tomcat啓動項目,所以不需要這個Jetty相關的插件。

配置Tomcat

配置Tomcat容器啓動項,如下圖所示

在這裏插入圖片描述

運行項目,會報一個異常,是因爲缺少jstl的jar包導致,可以從maven中央倉庫下載jar包,並放到Tomcat的lib目錄中。再次啓動之後會打開瀏覽器,顯示如下畫面

在這裏插入圖片描述

可見項目啓動成功。可以在本地啓動一個Activemq服務,並通過這個控制檯查看服務的運行情況。

構建項目

通過終端進入activemq-web-console目錄,執行

mvn install

中間會報一些錯,但最後還是build success。
項目會構建成功,並在target目錄中生成一個war包activemq-web-console-5.15.5.war。將這個war包拷貝到Tomcat的webapps中。
通過tomcat\bin\startup.sh啓動Tomcat,之後再次打開網址,會看到與從idea中啓動同樣的頁面。

總結

以上就是獨立部署Activemq控制檯的過程,可以用在通過Tomcat容器嵌入式啓動Activemq的場景,用來監控Activemq服務的運行情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章