سؤال

بعد عدم استخدام MSMQ من قبل ، لست واضحًا على الإطلاق متطلبات بيئة العميل لاستخدامها.

أقوم بتصميم حل عميل/خادم سيتدمج مع نظام قديم وأباعت على الرسائل. أرغب في استخدام تنفيذ حافلة الخدمة مثل MassTransit ، ولكن هذا يتطلب MSMQ.

هل يجب علي التأكد من تثبيت كل جهاز كمبيوتر عميل MSMQ عليه؟

لا أعتقد أن آفاقي في بيع هذا للحراس كلمة مرور المسؤول جيد جدا.

في الوقت الحالي ، يمكنني أن أتوقع بشكل موثوق تثبيت كل جهاز عميل من Windows XP Professional ، لكن هذا قد يتغير وتفهمي هو أن MSMQ لا يتم تثبيته افتراضيًا على OSS الأكثر حداثة ، والذي سيكون بمثابة صداع أكبر.

هل يمكن لأي شخص أن يوضح لي كيف يعمل هذا؟ لا أستطيع أن أتخيل كيف يمكن لأي برنامج تجاري الاعتماد على MSMQ إلا إذا فقدت شيئًا مهمًا (آمل أن أكون كذلك).

(الخادم ليس مشكلة - لدي تحكم كامل هناك.)

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

المحلول

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

نصائح أخرى

ESB (أو حتى خيار خفيف الوزن مثل MassTransit أو NserviceBus) غير مصمم حقًا لاتصالات العميل/الخادم. إذا كان لديك تطبيق سميك العميل يحتاج إلى التواصل مع الخدمات الخلفية ، فقد يكون من المنطقي بناء طبقة صابون و/أو راحة يتواصل معها العملاء بدلاً من ذلك. وراء طبقة الخدمة هذه ، يمكنك استخدام المراسلة داخليًا اعتمادًا على متطلبات التحجيم. تعد الرسائل مفيدة للغاية للتعامل مع الأحمال الديناميكية للغاية ، إلى جانب التقنيات الأخرى مثل التخزين المؤقت.

إذا كنت ترغب في القيام بالرسائل على العميل ، فقد تفكر في استخدام نظام مراسلة نمط الوسيط (يناسب ActiveMQ هنا ، إنه اتصال TCP/IP منتظم) والاتصال به من العميل. إنها طريقة للقيام بذلك ، وليس بالضرورة أفضل طريقة اعتمادًا على وضعك. يمكن لـ MassTransit استخدام ActiveMQ ، مما يتيح لك تجريد API للبرمجة من MSMQ/ActiveMQ في واجهة نقل عالمية أكثر.

هناك العديد من الخيارات عند تصميم الأنظمة الموزعة ، سواء كنت بحاجة إلى اتصال من العميل إلى العميل مقابل التواصل مع العميل إلى الخادم ، يمكن أن يساعد حقًا في التمييز بين خيارات التكنولوجيا المختلفة.

الجواب ، من تجربتي ، هو: عند استخدام MassTransit ، استخدم RabbitMQ وليس MSMQ. راجع MassTransit: هل يمكنه استخدام خادم MSMQ المركزي؟ (أو هل يجب أن أبدأ ث/أرنب من البداية؟)

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