RabbitMQ 클 러 스 터 구축
군집 개술
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-plugins enable rabbitmq_management
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
rabbitmqctl stop
rabbitmq-server -detached
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 고 사용 가능 한 클 러 스 터 는 이미 구축 되 었 고 마지막 단 계 는 이퀄 라이저 를 구축 하 는 것 이다.
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.