2014-06-17 2 views
0

내 문제는 관리 플러그인에 표시되는 통계를 참조합니다. rabbitmq 통계를 사용하지 않을 때 다음과 같습니다 나는 REQ/REP 소켓을 만들 수 rabbitmq을 사용하고Rabbitmq 채널, 소비자 및 연결 통계 이해

enter image description here

. 연결된 각 클라이언트에 대해 새 큐가 작성됩니다.

enter image description here

그러나 나는 다른 숫자를 이해하지 : 그래서 우리는 지금 4 큐가 있습니다.

  1. 왜 처음에는 8 개의 교환이 있습니까? (새로 설치 한 후)
  2. 왜 처음에는 2 개의 대기열이 있습니까? (새로 설치 한 후)
  3. 클라이언트가 2 개인 경우 다른 숫자가 0에서 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 
}); 

답변

2

6 기본 교환은 각 교환 유형 중 하나 + 자신의 별명 교환 (Exchanges and Exchange Types section in AMQP 0-9-1 Model Explained 볼 수 있습니다

다음이 교류를. amq.rabbitmq.trace (topic 유형), Firehose Traceramqp.rabbitmq.log (또한 topic 유형)에서 디버깅 중에 로그 항목을 사용할 수있는 곳 (으로 바인딩)예를 들면 키).

이러한 교환은 모든 가상 호스트에서 만들어집니다. amq이라는 접두어는 AMQP 규칙에 따라 AMQP 관련 항목의 이름을 amq으로 지정합니다. rabbitmq 부분은 RabbitMQ 관련 기능을 나타냅니다.

그래서 모든 규칙에 대해 알아보십시오.

기본 대기열은 설치 유형에 따라 다르지만 기본 구성은 다를 수 있습니다. 바닐라 RabbitMQ 설치 대기열을 제공하지 않습니다.

연결 상태를 유지하는 4 명의 활성 사용자 (대기열에 새 메시지가 대기하는 프로세스)가 있으면 각 연결마다 하나 이상의 연결을 활용합니다.

실제 코드가 보이지 않으면 큐 번호가 변경되는 이유는 무엇입니까?

업데이트 :

4 개 연결 및 4 개 채널 (는 AMQP 프로토콜 4.3 Connection Multiplexing 절에서 설명하는 것 당신이 적어도 하나 개의 채널을 열 필요가 AMQP 브로커와 통신) 기본이되는 구현 양면 스트림을 생성하는 온다 (하나 각 응용 프로그램 인스턴스마다) 두 개의 연결을 사용하여 읽기 및 쓰기 이벤트를 독립적으로 수행합니다.

P .: 실제로 새로 설치하면 미리 정의 된 구성을 가져오고 액세스 정책, 가상 호스트, 사용자, 교환, 대기열, HA 바인딩, 클러스터링 및 기타 여러 옵션을 구성 할 수 있습니다.

+0

+1 감사합니다. 내 질문을 일부 코드로 업데이트했습니다. 어쩌면 당신은 4 연결이 왜 있는지 설명 할 수 있습니까? –

+0

내 답변이 채널 및 연결에 대한 설명으로 업데이트되었습니다. 대기열에 코멘트에 코멘트를 게시하면, 그들은 당신의 앱이나 설치 프로그램에 의해 생성 된 것 같습니다. – pinepain