>  기사  >  백엔드 개발  >  RabbitMQ 기본 개념 및 원리 예제

RabbitMQ 기본 개념 및 원리 예제

零下一度
零下一度원래의
2017-06-23 16:35:143134검색

RabbitMQ의 기본 개념과 원리

1.AMQP, Advanced Message Queuing Protocol은 애플리케이션 계층 프로토콜에 대한 개방형 표준이며 메시지 지향 미들웨어용으로 설계되었습니다.

2.RabbitMQ는 오픈 소스 AMQP 구현이며 서버 측은 Erlang 언어로 작성되었습니다.

3.Channel

채널은 RabbitMQ를 다루는 데 있어 가장 중요한 인터페이스입니다. Queue 정의, Exchange 정의, Queue 및 Exchange 바인딩, 뉴스 게시 등 대부분의 비즈니스 작업이 채널 인터페이스에서 완료됩니다. .

4.Exchange (생산자는 메시지를 Exchange(exchange)로 보내고 Exchange는 메시지를 하나 이상의 대기열로 라우팅합니다(또는 이를 삭제합니다). RabbitMQ에서 일반적으로 사용되는 Exchange 유형에는 fanout, direct, topic, headers가 포함됩니다. 4)

5.Queue (RabbitMQ의 내부 개체, 메시지 저장에 사용)

6. 기본 작동 원리

클라이언트(생산자) 보내기 -> 교환(전환 메시지를 해당 대기열에 저장) 다른 유형을 통해)-->Queue

클라이언트(소비자)는 구독을 통해 대기열에 있는 메시지를 소비합니다.

위 기본 개념은 RabbitMQ 기본 개념에 대한 자세한 소개

Windows 시스템에 RabbitMQ 설치

1. erlang 다운로드 및 설치 (저는 otp_win64_19.3 버전을 사용하고 있습니다)

다운로드 주소 (작업에 따라) 시스템이 32비트 또는 64비트를 선택합니다.

2. Rabbitmq-server를 다운로드하고 설치합니다. (저는 Rabbitmq-server-3.6.10 버전을 사용하고 있습니다.)

주소 다운로드

설치 후

를 참조하세요. 설치 디렉터리에서

다음으로 DOS 명령

a를 사용합니다. cd를 sbin 디렉터리로 이동합니다. 내 설치 디렉터리는 D:RabbitMQServerrabbitmq_server-3.6.10sbin입니다. D: Enter, cd RabbitMQServerrabbitmq_server-3.6.10sbin

b. B. 설치는 다음과 같은 명령으로 성공적입니다. 성공, 브라우저에 http://127.0 0.1:15672/

guest 계정 guest 비밀번호를 입력하고 성공적으로 로그인하세요. 조금 기대되시나요?

게스트 계정은 관리자 계정으로 Exchange, Queue, Admin을 추가할 수 있습니다. 그러나 우리는 일반적으로 게스트 계정을 사용하지 않고 계속해서 명령을 사용하여 계정 및 권한을 추가합니다.

d: 사용자 추가:

rabbitmqctl.bat add_user 사용자 이름 비밀번호

e: "최고 관리자" 역할 추가:

rabbitmqctl.bat set_user_tags 사용자 이름 관리자

mymq 계정도 슈퍼 관리자로서 가상 호스트에 접근 가능: 접근 불가, 아직 접근할 수 없는 가상 머신을 확인한 후 가상 머신을 추가할 수 있습니다.

f: 가상 머신 추가: rabbitmqctl add_vhost vhostName

다음으로, 계정을 가상 머신에 바인딩합니다.

g: 가상 머신 및 사용자 권한 정의:

rabbitmqctl set_permissions -p 가상 머신 이름 계정 이름 ".*" ".*" ".*"

h: 습관적으로 게스트를 주로 삭제합니다. 계정: rabbitmqctl.bat delete_user 사용자 이름

자, 관리 페이지에 다시 로그인하시면 모든 것이 정상화되고 실제 전투가 시작됩니다.

EasyNetQ 기본 사용법

프로젝트에 EasyNetQ 설치

EasyNetQ는 RabbitMQ.Client에 의존하므로 프로젝트에 설치됩니다.

뉴스 게시

모델에는 대기열 이름과 Exchange 이름을 정의하는 대기열 기능이 있습니다. 그런 다음 Publish 메서드를 직접 사용하여 모델에서 지정한 스위치를 통해 지정된 큐에 Msg를 푸시합니다.

코드를 실행하고 MQ 관리 페이지를 살펴보세요.

모델이 지정한 TestQueue.Exchange 교환이 생성되었습니다. 유형: 주제, 기능: D. D:Durable은 기본적으로 생성된 스위치가 영구임을 나타냅니다.

메시지가 아직 구독되지 않았기 때문에 해당 대기열을 대기열에서 볼 수 없습니다.

구독 구독 메시지

구독 코드에 왜 잠시(true)를 넣어야 하나요? 콘솔 프로그램은 플래시로 실행되고 실제로 MQ 메시지를 구독할 수 없기 때문에 콘솔 프로그램을 Windows 서비스로 시뮬레이션하는 것이 목적입니다.

실제 개발에서는 일반적으로 Topself를 사용하여 콘솔 프로그램을 Windows 서비스에 게시합니다. 나중에 시간이 나면 Topself에 대한 학습 블로그를 작성하겠습니다.

지금 바로 게시 작업을 반복하여 전체 프로세스를 테스트하세요.

Custom Topic

이 방법으로 메시지는 이름이 Test로 시작하는 모든 대기열 대기열로 전송됩니다.

SendReceive

는 보내기 및 받기를 통해 지정된 대기열에 메시지를 보낼 수 있습니다.

위 내용은 RabbitMQ 기본 개념 및 원리 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.