11장. 상호 운용성


이 장에서는 다른 AMQ 구성 요소와 함께 AMQ JMS를 사용하는 방법에 대해 설명합니다. AMQ 구성 요소의 호환성 개요는 제품 소개 를 참조하십시오.

11.1. 다른 AMQP 클라이언트와 상호 작용

AMQP 메시지는 AMQP 유형 시스템을 사용하여 구성됩니다. 이러한 공통 형식을 갖는 것은 다른 언어의 AMQP 클라이언트가 서로 상호 운용할 수 있는 이유 중 하나입니다. 이 섹션은 다른 AMQP 클라이언트와 함께 클라이언트 사용을 지원하기 위해 사용되는 다양한 JMS Message 유형과 관련하여 클라이언트에서 전송 및 수신한 AMQP 페이로드 관련 동작을 문서화하는 역할을 합니다.

11.1.1. 메시지 전송

이 섹션에서는 다양한 JMS Message 유형을 사용할 때 클라이언트가 전송한 다양한 페이로드를 문서화하여 다른 클라이언트를 사용하여 수신할 수 있도록 지원합니다.

11.1.1.1. 메시지 유형

JMS 메시지 유형전송된 AMQP 메시지의 설명

textMessage

textMessage는 본문 텍스트의 utf8 인코딩 문자열 을 포함하는 amqp-value body 섹션을 사용하거나 본문 텍스트가 설정되지 않은 경우 null 로 전송됩니다. "x-opt-jms-msg-type"의 기호 키가 있는 메시지 주석은 바이트 값 5로 설정됩니다.

BytesMessage

CryostatsMessage는 properties 섹션의 content-type 필드가 기호"application/octet-stream" 으로 설정되어 있는 data body 섹션을 사용하여 전송됩니다. "x-opt-jms-msg-type"의 기호 키가 있는 메시지 주석은 바이트 값 3으로 설정됩니다.

MapMessage

MapMessage 본문은 단일 값을 포함하는 amqp-value body 섹션을 사용하여 전송됩니다. MapMessage 본문의 모든 byte[] 값은 맵의 바이너리 항목으로 인코딩됩니다. "x-opt-jms-msg-type" 기호 키가 있는 메시지 주석은 바이트 값 2로 설정됩니다.

StreamMessage

StreamMessage는 StreamMessage 본문의 항목이 포함된 amqp-sequence 본문 섹션을 사용하여 전송됩니다. StreamMessage 본문의 모든 byte[] 항목은 시퀀스의 바이너리 항목으로 인코딩됩니다. "x-opt-jms-msg-type"의 기호 키가 있는 메시지 주석은 바이트 값 4로 설정됩니다.

ObjectMessage

ObjectMessage는 ObjectOutputStream을 사용하여 ObjectMessage 본문을 직렬화하는 바이트를 포함하는 데이터 본문 섹션을 사용하여 전송됩니다. properties 섹션 content-type 필드가 기호"application/x-java-serialized-object" 로 설정되어 있습니다. "x-opt-jms-msg-type" 기호 키가 있는 메시지 주석은 바이트 값 1로 설정됩니다.

메시지

일반 JMS 메시지에는 본문이 없으며 null 이 포함된 amqp-value body 섹션으로 전송됩니다. "x-opt-jms-msg-type" 기호 키가 있는 메시지 주석은 바이트 값 0으로 설정됩니다.

11.1.1.2. 메시지 속성

JMS 메시지는 다양한 Java 유형의 애플리케이션 속성을 설정할 수 있도록 지원합니다. 이 섹션에서는 전송된 메시지의 application-properties 섹션에 있는 AMQP 형식 값에 대한 이러한 속성 유형의 매핑을 표시하는 역할을 합니다. JMS 및 AMQP는 모두 속성 이름에 문자열 키를 사용합니다.

JMS 속성 유형AMQP 애플리케이션 속성 유형

boolean

boolean

byte

byte

short

short

int

int

long

long

플로트

플로트

double

double

문자열

문자열 또는 null

11.1.2. 메시지 수신

이 섹션은 클라이언트가 수신한 다양한 페이로드를 문서화하는 역할을 하며 JMS 클라이언트에서 수신하기 위해 다른 클라이언트를 사용하여 메시지를 보내는 데 도움이 되도록 다양한 JMS 메시지 유형에 매핑됩니다.

11.1.2.1. 메시지 유형

다음 표에 설명된 매핑에 따라 "x-opt-jms-msg-type" message-annotation이 수신된 AMQP 메시지에 있는 경우 해당 값은 다음 표에 설명된 매핑에 따라 이를 나타내는 데 사용되는 JMS 메시지 유형을 결정하는 데 사용됩니다. 이는 JMS 클라이언트에서 전송한 메시지에 대해 설명된 매핑의 역방향 프로세스를 반영합니다.

AMQP "x-opt-jms-msg-type" message-annotation value (type)JMS 메시지 유형

0 (byte)

메시지

1 (바이트)

ObjectMessage

2 (바이트)

MapMessage

3 (바이트)

BytesMessage

4 (바이트)

StreamMessage

5 (바이트)

textMessage

"x-opt-jms-msg-type" message-annotation이 없으면 아래 표에서 메시지를 JMS 메시지 유형에 매핑하는 방법을 자세히 설명합니다. StreamMessageMapMessage 유형은 주석이 달린 메시지에만 할당됩니다.

"x-opt-jms-msg-type" 주석이 없는 Received AMQP 메시지에 대한 설명JMS 메시지 유형
  • 문자열 또는 null 을 포함하는 amqp-value body 섹션.
  • properties 섹션 content-type 필드가 "text/plain", "application/xml" 또는 "application/json" 과 같은 일반적인 텍스트 미디어 유형을 나타내는 기호 값으로 설정된 데이터 본문 섹션.

textMessage

  • 바이너리 를 포함하는 amqp-value body 섹션.
  • properties 섹션의 content-type 필드가 설정되지 않은 데이터 본문 섹션은 기호"application/octet-stream" 으로 설정하거나 다른 메시지 유형과 연결되지 않은 값으로 설정합니다.

BytesMessage

ObjectMessage

11.1.2.2. 메시지 속성

이 섹션에서는 수신된 AMQP 메시지의 application-properties 섹션에 있는 값 매핑을 JMS Message에 사용된 Java 유형에 표시하는 역할을 합니다.

AMQP 애플리케이션 속성 유형JMS 속성 유형

boolean

boolean

byte

byte

short

short

int

int

long

long

플로트

플로트

double

double

string

문자열

null

문자열

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.