Bunny هو عميل RabbitMQ يركز على سهولة الاستخدام. إنها ميزة كاملة، وتدعم جميع ميزات RabbitMQ الحديثة وليس لديها أي تبعيات ثقيلة الوزن.
هنا!
يمكن للمرء استخدام Bunny لجعل تطبيقات Ruby تتفاعل مع التطبيقات الأخرى (سواء المضمنة في Ruby أو غير المضمنة). قد يختلف التعقيد والحجم من قوائم انتظار العمل البسيطة إلى سير عمل معالجة البيانات المعقدة متعددة المراحل والتي تتضمن العديد من التطبيقات المبنية باستخدام جميع أنواع التقنيات.
أمثلة محددة:
يمكن لجامعي الأحداث وتطبيقات المقاييس والتحليلات تجميع الأحداث التي تنتجها التطبيقات المختلفة (الويب وغيره) في شبكة الشركة.
قد يقوم تطبيق الويب بتوجيه الرسائل إلى تطبيق Java الذي يعمل مع بوابات تسليم الرسائل القصيرة.
يمكن لألعاب MMO استخدام التوجيه المرن الذي توفره RabbitMQ لنشر إشعارات الأحداث للاعبين والمواقع.
يمكن توزيع تحديثات الأسعار من الأسواق العامة أو المصادر الأخرى بين الأطراف المعنية، بدءًا من أنظمة التداول وحتى نقاط البيع في منطقة جغرافية محددة.
يمكن لمجمعي المحتوى تحديث البحث عن النص الكامل وفهارس البحث الجغرافي المكاني عن طريق تفويض عمل الفهرسة الفعلي إلى تطبيقات أخرى عبر RabbitMQ.
قد توفر الشركات واجهات برمجة التطبيقات المتدفقة/الدفعية لعملائها أو شركائها أو لعامة الناس فقط.
يمكن لأنظمة التكامل المستمر توزيع الإصدارات بين أجهزة متعددة ذات تكوينات مختلفة للأجهزة والبرامج باستخدام ميزات التوجيه المتقدمة لـ RabbitMQ.
يمكن للتطبيق الذي يشاهد التحديثات من تدفق في الوقت الفعلي (سواء كان ذلك بيانات الأسواق أو تدفق تويتر) نشر التحديثات إلى الأطراف المهتمة، بما في ذلك تطبيقات الويب التي تعرض تلك المعلومات في الوقت الفعلي.
دعم إصدارات الأرنب الحديثة
بالنسبة للبيئات التي تستخدم TLS، يتوقع Bunny أن تستخدم عمليات تثبيت Ruby إصدارًا حديثًا بدرجة كافية من OpenSSL يتضمن دعم TLS 1.3 .
يعمل Bunny بشكل جيد بما فيه الكفاية على JRuby ولكن هناك أخطاء JRuby معروفة في الإصدارات السابقة لـ JRuby 9000 والتي تسبب حرقًا كبيرًا لوحدة المعالجة المركزية. يجب على مستخدمي JRuby استخدام March Hare.
كان Bunny 1.7.x
هو الإصدار الأخير الذي يدعم CRuby 1.9.3 و1.8.7
تستهدف إصدارات Modern Bunny سلسلة إصدارات RabbitMQ المدعومة حاليًا.
تغيير السجل.
لاستخدام Bunny في مشروع تتم إدارته باستخدام Bundler:
gem "bunny" , ">= 2.23.0"
لتثبيت Bunny مع RubyGems:
gem install bunny
يوجد أدناه مقتطف صغير يوضح كيفية نشر رسائل ("سحب API") واستهلاكها بشكل متزامن مع Bunny.
للحصول على برنامج تعليمي مدته 15 دقيقة باستخدام المزيد من الأمثلة العملية، راجع بدء استخدام RabbitMQ وRuby باستخدام 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
للحصول على برنامج تعليمي مدته 15 دقيقة باستخدام المزيد من الأمثلة العملية، راجع بدء استخدام RabbitMQ وRuby باستخدام Bunny.
توجد أدلة توثيق الأرنب ضمن docs/guides
في هذا المستودع:
بعض أدلة توثيق RabbitMQ ذات الصلة للغاية:
مرجع واجهة برمجة تطبيقات الأرنب.
الأرنب لديه قائمة بريدية. يرجى استخدامه لجميع الأسئلة والتحقيقات والمناقشات. يجب استخدام مشكلات GitHub لمشرفين ومساهمين محددين ومفهومين جيدًا وقابلين للتنفيذ يمكنهم العمل عليها.
نحن نشجعك أيضًا على الانضمام إلى القائمة البريدية لقائمة RabbitMQ البريدية. لا تتردد في طرح أي أسئلة قد تكون لديكم.
إذا وجدت خطأً تفهمه جيدًا، أو خطأ افتراضيًا، أو مستندًا غير صحيح أو غير واضح، أو ميزة مفقودة، فيرجى تقديم مشكلة على GitHub.
الرجاء استخدام القائمة البريدية لـ Bunny للأسئلة والتحقيقات والمناقشات. يجب استخدام مشكلات GitHub لمشرفين ومساهمين محددين ومفهومين جيدًا وقابلين للتنفيذ يمكنهم العمل عليها.
عند تقديم مشكلة، يرجى تحديد إصدارات Bunny وRabbitMQ التي تستخدمها، وتوفير محتويات ملف سجل RabbitMQ الحديثة، وتتبعات مكدس الاستثناءات الكاملة، وخطوات إعادة الإنتاج (أو حالات الاختبار الفاشلة).
عميل Ruby RabbitMQ الآخر المستخدم على نطاق واسع هو March Hare (JRuby فقط). إنها مكتبة ناضجة تتطلب الإصدار 3.3.x من RabbitMQ أو إصدار أحدث.
راجع CONTRIBUTING.md لمزيد من المعلومات حول تشغيل مجموعات الاختبار المختلفة.
تم إصداره بموجب ترخيص MIT.