سؤال

هل هناك ممارسات جيدة لمعالجة الرسائل أو الطلبات / الاستجابات التي تتعامل مع كميات هائلة من البيانات (مواضيعي؟

  • نقل البيانات مع الرسالة من أجل الحفاظ على التماسك ولكن ربما نسخ عدة مرات كميات هائلة من البيانات بين الأنظمة

  • احتفظ بالبيانات في متجر أو مستودع بيانات (نظام الملفات وقاعدة البيانات، ...) ونقل إشارة إلى البيانات، ومع ذلك فقد فقدان الاقتران الوثيق بين الرسالة والبيانات

ما هو الحل الشائع لهذه المشكلة؟ كيف يتم دعم هذا من خلال منتجات EAI أو الوسيطة؟

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

المحلول

في تجربتي، من الجيد الحد من حجم الرسائل. في البيئات التي أعرفها (WebSphere MQ، SonicMQ) وجدت 5-10 ميغابايت قيمة جيدة لمعظم الرسائل. في كثير من الحالات، لن تؤذي أن يكون لها عدد قليل جدا من الرسائل بأحجام تصل إلى 100 ميغابايت -> ولكن هناك سيتعين عليك التفكير في استهلاك الذاكرة، .... في معظم واجهات برمجة التطبيقات المراسلة، وخاصة JMS التي ستحصل عليها على الأقل الرسالة تماما في الذاكرة مرة واحدة، والتي قد تسبب لك بعض الصداع عند بدء معالجة متوازية.

هناك شيئان نستخدمهما كحل

  • استخدم ال نمط تسلسل الرسالة مع بعض الإضافات: في الغالب نرسل الزناد الذي يحتوي على مرجع لجميع أرقام التسلسل لضمان الاكتمال
  • إرسال "رابط" إلى البيانات

عادة ما نستخدم الحل الأول كلما كانت الرسائل تحتوي على بيانات منظمة، يتم استخدام المرء الثاني في حالات توزيع الوسائط.

بالنسبة للحل الأول، نقوم أيضا برفيل عدم استخدام حلول محددة، ولكن تنفيذ هذا المنطق في تطبيقنا المخصص - لذلك نحن لسنا مرتبطين بنظام مراسلة محددة.

نصائح أخرى

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

وفقا لأنماط تكامل المؤسسات في الكتاب، يمكنك تنفيذ نمط تسلسل الرسالة.

في تجربتي مع أنظمة EAI مثل Tibco. الأمر متروك لك إلى حد كبير لمعرفة كيفية التعامل مع كميات كبيرة بشكل تعسفي من البيانات.

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