웹사이트 검색

CentOS 7에서 RabbitMQ 클러스터를 설정하는 방법


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. 1단계 - 호스트 파일 설정\n
  4. 2단계 - RabbitMQ 서버 설치
  5. 3단계 - RabbitMQ 관리 플러그인 활성화\n
  6. 4단계 - CentOS 방화벽 구성\n
  7. 5단계 - RabbitMQ 클러스터 설정
  8. 6단계 - 새 관리자 생성
  9. 7단계 - RabbitMQ 설정 대기열 미러링
  10. 8단계 - 테스트
  11. 참조

RabbitMQ는 원래 AMQP(Advanced Message Queuing Protocol) 프로토콜을 구현하는 오픈 소스 메시지 브로커 소프트웨어이며 STOMP(Streaming Text Oriented Messaging Protocol) 및 MQTT(Message 큐잉 원격 측정 전송).

RabbitMQ는 분산 시스템, 애플리케이션 및 서비스 간에 메시지 송수신을 지원하는 메시지 대기열 소프트웨어입니다. Erlang 프로그래밍 언어로 작성되었으며 Python, NodeJS, Java, PHP 등을 포함한 모든 주요 프로그래밍 언어에 대한 클라이언트 인터페이스 및 라이브러리를 지원합니다.

이 튜토리얼에서는 CentOS 7 서버에서 RabbitMQ 클러스터를 설정하는 방법을 단계별로 보여줍니다. Three CentOS 서버를 사용하여 RabbitMQ 클러스터를 설정하고 RabbitMQ 관리를 활성화하고 모든 노드에 대한 HA 정책을 설정합니다.

전제 조건

  • 3개 이상의 CentOS 7 서버
    • 10.0.15.21 노드01
    • 10.0.15.22 노드02
    • 10.0.15.23 노드03

    우리는 무엇을 할 것입니까?

    1. 호스트 파일 설정\n
    2. RabbitMQ 서버 설치
    3. RabbitMQ 관리 플러그인 활성화\n
    4. 방화벽 구성\n
    5. RabbitMQ 클러스터 설정
    6. 새 관리 사용자 구성
    7. RabbitMQ 대기열 미러링 설정
    8. 테스트

    1단계 - 호스트 파일 설정

    이 단계에서는 모든 서버의 /etc/hosts 파일을 편집하고 각 서버 IP 주소를 호스트 이름으로 매핑합니다.

    vim 편집기를 사용하여 /etc/hosts 파일을 수정합니다.

    sudo vim /etc/hosts

    이제 다음 구성을 거기에 붙여넣으십시오.

    10.0.15.21 node01
    10.0.15.22 node02
    10.0.15.23 node03

    저장 및 종료.

    2단계 - RabbitMQ 서버 설치

    이 단계에서는 EPEL(Extra Packages for Enterprise Linux) 리포지토리에서 RabbitMQ 서버 패키지를 설치합니다.

    EPEL 리포지토리를 CentOS 7 시스템에 추가합니다.

    sudo yum -y install epel-release

    이제 아래 yum 명령을 사용하여 모든 노드 node01, node02 및 node03에 RabbitMQ 서버를 설치합니다.

    sudo yum -y install rabbitmq-server

    그리고 설치가 완료되면 RabbitMQ 서비스를 시작하고 시스템 부팅 시마다 실행되도록 활성화합니다.

    sudo systemctl start rabbitmq-server
    sudo systemctl enable rabbitmq-server

    RabbitMQ 서버는 모든 노드 클러스터 CentOS 7에 설치되었습니다.

    3단계 - RabbitMQ 관리 플러그인 활성화

    이 단계에서는 RabbitMQ 관리 플러그인을 활성화합니다. 기본 TCP 포트 15672에서 실행되는 웹 브라우저에서 RabbitMQ 서버를 모니터링하고 처리할 수 있는 인터페이스입니다.

    아래 명령을 실행하여 RabbitMQ 관리 플러그인을 활성화합니다.

    sudo rabbitmq-plugins enable rabbitmq_management

    오류가 없는지 확인한 다음 RabbitMQ 서비스를 다시 시작하십시오.

    sudo systemctl restart rabbitmq-server

    그리고 RabbitMQ 관리가 활성화되었습니다.

    4단계 - CentOS 방화벽 구성

    이 튜토리얼에서는 CentOS 방화벽 서비스를 활성화할 것이므로 RabbitMQ 서버에서 사용하는 포트를 열어야 합니다.

    RabbitMQ 서버 5672를 사용하는 포트, RabbitMQ 관리용 포트 15672, RabbitMQ 클러스터용 포트 4369, 25672를 엽니다.

    다음 방화벽 명령을 실행합니다.

    sudo firewall-cmd --add-port=15672/tcp --permanent
    sudo firewall-cmd --add-port=5672/tcp --permanent
    sudo firewall-cmd --add-port={4369/tcp,25672/tcp} --permanent

    이제 firewalld를 다시 로드하고 목록에서 열려 있는 모든 포트를 확인합니다.

    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all

    CentOS firewalld 구성이 완료되었으며 RabbitMQ 클러스터를 설정할 준비가 되었습니다.

    5단계 - RabbitMQ 클러스터 설정

    RabbitMQ 클러스터를 설정하려면 .erlang.cookie 파일이 모든 노드에서 동일한지 확인해야 합니다. /var/lib/rabbitmq 디렉토리에 있는 .erlang.cookie 파일을 node01에서 다른 노드 node02 및 node03으로 복사합니다.

    node01에서 scp 명령을 사용하여 .erlang.cookie 파일을 복사합니다.

    scp /var/lib/rabbitmq/.erlang.cookie :/var/lib/rabbitmq/

    두 서버 모두에 오류가 없는지 확인하십시오.

    다음으로 클러스터 node01에 가입하도록 node02 및 node03을 설정해야 합니다.

    node02 및 node03 서버에서 아래의 모든 명령을 실행하십시오.

    RabbitMQ 서비스를 다시 시작하고 앱을 중지합니다.

    sudo systemctl restart rabbitmq-server
    sudo rabbitmqctl stop_app

    이제 두 노드의 RabbitMQ 서버가 node01의 클러스터에 가입하도록 한 다음 앱을 시작합니다.

    sudo rabbitmqctl join_cluster 
    sudo rabbitmqctl start_app

    완료되면 RabbitMQ 클러스터 상태를 확인하십시오.

    sudo rabbitmqctl cluster_status

    그러면 아래와 같은 결과를 얻을 수 있습니다.

    node02에서.

    node03에서.

    node01, node02 및 node03을 구성원으로 하는 RabbitMQ 클러스터가 생성되었습니다.

    6단계 - 새 관리자 사용자 생성

    이 자습서에서는 RabbitMQ 서버에 대한 새 관리 사용자를 만들고 기본 게스트 사용자를 삭제합니다. node01에서 새 사용자를 생성하고 클러스터의 모든 노드에 자동으로 복제됩니다.

    비밀번호가 [email 인 hakase라는 새 사용자를 추가합니다.

    sudo rabbitmqctl add_user hakase 

    hakase 사용자를 관리자로 설정합니다.

    sudo rabbitmqctl set_user_tags hakase administrator

    그리고 모든 가상 호스트를 수정, 쓰기 및 읽을 수 있는 hakase 사용자 권한을 부여합니다.

    sudo rabbitmqctl set_permissions -p / hakase ".*" ".*" ".*"

    이제 기본 게스트 사용자를 삭제하십시오.

    sudo rabbitmqctl delete_user guest

    그리고 사용 가능한 모든 사용자를 확인하십시오.

    sudo rabbitmqctl list_users

    그러면 아래와 같은 결과를 얻을 수 있습니다.

    새 RabbitMQ 사용자가 생성되었으며 기본 게스트 사용자가 삭제되었습니다.

    7단계 - RabbitMQ 설정 대기열 미러링

    이 설정은 필수이며 모든 클러스터 노드에 대한 큐 미러링 및 복제를 위해 ha 정책 클러스터를 구성해야 합니다. 대기열 마스터를 호스트하는 노드가 실패하면 가장 오래된 미러가 동기화되는 한 ha-mode 및 ha-params 정책에 따라 새 마스터로 승격됩니다.

    다음은 RabbitMQ ha 정책에 대한 몇 가지 예입니다.

    RabbitMQ 클러스터의 모든 큐가 클러스터의 모든 노드에 미러링되는 ha-all이라는 ha 정책을 설정합니다.

    sudo rabbitmqctl set_policy ha-all ".*" '{"ha-mode":"all"}'

    모든 대기열 이름이 2로 시작하는 ha-two라는 ha 정책을 설정합니다. 클러스터의 두 노드에 미러링됩니다.

    sudo rabbitmqctl set_policy ha-two "^two\." \
       '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'

    모든 대기열 이름이 노드로 시작하는 ha-nodes라는 ha 정책을 설정합니다. 클러스터의 두 특정 노드 node02 및 node03에 미러링됩니다.

    sudo rabbitmqctl set_policy ha-nodes "^nodes\." \
       '{"ha-mode":"nodes","ha-params":[""]}'

    이제 아래 명령을 사용하여 사용 가능한 모든 정책을 확인하십시오.

    sudo rabbitmqctl list_policies;

    정책을 제거하려면 다음 명령을 사용하십시오.

    sudo rabbitmqctl clear_policy ha-two

    8단계 - 테스트

    웹 브라우저를 열고 포트 15672가 있는 노드의 IP 주소를 입력합니다.

    http://10.0.15.21:15672/

    비밀번호 [email 와 함께 사용자 이름 hakase를 입력합니다.

    그러면 아래와 같이 RabbitMQ 관리 대시보드가 표시됩니다.

    모든 클러스터 노드 상태가 실행 중입니다.

    이제 관리 탭 메뉴를 클릭하고 측면에서 사용자 메뉴를 클릭합니다.

    그러면 목록에 hakase 사용자가 표시됩니다.

    이제 관리 탭 메뉴를 클릭하고 측면에서 정책 메뉴를 클릭합니다.

    그리고 우리가 만든 모든 RabbitMQ ha 정책을 받게 됩니다.

    CentOS 7 서버에 RabbitMQ Cluster 설치 및 구성이 성공적으로 완료되었습니다.

    참조

    • https://www.rabbitmq.com/documentation.html