سؤال

هل من الجيد استخدام مآخذ لإرسال البيانات بين خادمين، أو يجب علي استخدام شيء مثل MQ لنقل البيانات.

أسئلتي: هي مآخذ موثوقة، إذا كنت بحاجة مرة واحدة فقط / تأكدت تسليم البيانات؟

هل هناك حلول أخرى؟

شكرا.

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

المحلول

مآخذ هي تطبيق API لمستوى التطبيق لأداء اتصال الشبكة. تعتمد موثوقية المقابس على بروتوكول الشبكة الذي تحدده عند إنشاء المقبس. إذا قمت بتحديد TCP / IP، فستحصل على نقل "موثوق" ... حتى حد. إذا قمت بتحديد UDP / IP، فستحصل على نقل "غير موثوق به".

كما هو مذكور في إجابات أخرى، يضمن TCP أنك لا تفقد أو تالف البيانات تصل إلى حد ما:

  1. إذا كان هناك انقطاع إلى الشبكة طويلة الكافية، أو يموت المرسل أو المستلم، فسوف ينكسر اتصال TCP / IP وسوف تفقد البيانات إلا إذا اتخذك خطوات لإعادة تشغيل الاتصال.
  2. إذا كان هناك تلف بيانات مستوى الشبكة، فهناك احتمال صغير لن يتم اكتشافه بواسطة المجموع الاختباري.

بالنسبة إلى مستويات أعلى من ضمانات الموثوقية من TCP / IP توفر، فأنت بحاجة إلى تنفيذ تدقيق أكثر حساسية وآليات التسليم المضمونة فوق الجزء العلوي من طبقة الشبكات المستندة إلى مقبس التطبيق. أو استخدم منتج في قائمة انتظار الرسائل التي يصعب العمل المناسب لك.

لذا فإن الإجابة على سؤالك هو أنه يعتمد على كيفية استخدامك مآخذ، وعلى مستوى الموثوقية يتطلب نظامك.

نصائح أخرى

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

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

المقبس موثوق به لأن كل اتصال يتم في رأسه، بما في ذلك MQ.

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

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

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

امل ان يساعد.

  • جيب

مآخذ هي الآلية الخام لنقل البيانات. يتم تنفيذ كل شيء آخر على رأس هذا. في ال نموذج شبكة OSI. ينتمون إلى طبقة 4. على الرغم من أنها تنفذ اتصال موثوق للنهاية، إلا أنها نادرا ما تستخدم بروتوكول النهاية. تحتاج دائما تقريبا إلى تنفيذ طبقة تطبيق. ما سيكون هذا يعتمد على طلبك (هل تحتاج إلى نقل الملفات أو فقط إرسال الرسائل) والبنية التحتية للشبكة الخاصة بك.

إذا كنت تستخدم مجرى المقبس, ، يضمن بروتوكول TCP أن البيانات لا تضيع في الإرسال ومن غير المرجح أن يتم تفسيرها (على الرغم من أن عليك أن تقرر ما إذا كانت المجموع الاختباري 16 بت كافية أو تحتاج إلى آلية تقويم تقنز التطبيقات).

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

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

ذلك يعتمد ذلك إلى حد كبير على نوع التطبيق الذي تقوم بتطويره. أنت تكتب برنامجا حيث تحتاج إلى استجابة أو ACK من الرسالة المرسلة، ثم مآخذ TCP جيدة. ولكن، إذا كنت تنفذ بعض السيناريو من سيناريو سير العمل، فيجب عليك استخدام قوائم انتظار الرسائل.

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