Rabbitmq 노드에 고가용성을 설정하고 싶습니다. 현재 Rabbitmq를 실행하는 단일 서버가 있지만 다른 서버를 추가할 예정입니다. 다음은 nodejs 애플리케이션에서 사용 중인 현재 구성입니다.
rabbitMQ: {
url: 'amqp://user:password@node1:5672'
},
1) 두 Rabbitmq 노드(node1 및 node2) 모두에 클러스터를 설정해야 합니까?
2) 구성 파일에 포함해야 할 새 URL은 무엇입니까?
답변1
RabbitMQ 팀이 모니터링합니다.이 메일링 리스트때로는 StackOverflow의 질문에 답변하는 경우도 있습니다.
사용 중인 RabbitMQ 버전, Erlang 버전, 운영 체제 또는 Node.js 라이브러리에 대한 세부 정보를 제공하지 않습니다. 앞으로는 사람들이 더 쉽게 도움을 받을 수 있도록 항상 이와 같은 세부정보를 제공하시기 바랍니다.
당신은 RabbitMQ 클러스터링을 처음 접하므로 이에 대한 문서를 읽어 보시기를 적극 권장합니다. https://www.rabbitmq.com/clustering.html
Rabbitmq 노드(node1 및 node2) 모두에 클러스터를 설정해야 합니까?
두 노드 모두 동일한 버전의 RabbitMQ 및 Erlang을 실행해야 합니다. 한 노드에서 클러스터링 명령을 실행하여 설명서에 따라 클러스터를 생성합니다. 성공했다면 rabbitmqctl cluster_status
명령이 이를 표시할 것입니다.
2) 구성 파일에 포함해야 할 새 URL은 무엇입니까?
나는 당신이 다음을 사용하고 있다고 가정합니다.squaremo/amqp.node도서관. 해당 라이브러리는 연결 URI에 여러 호스트 제공을 지원하지 않습니다. 이를 직접 구현해야 하며 연결 복구도 직접 구현해야 합니다. 참조하세요이 GitHub 문제.
그러나 여러 노드와 재연결을 지원하는 라이브러리는 다음과 같습니다.rascal
. rascal
여기에서 코드를 사용하거나 빌릴 수 있습니다 (예를 들어 여기).