Rabbitmq了解渠道,消费者和连接统计数据

时间:2014-06-17 12:33:08

标签: node.js rabbitmq

我的问题是指管理插件中显示的统计信息。不使用时,rabbitmq统计数据看起来像这样:

enter image description here

我正在使用rabbitmq创建一个REQ / REP套接字。对于每个连接的客户端,将创建一个新队列。所以我们现在有4个队列:

enter image description here

但我不了解其他数字。

  1. 为什么最初有8个交易所? (全新安装后)
  2. 为什么最初有2个队列? (全新安装后)
  3. 为什么其他数字从0跳到4而我只有2个客户?
  4. 这是因为REQ / REP吗?

    更新:我有两个应用程序相互通信。一方面我有

    var context = require('rabbit.js').createContext('amqp://localhost');
    var rep = context.socket('REP', {
        prefetch: 1,
        persistent: false
    });
    rep.connect(someIdentifier);
    rep.setEncoding('utf8');
    
    rep.on('data', function(data) {
        //got a request
    });
    

    另一方面:

    var context = require('rabbit.js').createContext('amqp://localhost');
    var req = context.socket('REQ');
    req.setEncoding('utf8');
    req.connect(sameIdAsAbove);
    req.on('data', function(data) {
        //got a response
    });
    

1 个答案:

答案 0 :(得分:2)

6个默认交换是每种交换类型之一+它们的别名交换(参见Exchanges and Exchange Types section in AMQP 0-9-1 Model Explained

接下来的2次交换是amq.rabbitmq.tracetopic类型),来自Firehose Traceramqp.rabbitmq.log(也是topic类型)的交换,您可以在此处使用调试期间记录条目(例如,只需按#键绑定)。

顺便说一句,这些交换在每个vhost中创建。 amq前缀来自AMQP约定,用于命名具有amq前缀的AMQP相关实体。 rabbitmq部分代表RabbitMQ特有的功能。

所以关于惯例。

对于2个默认队列,它实际上取决于您的安装类型,而默认配置可能会有所不同。 Vanilla RabbitMQ安装不会给你排队。

如果您有4个活动消费者(等待新消息出现在队列中的进程)保持连接,则每个连接至少使用一个连接,每个连接使用一个通道。

如果没有看到实际的代码,为什么你的队列号码变化很难说。

<强>更新

4个连接和4个通道(与AMQP代理通信,您需要打开至少一个通道,它在AMQP协议的4.3 Connection Multiplexing部分中描述)来自底层实现创建双工流(每个应用程序实例一个)可能使用两个连接使读写事件独立发生。

P.S。:实际上,全新安装可以导入预定义的配置,并配置许多其他选项,包括访问策略,虚拟主机,用户,交换,队列,绑定到HA,群集等等。

相关问题