2014-10-08 2 views
2

나는 HA가 어떻게 작동하는지 알아 내려고하고있다. (고 가용성 큐)여러 브로커 시스템 rabbitmq 구성, 어떻게 작동합니까?

현재 구성은 다음과 같습니다. 모든 시스템에는 여러 셀러리 작업자가 있으며 브로커를 가리 킵니다. 각 기계는 HA 때문에 하나의 중개 기계를 가리 키지 않고이를 수행 할 수 있습니다. 이런 방식으로, 모든 기계가 중개자이며 같은 대기열의 사본을 가지기 때문에 한 기계에 부하가 적습니다.

제 질문은 제 논리가 맞습니까? 또는 모든 근로자가 HA에 관계없이 하나의 중개인 기계를 가리킬 필요가 있습니까?

답변

1

HAclustering을보고 대기열이 서로 거울을 치도록 보장 한 경우 수행중인 작업이 정상적으로 이루어져야합니다. 그러나 그것은 당신이 당신의 노동자를 운영하는 모든 서버에서 그것을 실행하는 것은 다소 비효율적 인 것처럼 보일 수 있습니다.

다른 옵션은 HA를 위해 몇 개의 서버에서 대기열을 실행하고 다른 서버가이를 가리 키도록 작업자를 실행하게하는 것입니다. 그러나 셀러리 작업자 구성은 하나의 브로커 URL 만 가리킬 수 있기 때문에 모든 작업자가 가리킬로드 균형 조정자를 사용하여이를 해결해야합니다. 셀러리를위한 RabbitMQ HA에 대한 지난 몇 년간의 이해가 최고입니다.

+1

예 모든 서버에 복제 된 큐가있는 경우 애플리케이션 속도가 매우 느릴 것이라고 생각했지만 속도가 얼마나 느려지는지 알지 못했습니다. 셀러리 작업자 구성이 하나의 브로커 URL 만 가리킬 수 있다는 사실은 제가 직면 한 주요 과제였습니다. https://groups.google.com/forum/#!topic/celery-users/i87kIvHn6gg에서 BROKER_URL은 중개인 목록 (링크에서 두 번째로 마지막 응답)이지만 읽지 못했음을 읽었습니다. 그것을 해결하는 것. 이걸 가지고 행운이 있니? – jeffrey

+0

또한 노드가 rabbitmqctl (또는 다른 방법)의 HA 노드인지 확인하는 방법이 있습니까? – jeffrey

+0

@ jeffrey, 그 스레드를 마지막으로 본 순간, 여러 중개인에 대한 @asksol의 ​​응답이 없었습니다. 로드 밸런서 사용에 대한 OP의 관찰을 언급했습니다. BROKER_URL에 대한 여러 개의 URL을 나열하는 방식을 시도하지 않았습니다. 내가 일할 수 있다면 여기에 다시 올리겠다. 근로자가 어떤 중개인을 사용할 지 선택하는 것은 흥미로울 것입니다. 'rabbitmqctl cluster_status'는 클러스터의 노드를 제공합니다. 노드가 HA 노드인지 확인하는 방법에 대한 질문에 대답합니까? 아니면 뭔가 다른 것을 의미 했습니까? – ksrini

관련 문제