3.2. 네트워크 연결에서 AMQP 사용
브로커는 AMQP 1.0 사양을 지원합니다. AMQP 링크는 소스와 대상(즉, 클라이언트 및 브로커) 간의 메시지의 단방향 프로토콜입니다.
절차
-
<
broker_instance_dir> /etc/broker.xml
구성 파일을 엽니다. -
다음 예와 같이 AMQP 값이 AMQP를 포함하는
protocols
매개 변수를 포함하여AMQP
클라이언트를 수신하도록수락자를 추가하거나
구성합니다.
<acceptors> <acceptor name="amqp-acceptor">tcp://localhost:5672?protocols=AMQP</acceptor> ... </acceptors>
이전 예에서 브로커는 기본 AMQP 포트인 포트 5672에서 AMQP 1.0 클라이언트를 허용합니다.
AMQP 링크에는 두 개의 엔드포인트, 즉 발신자와 수신자가 있습니다. 발신자가 메시지를 전송할 때 브로커가 내부 형식으로 변환하여 브로커의 대상으로 전달할 수 있습니다. 수신자는 브로커의 대상에 연결하고 메시지를 전달하기 전에 AMQP로 다시 변환합니다.
AMQP 링크가 동적인 경우 임시 대기열이 생성되고 원격 소스 또는 원격 대상 주소가 임시 대기열의 이름으로 설정됩니다. 링크가 동적이지 않으면 큐에 원격 대상 또는 소스의 주소가 사용됩니다. 원격 대상 또는 소스가 없는 경우 예외가 전송됩니다.If the remote target or source does not exist, an exception is sent.
링크 대상은 기본 세션을 트랜잭션으로 처리하는 데 사용되는 Coordinator일 수도 있으며 이를 롤백하거나 커밋할 수도 있습니다.A link target can also be a Coordinator, which is used to handle the underlying session as a transaction, either rolling it back or commit it.
AMQP를 사용하면 세션당 여러 트랜잭션을 사용할 수 있습니다. amq p:multi-txns-per-sn
. 하지만 현재 AMQ Broker 버전은 세션당 단일 트랜잭션만 지원합니다.
AMQP 내의 XA(Distributed transactions)에 대한 세부 정보는 사양 1.0 버전에서 제공되지 않습니다. 환경에 분산 트랜잭션 지원이 필요한 경우 AMQ Core Protocol JMS를 사용하는 것이 좋습니다.
프로토콜 및 해당 기능에 대한 자세한 내용은 AMQP 1.0 사양을 참조하십시오.
3.2.1. AMQP 링크를 주제로 사용
JMS와 달리 AMQP 프로토콜에는 주제가 포함되어 있지 않습니다. 그러나 큐에서 소비자만 사용하는 것이 아니라 AMQP 소비자 또는 수신자를 서브스크립션으로 처리할 수 있습니다. 기본적으로 Default .topic.
접두사를 사용하여 주소에 연결되는 모든 수신 링크는 서브스크립션으로 처리되며 서브스크립션 큐가 생성됩니다. 서브스크립션 큐는 다음 표에 캡처된 대로 Terminus Durability가 어떻게 구성되는지에 따라 내구성 또는 휘발성 또는 휘발성으로 이루어집니다.
멀티 캐스트 전용 queue...에 대한 이러한 종류의 서브스크립션을 만들려면 다음을 수행합니다. | Terminus 내구성을 이…로 설정합니다. |
---|---|
내구성 |
|
구성할 수 없음 |
|
내구성이 있는 큐의 이름은 컨테이너 ID와 링크 이름(예: my-container-id:my-link-name
)으로 구성됩니다.
AMQ Broker는 qpid-jms 클라이언트도 지원하며 주소에 사용되는 접두사와 관계없이 주제의 사용을 존중합니다.