플러그인 - Amazon MQ

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

플러그인

RabbitMQ용 Amazon MQ는 관리 기능을 지원하는 RabbitMQ 관리 플러그인과 RabbitMQ 웹 콘솔을 지원합니다. API 웹 콘솔과 관리를 사용하여 브로커 사용자 및 정책을 생성하고 관리할 수 있습니다. API

관리 플러그 인 외에 RabbitMQ용 Amazon MQ는 다음 플러그 인도 지원합니다.

Shovel 플러그 인

Amazon MQ 관리형 브로커는 메시지를 한 브로커 인스턴스의 대기열 및 교환에서 다른 브로커 인스턴스로 이동하는 데 사용할 수 있는 RabbitMQ shovel을 지원합니다. Shovel을 사용하여 느슨하게 결합된 브로커를 연결하고 메시지 로드가 많은 노드의 메시지를 분산할 수 있습니다.

Amazon MQ 관리형 RabbitMQ 브로커는 동적 shovel을 지원합니다. 동적 shovel은 런타임 파라미터를 매개 변수를 사용하여 구성하며 클라이언트 연결을 통해 프로그래밍 방식으로 언제든지 시작 및 중지할 수 있습니다. 예를 들어, RabbitMQ 관리를 API 사용하여 다음 API 엔드포인트에 동적 삽을 PUT 구성하라는 요청을 생성할 수 있습니다. 이 예제에서는 {vhost}를 브로커의 vhost 이름으로 바꾸고 {name}을 새 동적 shovel의 이름으로 바꿀 수 있습니다.

/api/parameters/shovel/{vhost}/{name}

요청 본문에 대기열이나 교환 중 하나만 지정해야 합니다. 아래 예제에서는 src-queue에 지정된 로컬 대기열과 dest-queue에 정의된 원격 대기열 간의 동적 shovel을 구성합니다. 마찬가지로 src-exchangedest-exchange 파라미터를 사용하여 두 교환 간의 shovel을 구성할 수 있습니다.

{ "value": { "src-protocol": "amqp091", "src-uri": "amqp://localhost", "src-queue": "source-queue-name", "dest-protocol": "amqp091", "dest-uri": "amqps://b-c8352341-ec91-4a78-ad9c-a43f23d325bb.mq.us-west-2.amazonaws.com:5671", "dest-queue": "destination-queue-name" } }
중요

shovel 대상이 프라이빗 브로커인 경우 대기열 또는 교환 간 shovel을 구성할 수 없습니다. 퍼블릭 브로커의 대기열 또는 교환 간이나 프라이빗 브로커의 소스와 퍼블릭 브로커의 대상 간에만 shovel을 구성할 수 있습니다.

동적 shovel을 사용하는 방법에 대한 자세한 내용은 RabbitMQ 동적 shovel 플러그 인을 참조하세요.

참고

Amazon MQ는 정적 shovel 사용은 지원하지 않습니다.

Federation 플러그 인

Amazon MQ는 연동 교환 및 대기열을 지원합니다. Federation을 사용하면 개별 브로커에서 대기열, 교환 및 소비자 간의 메시지 흐름을 복제할 수 있습니다. 페더레이션된 대기열과 거래소는 point-to-point 링크를 사용하여 다른 브로커의 동료와 연결합니다. 기본적으로 연동 교환은 메시지를 한 번 라우팅하는 반면 연동 대기열은 소비자가 필요한 만큼 몇 번이든 메시지를 이동할 수 있습니다.

Federation을 사용하면 다운스트림 브로커가 업스트림에 있는 교환 또는 대기열의 메시지를 소비하도록 할 수 있습니다. RabbitMQ 웹 콘솔 또는 관리를 사용하여 다운스트림 브로커에서 페더레이션을 활성화할 수 있습니다. API

중요

업스트림 대기열 또는 교환이 프라이빗 브로커에 있는 경우 페더레이션을 구성할 수 없습니다. 퍼블릭 브로커의 대기열 또는 교환 간이나 퍼블릭 브로커의 업스트림 대기열 또는 교환과 프라이빗 브로커의 다운스트림 대기열 또는 교환 간에만 페더레이션을 구성할 수 있습니다.

예를 API 들어 관리를 사용하여 다음을 수행하여 페더레이션을 구성할 수 있습니다.

  • 다른 노드에 대한 federation 연결을 정의하는 하나 이상의 업스트림을 구성합니다. RabbitMQ 웹 콘솔 또는 관리를 사용하여 페더레이션 연결을 정의할 수 있습니다. API 관리를 API 사용하여 다음 요청 본문을 /api/parameters/federation-upstream/%2f/my-upstream 사용하여 POST 요청을 생성할 수 있습니다.

    {"value":{"uri":"amqp://server-name","expires":3600000}}
  • 대기열 또는 교환이 연동될 수 있도록 정책을 구성합니다. RabbitMQ 웹 콘솔 또는 관리를 사용하여 정책을 구성할 수 있습니다. API 관리를 API 사용하여 다음 요청 본문을 /api/policies/%2f/federate-me 사용하여 POST 요청을 생성할 수 있습니다.

    {"pattern":"^amq\.", "definition":{"federation-upstream-set":"all"}, "apply-to":"exchanges"}
    참고

    요청 본문에서는 서버에 있는 교환의 이름이 amq로 시작한다고 가정합니다. 정규식 ^amq\.을 사용하면 이름이 “amq”로 시작하는 모든 교환에 대해 federation이 활성화됩니다. RabbitMQ 서버의 교환은 이름을 다르게 지정할 수 있습니다.

Federation 플러그 인을 구성하는 방법에 대한 자세한 내용은 RabbitMQ federation 플러그 인을 참조하세요.

일관적 해시 교환 플러그 인

기본적으로 RabbitMQ용 Amazon MQ는 일관적 해시 교환 유형 플러그 인을 지원합니다. 일관적 해시 교환은 메시지의 라우팅 키에서 계산된 해시 값을 기반으로 메시지를 대기열로 라우팅합니다. 라우팅 키가 적절히 균등하면 일관적 해시 교환은 메시지를 대기열 간에 비교적 균등하게 분산할 수 있습니다.

Consistent Hash 교환에 바인딩된 대기열의 경우 바인딩 키는 각 대기열의 바인딩 가중치를 결정하는 number-as-a-string a입니다. 바인딩 가중치가 높은 대기열은 바인딩된 일관적 해시 교환에서 비례하여 높은 분포의 메시지를 받습니다. 일관적 해시 교환 토폴로지에서 게시자는 단순히 메시지를 교환에 게시할 수 있지만 소비자는 특정 대기열의 메시지를 소비하도록 명시적으로 구성해야 합니다.

일관된 해시 교환에 대한 자세한 내용은 웹 사이트의 RabbitMQ 일관된 해시 교환 유형을 참조하십시오. GitHub