سؤال

هل هناك منتج (مفتوح المصدر بشكل مثالي، ولكن ليس ضروريًا)، من شأنه تمكين نشر التبعية الصفرية؟كل حافلة خدمة أو مكتبة قائمة انتظار تمكنت من العثور عليها تعتمد على أحد تطبيقات قائمة الانتظار (مثل msmq)، أو قاعدة بيانات.أرغب في الحصول على حل خفيف الوزن للغاية حيث يمكنني فقط إضافة مرجع إلى تطبيقي وإنشائه ونشره بأقل قدر ممكن من التكوين.

في عالم مثالي، سيتم تشغيل ناقل قائمة الانتظار/الخدمة على IIS، ويسمح للويب والعملاء الأثرياء بالتحدث إليه.

ستكون مثل هذه الأداة مثالية للنماذج الأولية السريعة للأنظمة الموزعة الكبيرة على آلة التطوير المحلية.

هل كانت مفيدة؟

المحلول

إن Rhino Queues من Ayende هو بالضبط ما تبحث عنه، وهذا هو منشور المدونة الذي يقدمه:

http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx

أعتقد أن جميع القيود المذكورة في هذا المنشور قد تم إصلاحها منذ ذلك الحين.

من منشور المدونة، ما هي قوائم انتظار وحيد القرن:

  • XCopyable، إدارة صفرية، مضمنة، خدمة انتظار غير متزامنة
  • قوية في مواجهة الشبكات
  • انقطاع النظام. دعم المعاملات
  • سريع
  • يعمل عبر HTTP

نصائح أخرى

في سياق مماثل لاقتراح ShuggyCoUk، وكنت قد ركب طابور (أو طوابير) باستخدام ويندوز المدمج في قاعدة البيانات ESENT (ويأتي مثبت مسبقا مع نظام التشغيل Windows). هناك مكتبة تمكن الوصول إلى التعليمات البرمجية (مفتوحة المصدر): http://www.codeplex.com/ManagedEsent . إذا كنت عصا مع كتابة CLOBs / القراءة أو النقط، ينبغي أن تعمل على ما يرام. إذا كنت تريد أن تكون ذكية حقا، يمكنك استخدام NServiceBus و الكتابة (المساهمة؟) تخزين الاشتراك بطعم ESENT ووسائل النقل . هناك بعض غزوات في استخدام ESENT على بلوق Ayende في كذلك (سيكون لديك لكزة حول له SVN مستودع لل بت العصير).

إذا كنت سعيدًا بأن تكون:

  1. ويندوز محددة
  2. يقتصر على المجال المحلي
  3. محدودة للغاية في حجم الرسالة المدعومة
  4. لف مكالمات Win32 الأساسية في P/Invoc
  5. تعامل مع الاقتراع بنفسك
  6. تعامل مع الاختراقات اللازمة للسماح بالاتصال ذهابًا وإيابًا
  7. تعامل مع التكوين المشترك اللازم للحفاظ على مزامنة الأسماء

ثم غلاف سريع حول النوافذ واجهة برمجة تطبيقات MailSlot قد يكون كافيا.

هذا مثال بسيط هو أساس معقول للبدء.

هذا المقال يحتوي على بعض المعلومات الإضافية ولكنه يفترض أن حالة الاستخدام تتم عبر عنصر تحكم (بدلاً من مكون كما ينبغي) بالإضافة إلى بعض تكامل WinForms الضعيف، لذا يجب أخذها في الاعتبار للقراءة العرضية بدلاً من كونها أساسًا لأي مكتبة.

هذا المقال هو C++ ولكنه ذو مستوى أعلى (وقد قام أحد المعلقين بتوسيعه لدعم تجميع الرسائل الأكبر حجمًا في عدة رسائل أصغر).

تحصل على 424 بايت (وبالتالي مع .Net 212 حرفًا) قد ترغب في إسقاطها إلى ASCII لمضاعفة طول الرسالة المفيدة إذا كنت تتحدث نصًا.

لاحظ أنه على الرغم من بساطته وقيوده وافتقاره إلى الميزات، فإنه يوفر تسليم البث المتعدد، وهو أمر غالبًا ما يكون معقدًا لوضعه على بروتوكول نقطة إلى نقطة بنفسك.

وهذا <وأ href = "http://ayende.com/Blog/archive/2008/12/18/subscriptions-mass-transit-vs.-nservicebus-vs.-rhino-servicebus.aspx" يختلط = " نوفولو noreferrer "> ayende آخر يوفر ومقارنة مثيرة للاهتمام من ثلاث حافلات الخدمة. نحن نستخدم NServiceBus وأعتقد إذا لم يكن واضحا أن <لأ href = "HTTP: //www.udidahan. كوم / "يختلط =" نوفولو noreferrer "> أودي دهان سترد على كيف كنت سد العجز في طابور غير المعالين.

ونحن نعمل باستخدام MSMQ بسعادة ولكن هناك خيارات أخرى وفي الناحية النظرية يجب أن تكون مفتوحة أمام أي شيء عمليا، بالنظر إلى أن قد تفقد بعض الموثوقية والمتانة حسب اختيارك.

أمازون خدمة الرسائل بسيط خدمة انتظار؟

قمنا بنقل مشاريعنا من MSMQ إلى ActiveMQ.انها حقا أفضل :)
ActiveMQ هو مفتوح المصدر قائمة الانتظار، على أساس خادم الويب أباتشي.
استخدمناه في الإنتاج على سير عمل بيانات مرتفع بشكل متكرر، حيث يواجه msmq الكثير من المشكلات (نعمل مع msmq سنويًا)
تنفيذ csharp هو نانومتر

وأنا أعمل حاليا على حافلة خدمة مفتوحة المصدر WCF القائمة. يمكنك العثور عليها هنا: http://rockbus.codeplex.com/ . وهو يدعم ديناميكية (@ وقت التشغيل) اشتراكات، subcription مستودع (قاعدة بيانات)، ووسائل النقل للتوصيل، كسباث أساس التوجيه على المحتوى، والتسليم للمعاملات عبر بروتوكولات صندوق رأس المال العامل، roundrobin التسليم، وتقييم الاشتراك للتوصيل، وأكثر من ذلك. إلقاء نظرة!

هل فكرت باستخدام خدمة مثل IronMQ بواسطة http://Iron.io ؟

وسوف لا يكون لديك أي تبعيات، يمكن تطبيقات النموذج بسرعة دون إقامة أي بنية تحتية قائمة الانتظار، وأنها متاحة للغاية وسريع.

وليس هناك حاليا نسخة للتثبيت محليا ولكن أنها تقوم على بروتوكول أوبن ستاك المقبل لذلك سيكون هناك.

وراجع للشغل أعمل للحديد.

https://github.com/mcintyre321/PieQ - وهذا هو محاولة مني لكتابة threadsafe، والثابتة، صفر التكوين، جزءا لا يتجزأ من قائمة انتظار العمل. وربما يحتاج قليلا من الحب، ولكن أعتقد أنه قد يكون هذا النوع من الأداة التي تبحث عنها.

ولقد وضعت مكتبة InMemory الدائرة التي يمكن استخدامها لفي تطبيقات الدائرة الاختبار دون ربط حقا أن الدائرة مقدمي / الخادم (فكر HSQLDB). لم يكن لديك للتعامل مع اتصال أو بروتوكول أو أي شيء، كل ما عليك القيام به هو إرسال واستقبال الرسائل.

https://github.com/Dhana-Krishnasamy/InMemoryJMS

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top