AMQP 0-9-1 Model

Today lolol·2022년 12월 14일
0

AMQP 0-9-1 Model

AMQP 0-9-1 (Advanced Message Queuing Protocol)

Brief

메세지는 exchange되기 위해 publish됩니다. Exchange 이후에 룰(이를 binding이라고 부릅니다.)에 의해 로 메세지 카피들이 분산됩니다.

네트워크와 애플리케이션을 완전히 신뢰할 수 없으므로, amqp 0-9-1 모델은 메세지 acknowledgements를 갖고 있습니다.

Exchange

Exchange는 메세지가 어디로 갈 지에 대한 AMQP 0-9-1의 요소입니다. exchange는 메세지가 0 혹은 그 이상의 큐로 라우팅되게 합니다.
이 알고리즘은 exchange type에 의존하고 이 규칙을 binding이라고 부릅니다.

Exchange types

Exchange typeDefault pre-declared names
Direct(Empty string) or amq.direct
Fanoutamq.fanout
Topicamq.topic
Headersamq.match (and amq.headers in RabbitMQ)

exchange는 몇개의 속성들과 함께 정의됩니다. 중요한 속성들을 보자면:

  • Name
  • Durability
    - exchange가 브로커가 재시작되어도 생존합니다.
  • Auto-delete
    - 큐와의 마지막 연결이 종료되면, exchange가 삭제됩니다.
  • Arguments
    - optional, 플러그인과 특정 브로커의 기능을 위해 사용됩니다.

Exchange는 durable 혹은 transient 합니다. 이는 위에서 언급된 Durability와 연관되어 있습니다.
만약 durable하다면 exchange는 브로커가 재시작되어도 생존하지만, transient(순간적인)라면 그렇지 않습니다(브로커가 다시 온라인 상태가 되면 재선언이 필요해집니다).
모든 경우에서 exchangedurable로 선언될 필요는 없습니다.

Default exchange

exchange 기본값은 direct exchange입니다.
단순한 애플리케이션에 매우 유용한 특별한 속성이 있습니다: 모든 큐는 생성될 때마다 큐 이름과 동일한 routing key가 바운딩됩니다.

예를 들어서, “search-indexing-online”이라는 큐를 선언했다고 합시다. AMQP 0-9-1 브로커는 default exchange로 “search-indexing-online”이라는 값으로 routing key를 바운딩할 것 입니다. (혹은 문맥상 binding key로 불릴 수도 있습니다.)

profile
working making doing makes us 🤖

0개의 댓글