RabbitMQ 4 - Amazon MQ

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

RabbitMQ 4

Amazon MQ는 RabbitMQ 모든 인스턴스 크기에 걸쳐 mq.m7g 인스턴스 유형에서만 RabbitMQ 4 릴리스 시리즈에서 RabbitMQ 4.2를 지원합니다.

중요

RabbitMQ 4.2에서만 새 브로커를 생성할 수 있습니다. 현재 RabbitMQ 3.13의 업그레이드는 지원되지 않습니다.

중요

RabbitMQ 4.2용 Amazon MQ 브로커의 기본 대기열 유형은 “쿼럼”입니다. RabbitMQ 대기열 생성 중에 대기열 유형 인수를 지정하지 않으면 쿼럼 대기열이 생성됩니다.

RabbitMQ 4에서 쿼럼 대기열을 내구성 요구 사항에 사용하는 것이 좋습니다. 클래식 대기열은 어떤 경우에도 내구성을 보장할 수 없기 때문입니다.

Amazon MQ의 RabbitMQ 4에 다음과 같은 변경 사항이 도입되었습니다.

  • AMQP 1.0을 코어 프로토콜로 사용: 자세한 내용은 프로토콜을 참조하세요.

  • 로컬 셔블: 셔블은 이제 AMQP 0-9-1 및 AMQP 1.0 외에도 "local"이라는 새 프로토콜을 지원합니다. 로컬 셔블은 내부적으로 AMQP 1.0을 기반으로 하지만 별도의 TCP 연결을 사용하는 대신 클러스터 노드와 내부 APIs 간의 클러스터 내 연결을 사용하여 메시지를 게시하고 소비합니다. 이는 동일한 클러스터 내에서 소비하고 게시하는 데에만 사용할 수 있으며 AMQP 0-9-1 및 AMQP 1.0보다 적은 리소스를 사용하면서 더 높은 처리량을 제공할 수 있습니다.

  • 쿼럼 대기열은 메시지 우선 순위를 지원합니다. 쿼럼 대기열 메시지 우선 순위는 항상 활성 상태이며 작동하는 데 정책이 필요하지 않습니다. 쿼럼 대기열이 우선 순위가 설정된 메시지를 수신하면 우선 순위가 활성화됩니다. 쿼럼 대기열은 내부적으로 높음과 정상이라는 두 가지 우선 순위만 지원합니다. 우선순위가 설정되지 않은 메시지는 우선순위 0~4와 마찬가지로 정상으로 매핑됩니다. 우선 순위가 4보다 높은 메시지는 높음으로 매핑됩니다. 우선 순위가 높은 메시지는 일반 우선 순위 메시지보다 2:1의 비율로 우선 적용됩니다. 즉, 우선 순위가 높은 메시지 2개마다 대기열은 일반 우선 순위 메시지 1개(사용 가능한 경우)를 전달합니다. 따라서 쿼럼 대기열은 일종의 '공평 공유' 우선 순위 처리를 구현합니다. 이렇게 하면 항상 일반적인 우선 순위 메시지에서 진행이 이루어지지만 높은 우선 순위는 2:1의 비율로 선호됩니다.

  • Khepri: Khepri는 RabbitMQ 4 브로커의 기본 메타데이터 스토어로 사용됩니다.

  • 상호 TLS(mTLS): Amazon MQ는 RabbitMQ 브로커에 상호 TLS(mTLS)를 지원하므로 클라이언트가 인증서를 사용하여 인증할 수 있습니다. 자세한 내용은 mTLS 구성을 참조하세요.

  • SSL 인증서 인증 플러그인: SSL 인증 플러그인은 mTLS 연결의 클라이언트 인증서를 사용하여 사용자를 인증하므로 사용자 이름 및 암호 자격 증명 대신 X.509 클라이언트 인증서를 사용한 인증을 허용합니다. 자세한 내용은 SSL 인증서 인증을 참조하세요.

  • HTTP 인증 플러그인: HTTP 인증 백엔드 플러그인을 사용하면 외부 HTTP 서비스에 인증 및 권한 부여를 위임할 수 있습니다. 자세한 내용은 HTTP 인증 및 권한 부여를 참조하세요.

다음 기능은 Amazon MQ의 RabbitMQ 4에서 더 이상 사용되지 않습니다.

  • 클래식 대기열 미러링: 클라이언트 라이브러리 및 애플리케이션에 대한 중단된 변경 없이 클래식 대기열이 계속 지원되지만 이제는 복제되지 않은 대기열 유형입니다. 클라이언트는 복제되지 않은 클래식 대기열에 게시하고 사용할 노드에 연결할 수 있습니다. 복제 및 데이터 안전을 위해 쿼럼 대기열을 사용하는 것이 좋습니다.

  • 글로벌 QoS 제거: 고객은 전체 채널에 단일 공유 프리페치를 사용하는 글로벌 QoS 대신 소비자당 QoS(비글로벌)를 설정하는 것이 좋습니다.

  • 임시 비독점 대기열 지원: 임시 대기열은 선언된 노드의 가동 시간에 수명이 연결된 대기열입니다. 단일 인스턴스 브로커에서는 노드가 다시 시작될 때 제거됩니다. 클러스터 배포에서는 호스팅되는 노드가 다시 시작될 때 제거됩니다. 일정 시간 동안 사용하지 않은 유휴 대기열을 자동 삭제하려면 대기열 TTL을 사용하는 것이 좋습니다. 전용 대기열은 계속 지원되며 대기열에 대한 모든 연결이 제거되면 삭제됩니다.

Amazon MQ에서 RabbitMQ 4.2로 업그레이드할 때 다음과 같은 주요 변경 사항이 애플리케이션에 영향을 미칠 수 있습니다.

  • 기본 대기열 유형: RabbitMQ 4 브로커의 기본 대기열 유형은 쿼럼으로 설정됩니다. 대기열 생성 중에 대기열 유형 인수를 지정하지 않으면 쿼럼 대기열이 생성됩니다.

  • 쿼럼 대기열의 기본 재전송 제한은 20으로 설정됩니다. 20회 이상 재전송되는 메시지는 배달 못한 편지 또는 삭제(제거)됩니다. 메시지당 20개의 전송이 대기열의 일반적인 시나리오인 경우 데이터 손실을 방지하려면 해당 대기열에 대해 배달 못한 편지 대상 또는 더 높은 제한을 구성해야 합니다. 이를 위한 권장 방법은 정책을 통하는 것입니다.

  • amqplib: 0.10.7 이전 노드 JS 클라이언트 amqplib 버전 또는 frame_max < 8192를 사용하는 AMQP 클라이언트 라이브러리는 RabbitMQ에 연결할 수 없습니다.

  • 기본 리소스 제한: RabbitMQ용 Amazon MQ에는 연결, 채널, 채널당 소비자, 대기열, vhost, 셔블, 교환 및 최대 메시지 크기에 대한 기본 리소스 사용 제한이 도입되었습니다. RabbitMQ 이는 브로커 가용성을 보호하기 위한 가드레일 역할을 하며 특정 요구 사항에 맞게 구성을 사용하여 사용자 지정할 수 있습니다.

다음 기능은 Amazon MQ의 RabbitMQ 4에서 지원되지 않습니다.

  • 로컬 임의 교환: Amazon MQ 노드가 네트워크 로드 밸런서 뒤에 있으므로 Amazon MQ에서는 로컬 임의 교환이 지원되지 않습니다. Amazon MQ

  • 메시지 인터셉터: RabbitMQ 메시지 인터셉터는 Amazon MQ에서 지원되지 않습니다.

  • 대기열당 지표: Amazon MQ는 AWS CloudWatch를 통해 RabbitMQ 4 브로커에 대한 RabbitMQ 대기열 지표를 벤딩하지 않습니다. Amazon MQ는 AWS CloudWatch를 통해 브로커 수준 지표를 제공합니다. RabbitMQ 관리 API를 사용하여 대기열 지표를 쿼리할 수 있습니다. 1분 이상의 간격으로 특정 대기열에 대한 지표를 쿼리하는 것이 좋습니다.