docker 및 docker-compose 설치
* 이 포스팅에서는 CentOS 기반으로 진행합니다. 아래 링크 들어가서 입맛에 맞게 다운 받을 수 있습니다.
> CentOS 기반 : https://docs.docker.com/engine/install/centos/
일단 여기서 제가 작업한 내용을 간단히 요약하자면
1. docker-compose를 사용해 rabbitmq를 실행
2. rabbitmq를 실행할 때 기본 필요한 설정들이 같이 실행되길 희망
3. 각 서버 3대가 클러스터링 되길 희망
4. rabbitmqctl 콘솔에 들어가지 않아도 각종 미러링 정책, stomp 플러그인 등 필요한 설정들이 세팅되길 희망
각 서버 3대의 클러스터링 작업은 서버 A를 마스터로 두고 진행하였습니다.
클러스터링 하기 위해 3대 서버의 .erlang.cookie 값이 동일해야한다. => 서로 같은 값이어야 클러스터링 했을 때 같은 mq임을 서로 알 수 있음
1. docker-compose.yml 파일 생성 후 설정
* docker-compose.yml 파일을 편한 곳에 생성 합니다.
$ sudo mkdir /rabbitmq/docker-compose.yml
version: '3'
services:
rabbit:
image: rabbitmq:3.12-management
hostname: rabbit1
container_name: rabbit-master
restart: always
volumes:
- .:/var/lib/rabbitmq/
- ./logs:/var/log/rabbitmq/
- ./conf/definitions.json:/etc/rabbitmq/definitions.json
- ./conf/rabbitmq.config:/etc/rabbitmq/rabbitmq.config
- ./conf/logging.conf:/etc/rabbitmq/conf.d/10-defaults.conf
- ./conf/enabled_plugins:/etc/rabbitmq/enabled_plugins
ports:
- "4369:4369"
- "5672:5672"
- "15672:15672"
- "25672:25672"
- "35197:35197"
- "61313:61313"
environment:
TZ: "Asia/Seoul"
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "+P 2000000"
RABBITMQ_ERLANG_COOKIE: /var/lib/rabbitmq/.erlang.cookie
extra_hosts:
- "rabbit1:1번 IP"
- "rabbit2:2번 IP"
- "rabbit3:3번 IP"
- 도커 이미지 다운로드, 호스트, 컨테이너 명
image: rabbitmq:3.12-management ## 이미지를 띄우기 위한 작업
hostname: rabbit1 ## 호스트 네임은 원하는 대로 지정해주기
container_name: rabbit-master ## 컨테이너명도 원하는 대로 (컨테이너를 실행하거나 내릴때 사용)
restart: always ## 컨테이너가 죽으면 항상 재시작
- 볼륨 작업
volumes: ## rabbitmq 내부에서도 동일한 파일을 사용하기 위해 볼륨작업
- .:/var/lib/rabbitmq/
- ./logs:/var/log/rabbitmq/ ## 로그
- ./conf/definitions.json:/etc/rabbitmq/definitions.json ## mq 실행시 각종 설정
- ./conf/rabbitmq.config:/etc/rabbitmq/rabbitmq.config ## mq 각종 설정
- ./conf/logging.conf:/etc/rabbitmq/conf.d/10-defaults.conf ## 로그레벨 지정
- ./conf/enabled_plugins:/etc/rabbitmq/enabled_plugins ## 플러그인 설정
- port
ports:
- "4369:4369"
- "5672:5672" ## epmd
- "15672:15672" ## rabbitmq management
- "25672:25672" ## clustering
- "35197:35197" ## node
- "61313:61313" ## stomp
- environment
environment:
TZ: "Asia/Seoul" ## 시간
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "+P 2000000" ## erlang processes 메모리 설정
RABBITMQ_ERLANG_COOKIE: /var/lib/rabbitmq/.erlang.cookie ## 클러스터링을 하려면 cookie값이 일치해야함
** .erlang.cookie의 경우 서버 A 쿠키 값을 서버 B,C 도 동일한 값으로 변경해주었습니다.
- extra hosts
extra_hosts:
- "rabbit1:1번 IP"
- "rabbit2:2번 IP"
- "rabbit3:3번 IP"
docker-compose.yml에서 볼륨 처리한 각종 설정들은 다음 편에서 작성하도록 하겠습니다.
> definitions.json mq 실행시 각종 설정
> rabbitmq.config mq 각종 설정 (클러스터링, 미러링, stomp 설정 등)
> 10-defaults.conf 로그레벨 지정
> enabled_plugins 플러그인 설정
2024.01.22 - [RabbitMQ] - RabbitMQ + DockerCompose 실행시키기 _ 환경설정(2)
'RabbitMQ' 카테고리의 다른 글
RabbitMQ + DockerCompose 실행시키기 _ 환경설정(2) (1) | 2024.01.22 |
---|---|
RabbitMQ 란? 주요 용어, Round-Robin, Fair dispatch, Acknowledgment (1) | 2024.01.21 |