قائمة الانتظار البديلة لـ MSMQ على نظام التشغيل Windows؟[مغلق]

StackOverflow https://stackoverflow.com/questions/37579

  •  09-06-2019
  •  | 
  •  

سؤال

إذا كنت تريد استخدام منتج قائمة الانتظار للمراسلة الدائمة ضمن نظام التشغيل Windows، والذي يعمل بنظام التشغيل .NET 2.0 والإصدارات الأحدث، فما هي بدائل MSMQ الموجودة اليوم؟أنا أعرف ActiveMQ (http://activemq.apache.org/)، ولقد رأيت إشارات إلى WSMQ (تشير إلى http://wsmq.net)، ولكن يبدو أن الموقع معطل.

هل هناك أي بدائل أخرى؟

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

المحلول

لا أستطيع أن أبدأ في قول ما يكفي من الأشياء الجيدة حول Tibco EMS - وهو تطبيق لمواصفات مراسلة Java JMS.تتمتع Tibco EMS بدعم رائع لعملاء .NET - بما في ذلك Compact Framework .NET على WinCE.(لديهم أيضًا مكتبات عملاء C أيضًا.)

لذا، إذا كنت تقوم بإنشاء تطبيق موزع غير متجانس يشتمل على تعليمات برمجية للمراسلة تعمل على أنظمة التشغيل Windows، أو Unix (AIX/Solaris)، أو Linux، أو Mac OS X، فإن Tibco EMS هي التذكرة.

راجع مقالتي هنا:

استخدام JMS لتطوير البرمجيات الموزعة

كنت أعمل في Microsoft وقمت ببعض التنفيذ باستخدام MSMQ أثناء وجودي هناك.لكن كما تعلمون، تهتم Microsoft فقط بنظام Windows.لقد اعتمدوا على جهات خارجية لتزويد عملاء MSMQ لمنصات أخرى.كانت تجربتي مع Tibco EMS تجربة أفضل بكثير.كان من الواضح جدًا أن Tibco تفهم المراسلة أكثر بكثير من Microsoft.وبذلت Tibco جهدها لدعم ارتباطات العملاء المتنوعة بأنفسهم.ولهذا السبب قاموا في النهاية بتغيير اسم المنتج من Tibco JMS إلى Tibco EMS (خدمة رسائل المؤسسات).

وقمت ببناء أنظمة برمجية غير متجانسة حول Tibco EMS.يتفاعل عملاء Rolled C# .NET Winform مع Java/JBoss من الطبقة المتوسطة عبر رسائل Tibco EMS.(ويتوفر أيضًا أجهزة كمبيوتر WinCE الصناعية المدمجة التي تستخدم عميل Compact Framework .NET Tibco.)

روابط لكتاباتي JMS

نصائح أخرى

قد لا تكون نصيحة "أفضل الممارسات" هنا ...ولكن بناءً على احتياجات الحياة الحقيقية والخبرة:لقد قمنا بتوزيع النظام، 60 صندوقًا يشغل كل 10 عملاء جميعهم يقومون بالمهمة X، ويحتاجون إلى أخذ المهمة التالية من قائمة الانتظار.يتم تغذية قائمة الانتظار من "عميل" آخر...

لقد استخدمنا الاتصال بين العمليات، واستخدمنا MSMQ، وحاولنا استخدام وسيط الخدمة...إنه لا يعمل على المدى الطويل لأنك تتنازل عن التحكم في تطبيقك لشركة Microsoft.إنه يعمل بشكل رائع طالما أن احتياجاتك راضية.يصبح الجحيم عندما تحتاج إلى شيء غير مدعوم.

وكان الحل الأفضل بالنسبة لنا هو:استخدم جدول قاعدة بيانات SQL كقائمة الانتظار.لا تعيد اختراع العجلة هناك، لأنك سوف ترتكب أخطاء (الأقفال).توجد معلومات حول كيفية القيام بذلك، وهو أمر سهل للغاية وقد تعاملنا مع أكثر من 200 ألف رسالة لكل 24 ساعة (مع 60 × 10 = 600 قراءة وكتابة متزامنة في قائمة الانتظار).هذا بالإضافة إلى نفس خادم SQL الذي يتعامل مع بقية عناصر التطبيق ...

بعض الأسباب وراء عدم عمل MSMQ:

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

  2. إنه يضيف نقطة فشل وكابوس نشر (قائمة الانتظار هي نقطة فشل وتحتاج إلى التعامل مع تعيين الأذونات الصحيحة على جميع المربعات لقراءة/كتابة الرسائل وما إلى ذلك في برنامج Enterprise الذي تدفعه بالدم مقابل هذا النوع من الأشياء) .خادم قاعدة البيانات...جميع العملاء يكتبون/يقرأون بالفعل من قاعدة البيانات، إنه مجرد جدول آخر..

إطار عمل RabbitMQ يبدو أنه تم التغاضي عنه هنا.إذا كان الناس لا يزالون يهتمون، فهو يحتوي على قاعدة تعليمات برمجية .NET 2.0 ويأتي مع رابط WCF مشابه لـ netMsmqBinding.يتطلب الربط بطبيعة الحال ما لا يقل عن .NET 3.0 ويحتوي على ميزات أكثر من netMsmqBinding المضمن.وفوق كل ذلك، فهو صديق للبيئة.انها تستحق نظرة.

ماذا عن SQL 2005؟ وسيط الخدمة?

لماذا لا تستخدم ActiveMQ؟:)

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

إذا كان التوفر العالي مهمًا، فإن Amazon SQS يستحق النظر فيه.لا يوجد الكثير من الحمل الإضافي إذا كانت الرسائل تأتي من مواقع فعلية مختلفة.رخيصة وقابلة للتطوير!

Redis هو أحد السلالات الساخنة الأخرى على هذه المنصة.تحقق من تنفيذ قائمة الانتظار المستندة إلى المجموعة وكذلك نمط Pub/Sub.يبدو الترويجية

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