Bunny adalah klien RabbitMQ yang berfokus pada kemudahan penggunaan. Ini adalah fitur yang lengkap, mendukung semua fitur RabbitMQ terbaru dan tidak memiliki ketergantungan kelas berat.
Di sini!
Seseorang dapat menggunakan Bunny untuk membuat aplikasi Ruby berinteroperasi dengan aplikasi lain (baik yang dibangun di Ruby maupun yang tidak). Kompleksitas dan ukuran dapat bervariasi dari antrian kerja sederhana hingga alur kerja pemrosesan data multi-tahap kompleks yang melibatkan banyak aplikasi yang dibangun dengan segala jenis teknologi.
Contoh spesifik:
Pengumpul peristiwa, aplikasi metrik & analitik dapat mengumpulkan peristiwa yang dihasilkan oleh berbagai aplikasi (Web dan bukan) di jaringan perusahaan.
Aplikasi Web dapat merutekan pesan ke aplikasi Java yang bekerja dengan gateway pengiriman SMS.
Game MMO dapat menggunakan perutean fleksibel yang disediakan RabbitMQ untuk menyebarkan pemberitahuan acara ke pemain dan lokasi.
Pembaruan harga dari pasar umum atau sumber lain dapat didistribusikan ke pihak-pihak yang berkepentingan, mulai dari sistem perdagangan hingga titik penjualan di wilayah geografis tertentu.
Agregator konten dapat memperbarui pencarian teks lengkap dan indeks pencarian geospasial dengan mendelegasikan pekerjaan pengindeksan sebenarnya ke aplikasi lain melalui RabbitMQ.
Perusahaan dapat menyediakan API streaming/push kepada pelanggan, mitra, atau masyarakat umum saja.
Sistem integrasi berkelanjutan dapat mendistribusikan build antara beberapa mesin dengan berbagai konfigurasi perangkat keras dan perangkat lunak menggunakan fitur perutean lanjutan dari RabbitMQ.
Sebuah aplikasi yang memantau pembaruan dari aliran waktu nyata (baik itu data pasar atau aliran Twitter) dapat menyebarkan pembaruan kepada pihak yang berkepentingan, termasuk aplikasi Web yang menampilkan informasi tersebut secara waktu nyata.
Dukungan versi Kelinci modern
Untuk lingkungan yang menggunakan TLS, Bunny mengharapkan instalasi Ruby menggunakan versi OpenSSL yang cukup baru yang mencakup dukungan untuk TLS 1.3 .
Bunny bekerja cukup baik di JRuby tetapi ada bug JRuby yang diketahui di versi sebelum JRuby 9000 yang menyebabkan pembakaran CPU yang tinggi. Pengguna JRuby harus menggunakan March Hare.
Bunny 1.7.x
adalah versi terakhir yang mendukung CRuby 1.9.3 dan 1.8.7
Target rilis Kelinci Modern saat ini mendukung seri rilis RabbitMQ.
Ubah catatan.
Untuk menggunakan Bunny dalam proyek yang dikelola dengan Bundler:
gem "bunny" , ">= 2.23.0"
Untuk menginstal Bunny dengan RubyGems:
gem install bunny
Di bawah ini adalah cuplikan kecil yang menunjukkan cara memublikasikan dan menggunakan pesan ("pull API") secara sinkron dengan Bunny.
Untuk tutorial 15 menit menggunakan contoh yang lebih praktis, lihat Memulai RabbitMQ dan Ruby menggunakan Bunny.
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
Untuk tutorial 15 menit menggunakan contoh yang lebih praktis, lihat Memulai RabbitMQ dan Ruby menggunakan Bunny.
Panduan dokumentasi kelinci ada di docs/guides
di repositori ini:
Beberapa panduan dokumentasi RabbitMQ yang sangat relevan:
Referensi API Kelinci.
Kelinci memiliki milis. Silakan gunakan untuk semua pertanyaan, investigasi, dan diskusi. Masalah GitHub harus digunakan agar pengelola dan kontributor dapat menanganinya secara spesifik, dipahami dengan baik, dan dapat ditindaklanjuti.
Kami mendorong Anda untuk juga bergabung dengan milis milis RabbitMQ. Jangan ragu untuk mengajukan pertanyaan apa pun yang mungkin Anda miliki.
Jika Anda menemukan bug yang Anda pahami dengan baik, default yang buruk, dokumentasi yang salah atau tidak jelas, atau fitur yang hilang, harap ajukan masalah di GitHub.
Silakan gunakan milis Bunny untuk pertanyaan, investigasi, dan diskusi. Masalah GitHub harus digunakan agar pengelola dan kontributor dapat menanganinya secara spesifik, dipahami dengan baik, dan dapat ditindaklanjuti.
Saat mengajukan masalah, harap tentukan versi Bunny dan RabbitMQ mana yang Anda gunakan, berikan konten file log RabbitMQ terbaru, jejak tumpukan pengecualian lengkap, dan langkah-langkah untuk mereproduksi (atau kasus pengujian yang gagal).
Klien Ruby RabbitMQ lain yang banyak digunakan adalah March Hare (khusus JRuby). Ini adalah perpustakaan matang yang memerlukan RabbitMQ 3.3.x atau lebih baru.
Lihat CONTRIBUTING.md untuk informasi lebih lanjut tentang menjalankan berbagai rangkaian pengujian.
Dirilis di bawah lisensi MIT.