위키득계정 ↗
기술

NATS 메시징

NATS 메시징기술
시스템 유형
메시징 시스템
메시지 경로
Subject
기본 전달
Core NATS
저장과 재생
JetStream
NATS는 응용들이 이름 붙은 Subject를 통해 메시지를 주고받는 공개 메시징 시스템이다. 상대 응용의 네트워크 주소를 직접 알지 않아도 서버를 통해 발행과 구독을 연결할 수 있다.

주소 대신 Subject로 연결

발행자는 Subject에 메시지를 보내고 구독자는 관심 있는 Subject를 받는다. 서버가 전달을 중개하므로 응용끼리 서로의 위치를 직접 관리하는 부담을 줄인다. 계정은 같은 서버 환경에서 메시징 영역을 분리하는 데 사용한다.

기본 전달과 저장 계층

Core NATS는 발행 당시 연결된 구독자에게 메시지를 전달하며 기본 동작은 최대 한 번 전달이다. JetStream은 저장 계층을 추가해 메시지를 나중에 다시 읽을 수 있게 한다. 보내는 쪽과 받는 쪽이 같은 순간에 연결돼 있어야 하는 제약도 줄인다.

재생 위치와 수신 확인

JetStream의 스트림은 Subject에 해당하는 메시지를 보관한다. 소비자는 스트림을 읽는 위치를 별도로 유지하며 수신 확인을 통해 진행한다. 확인되지 않은 메시지가 재전달될 수 있으므로 적어도 한 번 전달과 중복 가능성을 함께 이해해야 한다.

관련 문서

Apache Kafka / Apache Pulsar / RabbitMQ / CloudEvents / AsyncAPI / OpenTelemetry