본문 바로가기
CODING STUDY/NETWORK

[NETWORK] Spring Integration 기본 개념과 메시지 처리 흐름

by 놀고 쉬고 싶은 개발자 2025. 12. 26.

👀 MQTT 하다 보니 Spring Integration에 대해서도 정리를 해야 할 거 같다.


☑️ Spring Integration

: Spring Framework의 확장 프로젝트

: 메시징 및 EIP(Enterprise Integration Patterns)을 구현한 프레임워크


☑️ Spring  Integration 핵심 개념

Message

▶︎ Payload + Header 구조로 구성

▶︎ Payload는 실제 데이터. Header는 메타 데이터

 

Message Channel

▶︎ 메시지가 통과하는 파이프 역할

▶︎ Producer(생산자)가 메시지를 채널로 보냄

▶︎ Consumer(소비자)가 채널에서 메시지를 받아 처리

 

⚠️ MQTT의 Publisher, Subsciber와 다른 점 ( 그냥 본인이 헷갈려서 씀)

구분 Spring Integration MQTT
용어 Producer / Consumer Publisher / Subscriber
레벨 애플리케이션 내부 구조 네트워크 프로토콜
중심 개념 Message Channel Topic
결합도 느슨 브로커 중심
범위 내부 + 외부 연동 네트워크 통신
개념 Producer
- Message Channel로 메세지 넣음
- 내부 로직, 외부 어댑터, 스케줄러 가능

Consumer
- Channel에서 메시지를 꺼내 처리하는 쪽
- Service Activator, Router, Handler..
Publisher
- 특정 Topic으로 메시지 발행
- 메시지 누가 받는지 모름

Subscriber
- Topic 구독
- Broker로부터 메세지 수신

 

📤 MQTT 수신 흐름

MQTT Publisher
      ↓
MQTT Broker
      ↓
Spring Integration MQTT Inbound Adapter
      ↓
Message Channel
      ↓
Consumer (Service Activator)

 

📥 MQTT 송신 흐름

Producer (Service)
      ↓
Message Channel
      ↓
MQTT Outbound Adapter
      ↓
MQTT Broker
      ↓
MQTT Subscriber

 

Message Endpoint

▶︎ 메시지를 실제로 처리하는 컴포넌트

▶︎ 메시지를 송신하거나 수신하기 위한 구성요소

EndPoint 역할
Transformer 메시지 변환
Filter 조건에 맞지 않으면 제거
Router 조건에 따라 다른 채널로 분기
Splitter 하나 → 여러 메시지
Aggregator 여러 메시지 → 하나
Service Activator 실제 비즈니스 로직 호출

 


☑️ 처리 순서

Message 생성 → Channel 전달 → Endpoint 처리 → 다음 Channel → 최종 Consumer

 

전체 흐름
[ Producer ]
     
Message 생성
     
Message Channel
     
Endpoint (Filter / Transformer / Router / ServiceActivator)
     
Message Channel
     
[ Consumer ]