Obsidian/Recognition/Programing/RabbitMQ(AMQP)/RabbitMQ 클러스터 구성.md

1.9 KiB

#RabbitMQ

1. 클러스터 구성 + Queue 미러링

192.168.12.21 master 192.168.12.168 slave

클러스터 구성에 필요한 포트

4369 : 노드를 찾기 위해 사용 5672, 5671 : AMQP 25672 : inter-node와 cli 통신을 위한 사용 (rabbitmqctl ) 15672 : http api , management UI

Windows에서 테스트
  • HostName확인
rabbitmqctl cluster_status

	-> rabbit@DESKTOP-M1OISC7
  • host.txt 파일에 HostName 등록 (모든 서버확인하여 전부 추가)

Windows\System32\drivers\etc\host.txt -> 192.168.12.21 rabbit@DESKTOP-M1OISC7

  • 메인이 될 서버에서 Elang 쿠키복사

C:\Windows\System32\config\systemprofile -> erlang.cookie 파일복사

  • (RabbitMQ 서비스 중지후)노드 서버에 복사한 쿠키파일 붙여넣기

C:\Windows\System32\config\systemprofile C:\Users\user

  • slave노드의 서비스 재시작

rabbitmqctl stop rabbitmqctl start

  • slave노드에서 다음 명령어 실행
# 노드 중지
> rabbitmqctl stop_app
 
# 노드 다시 세팅
> rabbitmqctl reset
 
# 클러스터 조인
> rabbitmqctl join_cluster rabbit@DESKTOP-M1OISC7
 
# 노드 시작
> rabbitmqctl start_app
 
# 클러스터 상태 확인
? rabbitmqctl cluster_status
  • Master 노드를 RAM 타입으로 구성
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
  • 미러링 설정
# simple.으로 시작 하는 모든 큐 미러링
rabbitmqctl set_policy sample-all "^sample\." "{""ha-mode"":""all""}"

# 정책 제거
rabbitmqctl clear_policy ha-two


다른서버 접속 설정

  • 유저 생성 (필수)
rabbitmqctl add_user adteck adteck1!
rabbitmqctl set_user_tags adteck administrator
rabbitmqctl list_permissions sudo rabbitmqctl set_permissions -p / adteck "." "." ".*"

  • Client 접속정보에 클러스터링된 IP 전부 셋팅

spring.rabbitmq.host=192.168.12.21,192.168.12.168.......