انتقل إلى المحتوى

الإعدادات والسجل والتخزين المؤقت والتخزين ​

ترتبط هذه المجالات الأربعة تشغيلياً، لكنها ليست قابلة للتبادل. يدمج @go-like/config المصادر في لقطات غير قابلة للتغيير، ويحتفظ بآخر لقطة سليمة، ويتولى دورة حياة عمليات المراقبة التي قبلها. وينشر @go-like/registry عُقد الخدمات ويكتشف نقاط النهاية الحية. ويحتفظ @go-like/cache بقيم ثنائية مؤقتة مع TTL اختياري، بينما يوفّر @go-like/store سجلات أدوم بـ revisions وTTL وCAS وقراءة بحسب البادئة وترقيم صفحات مستقر.

تشمل مصادر الإعداد قيماً محقونة من البيئة وملفات وConsul وetcd، إضافة إلى Vault KV v2 عبر @go-like/config-vault. وتشمل مزّودات سجل الخدمات mDNS وConsul وetcd وKubernetes EndpointSlice وZooKeeper. وللتخزين المؤقت @go-like/cache-memory و@go-like/cache-redis. أما التخزين فيدعم لقطة ملف يملكها كاتب واحد، وConsul KV، وetcd KV، وVault KV v2 عبر @go-like/store-vault. لكل مزّود حزمة مسطّحة مستقلة، فلا يتحمل التطبيق إلا تكلفة النظام الخلفي الذي اختاره.

تستقبل دوال إنشاء المزوّدات العناوين وبيانات الاعتماد وقدرات المضيف بصورة صريحة. وتتلقى مزوّدات HTTP القابلة للنقل دالة Fetch ذات معامل واحد بدلاً من قراءة المتغيرات العامة لبيئة التشغيل. تبقى بيانات الاعتماد داخل headers، ولا يجوز أن تظهر في نص خطأ عام. وعندما تفقد المراقبة جزءاً من سجل النظام الخلفي، مثل compaction في etcd أو استجابة 410 Gone من Kubernetes، تأخذ لقطة جديدة قبل استئناف المتابعة. تعيد مراقبات ZooKeeper تسليح نفسها بعد الإشعار أحادي الاستخدام أو انتهاء الجلسة. وإذا وصل الإلغاء بعد إرسال عملية multi، ينتظر المزوّد النتيجة الحقيقية ويعيد الحالة الدقيقة؛ وإذا ظلت النتيجة ملتبسة، يغلق الجلسة ويستعيد مالكي التسجيل المقبولين سابقاً.

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

الاستمرارية وإمكانات TTL/CAS تعتمد على المزوّد؛ store-memory يفقد البيانات عند خروج العملية.