Tagged: RabbitMQ Cluster

서로 다른 RabbitMQ 버전으로 Cluster 구성 테스트.

RabbitMQ 는 인기있는 메시지 브로커 입니다. 비동기 메시지를 다루는데 있어서 RabbitMQ 는 많이 사용되어 집니다. 거기다 RabbitMQ 는 여러 RabbitMQ 를 하나로 묶는 Cluster 기능을 제공합니다. 그런데, 언제나 그렇지만, 서로다른 RabbitMQ 버전끼리 하나로 묶을 수 있을까하는 의문이 들었습니다. 테스트를 해보았습니다.

환경 세팅

master, slave 라 불리는 2개의 서버를 준비했고 각각 3.5.4 버전과 3.1.5 버전을 설치했습니다. 모든 버전은 Epel 저장소에서 RPM으로 설치를 했습니다.

그리고 다음과 같이 RabbitMQ 를 설정했습니다.

  1. master 의 쿠키 파일를(/var/lib/rabbitmq/.erlang.cookie) slave에 복사했습니다.
  2. 양쪽모두 호스트네임을 /etc/rabbitmq/rabbitmq-env.conf 에 지정해줬습니다.

결과

결과적으로 RabbitMQ 는 서로다른 버전으로 Cluster 를 구성할 수 없습니다.

버전이 맞지 않는다고 에러를 냅니다.

혹시나 Master 버전이 Slave 버전보다 낮아서 그런가 싶어서 거꾸로 해봤습니다. (Slave 버전이 Master 버전보다 높습니다.) 즉, 버전이 낮은 RabbitMQ Node 를 높은 버전의 RabbitMQ Node 로 묶어보자는 거였는데 그것도 안됐습니다.

이 메시지는 아마도 데이터베이스 스키마가 달라졌기 때문에 안되다는 오류 메시지로 보입니다.