docker 및 docker-compose 설치
* 이 포스팅에서는 CentOS 기반으로 진행합니다. 아래 링크 들어가서 입맛에 맞게 다운 받을 수 있습니다.
> CentOS 기반 : https://docs.docker.com/engine/install/centos/
Install Docker Engine on CentOS
Learn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.
docs.docker.com
일단 여기서 제가 작업한 내용을 간단히 요약하자면
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 + DockerCompose 실행시키기 _ 환경설정(2)
2024.01.18 - [RabbitMQ] - RabbitMQ + Docker Compose 실행시키기 (1) RabbitMQ + Docker Compose 실행시키기 1. docker 및 docker-compose 설치 * 이 포스팅에서는 CentOS 기반으로 진행합니다. 아래 링크 들어가서 입맛에 맞게
ddol.tistory.com
'RabbitMQ' 카테고리의 다른 글
RabbitMQ + DockerCompose 실행시키기 _ 환경설정(2) (1) | 2024.01.22 |
---|---|
RabbitMQ 란? 주요 용어, Round-Robin, Fair dispatch, Acknowledgment (1) | 2024.01.21 |