메시지 발행
producer는 토픽 이름과 함께 메시지를 broker로 보냅니다. broker의 응답을 받으면 발행이 완료되며, consumer의 처리를 기다리지 않습니다.
Message message = new Message( new Topic("order.created"), order ); producer.produce(message);
Spring Boot 환경에서 간편하게 구축할 수 있습니다.
디스크 쓰기를 통해 메시지의 내구성을 보장합니다.
토픽 패턴 기반의 pub-sub 구조로, fan-out 방식으로 메시지를 분배합니다.
producer는 토픽 이름과 함께 메시지를 broker로 보냅니다. broker의 응답을 받으면 발행이 완료되며, consumer의 처리를 기다리지 않습니다.
Message message = new Message( new Topic("order.created"), order ); producer.produce(message);
broker는 수신한 메시지를 디스크에 기록한 뒤 producer에게 응답합니다.
이후 토픽 패턴이 매칭되는 모든 Dispatcher가 각자의 ConsumerId를 실어 consumer에게 메시지를
전송합니다.
new Dispatcher( consumerHost, new ConsumerId("order-created"), new TopicPattern("order.created") );
consumer는 메시지에 실린 ConsumerId로 해당 핸들러를 찾아 호출하고, 처리 결과를 즉시 broker에 응답합니다.
@MMMQListener(id = "order-created") public void handle(Order order) { // 처리 로직 }
Spring Boot 환경에 메시지 브로커를 도입할 때 mmmq가 제공하는 이점입니다.
@MMMQListener 어노테이션만 사용하면 메시지를 처리할 수 있습니다. id로 라우팅된 메시지가 인자 타입에 맞춰 전달됩니다.
mmmq의 동작을 정의하는 네 가지 특성입니다.
order.*, alert.** 같은 토픽 패턴으로 메시지를 분배합니다.