التحديث على الانترنت آلية c++ ملقم التطبيق

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

  •  02-10-2019
  •  | 
  •  

سؤال

لم أستطع العثور على أي شيء حول هذا الموضوع.

لدي ويندوز TCP C++ تطبيق الخادم التي لا تحتاج إلى تحديث من وقت لآخر.


كما من الواضح أنك تفهم هذا يدخل مشكلة - server يجب أن يكون 24/7 من منظور المستخدمين.
عند تحديث, كما المطلوب للحفاظ على الحالية اتصالات TCP مع المستخدمين.


لقد تم التفكير في وحدة مثل النظام على سبيل المثال مأخذ التعامل مع وحدة من شأنه أن يقيم في "sockets.dll" الملقم المنطق من شأنه أن يقيم في "logic.dll".
تسير على هذا النهج يبدو مثل فتح صندوق باندورا;
- كيف يمكنني جعل الفعلية "مبادلة" وحدات?تخيل أن X المواضيع عامل الاستمرار في إرسال البيانات من وحدة واحدة إلى أخرى - عند مبادلة سوف تحتاج إلى (خفيف وسريع) طريقة إيقاف/إيقاف مؤقت ؛ إشارات ربما ؟
- بروتوكول الإصدار ، أو حتى وظائف التوقيع قد يتغير عند تحديث.كيفية التعامل مع هذا ؟
- مشاكل أخرى مثل مرور الكرام المنطق البق.
- الذي يعرف هذا النوع من القضايا الأخرى التي سوف تنشأ.


بالإضافة إلى ما سبق لدي مخاوف مثل كيف يمكنني تحديث يقول 10 السيرفرات ؟ أعني أنها كلها مرتبطة مع بعضها البعض ، والتواصل.
إذا كان التحديث بروتوكول تعديل قد يسبب مشاكل كبيرة, و في هذه الحالة سوف تحتاج إلى تحديث كل مجموعة (الخوادم) ككل ؛ إيقاف كل عملية ؟ هذا لا يبدو الحق في كل شيء!كيف أفعل ذلك ؟ وهو مفهوم(s) أنا في عداد المفقودين هنا كيف اتعلم عليه/عليها ؟


هل هناك أي شيء يمكنني القيام به حيال ذلك ؟
ماذا كنت ستفعل ؟ فعلت مثل هذا الشيء ؟
هل تعرف من أي آلية/من المادة/المشروع/المصدر سبيل المثال/الخ' أن يحل المشكلة ؟

أي نصائح قيمة للغاية محل تقدير!!

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

المحلول

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

نعم, هذا يعني الحفاظ على رمز لكل بروتوكول الإصدارات لفترة من الوقت, ولكن يمكنك التقاعد القانون القديم بمجرد أن تعرف كل من الخوادم يتم تحديثها والعمل مع البروتوكول الجديد.

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

نصائح أخرى

إليك هذه الفكرة:

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

في الأساس, الفكرة هي أن يكون كلا الإصدارين قيد التشغيل في نفس الوقت.

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