国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ActiveMQ筆記(5):JMX監控

2019-11-11 04:33:28
字體:
來源:轉載
供稿:網友

系統上線運行后,及時監控報警是很必要的手段,對于ActiveMQ而言,主要監控的指標有:MQ本身的健康狀況、每個隊列的生產者數量、消費者數量、隊列的當前消息數等。

ActiveMQ支持JMX監控,使用步驟如下:

一、修改conf/activemq.xml

<broker … useJmx="true”>    <managementContext>        <managementContext createConnector="true" connectorPort=“jmx端口號” connectorHost=“本機二、設置jmx.access、jmx.passWord的文件權限

?
1chmod 400 conf/jmx.*

(即:將jmx.password, jmx.access這二個文件設置成只讀權限,activemq出于安全考慮,要求這二個文件只讀)

三、修改bin/activemq 啟動shell腳本

找到invoke_start(){ 這段,然后在前面插入:

?
12345ACTIVEMQ_CONF=“jmx.password所在位置的物理路目錄"ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=端口號 "ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password"ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access"ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false"

然后重啟activemq即可。

然后在jconsole中,可以輸入 ip地址:jmx端口號

 

其中username,password即jmx.password中定義的用戶名和密碼。

四、 sPRing中使用JMX

復制代碼
    <bean class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean" id="mbeanServerConnection1">        <property name="serviceUrl" value="${mq_jmx_url1}"/>        <property name="connectOnStartup" value="false"/>        <property name="environment">            <props>                <prop key="java.naming.security.principal">                    ${mq_jmx_user1}                </prop>                <prop key="java.naming.security.credentials">                    ${mq_jmx_passwor1}                </prop>            </props>        </property>    </bean>復制代碼

其中serviceUrl的值類似:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

參考示例:

?
123456789101112131415161718192021222324252627282930313233private List<ActiveMQData> getMonitorDataList(MBeanServerConnection conn, String objectName) {        List<ActiveMQData> datas = new ArrayList<>();        try {            ObjectName objRootName = new ObjectName(objectName);             String brokerName = (String) conn.getAttribute(objRootName, "BrokerName");            String brokerId = (String) conn.getAttribute(objRootName, "BrokerId");            String openWireUrl = (String) conn.getAttribute(objRootName, "OpenWireURL");             //健康狀態            ObjectName healthObjName = new ObjectName(objectName + ",service=Health");            String healthStatus = (String) conn.getAttribute(healthObjName, "CurrentStatus");             //遍歷隊列            ObjectName[] objectNames = (ObjectName[]) conn.getAttribute(objRootName, "Queues");            Arrays.sort(objectNames);             List<String> blackList = monitorConfig.getQueueBlackList();            for (ObjectName queueName : objectNames) {                ...                Long queueSize = (Long) conn.getAttribute(queueName, "QueueSize");//隊列消息數量                Long producerCount = (Long) conn.getAttribute(queueName, "ProducerCount");//生產者數量                Long consumerCount = (Long) conn.getAttribute(queueName, "ConsumerCount");//消費者數量                Long enqueueCount = (Long) conn.getAttribute(queueName, "EnqueueCount");//入隊消息總數                Long dequeueCount = (Long) conn.getAttribute(queueName, "DequeueCount");//出隊消息總數                ...            }        } catch (Exception e) {           ...        }         return datas;    }

其中objectName值,可以在jconsole中查到 


上一篇:區間 Range

下一篇:linux編程-信號講解

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长葛市| 黄山市| 白朗县| 耒阳市| 云安县| 突泉县| 维西| 历史| 萍乡市| 盐边县| 阿克陶县| 台中县| 宜昌市| 托克逊县| 中牟县| 东莞市| 定边县| 泸溪县| 大冶市| 满洲里市| 山丹县| 宁海县| 凤庆县| 利辛县| 惠州市| 隆子县| 香格里拉县| 炎陵县| 民和| 莆田市| 洛川县| 双流县| 东阿县| 广元市| 历史| 华坪县| 买车| 钦州市| 扎兰屯市| 渑池县| 寿宁县|