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

91 lines
1.9 KiB
Markdown

#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확인
```cmd
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노드에서 다음 명령어 실행
``` CMD
# 노드 중지
> rabbitmqctl stop_app
# 노드 다시 세팅
> rabbitmqctl reset
# 클러스터 조인
> rabbitmqctl join_cluster rabbit@DESKTOP-M1OISC7
# 노드 시작
> rabbitmqctl start_app
# 클러스터 상태 확인
? rabbitmqctl cluster_status
```
- Master 노드를 RAM 타입으로 구성
```CMD
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
```
- 미러링 설정
``` CMD
# simple.으로 시작 하는 모든 큐 미러링
rabbitmqctl set_policy sample-all "^sample\." "{""ha-mode"":""all""}"
# 정책 제거
rabbitmqctl clear_policy ha-two
```
----
다른서버 접속 설정
- 유저 생성 (필수)
``` CMD
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.......
---