RabbitMQ
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
RabbitMQ는 LShift와 CohesiveFT의 합작 회사인 Rabbit Technologies Ltd.에서 2007년에 개발을 시작한 메시지 브로커이다. AMQP 표준을 구현하며, 안정적이고 확장 가능한 메시지 브로커를 제공하는 것을 목표로 한다. RabbitMQ는 2010년 VMware의 SpringSource에 인수되었고, 2013년 Pivotal Software의 일부가 되었다가, 2019년 VMware에 다시 인수되었다. 주요 구성 요소로는 RabbitMQ 익스체인지 서버, AMQP, HTTP, STOMP, MQTT 프로토콜의 게이트웨이, 자바, .NET 프레임워크 및 Erlang용 AMQP 클라이언트 라이브러리, 확장성을 위한 플러그인 플랫폼 등이 있다.
더 읽어볼만한 페이지
- 얼랭 - 카우치DB
카우치DB는 아파치 재단에서 관리하는 NoSQL 데이터베이스로, JSON 문서 저장, HTTP API 접근, 데이터 복제 및 동기화, 분산 환경 지원, 오프라인 작동 등의 특징을 가진다. - 얼랭으로 작성된 자유 소프트웨어 - 셰프 (소프트웨어)
셰프는 서버 애플리케이션과 유틸리티를 관리하고 구성하는 레시피를 사용자가 작성하도록 하는 형상 관리 소프트웨어이며, 클라이언트/서버 방식 또는 독립형 모드로 실행될 수 있고, 리눅스 및 마이크로소프트 윈도우를 지원하며, 코드형 인프라스트럭처 도구로도 사용된다. - 얼랭으로 작성된 자유 소프트웨어 - 카우치DB
카우치DB는 아파치 재단에서 관리하는 NoSQL 데이터베이스로, JSON 문서 저장, HTTP API 접근, 데이터 복제 및 동기화, 분산 환경 지원, 오프라인 작동 등의 특징을 가진다. - 메시지 지향 미들웨어 - 마이크로소프트 비즈토크 서버
마이크로소프트 비즈토크 서버는 다양한 시스템 통합 및 비즈니스 프로세스 자동화를 지원하는 서버 소프트웨어로, 여러 버전이 출시되었으며 어댑터, 가속기 등의 기능을 제공하고 대한민국 여러 산업 분야에서 활용되었으나 클라우드 기반 솔루션의 등장으로 입지가 변화하고 있다. - 메시지 지향 미들웨어 - ZeroMQ
ZeroMQ는 다양한 메시징 패턴을 지원하고 높은 성능을 제공하는 메시지 라이브러리이다.
| RabbitMQ - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 이름 | RabbitMQ |
| 개발사 | VMware |
| 저장소 | RabbitMQ GitHub 저장소 |
| 웹사이트 | RabbitMQ 공식 웹사이트 |
| 기술 정보 | |
| 최신 릴리스 버전 | 4.0.5 |
| 최신 릴리스 날짜 | 2024년 12월 15일 |
| 프로그래밍 언어 | 얼랭 |
| 운영 체제 | 크로스 플랫폼 |
| 장르 | AMQP, 메시지 지향 미들웨어 |
| 라이선스 | 모질라 퍼블릭 라이선스 |
2. 역사
RabbitMQ는 2007년 LShift와 CohesiveFT의 합작 회사인 Rabbit Technologies Ltd.에서 개발되었다.[4] 2010년 4월 VMware의 자회사인 SpringSource에 인수되었고,[5] 2013년 5월 Pivotal Software의 일부가 되었다.[6] 이후 2019년 12월 VMware에 다시 인수되었다.[7]
RabbitMQ는 다음과 같은 요소로 구성된다.
- RabbitMQ 익스체인지 서버
- AMQP, HTTP, STOMP, MQTT 프로토콜의 게이트웨이
- 자바, .NET 프레임워크 및 Erlang용 AMQP 클라이언트 라이브러리 (다른 언어용 AMQP 클라이언트는 다른 공급업체에서 제공).
- 확장성을 위한 플러그인 플랫폼 (사전 정의된 플러그인 컬렉션 지원):
- * "Shovel" 플러그인: 한 브로커에서 다른 브로커로 메시지를 이동하거나 복사(복제)하는 기능을 담당.
- * "Federation" 플러그인: 브로커 간(익스체인지 수준에서) 메시지를 효율적으로 공유.
- * "Management" 플러그인: 브로커 및 브로커 클러스터의 모니터링 및 제어를 가능.
2. 1. 개발 배경
RabbitMQ는 2007년 LShift와 CohesiveFT의 합작 회사인 Rabbit Technologies Ltd.에서 개발되었다.[4] 2010년 4월 VMware의 자회사인 SpringSource에 인수되었고,[5] 2013년 5월 Pivotal Software의 일부가 되었다.[6] 이후 2019년 12월 VMware에 다시 인수되었다.[7]2. 2. 주요 연혁
- 2007년: LShift와 CohesiveFT의 합작 회사인 Rabbit Technologies Ltd.에서 개발[4]
- 2010년 4월: VMware의 자회사인 SpringSource에 인수[5]
- 2013년 5월: Pivotal Software의 일부가 됨[6]
- 2019년 12월: VMware에 다시 인수[7]
3. 구성 요소
RabbitMQ는 AMQP(Advanced Message Queuing Protocol)를 구현한 오픈 소스 메시지 브로커 시스템이다. RabbitMQ의 주요 구성 요소는 다음과 같다.
- 프로듀서 (Producer): 메시지를 생성하여 큐(Queue)에 보내는 역할을 하는 애플리케이션이다.
- 큐 (Queue): 메시지를 저장하는 버퍼 역할을 한다. 프로듀서가 보낸 메시지는 큐에 저장되어 컨슈머(Consumer)가 처리할 때까지 대기한다.
- 익스체인지 (Exchange): 프로듀서로부터 메시지를 받아 큐에 분배하는 역할을 한다. 익스체인지는 메시지를 어떤 큐에 보낼지 결정하는 라우팅 규칙을 가지고 있다.
- 컨슈머 (Consumer): 큐에서 메시지를 가져와 처리하는 애플리케이션이다.
- 바인딩 (Binding): 익스체인지와 큐 사이의 관계를 정의한다. 바인딩은 익스체인지가 메시지를 어떤 큐로 라우팅할지 결정하는 데 사용되는 규칙을 포함한다.
- 커넥션 (Connection): RabbitMQ 서버와 클라이언트(프로듀서 또는 컨슈머) 간의 네트워크 연결을 나타낸다.
- 채널 (Channel): 하나의 커넥션 내에서 생성되는 가상의 연결이다. 여러 채널을 사용하여 여러 개의 논리적 연결을 생성하고 관리할 수 있다.
이러한 구성 요소들은 RabbitMQ를 사용하여 메시지 기반 애플리케이션을 구축하는 데 필요한 핵심적인 역할을 수행한다.
4. 예제
이 섹션에서는 큐를 사용하여 메시지를 보내고 받는 파이썬으로 작성된 샘플 프로그램(pika 패키지 사용)을 제공한다.
4. 1. 송신
python#!/usr/bin/env python3
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost"))
channel = connection.channel()
channel.queue_declare(queue="hello")
channel.basic_publish(exchange="", routing_key="hello", body="Hello World!")
print(" [x] Sent 'Hello World!'")
connection.close()
```
위 코드는 파이썬 pika 패키지를 사용하여 RabbitMQ 서버에 연결하고, 'hello'라는 이름의 큐를 선언한 후, "Hello World!" 메시지를 전송하고 연결을 종료한다.
4. 2. 수신
다음은 파이썬 Pika 패키지를 사용하여 큐에서 메시지를 수신하여 화면에 출력하는 예제이다. 이 예제는 메시지 수신을 승인하지 않는다.[1]```python
#!/usr/bin/env python3
import pika
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost"))
channel = connection.channel()
channel.queue_declare(queue="hello")
print(" [*] Waiting for messages. To exit press Ctrl+C")
channel.basic_consume(queue="hello", on_message_callback=callback)
channel.start_consuming()
참조
[1]
웹사이트
Which protocols does RabbitMQ support?
https://www.rabbitmq[...]
[2]
웹사이트
VMware RabbitMQ
https://www.vmware.c[...]
2023-05-05
[3]
웹사이트
RabbitMQ
https://bitnami.com/[...]
2023-05-08
[4]
뉴스
Launch of RabbitMQ Open Source Enterprise Messaging
http://www.rabbitmq.[...]
Press release
2013-10-23
[5]
뉴스
Rabbit Technologies announce acquisition by SpringSource
http://www.rabbitmq.[...]
Press release
2013-10-03
[6]
뉴스
Proudly part of Pivotal
http://www.rabbitmq.[...]
Press release
2013-10-03
[7]
웹사이트
VMware Completes Acquisition of Pivotal
https://news.vmware.[...]
2019-12-30
[8]
웹사이트
RabbitMQ Release Information
https://www.rabbitmq[...]
2023-06-10
[9]
간행물
SpringSource acquires RabbitMQ cloud messaging technology
http://www.rabbitmq.[...]
2010-04-13
[10]
뉴스
米SpringSourceがメッセージング技術の英RabbitMQを買収
https://cloud.watch.[...]
クラウドWatch
2010-11-13
[11]
웹사이트
Clients & Developer Tools
https://www.rabbitmq[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com