소프트웨어 아키텍처 - 23(Message
Broker
Architecture
Style)
Message Broker Architecture Style
- 메시지는 애플리케이션 간에 전송되는 XML 문서와 같은 형식화된 정보
- 메시지 브로커는 메시지 지향 분산 시스템에서 메시지 중심 미들웨어(MOM) 서버
- 메시지 내용을 기반으로 발신자에서 수신자로 메시지를 라우팅
- 브로커는 메시지의 형식을 변경하여 발신자와 수신자의 다른 요구 사항을 충족
- 브로커는 메시지를 수정, 삽입, 병합등으로 메시지를 변환할 수도 있음
- 메시지 분배를 게시 및 구독을 통해 처리
- 메시지 브로커 소프트웨어
- Amazon Web Services (AWS) Amazon MQ
- Apache ActiveMQ, Kafka
- Eclipse Mosquitto MQTT Broker
- WebSphere Message Broker, IBM MQSeries, Sun JMS, JBoss Messaging
Message Broker - Solution
- 송신자와 수신자 사이에 중개 큐를 도입
- 큐는 메시지를 영구적으로 저장하고 다른 큐와 렵력하여 메시지 라우팅
- 메시지는 송신자에서 수신자로 전송되는 객체
- 송신자와 수신자가 메시지를 보내고 받기 위한 메시지 API가 제공됨
Dynamics
Apache Kafka & RabbitMQ
- Apache Kafka
- 분산 이벤트 저장소 및 스트림 처리 플랫폼, 자바 스칼라로 작성
- RabbitMQ
메시지 브로커 장,단점
- 장점
- 재사용성 및 유지관리
- 비동기 메시지 처리
- 작업 간의 효율적인 분산을 허용, 대량의 메시지 처리에 효율적
- 유연성
- 호출 지향 또는 문서 지향 메시징과 같이 여러 유형의 메시징을 지원하며, 메시지의 헤더 및 본문을 특정 목적에 맞게 변경할 수 있음
- 단점
- 오버헤드, 간접성 복잡성 및 디버깅, 테스트 어려움