لماذا هو بالضبط مرة واحدة غير ممكنة دلالات؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

في دلالات RPC حيث يوجد إرلانج الأمل بما هو أفضل، SUN RPC مع على الأقل مرة واحدة، وجافا RMI مع على الأكثر مرة واحدة ولكن لا أحد لديه مرة واحدة بالضبط دلالات.

لماذا يبدو غير عملي لمرة واحدة بالضبط دلالات؟

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

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

المحلول

والنظر في ما يحدث إذا تعطل الخادم بين تنفيذ الطلب وتسجيل أنها قد نفذت الطلب؟

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

والغريب أن هذا واحد (مع مهلة) على براءة اختراع: http://www.freepatentsonline.com/7162512 هتمل . باستثناء ما أزعم أعلاه، فإنه لا يضمن تماما مرة واحدة.

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

ولكن ليس من الممكن حقا أن أقول "مرة واحدة بالضبط" في جميع الظروف

و(هناك سيناريوهات مشابهة للأخطاء الشبكة بدلا من تعطل الخادم)

نصائح أخرى

والحافلات الرسائل الراقية، مثل آي بي إم <لأ href = "http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp؟topic=/com.ibm.mq.csqzau.doc /ts10840_.htm "يختلط =" نوفولو noreferrer "> بنك الإسكان للتجارة MQ لا تدعي تقديم بالضبط مرة واحدة التسليم. في الواقع، وهذا هو السلوك الافتراضي (كما في آخر مرة كنت WMQ ...). ما تحقق هذا مع كتابة الاخضر السجلات ومجموعة متنوعة من تأمين التقنيات.

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

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

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

وهذا تخمين على الرغم من: أبدا لقد صممت بروتوكول RPC

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