对于RabbitMQ的监控,除了服务器基本信息(硬盘、CPU、内存、IO等)以及MQ的进程和端口,我们也可以通过请求url访问管理API监控其集群和队列的情况。在Javaapi 3.6.0以后,channel接口为我们提供了如下接口:

/**
* Returns the number of messages in a queue ready to be delivered
* to consumers. This method assumes the queue exists. If it doesn't,
* an exception will be closed with an exception.
* @param queue the name of the queue
* @return the number of messages in ready state
* @throws IOException Problem transmitting method.
*/
long messageCount(String queue) throws IOException; /**
* Returns the number of consumers on a queue.
* This method assumes the queue exists. If it doesn't,
* an exception will be closed with an exception.
* @param queue the name of the queue
* @return the number of consumers
* @throws IOException Problem transmitting method.
*/
long consumerCount(String queue) throws IOException;

messageCount:查询队列未消费的消息数,可以监控消息堆积的情况。 
consumerCount:队列的消费者个数,可以对消费者进行监控 
Java实例:

public class JavaAPIMonitor {

    private static String queue_name = "test_queue";

    public static void main(String[] args) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
// amqp://userName:password@hostName:portNumber/virtualHost
factory.setUri("amqp://test:test@10.1.199.169:5672/test");
Connection conn = factory.newConnection();
// System.out.println(conn.getChannelMax());
Channel channel = conn.createChannel();
// System.out.println(channel.getChannelNumber());
System.out.println(channel.messageCount(queue_name));
System.out.println(channel.consumerCount(queue_name));
channel.close();
conn.close();
}
}
运行结果:
277782
3

除此之外,也可以通过连接的状态变化,进行监控,如:连接被阻塞(内存,CPU等不足)

ConnectionFactory factory = new ConnectionFactory();
Connection connection = factory.newConnection();
connection.addBlockedListener(new BlockedListener() { public void handleUnblocked() throws IOException {
// 连接取消阻塞
}
public void handleBlocked(String reason) throws IOException {
// 连接阻塞
}
});
connection.addShutdownListener(new ShutdownListener() {
public void shutdownCompleted(ShutdownSignalException cause) {
//连接关闭
}
});

先关监控参考文章: 
1.RabbitMQ之管理与监控 
2.REST API监控RabbitMQ 
3.如何监控RabbitMQ 
4.使用AMQP模拟检测来确认RabbitMQ是否运行 
5.监控队列状态

RabbitMQ学习之队列监控的更多相关文章

  1. 消息队列之rabbitmq学习使用

    消息队列之rabbitmq学习使用 1.RabbitMQ简介 1.1.什么是RabbitMQ? RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,Rabb ...

  2. rabbitmq学习(二):rabbitmq(消息队列)的作用以及rabbitmq之直连交换机

    前言 上篇介绍了AMQP的基本概念,组成及其与rabbitmq的关系.了解了这些东西后,下面我们开始学习rabbitmq(消息队列)的作用以及用java代码和rabbitmq通讯进行消息发布和接收.因 ...

  3. RabbitMQ学习笔记五:RabbitMQ之优先级消息队列

    RabbitMQ优先级队列注意点: 1.只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效 2.RabbitMQ3.5以后才支持优先级队列 代码在博客:RabbitMQ学习笔记三:Java ...

  4. RabbitMQ学习(一):RabbitMQ要点简介

    转载:http://blog.csdn.net/leixiaotao_java/article/details/78909760#t0 1.什么是RabbitMQ? RabbitMQ是由Erlang语 ...

  5. RabbitMQ学习系列(四): 几种Exchange 模式

    上一篇,讲了RabbitMQ的具体用法,可以看看这篇文章:RabbitMQ学习系列(三): C# 如何使用 RabbitMQ.今天说些理论的东西,Exchange 的几种模式. AMQP协议中的核心思 ...

  6. RabbitMQ学习系列(三): C# 如何使用 RabbitMQ

    上一篇已经讲了Rabbitmq如何在Windows平台安装,还不了解如何安装的朋友,请看我前面几篇文章:RabbitMQ学习系列一:windows下安装RabbitMQ服务 , 今天就来聊聊 C# 实 ...

  7. RabbitMQ与Redis队列对比

    本文仅针对RabbitMQ与Redis做队列应用时的情况进行对比具体采用什么方式实现,还需要取决于系统的实际需求 简要介绍 RabbitMQ RabbitMQ是实现AMQP(高级消息队列协议)的消息中 ...

  8. RabbitMQ学习总结 第三篇:工作队列Work Queue

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  9. RabbitMQ学习总结 第一篇:理论篇

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

随机推荐

  1. phpcms 电脑手机合并

    电脑手机端 ========================== <script type="text/javascript"> function browserRed ...

  2. redis(四))——多实例化——实现主从配置

    引言 redis是一个key-value存储系统. 和Memcached类似,它支持存储的value类型相对很多其它,包含string(字符串).list(链表).set(集合)和zset(有序集合) ...

  3. Codeforces Round #253 (Div. 1)-A,B

    A题: 由题意可知,最多翻10次就能够(事实上8次就够了).那么我们就用状态压缩表示状态. 对于某种状态,假设某一位为0,那么代表这一位不翻,否则代表这一位翻. 对于某一种翻的状态: 假设牌中有G3, ...

  4. selenium实例学习地址

    一个完整的maven配置selenium webdriver工程实例   http://www.spasvo.com/ceshi/open/kygncsgj/Selenium/201312209580 ...

  5. luogu1447 能量采集

    题目大意 给出m,n,对于每一个整数x∈[1,m],y∈[1,n]都有一点(x,y).处理每个点所需要的能量为2*k+1,k为该点到原点经过的点的数量(不包括该点本身).求处理所有点所需要的能量和. ...

  6. 扩展函数之 IsWhat 简单好用

    代码实现: /***扩展函数名细***/ //[IsInRange] ; //以前写法 & num < ) { } //现在写法 , )) { } //datetime类型也支持 //[ ...

  7. oracle表类似:BIN$dJ5h8mA4Lr/gQAB/AQB0oA==$0 TABLE

    今天看到数据库中有很多类似: TNAME                          TABTYPE  CLUSTERID ------------------------------ ---- ...

  8. 【Codeforces 258D】 Count Good Substrings

    [题目链接] http://codeforces.com/contest/451/problem/D [算法] 合并后的字符串一定是形如"ababa","babab&qu ...

  9. html5 初探

    html5是越来越火了.小小菜鸟也来学习学习. 相比于之前的几个版本,HTML5提供了更加丰富的多媒体标签使得音乐,视频的播放不用再借助于flah了.不过暂时各浏览器间样式还是有差别. 除此之外,表单 ...

  10. H3C交换机DHCP&nbsp;Server配置的六个方面

    H3C交换机DHCP Server配置的六个方面 在交换机上面配置DHCP内容是司空见惯的了.那么这里我们就讲解一下H3C交换机DHCP Server配置内容.之后的文章中,我们还对针对其他方面的配置 ...