تفيض الأحداث المجمعة في خادم المنزل الذكي بعد انقطاع التيار لأن الوسطاء والأجهزة والتكاملات تطلق العمل المتراكم عند استعادة الاتصال.
خلال الانقطاع، قد تستمر الحساسات في النشر إلى وسيط متاح، قد يخزن العملاء الرسائل الصادرة، قد تقوم البوابات بتخزين التحديثات مؤقتًا، وقد تقوم خدمات الأتمتة بجدولة المحاولات المتكررة. يؤدي الاسترداد إلى دمج دقائق العمل تلك في نافذة تسليم أقصر بكثير بينما يقوم Home Assistant أيضًا باستعادة التكاملات وقواعد البيانات ولوحات المعلومات وحالة الأجهزة. يمكن أن يؤدي التدفق الناتج إلى تشغيل أتمتة قديمة، وإشباع حلقة الأحداث، وتأخير الرسائل الحالية، وخلق جولة أخرى من المحاولات المتكررة. تتبع الأقسام أدناه كيفية تكوّن التراكم وكيفية تصريف الاسترداد المنضبط له بأمان.
الجلسات المستمرة تحافظ على العمل أثناء عدم اتصال المستهلك
يمكن لمشترك MQTT مع جلسة مستمرة الانفصال دون فقدان الاشتراكات المخزنة لديه. اعتمادًا على جودة الخدمة وسياسة الوسيط، يمكن للرسائل المطابقة المنشورة أثناء الانقطاع أن تنتظر ذلك العميل.
تشرح HiveMQ أن قوائم انتظار الرسائل غير المتصلة تحافظ على المنشورات المؤهلة حتى عودة المشترك. هذا يحسن الموثوقية، لكنه يعني أيضًا أن خادم المنزل الذكي يعيد الاتصال بكل من حركة المرور الحالية وتاريخ متراكم من الأحداث الفائتة.
لا يعرف الوسيط أي من أحداث المنزل لا تزال قابلة للتنفيذ. قد يتم تسليم حدث حركة، عينة درجة حرارة، حالة جهاز، وإنذار تسرب بشكل موثوق حتى مع اختلاف التأخير المقبول لكل منها.
إعادة الاتصال تضغط تراكمًا طويلًا في نافذة معالجة قصيرة
لا يتطلب انقطاع لمدة ثلاثين دقيقة ثلاثين دقيقة لإعادة التشغيل. قد يرسل الوسيط والعملاء الرسائل المجمعة بأسرع ما تسمح به الإقرارات وعرض النطاق الترددي للشبكة والحدود الجارية وسعة المستهلك.
تم تصميم أنظمة تراكم قوائم الانتظار لـ تصريف التراكمات بسرعة، لكن خدمة المنزل الذكي المتلقية قد تكون أصغر من الوسيط الذي يغذيها. يمكن أن تصبح عمليات كتابة قواعد البيانات، تقييم القوالب، الإشعارات، تحديثات السجل، وأوامر الأجهزة عنق الزجاجة الحقيقي للاسترداد.
تنتظر الأحداث الحالية خلف القديمة، مما يجعل المنزل يبدو بطيئًا رغم استعادة الاتصال. إذا انتهت مهلات الانتظار خلال هذا التأخير، يعيد المنتجون المحاولة ويكبرون القائمة مرة أخرى.
لذلك، فإن الفيض هو عدم تطابق في المعدل: إطلاق التراكم بالإضافة إلى حركة المرور الحية يتجاوز معدل معالجة الأحداث المستدام للخادم.
الوضع المحتفظ به والأحداث المجمعة تصل لأسباب مختلفة
رسالة MQTT المحتفظ بها تخزن أحدث حمولة محتفظ بها لموضوع ويتم تسليمها عندما ينشئ المشترك اشتراكًا مطابقًا. تخزن قائمة انتظار الجلسة المستمرة الرسائل المؤهلة لعميل غير متصل محدد.
يمكن لـ الوضع المحتفظ به في HiveMQ إعادة بناء أحدث عرض للخادم بسرعة، بينما قد تحتوي الجلسة المجمعة على تحديثات وسيطة. قد يؤدي معالجة كلاهما بدون طوابع زمنية أو قواعد تسلسل إلى أن قيمة مجمعة أقدم تحل محل الحالة المحتفظ بها الأحدث.
تضيف رسائل ولادة الجهاز، والاكتشاف، والتوافر موجة بدء تشغيل ثالثة. قد تعيد البوابات نشر التكوين والقيم الحالية عند اكتشافها أن خادم الأتمتة متصل مرة أخرى.
المحاولات المتكررة والتوزيع الموسع تضخم القائمة الأصلية
يمكن لحدث مسترد واحد أن يبدأ عدة إجراءات لاحقة: تحديث حالة الكيان، كتابة السجل، تقييم القوالب، تشغيل الأتمتة، نشر أوامر MQTT، إرسال الإشعارات، وطلب سياق الكاميرا أو الذكاء الاصطناعي.
يحدث تضخيم المحاولات المتكررة غير المنضبط عندما تكرر عدة طبقات العمل الفاشل. يمكن أن يعاد محاولة أتمتة متأخرة من قبل مناديها بينما يعيد مزود الإشعارات وتكامل الجهاز المحاولة بشكل مستقل أيضًا.
تفسر هذه الزيادة سبب تجاوز الحمل بعد الانقطاع لعدد أحداث الحساسات المجمعة. يعالج النظام التراكم بالإضافة إلى كل إجراء ثانوي ومحاولة متكررة ناتجة عنه.
يساعد التراجع مع التذبذب في توزيع المحاولات، لكنه لا يقرر ما إذا كان يجب تشغيل حدث منزلي قديم. تظل قواعد الحداثة والإجراءات الآمنة من التكرار ضرورية.
يحتاج الاسترداد إلى انتهاء صلاحية، وأولويات، وقبول منضبط
خصص أوقات حياة مختلفة للحالة، والقياسات عن بُعد، والإنذارات، والمحفزات العابرة. يمكن للحالة الحالية استبدال العينات الوسيطة، يمكن تجميع القياسات الروتينية، وقد تتطلب أحداث السلامة تسليمًا دائمًا بالإضافة إلى إقرار بشري صريح.
تمنع فترات انتهاء صلاحية MQTT 5 المنشورات القديمة والجلسات المهجورة من البقاء إلى أجل غير مسمى. تحافظ حدود القبول على جانب المستهلك، والتزامن المحدود، وقوائم الانتظار ذات الأولوية، وأنماط الإيقاف والتصريف على حركة الاسترداد تحت معدل الخادم المستدام.
تقلل حدود خدمة المنزل الذكي من ZimaSpace من نطاق الضرر: يمكن استرداد التحكم الحتمي في الأجهزة أولاً، بينما تستأنف ملخصات الكاميرا، والتحليلات طويلة الأمد، والعمل الاختياري للذكاء الاصطناعي لاحقًا.
اختبر بانقطاع منضبط طويل بما يكفي لبناء تراكم. قس عمق القائمة، عمر أقدم رسالة، معدل التصريف، تأخير حلقة الأحداث، عمليات كتابة قاعدة البيانات، الإجراءات المكررة، والوقت حتى تستعيد الأحداث الحالية الأولوية.
مركز التكنولوجيا والذكاء الاصطناعي
المزيد للقراءة

الحالة أثناء التشغيل مقابل الحالة المستمرة في Home Assistant: ما الذي يجب أن يبقى بعد إعادة التشغيل؟
لا يحتفظ Home Assistant بكل قيمة مباشرة؛ إذ تؤدي الإعدادات والسجلات والحالات المحددة المستعادة وبيانات النشر أدوارًا مختلفة عند إعادة التشغيل.

كيف يُجري Home Assistant مصادقة الجلسات المحلية وعن بُعد؟
تستخدم جلسات Home Assistant المحلية وعن بُعد نموذج الهوية نفسه من جهة الخادم؛ إذ يغيّر الوصول عن بُعد المسار وحدود TLS، وليس تدفق الرموز...

لماذا قد تصبح استعلامات سجل Home Assistant بطيئة مع نمو بيانات المسجّل؟
يمكن أن يؤدي نمو بيانات Recorder إلى زيادة تكلفة استعلامات History عندما يشمل النطاق المطلوب عددًا أكبر من الصفوف، أو تزداد حالات فقدان ذاكرة...

