웹사이트 검색

RabbitMQ 설치 및 관리 방법


소개

일을 즉시 하지 않고 잠시 미루는 것은 게으른 행동으로 간주될 수 있습니다. 사실 대부분의 경우 그럴 것입니다. 그러나 그것이 절대적으로 옳은 일인 경우가 있습니다. 때때로 시간이 많이 걸리는 작업을 잠시 미루어야 합니다. 더 중요한 것을 처리할 수 있도록 향후 실행을 위해 대기해야 합니다. 이를 위해서는 다양한 발신자(예: 웹 애플리케이션)로부터 메시지(예: 작업, 작업)를 수락하고 대기열에 저장한 다음 관련 당사자(예: 작업자)에게 배포하여 활용하는 브로커가 필요합니다. 그들 - 모두 비동기식으로 그리고 주문형으로.

이 DigitalOcean 기사에서는 RabbitMQ 프로젝트를 소개하고자 합니다. 이 프로젝트는 우리가 설명한 전체 시나리오를 처리하기 위해 AMQP(Advanced Message Queuing Protocol)를 구현하는 오픈 소스 메시지 브로커 애플리케이션 스택입니다. 위에.

메시징, 메시지 브로커 및 대기열

메시징은 프로세스, 애플리케이션 및 서버(가상 및 물리적) 간에 특정 데이터를 교환하는 방법입니다. 특정 엔지니어링 요구 사항을 지원하는 이러한 교환 메시지는 일반 텍스트 메시지에서 다양한 요구 사항을 해결하는 이진 데이터 블롭에 이르기까지 무엇이든 구성될 수 있습니다. 이것이 작동하려면 타사 프로그램(미들웨어)에서 관리하는 인터페이스가 필요합니다. 메시지 브로커를 환영합니다.

메시지 브로커는 일반적으로 교환 설정의 각 단계를 다루는 전용 부분이 있는 애플리케이션 스택입니다. 메시지 수락에서 대기열에 넣고 요청 당사자에게 전달하는 데 이르기까지 브로커는 일반적으로 비전용 솔루션이나 데이터베이스 사용, 크론 작업, 등. 기술적으로 무한 버퍼를 구성하는 대기열을 처리하여 메시지를 넣고 나중에 자동으로 또는 폴링으로 처리되도록 팝 앤 배달합니다.

왜 사용합니까?

이러한 메시지 브루킹 솔루션은 다양한 서비스(예: 웹 애플리케이션)의 중개자 역할을 합니다. 일반적으로 처리하는 데 상당한 시간이 걸리는 작업을 수행하는 것이 유일한 작업인 제3자(예: 작업자)에게 위임할 수 있기 때문에 웹 응용 프로그램 서버의 로드 및 배달 시간을 크게 줄이는 데 사용할 수 있습니다. 또한 정보를 한 곳에서 다른 곳으로 전달하기 위해 보다 \보장된\ 지속성이 필요할 때 유용합니다.

언제 사용합니까?

종합하면 설명된 핵심 기능은 다음을 포함하되 이에 국한되지 않는 다양한 영역을 포괄하도록 확장됩니다.

  • 리소스를 많이 사용하는 절차를 현장에서 강제로 수행하는 대신 웹 서버가 요청에 신속하게 응답하도록 허용\n
  • 소비를 위해 여러 수신자에게 메시지 배포(예: 처리)\n
  • 오프라인 당사자(즉, 연결이 끊긴 사용자)가 영구적으로 손실되지 않고 나중에 데이터를 가져오도록 허용\n
  • 백엔드 시스템에 완전 비동기 기능 도입
  • 작업 주문 및 우선 순위 지정
  • 작업자 간의 부하 균형\n
  • 애플리케이션의 안정성과 가동 시간을 크게 향상\n
  • 그리고 훨씬 더\n

토끼MQ

RabbitMQ는 Advanced Message Queuing Protocol의 구현으로 오픈 소스 라이선스(Mozilla Public License v1.1)와 함께 제공되는 시장에서 가장 인기 있는 메시지 브로커 솔루션 중 하나입니다. Erlang 언어를 사용하여 개발되었으며 실제로 사용하고 시작하기가 상대적으로 쉽습니다. 2007년 초에 처음 게시되었으며 이후 최신 릴리스 버전 3.2.2(2013년 12월)로 활발한 개발이 이루어졌습니다.

어떻게 작동합니까?

RabbitMQ는 데이터를 관련 목록(메시지 큐)에 배포하는 교환기(브로커)를 통해 메시지 발신자(게시자)와 수신자(소비자)를 연결하는 인터페이스를 제공하여 작동합니다.

APPLICATION       EXCHANGE        TASK LIST        WORKER
   [DATA] -------> [DATA] ---> [D]+[D][D][D] --->  [DATA]
 Publisher        EXCHANGE          Queue         Consumer 

다른 사람들과 어떻게 다릅니 까?

다른 솔루션과 달리 RabbitMQ는 완전한 애플리케이션 스택(즉, 메시지 브로커)입니다. 자체 구현을 위한 프레임워크처럼 작동하는 대신 작업에 필요한 모든 도구를 제공합니다. 인기가 매우 높기 때문에 RabbitMQ를 사용하고 온라인에서 질문에 대한 답을 찾기가 정말 쉽습니다.

AMQP(Advanced Message Queuing Protocol) 개요

AMQP는 소스에서 대상으로 메시지를 배포하고 전송하기 위해 널리 사용되는 오픈 소스 표준입니다. 프로토콜 및 표준으로서 다양한 응용 프로그램 및 메시지 브로커 미들웨어가 개별적으로 설정한 설계 결정으로 인한 문제 없이 상호 운용할 수 있는 공통 기반을 설정합니다.

RabbitMQ 설치

RabbitMQ 패키지는 CentOS/RHEL 및 Ubuntu/Debian 기반 시스템과 함께 배포됩니다. 그러나 대부분의 응용 프로그램과 마찬가지로 구식입니다. 따라서 시스템에서 RabbitMQ를 얻는 권장 방법은 패키지를 온라인으로 다운로드하고 수동으로 설치하는 것입니다.

참고: 다양한 이유로 새로 생성된 VPS에서 설치를 수행하고 여기에 나열된 작업을 수행할 것입니다. 클라이언트에게 적극적으로 서비스를 제공하고 있고 시스템을 수정했을 수 있는 경우 작동을 중단하지 않고 문제가 발생하지 않도록 하려면 새 시스템에서 다음 지침을 시도하는 것이 좋습니다.

CentOS 6/RHEL 기반 시스템에 설치

RabbitMQ를 설치하기 전에 Erlang과 같은 주요 종속 항목을 가져와야 합니다. 그러나 가장 먼저 시스템과 기본 응용 프로그램을 업데이트해야 합니다.

다음을 실행하여 드롭릿을 업데이트합니다.

yum -y update

그리고 아래 명령을 사용하여 시스템에서 Erlang을 가져옵니다.

# Add and enable relevant application repositories:
# Note: We are also enabling third party remi package repositories.
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

# Finally, download and install Erlang:
yum install -y erlang

Erlang이 있으면 RabbitMQ 설치를 계속할 수 있습니다.

# Download the latest RabbitMQ package using wget:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.2.2/rabbitmq-server-3.2.2-1.noarch.rpm

# Add the necessary keys for verification:
rpm --import http://www.rabbitmq.com/rabbitmq-signing-key-public.asc

# Install the .RPM package using YUM:
yum install rabbitmq-server-3.2.2-1.noarch.rpm

Ubuntu 13/Debian 7 기반 시스템에 설치

Ubuntu 및 Debian에서 RabbitMQ를 다운로드하고 설치하는 프로세스는 최신 버전을 원하기 때문에 CentOS와 유사합니다.

시스템의 기본 애플리케이션 도구 세트 업데이트부터 시작하겠습니다.

apt-get    update 
apt-get -y upgrade

RabbitMQ 애플리케이션 리포지토리 활성화:

echo "deb http://www.rabbitmq.com/debian/ testing main" >> /etc/apt/sources.list

패키지의 확인 키를 추가합니다.

curl http://www.rabbitmq.com/rabbitmq-signing-key-public.asc | sudo apt-key add -

위에서 새로 추가한 내용으로 소스를 업데이트합니다.

apt-get update

마지막으로 RabbitMQ를 다운로드하여 설치합니다.

sudo apt-get install rabbitmq-server

시작 시 최대 연결 수를 관리하려면 nano를 사용하여 다음 구성 파일을 열고 편집하십시오.

sudo nano /etc/default/rabbitmq-server

저장하기 전에 limit 줄의 주석 처리를 제거하고(즉, # 제거) CTRL+X를 누른 다음 Y를 눌러 종료합니다.

RabbitMQ 관리

앞에서 언급했듯이 RabbitMQ는 시작하기가 매우 간단합니다. 시스템에 대한 아래 지침을 사용하여 해당 프로세스를 신속하게 관리하고 시스템 시작(예: 부팅) 시 실행되도록 할 수 있습니다.

관리 콘솔 활성화

RabbitMQ 관리 콘솔은 웹 기반 그래픽 사용자 인터페이스(GUI)를 통해 [RabbitMQ] 서버 프로세스를 모니터링할 수 있는 사용 가능한 플러그인 중 하나입니다.

이 콘솔을 사용하여 다음을 수행할 수 있습니다.

  • 교환, 대기열, 바인딩, 사용자 관리\n
  • 대기열, 메시지 속도, 연결 모니터링
  • 메시지 보내기 및 받기
  • Erlang 프로세스, 메모리 사용량 모니터링\n
  • 그리고 훨씬 더\n

RabbitMQ 관리 콘솔을 활성화하려면 다음을 실행합니다.

sudo rabbitmq-plugins enable rabbitmq_management

콘솔을 활성화하면 http://[your droplets IP]:15672/를 방문하여 선호하는 웹 브라우저를 사용하여 액세스할 수 있습니다.

로그인을 위해 기본 사용자 이름과 암호는 모두 "guest\로 설정되어 있습니다.

참고: 서비스를 실행한 후 이 콘솔을 활성화하는 경우 변경 사항을 적용하려면 콘솔을 다시 시작해야 합니다. 운영 체제에서 이를 수행하려면 아래의 관련 관리 섹션을 참조하십시오.

CentOS/RHEL 기반 시스템에서 관리

애플리케이션을 설치할 때 RabbitMQ는 기본적으로 시스템 부팅 시 시작하도록 설정되지 않습니다.

RabbitMQ가 기본적으로 데몬으로 시작되도록 하려면 다음을 실행합니다.

chkconfig rabbitmq-server on

애플리케이션 상태를 시작, 중지, 다시 시작 및 확인하려면 다음을 사용하십시오.

# To start the service:
/sbin/service rabbitmq-server start

# To stop the service:
/sbin/service rabbitmq-server stop

# To restart the service:
/sbin/service rabbitmq-server restart
    
# To check the status:
/sbin/service rabbitmq-server status

Ubuntu/Debian 기반 시스템에서 관리

Ubuntu 및 Debian에서 애플리케이션 상태를 시작, 중지, 다시 시작 및 확인하려면 다음을 사용하십시오.

# To start the service:
service rabbitmq-server start

# To stop the service:
service rabbitmq-server stop

# To restart the service:
service rabbitmq-server restart
    
# To check the status:
service rabbitmq-server status

그리고 그게 다야! 이제 가상 서버에서 작동하는 자체 메시지 큐가 있습니다.

RabbitMQ 구성

RabbitMQ는 기본적으로 표준 구성으로 실행됩니다. 일반적으로 모든 것이 원활하게 실행되는 한 대부분의 요구에 대해 많은 템퍼링이 필요하지 않습니다.

사용자 지정 요구 사항에 맞게 구성하는 방법에 대해 알아보려면 구성에 대한 설명서를 확인하십시오.

제출자: