01 · RELIABILITY
신뢰성
메시지가 손실되지 않고, 잘못된 소비자에게 전달되지 않습니다.
디스크에 안전하게 기록되고, 토픽당 단일 라이터로 순서가 지켜지며, 잠금 없는 읽기로 처리량까지 챙긴 메시지 브로커입니다.
신뢰할 수 있는 메시징을 위한 네 가지 기준을 두고 만들어 갑니다.
메시지가 손실되지 않고, 잘못된 소비자에게 전달되지 않습니다.
예기치 못한 장애와 재시작 후에도 메시지는 살아남습니다.
디스크에 안전하게 기록되어 사라지지 않습니다.
안정성을 잃지 않으면서 빠르게 흐릅니다.
의존성을 추가하고 빈을 등록한 뒤, 한 번의 메서드 호출로 메시지를 발행합니다.
@Service public class OrderEventPublisher { private final Producer producer; public OrderEventPublisher(Producer producer) { this.producer = producer; } public void publish(long orderId) { producer.produce(new Message( new Topic("order.created"), Map.of("id", orderId) )); } }
producer 의존성을 추가합니다.
@Configuration에서 Producer 빈을 등록합니다.
Producer의 produce(Message)를 호출하면 끝입니다.
ProduceException이 던져집니다.
각 모듈은 독립적으로 의존성에 추가해 사용합니다.
가장 짧은 가이드를 따라가면, 첫 메시지가 broker를 거쳐 consumer까지 흐르는 모습을 직접 확인할 수 있습니다.