RabbitMQ

RabbitMQ + Docker Compose 실행시키기 (1)

솔솔 2024. 1. 18. 20:57
반응형

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

 

반응형