Bunny는 사용 편의성에 중점을 둔 RabbitMQ 클라이언트입니다. 기능이 완벽하고 모든 최신 RabbitMQ 기능을 지원하며 무거운 종속성이 없습니다.
바로 여기!
Bunny를 사용하여 Ruby 애플리케이션을 다른 애플리케이션(Ruby로 구축된 애플리케이션과 그렇지 않은 애플리케이션 모두)과 상호 운용하도록 만들 수 있습니다. 복잡성과 규모는 단순한 작업 대기열부터 모든 종류의 기술로 구축된 많은 애플리케이션을 포함하는 복잡한 다단계 데이터 처리 워크플로까지 다양할 수 있습니다.
구체적인 예:
이벤트 수집기, 지표 및 분석 애플리케이션은 회사 네트워크의 다양한 애플리케이션(웹이 아닌)에서 생성된 이벤트를 집계할 수 있습니다.
웹 애플리케이션은 SMS 전달 게이트웨이와 작동하는 Java 앱으로 메시지를 라우팅할 수 있습니다.
MMO 게임은 RabbitMQ가 제공하는 유연한 라우팅을 사용하여 이벤트 알림을 플레이어와 위치에 전파할 수 있습니다.
공개 시장이나 기타 소스의 가격 업데이트는 거래 시스템에서 특정 지역의 판매 시점에 이르기까지 이해 당사자 간에 배포될 수 있습니다.
콘텐츠 수집자는 실제 색인 작업을 RabbitMQ를 통해 다른 애플리케이션에 위임하여 전체 텍스트 검색 및 지리공간 검색 색인을 업데이트할 수 있습니다.
회사는 고객, 파트너 또는 일반 대중에게 스트리밍/푸시 API를 제공할 수 있습니다.
지속적인 통합 시스템은 RabbitMQ의 고급 라우팅 기능을 사용하여 다양한 하드웨어 및 소프트웨어 구성을 갖춘 여러 시스템 간에 빌드를 배포할 수 있습니다.
실시간 스트림(마케팅 데이터 또는 Twitter 스트림)에서 업데이트를 감시하는 애플리케이션은 해당 정보를 실시간으로 표시하는 웹 애플리케이션을 포함하여 관심 있는 당사자에게 업데이트를 전파할 수 있습니다.
Modern Bunny 버전 지원
TLS를 사용하는 환경의 경우 Bunny는 Ruby 설치가 TLS 1.3에 대한 지원을 포함하는 최신 OpenSSL 버전을 사용할 것으로 예상합니다.
Bunny는 JRuby에서 충분히 잘 작동하지만 JRuby 9000 이전 버전에는 높은 CPU 소모를 유발하는 알려진 JRuby 버그가 있습니다. JRuby 사용자는 March Hare를 사용해야 합니다.
Bunny 1.7.x
CRuby 1.9.3 및 1.8.7을 지원하는 마지막 버전입니다.
Modern Bunny는 현재 지원되는 RabbitMQ 릴리스 시리즈를 대상으로 출시합니다.
변경 로그.
Bundler로 관리되는 프로젝트에서 Bunny를 사용하려면:
gem "bunny" , ">= 2.23.0"
RubyGems와 함께 Bunny를 설치하려면:
gem install bunny
다음은 Bunny를 사용하여 메시지를 게시하고 동기식으로 사용("풀 API")하는 방법을 보여주는 작은 조각입니다.
보다 실용적인 예제를 사용하는 15분 튜토리얼은 Bunny를 사용하여 RabbitMQ 및 Ruby 시작하기를 참조하세요.
require "bunny"
# Start a communication session with RabbitMQ
conn = Bunny . new
conn . start
# open a channel
ch = conn . create_channel
ch . confirm_select
# declare a queue
q = ch . queue ( "test1" )
q . subscribe ( manual_ack : true ) do | delivery_info , metadata , payload |
puts "This is the message: #{ payload } "
# acknowledge the delivery so that RabbitMQ can mark it for deletion
ch . ack ( delivery_info . delivery_tag )
end
# publish a message to the default exchange which then gets routed to this queue
q . publish ( "Hello, everybody!" )
# await confirmations from RabbitMQ, see
# https://www.rabbitmq.com/publishers.html#data-safety for details
ch . wait_for_confirms
# give the above consumer some time consume the delivery and print out the message
sleep 1
puts "Done"
ch . close
# close the connection
conn . close
보다 실용적인 예제를 사용하는 15분 튜토리얼은 Bunny를 사용하여 RabbitMQ 및 Ruby 시작하기를 참조하세요.
Bunny 문서 가이드는 이 저장소의 docs/guides
에 있습니다:
관련성이 높은 RabbitMQ 문서 가이드:
토끼 API 참조.
Bunny에는 메일링 리스트가 있습니다. 모든 질문, 조사, 토론에 활용하시기 바랍니다. GitHub 문제는 구체적이고, 잘 이해되고, 실행 가능한 관리자와 기여자가 작업할 수 있는 경우에 사용해야 합니다.
RabbitMQ 메일링 리스트 메일링 리스트에도 가입하실 것을 권장합니다. 궁금한 점이 있으면 언제든지 문의하세요.
잘 이해하고 있는 버그, 잘못된 기본값, 부정확하거나 불분명한 문서, 누락된 기능을 발견한 경우 GitHub에 문제를 제출하세요.
질문, 조사 및 토론을 위해 Bunny의 메일링 리스트를 사용하십시오. GitHub 문제는 구체적이고, 잘 이해되고, 실행 가능한 관리자와 기여자가 작업할 수 있는 경우에 사용해야 합니다.
문제를 제출할 때 사용 중인 Bunny 및 RabbitMQ 버전을 지정하고 최신 RabbitMQ 로그 파일 콘텐츠, 전체 예외 스택 추적 및 재현 단계(또는 실패한 테스트 사례)를 제공하십시오.
널리 사용되는 또 다른 Ruby RabbitMQ 클라이언트는 March Hare(JRuby 전용)입니다. RabbitMQ 3.3.x 이상이 필요한 성숙한 라이브러리입니다.
다양한 테스트 스위트 실행에 대한 자세한 내용은 CONTRIBUTING.md를 참조하세요.
MIT 라이선스로 출시되었습니다.