2013-09-25 2 views
0

2 개의 물리적 노드가 동일한 간단한 RabbitMQ 클러스터 (CentOS, RabbitMQ 3.1.5, Erlang R15B, 2GB RAM, CPU 1xCore)가 있습니다. 노드의 미러링 및 동기화가 설정됩니다.RabbitMQ - 이상한 동기화 동작

정상적인 상황 모두에서
  1. 는하지만, (명령 줄에서 stop_app 및 start_app에 의해) 노드 중 하나를 다시 시작한 후 전체 클러스터가 생산자 unavaible 미세하게된다

    나는 날 귀찮게하는 두 가지 문제가 및 소비자 - 동기화 중에 대기열에서 메시지를 생성하거나 수신 할 수 없습니다. 이 상황이 정상입니까?

  2. 동기화 중에 나는 (재시작 된) 슬레이브 노드에서 매우 높은 CPU로드 (거의 100 %)를 관찰했다. 필자는 동기화 속도를 측정했습니다. 극적으로 낮았습니다 (2 백만 개의 메시지 동기화에는 3 시간 이상 소요). 그런 양의 생산이 훨씬 적기 때문에 이상합니다. 이 상황도 정상입니까?

+0

노드는 어떻게 설정합니까? 둘 다 실행 중일 때'rabbitmqctl cluster_status'를 실행할 수 있습니까? 다시 시작하려는 노드를 나타냅니다. –

답변

2

저는 최근 직장에서 RabbitMQ를 살펴 보았으므로 문서에 깊이 들어 왔습니다.

  1. 이 경우 동기화됩니다. 이것은 RabbitMQ HA 문서 here에서 발췌 한 것입니다. 그렇게 를 완료 할 때까지 응답하지 않는 - 큐가 자동으로 새 슬레이브 조인 때마다이 를 동기화합니다 동기화 설정하면

    .

  2. 메시지가 선택 사항 또는 메모리 제한을 통해 디스크에서 읽기 및 지속되는 경우 오버 헤드가있을 수 있습니다. this 블로그 항목에있는 차트를 볼 수 있습니다 (댓글 앞에있는 마지막 차트). 이는 많은 메시지의 읽기 및 쓰기에 성능 변화가 있음을 나타냅니다. 이 차트는 RabbitMQ의 이전 버전 용이지만 더 최근의 것을 본적이 없습니다.
희망이 도움이됩니다.