كيفية التعامل مع المواقف ، عندما أصبح نموذج القراءة خارجًا مع سجلات الحدث؟

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

  •  26-09-2019
  •  | 
  •  

سؤال

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

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

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

كيف تحل هذه المشكلة؟ شكرًا لك.

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

المحلول

ماذا سيكون سبب الفشل في معالج الأحداث؟ ما هي مدة "الأبدية"؟

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

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

أود أن أوصي بعدم تقديم لقطات لقراءة النماذج. أعتقد أن هذا يعقد الهندسة المعمارية دون أي مكاسب كبيرة.

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