메시지 대기열 미들웨어 - Docker는 RabbitMQ, AMQP 프로토콜 및 기본 역할을 설치합니다.

개요

마이크로 서비스이건 분산 시스템 아키텍처이건 메시지 큐 미들웨어는 필수불가결하고 중요한 연결 고리로 주류 메시지 큐 미들웨어로는 RabbitMQ, RocketMQ 등이 있다. .

AMQP 프로토콜

AMQP.png

  • AMQP 프로토콜은 통합 메시징 서비스를 제공하는 애플리케이션 계층 표준 프로토콜로, 이 프로토콜을 기반으로 하는 클라이언트 및 메시지 미들웨어는 메시지를 전송할 수 있으며, 다른 클라이언트/미들웨어 제품, 다른 개발 언어 및 기타 조건에 의해 제한되지 않습니다.
  • AMQP 프로토콜은 클라이언트 애플리케이션과 메시지 미들웨어 간에 비동기적이고 안전하며 효율적인 상호 작용을 제공하는 이진 프로토콜입니다.
  • AMQP는 미들티어 서비스로서 메시지 생산과 소비를 분리하여 소비자가 예외를 발생시켜도 소비자의 메시지 소비에 영향을 주지 않으며, 소비자가 비정상인 경우 생산자가 생산한 메시지를 서비스의 메모리 또는 디스크는 소비 속도에 영향을 미치지 않으며 동시에 라우팅 규칙에 따라 소비를 위해 지정된 소비자에게 메시지를 전달할 수도 있습니다.

AMQP 프로토콜의 중요한 역할

1. 생산자와 소비자

  • 생산자는 메시지를 생성하는 주체이고 소비자는 메시지를 소비하는 주체입니다.
  • 데이터 통합 ​​및 시스템 디커플링, 비동기 처리 및 이벤트 중심, 트래픽 Xuefeng, 트랜잭션 메시지 및 분산 트랜잭션의 최종 일관성
  • 생성자는 메시지를 생성하여 메시지 브로커에게 전달하고 메시지 브로커는 전달 규칙에 따라 소비자에게 메시지를 전달합니다.

2. 스위치

  • 스위치는 메시지 브로커의 라우터와 같습니다. 메시지를 가져와서 특정 규칙(라우팅 키)에 따라 하나 또는 0개의 큐로 라우팅하는 역할을 합니다. 스위치에는 여러 라우팅 모드가 있습니다.
  • 메시지 생성자와 라우팅 규칙에 따라 지정된 메시지 큐로 메시지를 전달할 수 있으며, 스위치는 생성자가 전달한 메시지를 수신하고 라우팅 규칙과 큐 바인딩 관계에 따라 전달된 해당 스위치 또는 큐에 대해 일치시킵니다. 스위치는 메시지를 저장하지 않습니다. 그냥 리트윗하세요.

스위치 유형:

  • 스위치에 직접 연결: 라우팅 키의 정확한 일치에 따라 해당 대기열로 전달
  • 팬 모양의 스위치: 라우팅 키에 관계없이 메시지가 복사되고 바인딩된 모든 큐로 라우팅되어 브로드캐스트 효과를 제공합니다.
  • Topic switch: 패턴 매칭에 따라 라우팅 키에 따라 해당 큐로 전달
  • 스위치에는 고유한 특성도 있으며, 고유한 이름, 지속성 여부 및 기타 옵션을 정의할 수 있습니다.

3. 대기열

  • 큐는 메시지를 임시로 저장하는 공간으로, 적어도 한 명의 소비자가 큐에 가입하면 구독한 소비자에게 즉시 메시지가 전송되지만, 무인 구독 큐에 도달하면 메시지는 큐에서 대기하게 된다. 그런 다음 소비자는 배포합니다.
  • Exchange와 Message Queue 사이에는 바인딩 관계가 있으며 메시지가 Exchange에 도착한 후 라우팅 정책을 기반으로 하는 라우팅 정책에 따라 바인딩된 Message Queue로 메시지를 전달할 수 있습니다.
  • 메시지 대기열은 메시지를 메모리 또는 디스크에 저장하고 이러한 메시지를 특정 순서로 하나 이상의 소비자에게 전달합니다.각 메시지 대기열은 독립적으로 격리되며 서로 영향을 주지 않습니다.
  • 메시지 대기열은 서로 다른 속성(개인, 공유, 영구, 임시, 클라이언트 정의 또는 서버 정의 등)을 가지며 실제 필요에 따라 해당 유형을 선택할 수 있습니다.

4. 메시지

  • 메시지는 정보의 전달자이자 AMQP 프로토콜의 엔터티입니다. 메시지는 두 부분으로 구성됩니다.
  • 페이로드: 실제 정보, 전송하려는 모든 콘텐츠, 콘텐츠의 이 부분은 메시지 브로커에게 투명합니다.
  • 메타 정보: 메시지 에이전트가 분석할 라우팅 키, 콘텐츠 유형, 인코딩 및 지속성 등과 같은 메시지 속성을 포함합니다. 메시지 에이전트는 메시지 속성에 따라 메시지를 전달하고 저장합니다. 이 부분은 관련이 있습니다. 메시지 에이전트에 의해 그리고 소비자는 그것에 대해 신경 쓰지 않습니다.

5. 채널

  • 네트워크 채널은 연결 링크 위에 구축된 가벼운 링크로 거의 모든 작업이 채널에서 수행됨 채널은 메시지를 읽고 쓰는 채널임 클라이언트는 각 채널에 대한 링크를 설정할 수 있으며 각 채널은 A 세션을 나타냅니다. 일.
  • 하나의 연결에서 여러 채널을 만들 수 있습니다.

도커는 RabbitMQ를 설치합니다.

1. Docker 웨어하우스에서 RabbitMQ 이미지 보기

# 查询镜像
docker search rabbitmq

# 下载镜像
docker pull rabbitmq

2. MQ 설치 관리 시작

클라우드 서비스에 배포하는 경우 보안 그룹에서 15672(UI 페이지 통신 포트), 5672(클라이언트 포트), 25672(서버 간 내부 통신 포트), 61613(스톰프 메시지 전송), 1883( MQTT 메시지 대기열 원격 측정 전송).

docker run -d --name rabbit -e \
RABBITMQ_DEFAULT_USER=stark -e RABBITMQ_DEFAULT_PASS=1990@stark 
-p 15672:15672 \
-p 5672:5672 \
-p 25672:25672 \
-p 61613:61613 \
-p 1883:1883 rabbitmq:management

액세스 사용 , 계정 번호 및 비밀번호는 매개 변수 설정 http://127.0.0.1:15672값입니다 .RABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASS

rabbitmq.png

Supongo que te gusta

Origin blog.csdn.net/xuezhiwu001/article/details/130532535
Recomendado
Clasificación