래빗MQ 메시지 속성

1.
래빗MQ 메시지는 AMQP 스펙의 세가지 low-level 프레임으로 구성된다.
- 메소드 프레임
- 콘텐츠 헤더 프레임
- 바디 프레임

2.
콘텐츠 헤더 프레임은 Basic.Properties 데이터 구조로 사전에 정의한 값들이 있다.
- content-type : 소비자에게 메시지 본문을 해석하는 방법을 전달
  ex) application/json, application/xml
- content-encoding : 메시지 본문이 어떤 방법으로 압축 or 인코딩 되었는지 전달
  ex) base64, gzip
- message-id, correlation-id : 메시지, 메시지 응답 고유하게 식별
  ex) uuid
  : 어플리케이션에서 원하는 용도로 자유롭게 사용
    correlation-id에는 message-id의 값을 지정할 수 있다.
- timestamp : 메시지 크기를 줄이고 메시지 생성 시점에 대한 표준 시간 전달
  : 이것도 어플레키에션 용도
    메시지 성능 측정 가능. 메시지 수명 체크후 처리여부 결정 가능
- expiration : 메시지의 만료
  : 문자열, 만료됐으면 큐에 안들어가고 삭제. 큐설정으로도 만료가능(x-message-ttl)
- delivery-mode : 메시지를 디스크 또는 메모리에 저장할지
- app-id, user-id : 문제가 발생한 발행자 어플리케이션 추적
- reply-to : 패턴을 값으로 전달해 응답 메시지를 라우팅
- headers : 메시지 라우팅할때 사용자 정의 형식의 속성 정의
- priority : 메시지 우선순위 0~9(0이 높음)
cluster-id : (사용을 권장하지 않음)
- type : 발행자와 소비자 사이의 계약을 정의

출처 : rabbitmq in depth 3장 (도서)



댓글

이 블로그의 인기 게시물

래빗MQ 클러스터링 - 2. 네트워크 파티션

래빗MQ 메시지 딜리버리 확인 메커니즘 - 소비자에서 브로커로

래빗MQ 클러스터링 - 1. 클러스터링