개요
메시지 큐(Message Queue)는 메시지를 송신하는 애플리케이션(Producer)과 이를 수신하는 애플리케이션(Consumer) 간의 비동기 통신을 가능하게 하는 시스템입니다. 메시지 큐를 사용하면 메시지를 임시 저장하는 큐를 통해 애플리케이션 간의 통신이 이루어지며, 이는 애플리케이션의 확장성과 성능을 향상시킵니다.
1. 주요 특징
- 비동기 통신: Producer와 Consumer는 독립적으로 동작합니다. Producer가 메시지를 큐에 넣으면, Consumer가 이를 필요할 때 가져가 처리합니다. 따라서 서로 직접 통신하지 않아도 됩니다.
- 내결함성: 큐에 메시지를 저장함으로써, Consumer가 다운되거나 문제가 생겨도 메시지는 큐에 남아 있습니다. Consumer가 복구되면 메시지를 처리할 수 있습니다.
- 확장성: 여러 Consumer를 두어 메시지 처리 성능을 높일 수 있습니다. 큐는 메시지를 균등하게 분배할 수 있습니다.
- 유연성: Producer와 Consumer가 서로 다른 기술 스택을 사용해도 됩니다. 예를 들어, Producer는 Java로 작성되고, Consumer는 Python으로 작성될 수 있습니다.
2. 일반적인 사용 사례
- 작업 큐: 백그라운드 작업을 처리하기 위해 사용됩니다. 예를 들어, 이미지 처리, 이메일 전송 등의 작업을 메시지 큐에 넣어 비동기적으로 처리할 수 있습니다.
- 부하 분산: 다수의 Consumer가 메시지를 처리하여 부하를 분산시킵니다.
- 데이터 스트리밍: 실시간으로 데이터 스트리밍을 처리할 때 사용됩니다. 예를 들어, 로그 데이터의 실시간 분석 등.
대표적인 메시지 큐 시스템
3. 대표적인 메시지 큐 시스템
- RabbitMQ: AMQP(Advanced Message Queuing Protocol)를 사용하며, 다양한 프로그래밍 언어와 호환됩니다.
- Apache Kafka: 고성능, 분산형 메시지 큐 시스템으로, 대규모 실시간 데이터 스트리밍에 적합합니다.
- Amazon SQS: AWS에서 제공하는 완전 관리형 메시지 큐 서비스로, 설정과 운영이 간편합니다.
4. 요약
메시지 큐는 비동기적이고 내결함성이 있는 애플리케이션 간의 통신을 가능하게 하며, 확장성과 유연성을 제공합니다. 이를 통해 시스템의 성능과 안정성을 높일 수 있습니다.
'개발메모 > 간단정리' 카테고리의 다른 글
[간단정리] 객체 지향 프로그래밍 SOLID 원칙 (0) | 2024.07.19 |
---|---|
[간단정리] {JSON}, <XML> 이란? (0) | 2024.07.18 |
[간단정리] Domain, Host, URL, URI 용어 정리 (1) | 2024.06.29 |
[간단정리] Java에서의 Hash(해시) 함수 (0) | 2024.03.14 |
[간단정리] HTTP Request Method 종류 및 특징 (0) | 2023.02.03 |