RabbitMQ 클 러 스 터 구축

2998 단어
이 게시 물의 내용 은 블 로그 에서 전 송 됩 니 다.http://88250.b3log.org/rabbitmq-clustering-ha。일부 내용 이 조정 되 었 다.
군집 개술
Erlang 의 분포 식 특성 (magic cookie 인증 노드) 을 통 해 RabbitMQ 클 러 스 터 를 진행 하고 각 RabbitMQ 서 비 스 는 대등한 노드, 즉 모든 노드 가 클 라 이언 트 에 서 비 스 를 제공 하여 메 시 지 를 보 내 고 받 습 니 다.
이 노드 들 은 RabbitMQ HA 대기 열 (미 러 대기 열) 을 통 해 메시지 대기 열 구 조 를 복사 합 니 다.이 방안 에서 3 개의 노드 를 구축 하고 모두 디스크 노드 (모든 노드 상태 가 일치 하고 노드 가 완전히 대등 함) 입 니 다. 그 어떠한 노드 가 작업 할 수 있 으 면 RabbitMQ 클 러 스 터 는 대외 적 으로 서 비 스 를 제공 할 수 있 습 니 다.
    :CentOS 6.5
RabbitMQ-Server:3.5.1
HAProxy:1.4.22

RabbitMQ 클 러 스 터 는 3 개의 노드 에 설치 되 어 있 습 니 다. 192.168.1.1, 192.168.1.2, 192.168.1.3;HAProxy 는 RabbitMQ 균형 을 대외 적 으로 제공 하기 위해 192.168.1.1 에 설치 됐다.
필요 한 설치 패키지 다운로드.배치 절차
  • 모든 노드 에 rabbitmq 를 설치 하 는 방법 은 본 게시 물이 192.168.1.1, 192.168.1.2, 192.168.1.3 세 노드 에 설치 한 다음 에 RabbitMQ 모니터링 플러그 인 을 엽 니 다.
  • rabbitmq-plugins enable rabbitmq_management
    
  • 수정 / etc / hosts 가입 클 러 스 터 3 개 노드 에 대한 설명: 192.168.1.1 node 1 192.168.1.2 node 2 192.168.1.3 node 3
  • Erlang Cookie Erlang Cookie 파일 설정: / var / lib / rabbitmq /. erlang. cookie.node 1 의 이 파일 을 node 2, node 3 로 복사 합 니 다. 이 파일 권한 은 400 이기 때문에 node 2, node 3 의 이 파일 권한 을 777:
  • 로 수정 해 야 합 니 다.
    chmod 777 /var/lib/rabbitmq/.erlang.cookie
    

    그리고 node 1 의 이 파일 을 node 2, node 3 로 복사 하고 마지막 으로 권한 과 소속 사용자 / 그룹 을 수정 합 니 다.
    chmod 400 /var/lib/rabbitmq/.erlang.cookie
    chown rabbitmq /var/lib/rabbitmq/.erlang.cookie
    chgrp rabbitmq /var/lib/rabbitmq/.erlang.cookie
    
  • - detached 매개 변 수 를 사용 하여 각 노드 를 실행 합 니 다
  • rabbitmqctl stop
    rabbitmq-server -detached
    
  • 클 러 스 터 를 구성 하여 node 2, node 3 와 node 1 을 클 러 스 터 로 구성 합 니 다.
  • node2 # rabbitmqctl stop_app 
    node2 # rabbitmqctl join_cluster rabbit@node1
    node2 # rabbitmqctl start_app
      
    node3 # rabbitmqctl stop_app 
    node3 # rabbitmqctl join_cluster rabbit@node1
    node3 # rabbitmqctl start_app
    

    이때 node 2 와 node 3 도 자동 으로 연결 을 만 듭 니 다.메모리 노드 를 사용 하려 면 사용 할 수 있 습 니 다.
    node2 # rabbitmqctl join_cluster --ram rabbit@node1 
    

    군집 에 가입 하 다.
    클 러 스 터 설정 후 RabbitMQ 임의의 노드 에서 rabbitmqctl cluster 를 실행 할 수 있 습 니 다.status 에서 클 러 스 터 설정 이 성 공 했 는 지 확인 합 니 다.
  • 미 러 대기 열 정책 을 임의의 노드 에서 실행 합 니 다.
  • rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
    

    모든 대기 열 을 미 러 대기 열 로 설정 합 니 다. 즉, 대기 열 은 각 노드 로 복사 되 고 각 노드 상 태 는 계속 유 지 됩 니 다.
    이 6 단 계 를 마 친 후에 RabbitMQ 고 사용 가능 한 클 러 스 터 는 이미 구축 되 었 고 마지막 단 계 는 이퀄 라이저 를 구축 하 는 것 이다.
  • HAProxy 를 192.168.1.1 에 설치 하고 설정 한 다음 / etc / haproxy / haproxy. cfg 를 수정 합 니 다.
  • listen rabbitmq_cluster 0.0.0.0:5672
     
    mode tcp
    balance roundrobin
     
    server   node1 192.168.1.1:5672 check inter 2000 rise 2 fall 3  
    server   node2 192.168.1.2:5672 check inter 2000 rise 2 fall 3
    server   node2 192.168.1.3:5672 check inter 2000 rise 2 fall 3
    

    좋은 웹페이지 즐겨찾기