ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AMQP(Advanced Message Queuing Protocol)
    Cloud 2015. 3. 10. 09:00
    메세지 미들웨어용 표준 프로토콜. 애플리케이션 레이어 프로토콜.
    메세지 전달을 3가지 방식중 하나로 보장함.
    • at-most-once : 각 메세지는 한번만 전달되거나 아예 전달되지 않음.
    • at-least-once : 각 메세지는 최소 한번이상 전달되고 여러번 전달될수도 있음.
    • exactly-once : 메세지는 딱 한번만 전달됨.

    정의하고 있는 주요기능
    - 메세지 관리
    - 큐잉(queuing)
    - 라우팅(점대점, 발행/구독 포함)
    - 신뢰성
    - 보안

    AMQP에서는 데이터의 기본단위를 프레임(frame)이라고 함. 메세지 초기화/관리/전송등을 위한 9개의 프레임 바디(frame body)가 있음.
    - open, begin, attach, transfer, flow, disposition, detach, end, close

    link 프로토콜이 AMQP의 핵심.
    attach 프레임 바디가 새 링크를 초기화하기위해 보내짐. detach가 링크를 없애기 위해 보내짐.
    메세지는 맺어진 링크위에서 transfer 프레임을 이용해서 보내짐.
    링크 흐름상의 메세지는 한방향으로만 움직임.
    transfer는 flow 프레임의 관리하에 전송됨.
    메세지 양이 너무 커지는걸 방지하고 메세지를 보내기위해 링크를 구독하는걸 단순화함.
    양방향의 멀티 링크는 session으로 그룹지을 수 있음. session은 begin 프레임으로 초기화되고 end 프레임으로 종료됨. 
    open 프레임으로 초기화된 커넥션은 close 프레임으로 종료됨.

    메세지 형식
    bare message : 메세지를 보내는 애플리케이션이 생성한 메세지.
    bare message 메세지는 전송되는 도중에 변하지 않는다고(immutable) 간주함.
    bare msaage와 분리해서 각 메세지를 보내기 전/후에 메세지에 어노테이션(Annotation)을 붙일수 있음.
    header는 전달 관련된 어노테이션들의 표준 집합임. 요청된 메세지, TTL, durability, priority등의 정보를 포함.
    bare message 자체도 message id, user id, creation time, reply to, subject, correlation id, group id등의 표준 속성을 이용한 구조를 가지고 있음


    AMQP와 호환가능한 프로토콜들
    - STOMP(Streaming Text Oriented Messaging Protocol
    - XMPP(Extensible Messaging and Presence Protocol
    - MQTT
    - OpenWire


    참고


    'Cloud' 카테고리의 다른 글

    RabbitMQ 작업 큐로 이용하기  (0) 2015.03.12
    RabbitMQ 파악하기  (0) 2015.03.11
    trove 개념 잡기  (0) 2015.02.25
    openstack 개념잡기  (0) 2015.02.23
    내가 만든 소스를 포함해서 docker 이미지 빌드하기  (0) 2015.01.30

    댓글

Designed by Tistory.